EinfTI Script 2013

585
Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik 1 Vorlesung Einführung in die Technische Informatik WS 2013/14

Transcript of EinfTI Script 2013

Page 1: EinfTI Script 2013

Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1

Vorlesung

Einführung in die Technische

Informatik

WS 2013/14

Page 2: EinfTI Script 2013

Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2

A Organisatorisches

2

Page 3: EinfTI Script 2013

3 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1 Dozent

Prof. Dr. Ulrich Brüning

Lehrstuhl für Rechnerarchitektur, Institut für Technische Informatik (Ziti), Universität Heidelberg

LS Rechnerarchitektur

Prof. Dr. U. Brüning

B6, 26, Building B (3rd floor) 68131 Mannheim

Fon: +49 (0) 621 - 181 2724

Fax: +49 (0) 621 - 181 2713

E-mail: [email protected]

Sekratariat: Andrea Seeger

Fon: +49 (0) 621 – 181 2723

Page 4: EinfTI Script 2013

4 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2 Übungsbetreuung

Übungsleiter Denis Wohlfeld ([email protected])

Tutoren

Oliver Hommel ([email protected]): Tutorium 1: Mo. 16:00-

17:30 Uhr; Ort: INF 501 / FP (R.102)

Enrico Krämer ([email protected]): Tutorium 2:

Mo. 16:00-17:30 Uhr; Ort: INF 227 / SR 1.403

Aaron Sievers ([email protected]): Tutorium 3: Mi. 14:15-15:45

Uhr; Ort: INF 227 / SR 2.401

Felix Kaiser ([email protected]): Tutorium 4: Mi. 14:15-

15:45 Uhr; Ort: INF 227 / SR 2.402

Prof. Dr. U. Brüning (D. Wohlfeld [email protected]):

Tutorium 5: Mo. 16:00-17:30 Uhr; Ort: INF 288 HS6

Page 5: EinfTI Script 2013

5 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Studiengänge

Bachelorstudiengang Angewandte Informatik

Pflichtveranstaltung Vertiefung Technische Informatik

1. Semester

Page 6: EinfTI Script 2013

6 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 Inhalt

Aufbau von Rechnersystemen

„Unter die Haube sehen“

Page 7: EinfTI Script 2013

7 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 Inhalt

Stichworte

Digitale Logik

Digitale Schaltungen

Rechnerarithmetik

Mikroarchitektur

Instruktionssatz

Rechnerarchitektur

Ein-, Ausgabegeräte

Betriebsystemkonzepte

Page 8: EinfTI Script 2013

8 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5 Struktur

Technische Informatik

Vorlesung und Übung (4+2 SWS, 8 CP)

Vorlesung (4 SWS)

Mo. 14:15 – 15:45 Uhr

Mi. 11:15 – 12:45 Uhr

Übungen

siehe Tutoren

Page 9: EinfTI Script 2013

9 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6 Vorlesung

wesentliche Teile

„Technische Informatik I“ von Prof. Dr.-Ing. Franz J. Hauck, Informatik, Univ. Ulm

„Technische Informatik“, Prof. Dr. Klaus Merle, Univ. Mainz

Skript

Folien der Vorlesung werden im WWW (moodle2) zur Verfügung gestellt

und können selbst ausgedruckt werden

weitergehende Informationen zum Nachlesen siehe angegebene Literatur

URL zur Veranstaltung (nur nach Anmeldung für Veranstaltung)

Moodle2

Termine, Folien zum Ausdrucken und

Zusatzinformationen

Nutzen Sie das dortige Forum für Fragen!

Page 10: EinfTI Script 2013

10 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6 Vorlesung (2)

Rückmeldungen und Fragen

Geben Sie mir Rückmeldungen bzgl. Änderungen oder Ergänzungen zum Stoff

Stellen Sie Fragen, außerhalb der Vorlesung auch per Email!

Machen Sie mich auf Fehler aufmerksam!

Nutzen Sie (außerhalb der Vorlesung) die Möglichkeit, mit den

Übungsbetreuern und Ihren Mit-Studierenden zu diskutieren

Selbst-lern-Möglichkeiten

Literatur

Wikipedia

Page 11: EinfTI Script 2013

11 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7 Literatur

Standardwerke

Alan Clements: The Principles of Computer Hardware. 3rd Ed., Oxford Univ. Press, 2000.

Andrew S. Tanenbaum: Computerarchitektur. 5. Auflage, Pearson

Studium, 2006

John L. Hennessy & David A. Patterson: Computer Architecture – A

quantitative approach, 4rs Ed., Morgan Kaufmann, 2006

Page 12: EinfTI Script 2013

12 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7 Literatur

Ergänzungsliteratur

Walter Oberschelp, Gottfried Vossen: Rechneraufbau und Rechnerstrukturen. 10. Aufl., Oldenbourg, 2006.

John D. Carpinelli: Computer Systems, Organization & Architecture.

Addison-Wesley, 2001.

Andrew S. Tanenbaum: Modern Operating Systems. 2nd Ed. Prentice

Hall, 2001.

Klaus Beuth: Digitaltechnik (Elektronik 4), Vogel Fachbuch, 13. Auflage, 2006.

Page 13: EinfTI Script 2013

13 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

8 Termine

Vorlesungszeitraum:

Termine Mo 14.10.2012 - Fr. 07.02.2013

Klausur voraussichtlich am : ??? wird noch festgelegt (Raumsuche)

Angepeilt ist der 10.02.2014

Übungen: jede Woche (jetzt anmelden im Moodle2)

Besprechung von Übungsaufgaben, Klärung von Fragen,

Verständnisfragen

1. Übungsblatt ab Freitag 18.10 über Moodle

eine Woche zur Bearbeitung

Erste Abgabe im Tutorium ab Mo. 28.10.

eine Woche später Rückgabe und Besprechung

Page 14: EinfTI Script 2013

14 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

9 Studien- bzw. Prüfungsleistungen

Leistungsnachweis:

Übungen >= 50% aller Übungsaufgaben gut gelöst (max. 2 x unentschuldigt gefehlt)

=> Zulassung zur Klausur

Klausur nach dem WS über Vorlesung und Übungen

Technische Informatik

ggfs. Nachprüfung vor Beginn des Wintersemesters

Nachklausur

Page 15: EinfTI Script 2013

Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1

B Einführung

1

Page 16: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Zielsetzung

Grundverständnis der digitalen Logik

Verständnis zum Aufbau und der Arbeitsweise von Rechnersystemen

System-Zusammenhang von HW und SW

Möglichkeiten und Grenzen der HardwareVerständnis für spezifisches SystemverhaltenLeistungsfähigkeit von Hardware

Stärken und SchwächenVergleich zu Software

Grundlagen für die Entwicklung hardwarenaher ProgrammeAnsteuerung von Ein- Ausgabegeräten (z.B. Treiber)Implementierung effizienter Programme (z.B. in Maschinensprache)

Page 17: EinfTI Script 2013

3Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Was ist Technische Informatik?

schwerpunktmäßige ZusammengehörigkeitTechnische und Systemnahe InformatikRechnernetzeRechnerarchitekturEntwurf digitaler Hardware(Betriebssysteme)(Verteilte Systeme)

Technische Informatik

Elektrotechnik(Digitaltechnik)

Informatik

Logik

Mathematik(diskrete)

Robotik / Sensorik

Signaltheorie Rechner-architektur

Page 18: EinfTI Script 2013

4Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Systementwurf

Beispiel: Komponenten für Systementwurf mit ASIC oder FPGA

Systemarchitektur

Softwareentwicklung(C, C++, ASM)

Driver

API

O/S(Linux)

Hardwareentwicklung(HDL, Schematics)

LogikentwurfASIC oder FPGA Design

Simulation und VerifikationSynthese, Back-End

Package- & Board-Design

Test und Debugging

Technische Informatik

Page 19: EinfTI Script 2013

5Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Beispiel (1)

Beispiel: Komponenten für ASIC Systementwurf ATOLL-Projekt

www.atoll-net.de

ATOLL chip

bond Draehte

Testaufbau

ATOLL board

Simulationsfenster

Page 20: EinfTI Script 2013

6Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Beispiel (2)

Beispiel: Komponenten für FPGA Systementwurf HTX-Board

ra.ziti.uni-heidelberg.de

FPGA board

TestaufbauSimulationsausgabe

Page 21: EinfTI Script 2013

7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Information und ihre Darstellung

Information und Nachricht sind grundlegende Begriffe der InformatikInformation ist die Bedeutung einer Nachricht

Der Informationsgehalt I eines Ereignisses i:Ii = ld 1/pi = - ld (pi)Der Informationsgehalt eines Ereignisses, das immer eintritt, ist gleich Null (ld 1 = 0)Der ’Neuigkeitswert’ ist umso größer, je kleiner die Wahrscheinlichkeit piist.

Zwei gleich wahrscheinliche Ereignisse werden gerade durch eine Entweder-Oder-Entscheidung dargestellt. Dies entspricht der

Einheit des Informationsgehalts1 bit (binary digit)

Page 22: EinfTI Script 2013

8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Information und ihre Übertragung (1)

Eine Nachricht besteht aus physikalischen, verketteten Signalen.Die Signale sind dabei in einer bestimmten Art geordnet. Sie übermittelt die Information vom Sender zum Empfänger.

Eine Nachricht ist eine Folge von Zeichen

Die Information wird von der Quelle über ein Übertragungsmedium zu einer Senke übermittelt.

Übertragungsmedium oder Nachrichtenkanal (kurz Kanal)

Page 23: EinfTI Script 2013

9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Information und ihre Übertragung (2)

Nachricht = ZeichenfolgeEin Zeichen ist ein Element aus einer endlichen Menge von unterscheidbaren Elementen, dem Zeichenvorrat.Ein Zeichenvorrat, in dem eine lineare Ordnung (Reihenfolge) definiert ist, heißt Alphabet.Ein Symbol ist die bedeutungstragende Einheit d.h. ein Symbol ist das Zeichen zusammen mit der Bedeutung.

Eine digitale Informationsübertragung verwendet definierte Symbole. Dabei existiert ein endlicher Symbolvorrat.

Im technischen Bereich sind Zeichenvorräte, die nur aus zwei Zeichen bestehen, von größerer Bedeutung.

Ein Zeichenvorrat mit nur zwei Zeichen heißt binärer Zeichenvorrat. Die Zeichen heißen Binärzeichen (bit)Darstellung durch [ {0,1}; {O,H}; {l,H}; {grün,rot}; {0V,5V} ]

Page 24: EinfTI Script 2013

10Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Information und ihre Übertragung (3)

Nachrichtenträger

immateriell materiell

Schall, Spannung, Strom,Licht, elektro-magnetische Wellen

Papier, Magnetband, USB-Stick, Kerbholz ;-)

Die Nachricht wird durch Signale übertragen

analoge digitale

010010001001010

SOS

Page 25: EinfTI Script 2013

11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Information und ihre Übertragung (4)

Nachrichtenträger

analoges Signal

Page 26: EinfTI Script 2013

12Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Analoge und digitale Rechner

AnalogrechnerVerarbeitung kontinuierlicher Größen

Länge, Spannung, Temperatur

Beispiele:Rechenschieber (17. Jahrhundert)Feuerleitrechner (Anfang d. 20. Jahrhunderts)elektromechanischer Analogrechner (um 1930)

Page 27: EinfTI Script 2013

13Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Analoge und digitale Rechner (2)

Digitale RechnerVerarbeitung diskreter Größen

mechanische Rasten, Spannungsniveaus, Stromfluss

Beispiele:Abacus (3000 v. Chr.)Lochkartenwebstuhl (Anfang 19. Jahrhundert)heutige Rechner

Page 28: EinfTI Script 2013

14Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Analoge und digitale Rechner (3)

Vergleich: GenauigkeitUnterscheidung

Genauigkeit der Darstellung von GrößenGenauigkeit der Verarbeitung von Größen

Analogrechnertheoretisch beliebig genaue Darstellungunpräzise Mechanik/Elektronik des Rechners:Ungenauigkeiten selbst bei einfachen Berechnungen(z.B. durch Temperaturabhängigkeit)

Digitalrechnertheoretisch ungenaue Darstellung (kann nur in Stufen rechnen)unpräzise Mechanik/Elektronik des Rechners:aber: Ungenauigkeiten bei der Verarbeitung nur in Extremfällen

Page 29: EinfTI Script 2013

15Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Analoge und digitale Rechner (4)

Vergleich: DatenspeicherungAnalogrechner

Speicherung von Daten problematischsiehe z.B. alte Tonkassetten

DigitalrechnerSpeicherung von Daten einfach realisierbar

Page 30: EinfTI Script 2013

16Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Analoge und digitale Rechner (5)

AnalogrechnerEinsatz für SpezialproblemeBeispiel:

Lösen von Differentialgleichungenheute nicht mehr in Gebrauch

Digitalrechnerheute vorwiegend elektronische Digitalrechner im EinsatzVorteil insbesondere

höhere Genauigkeit lässt sich kostengünstiger als bei Analogrechnern erreichen

Page 31: EinfTI Script 2013

17Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung

3000 v. Chr.Abacus: älteste Rechenhilfe der Welt

genauer Ursprung unklarverschiedene Versionennoch heute im asiatischen Raum im Einsatz

1629Rechenschieber (William Oughtred): Analogrechner-Beispiel

Page 32: EinfTI Script 2013

18Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (2)

1623: erste Rechenmaschine (Wilhelm Schickard /Tübingen für Kepler)

alle vier Grundrechenarten

1642: Pascaline (Blaise Pascal)mechanische Rechenmaschinenur Addition

Page 33: EinfTI Script 2013

19Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (3)

1666Grundlagen der Logik (Gottfried Wilhelm Leibniz)

1673mechanische Rechenmaschine,„Stepped Reckoner“ (Leibniz)

vier GrundrechenartenWurzelziehenPräzisionsproblemebei der Herstellung

Page 34: EinfTI Script 2013

20Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (4)

1804automatischer Webstuhl (Joseph Jacquard)

Lochkarten bestimmen MusterLöcher steuern Anheben und Senken der Kettfädenerster Nur-Lese-Speicher(ROM, Read-Only Memory)

Page 35: EinfTI Script 2013

21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (5)

1822Differenzmaschine (Charles Babbage)

Präzisionsprobleme bei der HerstellungNur ein Algorithmus

1834Analytische Maschine (Babbage)

theoretisch programmierbarerster universeller RechenautomatRechenwerk „Mill“Speicher „Store“Einsatz von Lochkartenerste Programmiererin:Lady Augusta Ada Lovelace

Page 36: EinfTI Script 2013

22Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (6)

1847Boolesche Algebra (George Boole)

binäre logische OperationenBasis für heutige Digitalrechner

1890Tabelliermaschine (Herman Hollerith)

Zähl- und Sortiermaschine (Volkszählung)Basis LochkartenHolleriths Firma wurde später zur IBM

1930elektromech. Analogrechner „Differential Analyzer“ (Vannevar Bush)

Page 37: EinfTI Script 2013

23Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (7)

1936Turingmaschine (abstraktes Modell für Berechenbarkeit)

EntscheidungsproblemTheoretische Informatik

1940Z3 (Konrad Zuse)

Relaistechnik (2200 Stück)10 Hertz Taktfrequenz22-stellige Binärzahlen (Gleitkomma-Format)dezimale Ein-/AusgabeSpeicher mit 64 WortenSteuereinheit mit SequenzerAddition in 3 Takten,Multiplikation in 16 Takten

Page 38: EinfTI Script 2013

24Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (8)

1945von Neumann Architektur (John von Neumann)

klassischer Universalrechnervier wesentliche Komponenten: Befehlsprozessor, Datenprozessor,Speicher, Ein- u. Ausgabe-ProzessorProgramme und Daten in einem Speicher(Princeton-Architektur)Zugang zum Speichererfolgt über den BUSstreng sequentielleBefehlsausführungbinäre Kodierung

Burks, A>W., Goldstine, H.H., von Neumann, J., Preliminary Discussion of the Logical Design of anElectronic Computing Instrument, in: Taub, A.H. (ed.): Collected Works of John von Neumann, vol.5, Mac Millan, New York, 1963, pp 34-79.

Page 39: EinfTI Script 2013

25Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (9)

1946: ENIAC Electronic Numerical Integratorand Computer (Eckert/ Mauchly,Aberdeen, PA, $ 486,604)

Röhrentechnik (19000 Stück)130 m2, 30 Tonnen, 140 kWca. 5000 Additionen je Sek.20 Akkumulatoren1 Multiplizierer,3 Funktionstabellenprogrammiert durch KabelverbindungenE/A mittels Lochkartengebaut für ballistische Berechnungen

Page 40: EinfTI Script 2013

26Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (9.1)

Kernspeicherbenutzt als Hauptspeicher von 1951 bis 70er Jahresehr aufwändige Fertigung (Handarbeit): Ferritkerne mit LeitungenSchreiben: x- u. y-Leitung je halber Strom zur (Um)MagnetisierungLesen: wie Schreiben: je nach Magnetisierung Induktionssignal auf z Vorteil: Daten bei Stromausfall erhalten

x

z

y

Page 41: EinfTI Script 2013

27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (10)

1959Integrierte Schaltung (Jack Kilby)

1961PDP-1 (DEC)

Transistortechnikmagnetischer Kernspeicher für 4096 18-Bit Worte200 kHz TaktCRT, 512 x 512 Pixel Grafikerster Minicomputer

1965PDP-8

Omnibus (erstes Bussystem)

Page 42: EinfTI Script 2013

28Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (11)

1965IBM 360

erste Rechnerfamilie mit gleichem InstruktionssatzMehrprogrammbetriebmikroprogrammierbar32-Bit Worte16 MByte Adressraum

1968Strukturierte Programmierung (Edsger Dijkstra)

„Go To Statement Considered Harmful“Prozedurale Programmierung

Page 43: EinfTI Script 2013

29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (12)

1972PDP-11

16-Bit SpeicherworteEntwicklungsumgebung für UNIX und C

1976Cray-1 — erster Vektorrechner

1981IBM-PC

1985MIPS — erster RISC-Mikroprozessor

1987Connection Machine

erster massiv paralleler Rechner mit 65536 Prozessoren

Page 44: EinfTI Script 2013

30Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (13)

1992DEC Alpha 21064 — erster RISC-Mikroprozessor mit 64-Bit CPU

1997Supercomputer ASCI Red — 1 TFlops

2000erster Mikroprozessor mit 1 GHz Taktfrequenz

2002Earth-Simulator (NEC/Japan) - 35 TFLops

2007In search of PFLops…Fastest Supercomputer: IBM Blue Gene, 128k CPUs, 280 TFlops

Page 45: EinfTI Script 2013

31Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historie (14): Deutsche Rechner-Hersteller

Zuse1958: Z22 (Röhren, Ferritkernspeicher, 20 IPS), ALGOL1961: Z23 (Transistoren, Ferritkernspeicher, 150 IPS), ALGOL60

AEG/Telefunken1967-: TR440 (Mainframe, Transistoren/Schaltkreise, Magnetplatten/-Bänder, bis 2 CPUs, 48 Bit, 800 kIPS), FORTRAN, u.a. in Kl, München1974-: ATM 80 (Prozessrechner, 16/32 bit, 256 kB RAM), FORTRAN, BASIC

Siemens1959: S2002 (Universalrechner, Ferritkernspeicher, Transistoren), ALGOL1964: S3003 (Transistor/Schaltkreise) bis 9 Programme gleichzeitig1971-: S300 (Prozessrechner, 16 Bit, Halbleiter-Speicher)

Dietz, Kienzle, PCS: Prozessrechner, MDT, Workstations, (1975 - Anfang 90er)

Page 46: EinfTI Script 2013

32Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Entwicklung der Prozessoren

Beispiel: Prozessoren von Intel

1974 — Intel 8080erste universelle 8-Bit CPU auf einem Chip

1978 — Intel 8086erste 16-Bit CPU auf einem Chip

1981 — Einführung des IBM PC

1985 — Intel 80386erste 32-Bit CPU

1989 — Intel 80486Cache auf Chip integriert

Page 47: EinfTI Script 2013

33Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Entwicklung der Prozessoren (2)

1993 — Intel Pentiumzwei Pipelines

1995 — Intel Pentium Probis zu fünf Instruktionen gleichzeitig

2000 — Pentium 4bis zu 2,4 GHz Takt

2001 — Itanium (Intel)64 Bit CPU

2003 — Itanium 2(Intel/HP), Opteron (AMD), Power5 (IBM, Apple)64 Bit hohe Rechenleistung ==> Einsatz in Workstations und Clustern

Page 48: EinfTI Script 2013

34Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Leistungssteigerung

1975 – 2000

Page 49: EinfTI Script 2013

35Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 Trends Mikroprozessoren und Speicher

Mooresches Gesetz (1965, 1975)Verdoppelung der Transistorzahl der ICs alle 2 Jahre

Verdopplung der Verarbeitungsleistung der Prozessoren alle 1,5 JahreVervierfachung der Speichergröße alle 3 JahreVerdopplung der Speicherleistung alle 10 Jahre Zum gleichen Preis die doppelte Leistung in weniger als 2 Jahren

Page 50: EinfTI Script 2013

36Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 Trends Mikroprozessoren und Speicher (2)

Leistungszuwachs:

Page 51: EinfTI Script 2013

37Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Historische Entwicklung (13)

1992DEC Alpha 21064 — erster RISC-Mikroprozessor mit 64-Bit CPU

1997Supercomputer ASCI Red — 1 TFlops

2000erster Mikroprozessor mit 1 GHz Taktfrequenz

2002Earth-Simulator (NEC/Japan) - 35 TFLops

2007In search of PFLops…Fastest Supercomputer: IBM Blue Gene, 128k CPUs, 280 TFlops

Page 52: EinfTI Script 2013

38Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Entwicklung der Betriebssysteme

1950 – 1960StapelverarbeitungWechselpufferbetriebSpooling (Trennung von Ein-, Ausgabe und Berechnung)

1964 — DOS/360 (IBM)allgemeines Betriebssystem mit Mehrprogrammbetrieb

1969 — Unix (Bell Labs)Betriebssystem für Minicomputer

1972 — MVS (IBM)Virtueller Speicher

Page 53: EinfTI Script 2013

39Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Entwicklung der Betriebssysteme (2)

1976 — CPM 80 (Digital Research)Betriebssystem für Mikroprozessor

1981 — MS/DOS (Microsoft)Durchbruch als Mikroprozessor-Betriebssystem

1982 — MacOS / Finder (Apple)graphische Oberfläche

1985 — Netware (Novell)Vernetzung von PCs

1986 — MS Windows (Microsoft)die graphische Oberfläche für PC

Page 54: EinfTI Script 2013

40Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Entwicklung der Betriebssysteme (3)

1990 — Windows NT (Microsoft)echter Multiprogrammbetrieb nun auch auf dem PC

1996 — Linux (Linus Thorvald)Open Source “Unix”

2001 — Windows XP (Microsoft)bunter, schneller, besser (?)

Page 55: EinfTI Script 2013

41Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 Schichtenmodell

Abstraktionsschichten eines Rechensystems

Ebene 6Compiler

Ebene 5Assembler

Ebene 4Teilinterpretation

Ebene 3Interpretation durch Mikroprogramm

Ebene 2Implementierung in Gattern

Ebene 1Implementierung in Hardware

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Bauelemente

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 56: EinfTI Script 2013

42Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Struktur der Vorlesung

ÜberblickA OrganisatorischesB EinführungC SchaltalgebraD Sequentielle LogikE Technologische GrundlagenF Programmierbare LogikbausteineG ZahlendarstellungH RechnerarithmetikI Hypothetischer ProzessorJ Prozesse und NebenläufigkeitK SpeicherverwaltungL Massenspeicher

Page 57: EinfTI Script 2013

43Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Struktur der Vorlesung (2)

Einordnung der Kapitel

Ebene 6

Ebene 5

Ebene 4

Ebene 3

Ebene 2

Ebene 1

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Bauelemente

Betriebssystem

Assemblersprache

Problemorientierte Sprache A B

J K

F GH L

I

EDC

A OrganisatorischesB EinführungC SchaltalgebraD Sequentielle LogikE Technologische GrundlagenF Programmierbare LogikbausteineG ZahlendarstellungH RechnerarithmetikI Hypothetischer ProzessorJ Prozesse und NebenläufigkeitK SpeicherverwaltungL Massenspeicher

A OrganisatorischesB EinführungC SchaltalgebraD Sequentielle LogikE Technologische GrundlagenF Programmierbare LogikbausteineG ZahlendarstellungH RechnerarithmetikI Hypothetischer ProzessorJ Prozesse und NebenläufigkeitK SpeicherverwaltungL Massenspeicher

Page 58: EinfTI Script 2013

Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1

C Schaltalgebra

1

Page 59: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung

Ebene 6

Ebene 5

Ebene 4

Ebene 3

Ebene 2

Ebene 1

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Physik

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 60: EinfTI Script 2013

3Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Digitale elektrische Systeme

Einfaches Szenario: Lampenschaltung

Strom kann bei geschlossenem Stromkreis fließen.Zwei Zustände:

Strom fließt — Lampe leuchtetStrom fließt nicht — Lampe bleibt dunkel

elleuqsgnunnapS elleuqthciL

retlahcS

Page 61: EinfTI Script 2013

4Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Einfache Schaltungen

Einfaches Szenario: zwei Schalter in Reihe

Wann leuchtet die Lampe?

Page 62: EinfTI Script 2013

5Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Einfache Schaltungen

Einfaches Szenario: zwei Schalter in Reihe

Lampe leuchtet nur dann, wenn der erste und der zweite Schalter geschlossen sind.

Page 63: EinfTI Script 2013

6Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Einfache Schaltungen (2)

Einfaches Szenario: zwei parallele Schalter

Wann leuchtet die Lampe?

Page 64: EinfTI Script 2013

7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Einfache Schaltungen (2)

Einfaches Szenario: zwei parallele Schalter

Lampe leuchtet nur dann, wenn der erste oder der zweite oder beide Schalter geschlossen sind.

Page 65: EinfTI Script 2013

8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Komplexe Schaltung

Komplexes Szenario: viele Schalter

Wann leuchtet die Lampe?

Page 66: EinfTI Script 2013

9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Komplexe Schaltung

Komplexes Szenario: viele Schalter

Beispiel: (mindestens) 3 Schalter geschlossen, damit Lampe leuchtetReihe von Alternativen möglich

Page 67: EinfTI Script 2013

10Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Logische Schaltungen

Bisher:

Stromkreis, Schalter und Lampe

Betrachtung aus dem Blickwinkel der Logik

zwei Zuständean — ausStromfluss — kein Flusswahr — falschtrue — false1 — 0

Realisierung mit elektronischen Bausteinen

zwei Zustände, z.B. Stromfluss — kein Stromfluss

Page 68: EinfTI Script 2013

11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Logische Schaltungen (2)

Elementare Funktionen über die beiden Zustände

realisiert mit Funktionsbausteinen (Gatter)Eingänge und Ausgänge

Komplexere Funktionen durch mehrere zusammengeschaltete Gatter

Logische Funktion tritt in den Vordergrund

Elektronik wird weniger wichtig

Betrachtung elementarer Funktionen / Gatter

Page 69: EinfTI Script 2013

12Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Und-Gatter

Implementierung der Konjunktion

zwei Parameter alternative Schreibweisen

mehrere Parameter

A B Y0 0 00 1 01 0 01 1 1

Wahrheitstafel

Y = A∧BY = ABY = A&B

Y = A • B

Y = A1 • A2 • … • An

Page 70: EinfTI Script 2013

13Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Oder-Gatter

Implementierung der Disjunktion

zwei Parameter alternative Schreibweisen

mehrere Parameter

A B Y0 0 00 1 11 0 11 1 1

Wahrheitstafel

Y = A1 + A2 + … + An

Y = A + B Y = A∨B

Page 71: EinfTI Script 2013

14Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 Nicht-Gatter

Implementierung der Negation

ein Parameter alternative Schreibweisen

A Y

0 1

1 0

WahrheitstafelAY =Y = ¬AY = A'

Page 72: EinfTI Script 2013

15Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Logische Schaltungen

Zusammenschalten mehrerer elementarer Gatter zu einer Schaltung

Eingänge und Ausgänge

Beispiel 1:

Page 73: EinfTI Script 2013

16Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Logische Schaltungen (2)

Beispiel 2:

Problemkreise

Synthese von Schaltungen aus WahrheitstabelleNachweis der Äquivalenz von Schaltungenminimaler Aufbau von Schaltungen (Kostenersparnis)

Page 74: EinfTI Script 2013

17Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 Boolesche Algebra

Von George Boole 1854 entwickelte Algebra

zwei Werte: 0 und 1drei Operationen: + und · und ¯vier Axiome (nach Huntington, 1904):1. Kommutativität

A + B = B + A A · B = B · A2. Neutrales Element

0 + A = A 1 · A = A3. Distributivität

(A + B) · C = (A · C) + (B · C)(A · B) + C = (A + C) · (B + C)

4. Komplementäres Element0AA =⋅1AA =+

Page 75: EinfTI Script 2013

18Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Wichtige Sätze

Aus den Axiomen beweisbare Sätze

AbgeschlossenheitBoolesche Operationen liefern nur boolesche Werte als Ergebnis

Assoziativität(A + B) + C = A + (B + C) A · (B · C) = (A · B) · C

IdempotenzA + A = A A · A = A

AbsorptionA + (A · B) = A A · (A + B) = A

Page 76: EinfTI Script 2013

19Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Wichtige Sätze (2)

Doppeltes Komplement

Komplementäre Werte

Satz von De Morgan

DualitätFür jede aus den Axiomen ableitbare Aussage gibt es eine duale Aussage, die durch Tausch der Operationen + und · sowie durch Tausch der Werte 0 und 1 entsteht.

=A A

=0 1 =1 0

+ = ⋅(A B) A B BAB)(A +=⋅

Page 77: EinfTI Script 2013

20Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Schaltalgebra

Boolesche Algebra für logische Schaltungen

Operation UND (·)Operation ODER (+)Operation NICHT (¯)zwei Zustände 0 und 1 entsprechen den Werten

Gesetze der Booleschen Algebra helfen bei

Synthese von Schaltungen aus WahrheitstabellenNachweis der Äquivalenz von SchaltungenMinimierung von Schaltungen

Page 78: EinfTI Script 2013

21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Schaltfunktionen

Zweiwertige Funktion über zweiwertige Variablen

eindeutige Zuordnungsvorschriftmögliche Wertekombinationen der Eingabevariablenje ein Ergebniswert

bei n Eingabevariablen ergeben sich 2n Kombinationsmöglichkeiten für mögliche EingabewerteDarstellung durch boolesche Ausdrücke

Variablen und Operationen aus der booleschen Algebra

Beispiel:= ⋅ +f(a,b,c) a b c

Page 79: EinfTI Script 2013

22Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Wahrheitstafeln

Tabellarische Darstellung der Zuordnung

Beispiel:

Es gibt verschiedene n-stellige Schaltfunktionen256 dreistellige Schaltfunktionen

( )n2

2

a b c f(a,b,c)

0 0 0 1

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 1

Page 80: EinfTI Script 2013

23Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Einstellige Schaltfunktionen

Vier einstellige Schaltfunktionen

Name: Null-funktion Negation Identitäts-

funktion Eins-

funktion x f(x) f(x) f(x) f(x) 0 0 1 0 1 Wahrheits-

tafel 1 0 0 1 1

Ausdruck: f(x) = 0 xf(x) = f(x) = x f(x) = 1

Page 81: EinfTI Script 2013

24Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.3 Zweistellige Schaltfunktionen

Sechzehn zweistellige Schaltfunktionen

Konjunktion: UND-Funktion

Name: Null-funktion Konjunktion

x y f(x,y) f(x,y) f(x,y) f(x,y) 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 1

Wahrheits-tafel

1 1 0 1 0 1 Ausdruck: f(x,y) = 0 yxf(x) ⋅= yxf(x) ⋅= f(x,y) = x

Page 82: EinfTI Script 2013

25Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.3 Zweistellige Schaltfunktionen (2)

Sechzehn zweistellige Schaltfunktionen

exklusives Oder: Antivalenz, Addition-Modulo-2,

Name: Exklusives Oder Disjunktion x y f(x,y) f(x,y) f(x,y) f(x,y) 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1

Wahr-heits-tafel:

1 1 0 1 0 1 Ausdruck: yxy)f(x, ⋅= f(x,y) = y yxyxy)f(x, ⋅+⋅= f(x,y) = x + y

yxf(x) ⊕=

Page 83: EinfTI Script 2013

26Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.3 Zweistellige Schaltfunktionen (3)

Sechzehn zweistellige Schaltfunktionen

Peirce-Funktion: negiertes Oder, NORÄquivalenz: Implikation:

Name: Peirce-Funktion Äquivalenz Implikation

x y f(x,y) f(x,y) f(x,y) f(x,y) 0 0 1 1 1 1 0 1 0 0 0 0 1 0 0 0 1 1

Wahr-heits-tafel:

1 1 0 1 0 1 Ausdruck: yxy)f(x, ⋅= yxyxy)f(x, ⋅+⋅= yy)f(x, = yxy)f(x, +=

yy)f(x, ≡xyy)f(x, ⇒=

Page 84: EinfTI Script 2013

27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.3 Zweistellige Schaltfunktionen (4)

Sechzehn zweistellige Schaltfunktionen

Implikation: Sheffer-Funktion: negiertes Und, NAND

yxy)f(x, ⇒=

Name: Implikation Sheffer-Funktion

Eins-Funktion

x y f(x,y) f(x,y) f(x,y) f(x,y) 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1

Wahr-heits-tafel:

1 1 0 1 0 1 Ausdruck: xy)f(x, = yxy)f(x, += yxy)f(x, ⋅= f(x,y) = 1

Page 85: EinfTI Script 2013

28Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Sheffer-Funktion

Eine Funktion zur Darstellung aller anderen

Sheffer-Funktion / NANDNICHT-Funktion

UND-Funktion

ODER-Funktion

XY =

BAY ⋅=

BAY +=

Page 86: EinfTI Script 2013

29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Sheffer-Funktion (2)

Drei grundlegenden Funktionen sind darstellbar

alle Schaltfunktionen darstellbar

Neben Sheffer-Funktion auch Peirce-Funktion

ebenfalls alle grundlegenden Funktionen darstellbar

NAND leicht in Hardware realisierbar

Page 87: EinfTI Script 2013

30Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.5 Darstellung von Schaltfunktionen

Mögliche Darstellungen

Wahrheitstabelleboolescher AusdruckSchaltung mit elementaren Gattern (UND, ODER, NICHT)

Problem

boolescher Ausdruck und Schaltung sind nicht eindeutigmehrere Ausdrücke (Schaltungen) repräsentieren die gleiche Schaltfunktion

Page 88: EinfTI Script 2013

31Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.6 Normalformen

Normierte Ausdrücke zur Darstellung von Schaltfunktionen

Begriffe

Produkttermeinfache Variable (evtl. negiert)Konjunktion einfacher Variablen (jeweils evtl. negiert)Beispiele:

Summentermanalog zu Produktterm, jedoch DisjunktionBeispiele:

⋅ ⋅x, x, x y z

+ +x, x, x y z

Page 89: EinfTI Script 2013

32Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.6 Normalformen (2)

Weitere Begriffe

MintermProduktterm, in dem jede Variable einer Schaltfunktion genau einmal vorkommt (einfach oder negiert)Beispiel: ist Minterm für Funktion

MaxtermSummenterm, in dem jede Variable einer Schaltfunktion genau einmal vorkommt (einfach oder negiert)Beispiel: ist Maxterm für Funktion

⋅ ⋅ ⋅1 32 4x x x x

+ + +1 32 4x x x x

1 2 3 4( , , , )f x x x x

1 2 3 4( , , , )f x x x x

Page 90: EinfTI Script 2013

33Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.6 Normalformen (3)

Noch mehr Begriffe

disjunktive Normalform (DNF)Disjunktion von ProdukttermenBeispiel:

konjunktive Normalform (KNF)Konjunktion von SummentermenBeispiel:

+ ⋅ + ⋅x x y y z

⋅ + ⋅ +x (x y) (y z)

Page 91: EinfTI Script 2013

34Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.6 Normalformen (4)

Noch mehr aber besonders wichtige Begriffe

kanonische disjunktive Normalform (KDNF, DKF)Disjunktion einer Menge von Mintermen mit gleichen VariablenBeispiel: KDNF zur Funktion :

kanonische konjunktive Normalform (KKNF, KKF)Konjunktion einer Menge von Maxtermen mit gleichen VariablenBeispiel: KKNF zur Funktion : 1 2 3 4( , , , )f x x x x

1 2 3 4( , , , )f x x x x

⋅ ⋅ ⋅ + ⋅ ⋅ ⋅ + ⋅ ⋅ ⋅2 1 3 1 2 41 3 4 2 4 3x x x x x x x x x x x x

+ + + ⋅ + + ⋅ + ++ +2 1 3 1 2 41 3 4 2 4 3) ( ) ( )(x x x x x x x x x x x x

Page 92: EinfTI Script 2013

35Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.7 Hauptsatz der Schaltalgebra

Jede Schaltfunktion lässt sich als genau eine KDNF darstellen

Für jedes aus der Wahrheitstafel bilde man einen Minterm für die KDNF.Eine Variable xi wird invertiert, wenn die Variable für diesen Eintrag in der Wahrheitstabelle 0 ist, ansonsten einfach verwendet.Beispiel:

Darstellung durch KDNF bis auf Vertauschungen eindeutig (Kommutativität)

=v

f(x) 1

x1 x2 x3 x4 f(x1,x2,x3,x4)

0 1 0 1 1

4321 xxxx ⋅⋅⋅

Page 93: EinfTI Script 2013

36Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.7 Hauptsatz der Schaltalgebra (2)

Jede Schaltfunktion lässt sich als genau eine KKNF darstellen

Für jedes aus der Wahrheitstafel bilde man einen Maxterm für die KKNF.Eine Variable xi wird invertiert, wenn die Variable für diesen Eintrag in der Wahrheitstabelle 1 ist, ansonsten einfach verwendet.Beispiel:

Darstellung durch KKNF bis auf Vertauschungen eindeutig (Kommutativität)

x1 x2 x3 x4 f(x1,x2,x3,x4)

1 0 1 0 0

4321 xxxx +++

=v

f(x) 0

Page 94: EinfTI Script 2013

37Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.7 Hauptsatz der Schaltalgebra (3)

Überführung der kanonischen Normalformen ineinander

Wegen Dualität gilt:

und

))x(f(KKNF))x(f(KDNF vv =

))x(f(KDNF))x(f(KKNF vv =

Page 95: EinfTI Script 2013

38Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Synthese von Schaltungen

Vorgehen

Aufstellen der WahrheitstafelBilden der KDNF (oder KKNF)Aufbau der dazugehörigen Schaltung

Wahrheitstafel für eine einfache zweistellige Funktion

x1 x2 F(x1,x2)0 0 0

0 1 11 0 1

1 1 1

6.1 Beispiel: Oderfunktion

Page 96: EinfTI Script 2013

39Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Beispiel: Oderfunktion (2)

Bildung der KDNF

Suchen der Stellen f(x1,x2) = 1Summieren der entsprechenden Minterme:

Problem

Schaltung wird in aller Regel nicht minimal sein

= ⋅ + ⋅ + ⋅1 2 1 2 1 2 1 2f(x ,x ) x x x x x x

Page 97: EinfTI Script 2013

40Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Beispiel: Eingabemelder

Zwei dreistellige Schaltfunktionen

eine der Eingabevariablen kann 1 seinErgebnis ist Nummer der Eingabevariable(als Ergebnis zweier Schaltfunktionen)

Wahrheitstafel

x3 x2 x1 f2(x1,x2,x3) f1(x1,x2,x3)0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 d d 1 0 0 1 1 1 0 1 d d 1 1 0 d d 1 1 1 d d

Page 98: EinfTI Script 2013

41Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Beispiel: Eingabemelder (2)

Uninteressante Funktionswerte

einige Eingabewerte können nicht vorkommen / werden ausgeschlossen„don’t care“ Ergebnissemit „d“ gekennzeichnetdabei gleichgültig, ob =0 oder =1 (d.h. „d“ kann für beides stehen)

Bildung der KDNF für beide Schaltfunktionen

uninteressante Funktionsergebnisse werden nicht berücksichtigt(d.h. bei KDNF wie Null-Ergebnisse behandelt)

= ⋅ ⋅ + ⋅ ⋅1 1 2 3 1 2 3 1 2 3f (x ,x ,x ) x x x x x x

= ⋅ ⋅ + ⋅ ⋅2 1 2 3 1 2 3 1 2 3f (x ,x ,x ) x x x x x x

Page 99: EinfTI Script 2013

42Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

7 Äquivalenz von Schaltfunktionen

Schaltfunktionen lassen sich auf gleiche KDNF (bzw. KKNF) zurückführen

Umformungen nach den Gesetzen der Booleschen Algebra

Erhaltung der Schaltfunktion

Nutzen

z.B. Minimieren von Schaltfunktionen

Page 100: EinfTI Script 2013

43Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8 Minimierung

Suche nach einer minimalen Darstellung einer Schaltfunktion

Größenbegriff notwendig

Menge der notwendigen GatterAnzahl der VariablenAnzahl der notwendigen ICsAnzahl der notwendigen Kontakte...

Größenbegriff von den Kosten bestimmt

Größenbegriff hier

Anzahl der Symbole

Page 101: EinfTI Script 2013

44Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.1 Grundlage der Minimierung

Gesetze der Booleschen Algebra

Insbesondere

Beweis

wg. (Kommutativität u.) Distributivität

wg. komplementärem Element

wg. neutralem Element

ABABA =⋅+⋅

⋅ =A 1 A

1A)BB(A ⋅=+⋅

)BB(ABABA +⋅=⋅+⋅

Page 102: EinfTI Script 2013

45Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.2 Vorgehensweise

Manuelles Minimieren

Umformen (z.B. der KDNF) nach den Regeln der Booleschen Algebra

Algorithmisches Verfahren

Verfahren nach Quine/McCluskeykann durch ein Programm angewandt werdengeeignet für Schaltfunktionen mit vielen Variablen

Graphische Verfahren

Händlersche KreisgraphKarnaugh-Veitch Diagrammegeeignet für Schaltfunktionen mit wenigen Variablen

Page 103: EinfTI Script 2013

46Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.3 Karnaugh-Veitch-Diagramme

Ausgangspunkt KDNF (oder KKNF)

Rechteckschemaje ein Feld für jeden möglichen Minterm (Maxterm)Anordnung der Felder, so dass benachbarte Felder bzw. Minterme zusammenfassbar

Diagramm für zweistellige Schaltfunktion

Funktion: f(x1,x2)Diagramm:

1x 1x

2x 21 xx ⋅ 21 xx ⋅

2x 21 xx ⋅ 21 xx ⋅

Page 104: EinfTI Script 2013

47Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.3 Karnaugh-Veitch-Diagramme (2)

Diagrammaufbau

jede Variable xi halbiert das Diagramm in zwei zusammenhängende Teileerster Teil fürzweiter Teil für xi

Variable x1 Variable x2

ix

1x 1x

2x 21 xx ⋅ 21 xx ⋅

2x 21 xx ⋅ 21 xx ⋅

1x 1x

2x 21 xx ⋅ 21 xx ⋅

2x 21 xx ⋅ 21 xx ⋅

Page 105: EinfTI Script 2013

48Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.4 Beispiel: Oderfunktion

Aufstellen der KDNF

Eintragung in das Diagramm

Eintragung einer 1, wenn Minterm benötigt wirdEintragung einer 0, wenn Minterm nicht benötigt wird

Eintragung auch direkt aus Wahrheitstafel möglich

= ⋅ + ⋅ + ⋅1 1 2 1 2 1 2 1 2f (x ,x ) x x x x x x

1x 1x

2x 0 1

2x 1 1

Page 106: EinfTI Script 2013

49Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.4 Beispiel: Oderfunktion (2)

Markierung möglichst weniger und möglichst großer zusammenhängender Bereiche mit 1en

nur Schnittmengen von vollständigen Hälften (insbesondere einzelne Minterme) oder Gesamtdiagramm erlaubt alle 1 Felder müssen schließlich markiert sein

1x 1x

2x 0 1

2x 1 1

Page 107: EinfTI Script 2013

50Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.4 Beispiel: Oderfunktion (2)

Markierung möglichst weniger und möglichst großer zusammenhängender Bereiche mit 1en

nur Schnittmengen von vollständigen Hälften (insbesondere einzelne Minterme) oder Gesamtdiagramm erlaubtalle 1 Felder müssen schließlich markiert sein

1x 1x

2x 0 1

2x 1 1

Page 108: EinfTI Script 2013

51Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.4 Beispiel: Oderfunktion (2)

Markierung möglichst weniger und möglichst großer zusammenhängender Bereiche mit 1en

nur Schnittmengen von vollständigen Hälften (insbesondere einzelne Minterme) oder Gesamtdiagramm erlaubtalle 1 Felder müssen schließlich markiert sein

markierten Bereiche ergeben Produktterme, die summiert werden:f(x1,x2) = x1 + x2

1x 1x

2x 0 1

2x 1 1

Page 109: EinfTI Script 2013

52Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.4 Beispiel: Oderfunktion (3)

Alternative Markierung

Markierung nicht so groß wie möglich, aber alle 1en markiert

markierten Bereiche ergeben Produktterme, die summiert werden:

Funktion korrekt, jedoch nicht minimal

1x 1x

2x 0 1

2x 1 1

⋅= +1 2 1 1 2f(x ,x ) x xx

Page 110: EinfTI Script 2013

53Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.5 Beispiel: Eingabemelder

Dreistellige Schaltfunktionen

Karnaugh-Veitch-Diagramm

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

3x 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

Page 111: EinfTI Script 2013

54Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.6 Beispiel: Eingabemelder (2)

Halbierungen des Diagramms

Variable x1

Variable x2

Wichtig: die Bereiche für gehören zusammenVorstellung: Diagramm ist an den Rändern zusammengeklebt

——— 1x ——— ——— 1x ———

321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

2x ——— 2x ——— 2x

321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

2x

Page 112: EinfTI Script 2013

55Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.7 Beispiel: Eingabemelder (3)

Halbierungen des Diagramms

Variable x3

3x 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

3x 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅ 321 xxx ⋅⋅

Page 113: EinfTI Script 2013

56Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.7 Beispiel: Eingabemelder (4)

Belegen des Diagramms aus der Wahrheitstafel

Funktion f2 aus Folie C-41Eintragung der „don’t care“-Werte

„don’t care“-Werte können mitmarkiert werden oder nichtZiel: möglichst große Bereiche markierenmarkierte „don’t care“-Werte werden später zu 1, andere zu 0

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 0 1 d 0

3x 1 d d d

Page 114: EinfTI Script 2013

57Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.7 Beispiel: Eingabemelder (5)

Markierungen für f2zwei Bereiche

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 0 1 d 0

3x 1 d d d

Page 115: EinfTI Script 2013

58Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.7 Beispiel: Eingabemelder (5)

Markierungen für f2zwei Bereiche

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 0 1 d 0

3x 1 d d d

Page 116: EinfTI Script 2013

59Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.7 Beispiel: Eingabemelder (5)

Markierungen für f2zwei Bereiche

markierten Bereiche ergeben Produktterme, die summiert werden:f2(x1,x2,x3) = x2 + x3

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 0 1 d 0

3x 1 d d d

Page 117: EinfTI Script 2013

60Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8 KV-Verfahren

Diagramm aufstellen (nach Wahrheitstafel)

Markierungen anbringen

Was darf markiert werden?2k Elemente markieren (Rechtecke)Schnittmengen von Hälften sind erlaubt

algebraischen Ausdruck ermittelnbeteiligte Schnittmengen führen zu ProdukttermenSumme der Produktterme bilden

Häufig benutzte einfachere Schreibweise am Beispiel f(a,b,c)

0 1 0 10 1 1 1

a

cb

Page 118: EinfTI Script 2013

61Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.9 Beispiel: unbestimmte Funktion

Gegeben folgende Belegung aus der Wahrheitstafel

Welche Markierungen? 2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 1 0 d 1

3x 1 1 d d

Page 119: EinfTI Script 2013

62Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.9 Beispiel: unbestimmte Funktion (2)

Gegebene Belegung aus der Wahrheitstafel

Beste Markierung:

markierten Bereiche ergeben Produktterme, die summiert werden:

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

3x 1 0 d 1

3x 1 1 d d

= +1 2 2 33f(x ,x ,x ) x x

Page 120: EinfTI Script 2013

63Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.10 Vierstellige Funktionen

Karnaugh-Veitch-Diagramm für vierstellige Schaltfunktion

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅3x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅4x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4x3x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

Page 121: EinfTI Script 2013

64Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.10 Vierstellige Funktionen (2)

Halbierungen für vierstellige Schaltfunktion ——— 1x ——— ——— 1x ———

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

2x ——— 2x ——— 2x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

Page 122: EinfTI Script 2013

65Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.10 Vierstellige Funktionen (3)

Halbierungen für vierstellige Schaltfunktion

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅3x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

3x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4x 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅4x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

4x

4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅ 4321 xxxx ⋅⋅⋅

Page 123: EinfTI Script 2013

66Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.10 Vierstellige Funktionen (4)

Markierungen

insbesondere folgende Markierungen möglich

Vorstellung:

Diagramm ist an den

Rändern jeweils

zusammengeklebt

x x x x

x x x x x x x x

Page 124: EinfTI Script 2013

67Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.11 Beispiel: 2x2-Multiplizierer

Binärer Multiplizierer für 2 mal 2 Eingänge

Binärdarstellung von Zahlen von 0 bis 3 bzw. 0 bis 15zwei Eingänge a1 und a0

zwei Eingänge b1 und b0

vier Ausgänge y3, y2, y1 und y0

Page 125: EinfTI Script 2013

68Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.11 Beispiel: 2x2-Multiplizierer (2)

a1 = x1 a0 = x2 b1 = x3 b0 = x4 y3 y2 y1 y0 0 x 0 = 0 0 0 0 0 0 0 0 0 0 x 1 = 0 0 0 0 1 0 0 0 0 0 x 2 = 0 0 0 1 0 0 0 0 0 0 x 3 = 0 0 0 1 1 0 0 0 0 1 x 0 = 0 0 1 0 0 0 0 0 0 1 x 1 = 1 0 1 0 1 0 0 0 1 1 x 2 = 2 0 1 1 0 0 0 1 0 1 x 3 = 3 0 1 1 1 0 0 1 1 2 x 0 = 0 1 0 0 0 0 0 0 0 2 x 1 = 2 1 0 0 1 0 0 1 0 2 x 2 = 4 1 0 1 0 0 1 0 0 2 x 3 = 6 1 0 1 1 0 1 1 0 3 x 0 = 0 1 1 0 0 0 0 0 0 3 x 1 = 3 1 1 0 1 0 0 1 1 3 x 2 = 6 1 1 1 0 0 1 1 0 3 x 3 = 9 1 1 1 1 1 0 0 1

Page 126: EinfTI Script 2013

69Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (3)

Karnaugh-Veitch-Diagramm für y0:

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 1 1 0 4x

0 1 1 0

4x3x

0 0 0 0

Page 127: EinfTI Script 2013

70Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (3)

Karnaugh-Veitch-Diagramm für y0:

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 1 1 0 4x

0 1 1 0

4x3x

0 0 0 0

Page 128: EinfTI Script 2013

71Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (3)

Karnaugh-Veitch-Diagramm für y0:

Markierte Bereiche:

y0 = x2 ⋅ x4

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 1 1 0 4x

0 1 1 0

4x3x

0 0 0 0

Page 129: EinfTI Script 2013

72Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

Page 130: EinfTI Script 2013

73Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

Markierte Bereiche:

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

⋅ ⋅= 2 3 41 x x xy

Page 131: EinfTI Script 2013

74Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

Markierte Bereiche:

⋅ ⋅= ⋅+⋅2 3 4 1 31 2x x x xx xy

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

Page 132: EinfTI Script 2013

75Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

Markierte Bereiche:

⋅ ⋅ ⋅⋅= ⋅ + +⋅2 3 4 1 3 31 2 1 4x x xxy xx x xx

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

Page 133: EinfTI Script 2013

76Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

Markierte Bereiche:

⋅⋅⋅ ⋅= + + ⋅⋅ +⋅ ⋅1 2 3 1 3 41 24 1 42 3x x xy x xx xx xx xx

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

Page 134: EinfTI Script 2013

77Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (4)

Karnaugh-Veitch-Diagramm für y1:

Markierte Bereiche:

= + + + ⋅ ⋅

= + + +

=

⋅ ⋅

⋅ ⋅

⋅ ⋅

⋅ ⋅

⋅⋅ ⋅⋅ +

⋅2 3 4

2 3 4

1 1 2 4

1 2

1

1 2 3

1

1

2 3 4 2

3

1

4

1 4 3

1 4 3

y x x x

y

x x x

x

x

( ) ( x )

y ( )

x x x x x

x x x

x x x

x

x x x

x (x xx )

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 1 1 4x

0 1 0 1

4x3x

0 1 1 0

Page 135: EinfTI Script 2013

78Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (5)

Karnaugh-Veitch-Diagramm für y2

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 0 1

4x3x

0 0 1 1

Page 136: EinfTI Script 2013

79Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (5)

Karnaugh-Veitch-Diagramm für y2

⋅ ⋅= 1 3 42 x x xy

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 0 1

4x3x

0 0 1 1

Page 137: EinfTI Script 2013

80Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (5)

Karnaugh-Veitch-Diagramm für y2

⋅ ⋅= ⋅+⋅1 3 4 1 32 2x x x xx xy

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 0 1

4x3x

0 0 1 1

Page 138: EinfTI Script 2013

81Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (5)

Karnaugh-Veitch-Diagramm für y2

= + = ⋅ ⋅ + = ⋅ ⋅ ⋅⋅⋅ ⋅⋅2 1 3 1 31 3 4 2 21 2 3 4 4y x xx x x xx x x x x( ) x ( xx )

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 0 1

4x3x

0 0 1 1

Page 139: EinfTI Script 2013

82Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (6)

Karnaugh-Veitch-Diagramm für y3

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 1 0

4x3x

0 0 0 0

Page 140: EinfTI Script 2013

83Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8.12 Beispiel: 2x2-Multiplizierer (6)

Karnaugh-Veitch-Diagramm für y2

2x ——— 2x ——— 2x

——— 1x ——— ——— 1x ———

4x 0 0 0 0 3x

0 0 0 0 4x

0 0 1 0

4x3x

0 0 0 0

⋅ ⋅= ⋅1 2 3 43 xy x x x

Page 141: EinfTI Script 2013

84Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Schaltnetze

Mehrere Schaltfunktionen (Combinational Networks)

sind von gleichen Eingangsvariablen abhängigf1(x1,x2,…,xn)f2(x1,x2,…,xn)…fm(x1,x2,…,xn)

entspricht Schaltung mit mehreren Ausgängen

Kombinatorische Logik

......

x1x2

xn

f1(x)f2(x)

fm(x)

Page 142: EinfTI Script 2013

85Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Schaltnetze (2)

Gerichteter, azyklischer Graph

Gatter, Ein- und Ausgänge sind KnotenVerbindungsleitungen sind Kanten (gerichtet von Eingang zu Ausgang)

Aufbau von Schaltnetzen

einstufige (nur eine Gatterebene)zweistufige (zwei Gatterebenen)mehrstufige

Folgerung aus Darstellung durch kanonische Normalformen

Jedes Schaltnetz ist zweistufig realisierbar, wennalle Signale einfach und negiert vorliegen undGatter mit ausreichender Anzahl von Eingängen vorliegen.

Page 143: EinfTI Script 2013

86Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Schaltnetze (3)

Begründung

Bezug zur KDNF (oder KKNF)alle Variablen werden einfach oder negiert benutztzunächst Minterme: ein Und-Gatter pro Minterm (erste Stufe)Summe der Minterme: ein Oder-Gatter für alle Minterme

Beispiel: Eingabemelder

Page 144: EinfTI Script 2013

87Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Schaltnetze (4)

Anzahl der notwendigen Gatter bei n Eingängen

max. 2n Und-Gatter pro Schaltfunktion mit bis zu n Eingängen (KDNF)ein Oder-Gatter mit bis zu 2n Eingängen

Minimierung

reduziert Gatteranzahl und Eingangsanzahl pro GatterMinimierung parallel für mehrere Schaltfunktionen des Schaltnetzes

Verwendung derselben Gatterz.B. Karnaugh-Veitch-Diagramme für mehrere Schaltfunktionen des Netzes

Page 145: EinfTI Script 2013

88Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10 Typische Schaltnetze

Steuerleitungen weisen viele Eingabeleitungen einem Ausgang zu

n Steuerleitungen s0, s1, …, sn-1 (Eingänge)k = 2n Eingänge x0, x1, …, xk-1

ein Ausgang yes gilt: y = xi für (sn-1, …, s1, s0)2 = i(Zahlendarstellung im Binärsystem)

10.1 1-aus-k-Multiplexer

Page 146: EinfTI Script 2013

89Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.1 1-aus-k-Multiplexer (2)

Realisierung

für n = 2 als DNF

Einsatz

Anzeige und Auswahl verschiedener Datenquellenz.B. Auslesen von Daten aus Speicherzellen

301201101001 xssxssxssxssy ⋅⋅+⋅⋅+⋅⋅+⋅⋅=

Page 147: EinfTI Script 2013

90Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.2 1-zu-k-Demultiplexer

Steuerleitungen weisen eine Eingabeleitung vielen Ausgängen zu

n Steuerleitungen s0, s1, …, sn-1 (Eingänge)ein Eingang xk = 2n Ausgänge y0, y1, …, yk-1

es gilt: yi = x für (sn-1, …, s1, s0)2 = i(Zahlendarstellung im Binärsystem)

Page 148: EinfTI Script 2013

91Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.2 1-zu-k-Demultiplexer (2)

Realisierung

für n = 2 als DNF

Einsatz

Zuordnung und Auswahl verschiedener Datensenkenz.B. Speichern von Daten in Speicherzellen

= ⋅ ⋅ = ⋅ ⋅ = ⋅ ⋅ = ⋅ ⋅0 1 0 1 1 0 1 2 1 0 2 3 1 0 3y s s x, y s s x , y s s x , y s s x

Page 149: EinfTI Script 2013

92Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.3 k-zu-n-Kodierer

Nummer eines Eingangs wird ausgegeben

k = 2n Eingänge x0, x1, …, xk-1

immer genau eine Eingangsleitung auf 1∃ i mit xi = 1 und ∀ j ≠ i xj = 0n Ausgänge y0, y1, …, yn-1

es gilt: (yn-1, …, y1, y0)2 = i(Zahlendarstellung im Binärsystem)

Page 150: EinfTI Script 2013

93Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.3 k-zu-n-Kodierer (2)

Realisierung

für n = 2, k = 4 als DNF

y0 = x1 + x3 , y1 = x2 + x3

Einsatz

z.B. Signalisierung eines Eingangssignals

Page 151: EinfTI Script 2013

94Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.4 n-zu-k-Dekodierer

Eingänge selektieren genau einen von vielen Ausgängen

n Eingänge x0, x1, …, xn-1

k = 2n Ausgänge y0, y1, …, yk-1

es gilt: yi = 1 und ∀ j ≠ i yj ≠ i = 0 mit (xn-1, …, x1, x0)2 = i(Zahlendarstellung im Binärsystem)

Page 152: EinfTI Script 2013

95Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.4 n-zu-k-Dekodierer (2)

Realisierung

für n = 2, k = 4 als DNF

Einsatz:

z.B. Dekodierung eines Maschinenbefehls

103102101100 xxy,xxy,xxy,xxy ⋅=⋅=⋅=⋅=

Page 153: EinfTI Script 2013

96Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

10.5 Beispiel: 2x2-Multiplizierer

Funktionsgleichungen:

Realisierung:43213

4313212

4214313214321

420

xxxxyxxxxxxy

xxxxxxxxxxxxy

xxy

⋅⋅⋅=⋅⋅+⋅⋅=

⋅⋅+⋅⋅+⋅⋅+⋅⋅=

⋅=

Page 154: EinfTI Script 2013

Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1

D Sequentielle Logik

1

Page 155: EinfTI Script 2013

2 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung

Ebene 6

Ebene 5

Ebene 4

Ebene 3

Ebene 2

Ebene 1

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Physik

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 156: EinfTI Script 2013

3 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2 Begriff Sequentielle Logik

Kombinatorische Logik

Schaltnetze mit Gattern

Ideal: verzögerungsfreie Gatter und Verbindungen

– sofortiges Ergebnis beim Anlegen von Werten an den Eingängen

Nicht ideal: natürlich mit der Gatterverzögerung tpd und der Verzögerung der Wire delays tpdw

keine Zyklen/Rückkoppelungen im Schaltnetz

Sequentielle Logik

Gatter haben Laufzeitverhalten

Annahme einer Gatterlaufzeit tpd (propagation delay)

Zyklen bzw. Rückkopplungen

Schaltwerke

Schaltungen mit Gattern als gerichteter zyklischer Graph

mit Speichereigenschaft

Page 157: EinfTI Script 2013

4 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Asynchrone und synchrone Schaltwerke

Asynchrone Schaltwerke

veränderte Eingänge sorgen für veränderte Ergebnisse

Gatterlaufzeit bestimmt Zeitdauer bis stabiles Ergebnis vorliegt

zuverlässiges Design schwierig

Kaum Werkzeugunterstützung

sehr schnelle Schaltungen möglich

Synchrone Schaltwerke

Taktgeber sorgt für Weiterleitung stabiler Ergebnisse in nächste Stufe

langsamste Teilschaltung bestimmt maximale Taktfrequenz

Sehr gute Werkzeugunterstützung (static timing analysis)

Page 158: EinfTI Script 2013

5 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 RS-Flip-Flop

Betrachtung eines einfachen asynchronen Schaltwerks

Wie verhält sich das Schaltwerk bei unterschiedlichen Eingängen?

Zur Erinnerung: Wahrheitstafel eines NOR-Gatters

x1 x2 1 2

x x

0 0 1

0 1 0

1 0 0

1 1 0

X ' X( t t ) A ( t ) Y ( t )

Y ' Y ( t t ) B( t ) X( t )

Page 159: EinfTI Script 2013

6 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks

Wegen Rückkopplung Betrachtung von Ein- und Ausgängen

Betrachtung einer Konfiguration und deren Auswirkungen nach t:

X und Y sind stabil

Konfiguration:

X und Y sind stabil

Veränderungen von A bleiben irrelevant

A B X Y X’ Y’

0 0 0 1 0 1

A B X Y X’ Y’

1 0 0 1 0 1

Page 160: EinfTI Script 2013

7 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (2)

Weitere Konfiguration:

X und Y sind stabil

Konfiguration:

X und Y sind stabil

Veränderungen von B bleiben irrelevant

A B X Y X’ Y’

0 0 1 0 1 0

A B X Y X’ Y’

0 1 1 0 1 0

Page 161: EinfTI Script 2013

8 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (3)

Weitere veränderliche Konfiguration

Konfiguration:

X verändert sich

danach bleiben X und Y stabil

A B X Y X’ Y’

1 0 1 0 0 0

A B X Y X’ Y’

1 0 0 0 0 1

A B X Y X’ Y’

1 0 0 1 0 1

Page 162: EinfTI Script 2013

9 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (4)

Veränderliche Konfiguration

Konfiguration:

Y verändert sich

danach bleiben X und Y stabil

A B X Y X’ Y’

0 1 0 1 0 0

A B X Y X’ Y’

0 1 0 0 1 0

A B X Y X’ Y’

0 1 1 0 1 0

Page 163: EinfTI Script 2013

10 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (5)

Tabelle der Zustandsübergänge

A B X Y X’ Y’

0 0 0 0

0 0 0 1 0 1 stabil

0 0 1 0 1 0 stabil

0 0 1 1

0 1 0 0 1 0 instabil

0 1 0 1 0 0 instabil

0 1 1 0 1 0 stabil

0 1 1 1

1 0 0 0 0 1 instabil

1 0 0 1 0 1 stabil

1 0 1 0 0 0 instabil

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

01

01

Page 164: EinfTI Script 2013

11 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (6)

Verhalten weiterer Konfigurationen

Konfiguration:

X und Y verändern sich

X und Y verändern sich erneut

Schaltwerk schwingt!

A B X Y X’ Y’

0 0 0 0 1 1

A B X Y X’ Y’

0 0 1 1 0 0

Page 165: EinfTI Script 2013

12 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (6)

Verhalten weiterer Konfigurationen

Konfiguration:

X und Y verändern sich

X und Y verändern sich erneut

Schaltwerk schwingt!

Minimale Laufzeitschwankungen werden Schwingung beenden

einer der beiden stabilen Zustände wird eintreten

A B X Y X’ Y’

0 0 0 0 1 1

A B X Y X’ Y’

0 0 1 1 0 0

Page 166: EinfTI Script 2013

13 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (6)

Tabelle der Zustandsübergänge

A B X Y X’ Y’

0 0 0 0 1 1 instabil

0 0 0 1 0 1 stabil

0 0 1 0 1 0 stabil

0 0 1 1 0 0 instabil

0 1 0 0 1 0 instabil

0 1 0 1 0 0 instabil

0 1 1 0 1 0 stabil

0 1 1 1

1 0 0 0 0 1 instabil

1 0 0 1 0 1 stabil

1 0 1 0 0 0 instabil

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

Page 167: EinfTI Script 2013

14 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (7)

Verhalten weiterer Konfigurationen

Konfiguration:

letztlich Übergang in einen stabilen Zustand

Konfiguration:

letztlich Übergang in einen stabilen Zustand

A B X Y X’ Y’

0 1 1 1 0 0

A B X Y X’ Y’

0 1 1 0 1 0

A B X Y X’ Y’

1 0 1 1 0 0

A B X Y X’ Y’

1 0 0 1 0 1

Page 168: EinfTI Script 2013

15 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (7)

Tabelle der Zustandsübergänge

A B X Y X’ Y’

0 0 0 0 1 1 instabil

0 0 0 1 0 1 stabil

0 0 1 0 1 0 stabil

0 0 1 1 0 0 instabil

0 1 0 0 1 0 instabil

0 1 0 1 0 0 instabil

0 1 1 0 1 0 stabil

0 1 1 1 0 0 instabil

1 0 0 0 0 1 instabil

1 0 0 1 0 1 stabil

1 0 1 0 0 0 instabil

1 0 1 1 0 0 instabil

1 1 0 0

1 1 0 1

1 1 1 0

Page 169: EinfTI Script 2013

16 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (8)

Konfigurationen mit beiden Eingängen auf 1

Konfiguration:

X und Y stabil

Konfiguration:

instabil Übergang zu obiger stabiler Konfiguration

A B X Y X’ Y’

1 1 0 0 0 0

A B X Y X’ Y’

1 1 0 1 0 0

Page 170: EinfTI Script 2013

17 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (9)

Konfigurationen mit beiden Eingängen auf 1

Konfiguration:

instabil

Übergang zu vorheriger stabiler Konfiguration

Konfiguration:

instabil

Übergang zu vorheriger stabiler Konfiguration

A B X Y X’ Y’

1 1 1 0 0 0

A B X Y X’ Y’

1 1 1 1 0 0

Page 171: EinfTI Script 2013

18 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Analyse des Schaltwerks (10)

Tabelle der Zustandsübergänge

A B X Y X’ Y’

0 0 0 0 1 1 instabil

0 0 0 1 0 1 stabil

0 0 1 0 1 0 stabil

0 0 1 1 0 0 instabil

0 1 0 0 1 0 instabil

0 1 0 1 0 0 instabil

0 1 1 0 1 0 stabil

0 1 1 1 0 0 instabil

1 0 0 0 0 1 instabil

1 0 0 1 0 1 stabil

1 0 1 0 0 0 instabil

1 0 1 1 0 0 instabil

1 1 0 0 0 0 stabil

1 1 0 1 0 0 instabil

1 1 1 0 0 0 instabil

Page 172: EinfTI Script 2013

19 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Bedeutung

Ausschließen der Eingabewerte: A = B = 1

zwei stabile Ausgabewert-Kombinationen mit

Bezeichnung

bistabiler Speicher

Flip-Flop

Umbenennung der Ein- und Ausgänge

R = A — Reset, Löschen

S = B — Set, Setzen

Q = X — Ausgang

— negierter Ausgang

RS-Flip-Flop

X Y

Q Y

Page 173: EinfTI Script 2013

20 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Bedeutung (2)

Verkürzte Wahrheitstafel eines RS-Flip-Flops

Blockschaltbild

R S Q’

0 0 Q Q bleibt unverändert

0 1 1

1 0 0

1 1 — Eingabekombination nicht erlaubt

Page 174: EinfTI Script 2013

21 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Einsatz

Festhalten eines kurzzeitigen Wertes

Beispiel: Warnung eines Temperatursensors in einem Kraftwerk

Anfangswert = „kein Alarm“: Reset des Flip-Flops mittels Schalter o.ä.

Sensor liefert Alarm-Signal (T=1)

RS-Flip-Flop wird gesetzt und lässt Warnlampe leuchten, auch wenn Alarm-Signal T wieder = 0

Beispiel: Entprellen von Tastern/Schaltern

Page 175: EinfTI Script 2013

22 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Zeitdiagramm

Reaktion des RS-Flip-Flops über die Zeit

steigende Signalflanke triggert das Umschalten des Flip-Flops

Verzögerung und Einschwingzeit abhängig von der Gatterlaufzeit

Page 176: EinfTI Script 2013

23 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop

Synchrone Schaltung

Übernahme der Eingänge nur während einer Taktphase

Blockschaltbild

Page 177: EinfTI Script 2013

24 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (2)

Realisierung mit NAND-Gattern

Achtung! wg. De Morgan sind Ausgänge invertiert

Page 178: EinfTI Script 2013

25 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (3)

Zeitverhalten des getakteten RS-Flip-Flops

1

0

1 0

1 0

C

R

S

1 0

Q

Page 179: EinfTI Script 2013

26 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (3)

Zeitverhalten des getakteten RS-Flip-Flops

1 0

1 0

1 0

C

R

S

1 0

Q

Zeitverhalten des getakteten RS-Flip-Flops

Page 180: EinfTI Script 2013

27 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (3)

Zeitverhalten des getakteten RS-Flip-Flops

1 0

1 0

1 0

C

R

S

1 0

Q

Page 181: EinfTI Script 2013

28 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (3)

Zeitverhalten des getakteten RS-Flip-Flops

Veränderungen finden während der 1-Phase des Taktsignals statt

mehrere Veränderungen pro Taktphase mögliche

1 0

1 0

1 0

C

R

S

1 0

Q

Page 182: EinfTI Script 2013

29 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Getaktetes RS-Flip-Flop (4)

Problem

rückgekoppelte Schaltung vom Aus- zum Eingang des Flip-Flops

Veränderungen am Ausgang können Veränderungen am Eingang während einer Taktphase nach sich ziehen.

selbst bei kurzen Taktphasen sind ungewollte Rückkopplungen möglich

Page 183: EinfTI Script 2013

30 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.6 Master-Slave-RS-Flip-Flop

RS-Flip-Flop reagiert auf (absteigende) Taktflanke

zweistufiges Flip-Flop

Takt auf 1

Master Flip-Flop nimmt Eingänge auf, Slave bleibt unverändert

Takt auf 0

Master Flip-Flop reagiert nicht mehr auf Eingänge, Slave übernimmt Zustand des Masters

Page 184: EinfTI Script 2013

31 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.6 Master-Slave-RS-Flip-Flop (2)

Flip-Flop reagiert auf absteigende Taktflanke

Zeitverhalten

1

0

1

0

1

0

C

R

S

Q1

0

Page 185: EinfTI Script 2013

32 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.6 Master-Slave-RS-Flip-Flop (2)

Flip-Flop reagiert auf absteigende Taktflanke

Zeitverhalten

QM: Q-Ausgang des Master-Flip-Flops

Rückkoppelung über Schaltnetz nun unkritisch

1 0

1

0

1 0

C

R

S

1

0 Q M

Q 1

0

Page 186: EinfTI Script 2013

33 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.7 Flanken-Impulse

Impulse der Dauer t aus positiver oder negativer Flanke des Signals

1

0

1

0

1

0

C(t)

C(t)

1

0

1

0

C t ´ t ) + (

positive

Flank e

negative

Flanke

Page 187: EinfTI Script 2013

34 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.8 Flankengetriggerte Master-Slave-RS-Flip-Flops

Normales Master-Slave-RS-Flip-Flop nimmt Eingänge während der

gesamten 1-Phase des Taktes an

Flankengetriggerte Flip-Flops

übernehmen Eingänge nur bei Taktflanken

Impuls aus positiver oder negativer Taktflanke intern erzeugt

Blockschaltbild flankengetriggerter RS-Flip-Flops

positive Flanke = aufsteigende Flanke

negative Flanke = abfallende Flanke

positive Flankentriggerung negative Flankentriggerung

Page 188: EinfTI Script 2013

35 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining

Mit Master-Slave-Flip-Flops sind folgende Schaltwerke denkbar

pro Takteinheit

logische Verarbeitung in den zwischengeschalteten Schaltnetzen

Weitergabe der Information an nächste Stufe der Pipeline

Ausgabe am Ende der Pipeline

nach drei Takten kommt die verarbeitete Information am Ende heraus

Page 189: EinfTI Script 2013

36 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (2)

Einfaches Beispiel

Annahme

alle Flip-Flops geben zu Beginn Q = 0 aus

Page 190: EinfTI Script 2013

37 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (3)

Zeitverhalten

1

0

1

0

1

0

C

R

Q11

0

Q2

Q3

1

0

S

1

0

Takt 1 Takt 2 Takt 3 Takt 4

Page 191: EinfTI Script 2013

38 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (3)

Zeitverhalten

1

0

1

0

1

0

C

R

Q11

0

Q2

Q3

1

0

S

1

0

Takt 1 Takt 2 Takt 3 Takt 4

Page 192: EinfTI Script 2013

39 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (3)

Zeitverhalten

1

0

1

0

1

0

C

R

Q11

0

Q2

Q3

1

0

S

1

0

Takt 1 Takt 2 Takt 3 Takt 4

Page 193: EinfTI Script 2013

40 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (3)

Zeitverhalten

1

0

1

0

1

0

C

R

Q11

0

Q2

Q3

1

0

S

1

0

Takt 1 Takt 2 Takt 3 Takt 4

Page 194: EinfTI Script 2013

41 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 Pipelining (3)

Zeitverhalten

1

0

1

0

1

0

C

R

Q11

0

Q2

Q3

1

0

S

1

0

Takt 1 Takt 2 Takt 3 Takt 4

Page 195: EinfTI Script 2013

42 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.0 Weitere Flip-Flops

Synchroner Baustein

verkürzte Wahrheitstafel eines D-Flip-Flops

Blockschaltbild

5.1 D-Flip-Flop

D C Q’

0 0 Q Q bleibt unverändert 0 1 0 0 wird übernommen

1 0 Q Q bleibt unverändert

1 1 1 1 wird übernommen

Page 196: EinfTI Script 2013

43 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.1 D-Flip-Flop (2)

Realisierung

Page 197: EinfTI Script 2013

44 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.1 D-Flip-Flop (2)

Realisierung

Flankengetriggertes D-Flip-Flop

positive Flankentriggerung negative Flankentriggerung

Es wird im Wesentlichen das positv flankengetriggerte FF verwendet

Page 198: EinfTI Script 2013

45 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Register

Flip-Flops bilden ein Register

Speicher für bestimmte Anzahl von Binärwerten

Page 199: EinfTI Script 2013

46 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 JK-Flip-Flop

RS-Flip-Flop mit zusätzlicher Umschaltfunktion (Toggle)

in der Regel synchron und mit Master-Slave-Aufbau

Blockschaltbilder flankengetriggerter JK-Flip-Flops

positive Flankentriggerung negative Flankentriggerung

verkürzte Wahrheitstafel eines JK-Flip-Flops

C J K Q’

0 * * Q keine Änderung ohne Takt

1 0 0 Q

1 0 1 0 Rücksetzen (K=R)

1 1 0 1 Setzen (J=S)

1 1 1 Q Q wird invertiert (Toggle)

Page 200: EinfTI Script 2013

47 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 JK-Flip-Flop (2)

Realisierung eines JK-Flip-Flop mit Master-Slave-Aufbau

Spezialfall

T-Flip-Flop (Toggle) mit einem Eingang T=K=J plus Takteingang

Page 201: EinfTI Script 2013

48 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6 Typische Schaltwerke

Register mit Schiebeoperation

Binärwerte werden z.B. im Register nach rechts geschoben

Realisierung mit D-Flip-Flops

Vielfältige Anwendung

Teil arithmetischer Operationen

Serialisierung und Deserialisierung von Daten

6.1 Schieberegister

Page 202: EinfTI Script 2013

49 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Schieberegister (2)

Schieberegister für Links- und Rechtsschiebe-Operationen

t

Page 203: EinfTI Script 2013

50 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Schieberegister (2)

Schieberegister für Links- und Rechtsschiebe-Operationen

1-aus-2-Multiplexer: Auswahl des linken oder rechten Eingabewertes

Page 204: EinfTI Script 2013

51 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Asynchroner Zähler

Beispiel:

dreistelliger Binärzähler zählt abfallende Flanken des Taktimpulses

Aufbau mit JK-Flip-Flops

Page 205: EinfTI Script 2013

52 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Asynchroner Zähler (2)

Zeitverhalten

Dominoeffekt verzögert stabilen Zustand des Zählers

lange Zähler sind nicht „beliebig schnell“ taktbar

1 0

1 0

1 0

C

Q 1

1 0

Q 2

Q 0

00 0 0 0 1 01 0 01 1 10 0 1 0 1 11 0 11 1 Q 2 Q 1 Q 0

Page 206: EinfTI Script 2013

53 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler

Unmittelbarer Übergang aller beteiligten Flip-Flops pro Taktzyklus

Mögliche Zustände eines dreistelligen Binärzählers

Übergänge pro Takt

unbedingte Übergänge

Page 207: EinfTI Script 2013

54 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (2)

Einsatz von JK-Flip-Flops

Aufstellen einer Zustandsübergangstabelle für das JK-Flip-Flop

Drei JK-Flip-Flops notwendig für dreistelligen Zähler

Takt für alle Flip-Flops identisch

Wie müssen Steuereingänge J und K angesprochen werden?

Übergang Q Q’

J K

0 0 0 d K Eingang irrelevant

0 1 1 d K Eingang irrelevant

1 0 d 1 J Eingang irrelevant

1 1 d 0 J Eingang irrelevant

Page 208: EinfTI Script 2013

55 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Page 209: EinfTI Script 2013

56 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Folgezustände ermitteln

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0 0 0 1

0 0 1 0 1 0

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Page 210: EinfTI Script 2013

57 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Folgezustände ermitteln

Übergänge pro Flip-Flop ermitteln

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0 0 0 1 0 d 0 d 1 d

0 0 1 0 1 0

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Page 211: EinfTI Script 2013

58 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Folgezustände ermitteln

Übergänge pro Flip-Flop ermitteln

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0 0 0 1 0 d 0 d 1 d

0 0 1 0 1 0 0 d 1 d d 1

0 1 0 0 1 1

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Page 212: EinfTI Script 2013

59 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Folgezustände ermitteln

Übergänge pro Flip-Flop ermitteln

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0 0 0 1 0 d 0 d 1 d

0 0 1 0 1 0 0 d 1 d d 1

0 1 0 0 1 1 0 d d 0 1 d

0 1 1 1 0 0

1 0 0 1 0 1

1 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 0

Page 213: EinfTI Script 2013

60 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (3)

Zustandsübergänge des Zählers

Folgezustände ermitteln

Übergänge pro Flip-Flop ermitteln

Zustände (gleichzeitig Ausgabe)

Folgezustand Eingänge der Flip-Flops

Q2 Q1 Q0 Q2’ Q1’ Q0’ J2 K2 J1 K1 J0 K0

0 0 0 0 0 1 0 d 0 d 1 d

0 0 1 0 1 0 0 d 1 d d 1

0 1 0 0 1 1 0 d d 0 1 d

0 1 1 1 0 0 1 d d 1 d 1

1 0 0 1 0 1 d 0 0 d 1 d

1 0 1 1 1 0 d 0 1 d d 1

1 1 0 1 1 1 d 0 d 0 1 d

1 1 1 0 0 0 d 1 d 1 d 1

Page 214: EinfTI Script 2013

61 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (4)

Schaltnetzentwurf

Eingänge sind Ausgänge Qi der Flip-Flops

Ausgänge sind Ansteuerungen Ji und Ki der Flip-Flops

Einsatz der Minimierung für minimale Schaltungen

Beispiel: Schaltfunktion K2

1

Q ———1

Q ——— 1

Q

———0

Q ——— ———0

Q ———

2Q d d d d

2Q 0 0 1 0

Page 215: EinfTI Script 2013

62 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (4)

Schaltnetzentwurf

Eingänge sind Ausgänge Qi der Flip-Flops

Ausgänge sind Ansteuerungen Ji und Ki der Flip-Flops

Minimierung nach KV

Beispiel: Schaltfunktion K2

DNF der Schaltfunktion: K2 = Q0 · Q1

1

Q ———1

Q ——— 1

Q

———0

Q ——— ———0

Q ———

2Q d d d d

2Q 0 0 1 0

Page 216: EinfTI Script 2013

63 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (5)

Schaltnetzentwurf für Beispiel: Schaltfunktion J2

wie bei K2

Einsatz der Minimierung für minimale Schaltungen

1

Q ———1

Q ——— 1

Q

———0

Q ——— ———0

Q ———

2Q 0 0 1 0

2Q d d d d

Page 217: EinfTI Script 2013

64 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (5)

Schaltnetzentwurf für Beispiel: Schaltfunktion J2

wie bei K2

Minimierung nach KV

DNF der Schaltfunktion: J2 = Q0 · Q1

1

Q ———1

Q ——— 1

Q

———0

Q ——— ———0

Q ———

2Q 0 0 1 0

2Q d d d d

Page 218: EinfTI Script 2013

65 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (6)

Schaltfunktionen insgesamt:

J2 = Q0 · Q1 , K2 = Q0 · Q1

J1 = Q0 , K1 = Q0

J0 = 1 , K0 = 1

Page 219: EinfTI Script 2013

66 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Synchroner Zähler (6)

Schaltfunktionen insgesamt:

J2 = Q0 · Q1 , K2 = Q0 · Q1

J1 = Q0 , K1 = Q0

J0 = 1 , K0 = 1

Realisierung der Schaltung

Page 220: EinfTI Script 2013

67 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7 Schaltwerkentwurf

Entwurf von beliebigen Schaltwerken mit internem Zustand

Wie kommt man allgemein von den Systemanforderungen zum Schaltwerk?

Endliche Automaten als Systemmodell

endliche Menge von Zuständen

Übergänge zwischen den Zuständen

Abhängigkeit der Übergänge von

Eingabewerten und

vorherigen Zuständen

Page 221: EinfTI Script 2013

68 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7 Schaltwerkentwurf (2)

Beispiel: dreistelliger Binärzähler

Gesucht: allgemeines Verfahren zur Synthese von Schaltwerken aus

der Beschreibung endlicher Automaten

acht Zustände

unbedingte Übergänge

pro Taktzyklus

keine Abhängigkeit von

Eingabewerten

Ausgabe

direkte Ausgabe der

Zustandsrepräsentation

durch Flip-Flop-Ergebnisse

Page 222: EinfTI Script 2013

69 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“

Szenario

Studierende(r) stellt Wecker auf 6:00 Uhr morgens

an Werktagen wird aufgestanden und der Wecker abgeschaltet

an Wochenenden bleibt man liegen und stellt den Wecker auf 10:00 Uhr

erst dann wird aufgestanden

Automat

Automat

Wecker klingelt

Wochenende

wach

Wecker auf 10:00 Uhr stellen

Page 223: EinfTI Script 2013

70 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (2)

Version 1: Ausgaben mit Zuständen assoziiert

Zustände zeigen Aktionen an

Page 224: EinfTI Script 2013

71 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (2)

Version 1: Ausgaben mit Zuständen assoziiert

Zustände zeigen Aktionen an

Page 225: EinfTI Script 2013

72 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (2)

Version 1: Ausgaben mit Zuständen assoziiert

Zustände zeigen Aktionen an

nicht beachtete Eingabewerte werden nicht eingetragen

unbedingte Übergänge nicht beschriftet

Page 226: EinfTI Script 2013

73 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (2)

Version 1: Ausgaben mit Zuständen assoziiert

Zustände zeigen Aktionen an

nicht beachtete Eingabewerte werden nicht eingetragen

unbedingte Übergänge nicht beschriftet

Page 227: EinfTI Script 2013

74 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (3)

Version 2: Ausgaben mit Kanten assoziiert

Zustände repräsentieren Ereignisse zwischen Aktionen

Zustände müssen möglicherweise umbenannt werden

Page 228: EinfTI Script 2013

75 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (3)

Version 2: Ausgaben mit Kanten assoziiert

Zustände repräsentieren Ereignisse zwischen Aktionen

Zustände müssen möglicherweise umbenannt werden

Page 229: EinfTI Script 2013

76 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.1 Beispiel „Aufstehen“ (3)

Version 2: Ausgaben mit Kanten assoziiert

Zustände repräsentieren Ereignisse zwischen Aktionen

Zustände müssen möglicherweise umbenannt werden

Page 230: EinfTI Script 2013

77 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.2 Moore-Automat

Aufbau eines Moore-Automaten (E. Moore, Bell Labs)

getaktetes System

Eingabewerte X und bisheriger Zustand Z führen zu Zustandsveränderungen Z (t+1) (Zustandsübergänge) an der nächsten

Taktflanke

Ausgabewerte Y hängen nur vom augenblicklichen Zustand ab

Ausgabe mit Zustand assoziiert

X t Z t+1

Y t

Z t

f

g

Moore-FSM

Y t := g ( Z t )

Z t+1 := f ( X t , Z t )

function with glitches

Page 231: EinfTI Script 2013

78 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.3 Mealy-Automat

Aufbau eines Mealy-Automaten (G. Mealy, IBM)

getaktetes System

Eingabewerte X und bisheriger Zustand Z führen zu Zustandsveränderungen (Zustandsübergänge)

Ausgabewerte Y hängen von Eingabewerten und augenblicklichem

Zustand ab

Ausgabe mit Zustandsübergängen (Transitionen) assoziiert

X t Z

t+1

Y t

Z t

f

g

Mealy-FSM

Y t := g ( X

t , Z

t )

Z t+1

:= f ( X t , Z

t )

asynchronous path

Page 232: EinfTI Script 2013

79 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.3 Mealy-Automat

Aufbau eines simple-Moore Automaten (Medwejew Automat)

getaktetes System

Eingabewerte X und bisheriger Zustand Z führen zu Zustandsveränderungen (Zustandsübergänge)

Ausgabewerte Y sind direkt als Zustand codiert, benötigen manchmal

zusätzliche bits H zur eindeutigen Unterscheidung der Zustände

Ausgabe direkt mit State bits Z codiert

Z t+1

Y t

f’

simple Moore-FSM

Y t Z t

Z t+1

:= f ( X t , Z

t )

X t = Xs

t _ Xi

t

Z t = H t _ Y t

H t

Xs t

Xi t

Page 233: EinfTI Script 2013

80 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.4 Vorgehensweise

Einzelschritte

1. Zustandsdiagramm bzw. Zustandstabelle

2. binäre Zustandscodierung, binäre Zustandstabelle

3. Auswahl eines Flip-Flop-Typs, Flip-Flop-Ansteuerung in Zustandstabelle

4. Ausgabefunktionen in Zustandstabelle

5. Minimieren von Ansteuerungs- und Ausgabefunktionen

6. Aufbau der Schaltung

Page 234: EinfTI Script 2013

81 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“

Schritt 1a: Zustandsdiagramm

Page 235: EinfTI Script 2013

82 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (2)

Schritt 1b: Zustandstabelle

Eingänge Zustände Wochen-

ende Wecker

Folge- zustände

schlaf6 d 0 schlaf6

schlaf6 d 1 wach6

wach6 1 d weckerst

wach6 0 d auf

weckerst d d schlaf10

schlaf10 d 0 schlaf10

schlaf10 d 1 wach10

wach10 d d auf

auf d d auf

Page 236: EinfTI Script 2013

83 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (3)

Schritt 2: binäre Zustandscodierung, binäre Zustandstabelle

Zustände Eingänge Folgezustände

Q2 Q1 Q0 WO WE Q2’ Q1’ Q0’

schlaf6 0 0 0 d 0 schlaf6 0 0 0

schlaf6 0 0 0 d 1 wach6 0 0 1

wach6 0 0 1 1 d weckerst 0 1 0

wach6 0 0 1 0 d auf 1 0 1

weckerst 0 1 0 d d schlaf10 0 1 1

schlaf10 0 1 1 d 0 schlaf10 0 1 1

schlaf10 0 1 1 d 1 wach10 1 0 0

wach10 1 0 0 d d auf 1 0 1

auf 1 0 1 d d auf 1 0 1

1 1 0 d d d d d

1 1 1 d d d d d

Page 237: EinfTI Script 2013

84 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (4)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

Zustände Eingänge Folgezustände Flip-Flop-Ansteuerung Q2 Q1 Q0 WO WE Q2 Q1 Q0 J2 K2 J1 K1 J0 K0

0 0 0 d 0 0 0 0

0 0 0 d 1 0 0 1

0 0 1 1 d 0 1 0

0 0 1 0 d 1 0 1

0 1 0 d d 0 1 1

0 1 1 d 0 0 1 1

0 1 1 d 1 1 0 0

1 0 0 d d 1 0 1

1 0 1 d d 1 0 1

1 1 0 d d d d d

1 1 1 d d d d d

Page 238: EinfTI Script 2013

85 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (4)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

Zustandsübergangstabelle JK-Flip-Flop (Folie D.54)

Übergang Q Q’

J K

0 0 0 d K Eingang irrelevant

0 1 1 d K Eingang irrelevant

1 0 d 1 J Eingang irrelevant

1 1 d 0 J Eingang irrelevant

Page 239: EinfTI Script 2013

86 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (4)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

Zustände Eingänge Folgezustände Flip-Flop-Ansteuerung Q2 Q1 Q0 WO WE Q2 Q1 Q0 J2 K2 J1 K1 J0 K0

0 0 0 d 0 0 0 0 0 d 0 d 0 d

0 0 0 d 1 0 0 1 0 d 0 d 1 d

0 0 1 1 d 0 1 0

0 0 1 0 d 1 0 1

0 1 0 d d 0 1 1

0 1 1 d 0 0 1 1

0 1 1 d 1 1 0 0

1 0 0 d d 1 0 1

1 0 1 d d 1 0 1

1 1 0 d d d d d

1 1 1 d d d d d

Page 240: EinfTI Script 2013

87 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (4)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

Zustände Eingänge Folgezustände Flip-Flop-Ansteuerung Q2 Q1 Q0 WO WE Q2 Q1 Q0 J2 K2 J1 K1 J0 K0

0 0 0 d 0 0 0 0 0 d 0 d 0 d

0 0 0 d 1 0 0 1 0 d 0 d 1 d

0 0 1 1 d 0 1 0 0 d 1 d d 1

0 0 1 0 d 1 0 1 1 d 0 d d 0

0 1 0 d d 0 1 1 0 d d 0 1 d

0 1 1 d 0 0 1 1 0 d d 0 d 0

0 1 1 d 1 1 0 0 1 d d 1 d 1

1 0 0 d d 1 0 1 d 0 0 d 1 d

1 0 1 d d 1 0 1 d 0 0 d d 0

1 1 0 d d d d d d d d d d d

1 1 1 d d d d d d d d d d d

Page 241: EinfTI Script 2013

88 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (5)

Schritt 4: Eintragen der Ausgabefunktionen in Abhängigkeit vom

Zustand

Zustände Ausgabe Q2 Q1 Q0 WA=wach WS=Wecker st.

schlaf6 0 0 0 0 0

wach6 0 0 1 1 0

weckerst 0 1 0 1 1

schlaf10 0 1 1 0 0

wach10 1 0 0 1 0

auf 1 0 1 1 0

1 1 0 d d

1 1 1 d d

Page 242: EinfTI Script 2013

89 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (5)

Schritt 5: Minimieren

2 1 0 1 o

1 2 0

0 2 1

2 1 0 1 0

1 0

J Q Q W O Q Q W E

J Q Q W O

J Q Q W E

W A Q Q Q Q Q

W S Q Q

2

1 1 0

0 2 1 1

K 0

K Q Q W E

K Q Q W O Q W E

Page 243: EinfTI Script 2013

90 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.5 Moore-Automat fürs „Aufstehen“ (6)

Schritt 6: Aufbau der Schaltung

Page 244: EinfTI Script 2013

91 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner

Sequenzerkenner

ein Eingang E mit verschiedenen Eingabewerten pro Taktzyklus

ein Ausgang Y ist 1, falls Sequenz erkannt (z.B. 010)

Schritt 1a: Zustandsdiagramm

Ausgabewerte Y = Y1, Y2, …, Ym werden hinter die Zustandsbezeichnung geschrieben (hier m=1)

Page 245: EinfTI Script 2013

92 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (2)

Schritt 1b: Zustandstabelle

Zustände Eingang Folge-

zustände

A 0 B

A 1 A

B 0 B

B 1 C

C 0 D

C 1 A

D 0 B

D 1 C

Page 246: EinfTI Script 2013

93 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (3)

Schritt 2: binäre Zustandscodierung, binäre Zustandstabelle

Zustände

Q1 Q0 Eingang

Folge- zustände

A 00 0 B 01 A 00 1 A 00

B 01 0 B 01

B 01 1 C 10

C 10 0 D 11

C 10 1 A 00 D 11 0 B 01

D 11 1 C 10

Page 247: EinfTI Script 2013

94 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (4)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

Zustände

Q1, Q0 Eingang

Folge- zustände

J1 K1 J0 K0

00 0 01 0 d 1 d 00 1 00 0 d 0 d

01 0 01 0 d d 0

01 1 10 1 d d 1

10 0 11 d 0 1 d

10 1 00 d 1 0 d 11 0 01 d 1 d 0

11 1 10 d 0 d 1

Page 248: EinfTI Script 2013

95 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (5)

Schritt 4: Ausgabefunktion in Abhängigkeit vom Zustand

Schritt 5: Minimieren

Y = Q1 · Q0 trivial

Zustände Q1, Q0

Ausgabe Y

00 0

01 0

10 0

11 1

Page 249: EinfTI Script 2013

96 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (6)

Flip-Flop #1

J1 = Q0 · E

K1 1Q ———

1Q ———

1Q

———0

Q ——— ———0

Q ———

E d 0 1 d

E d 1 0 d

J1 1Q ———

1Q ———

1Q

———0

Q ——— ———0

Q ———

E 0 d d 0

E 0 d d 1

1 0 0

K Q E Q E

Page 250: EinfTI Script 2013

97 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (7)

Flip-Flop #0

K0 = E

K0 1Q ———

1Q ———

1Q

———0

Q ——— ———0

Q ———

E d d 0 0

E d d 1 1

J0 1Q ———

1Q ———

1Q

———0

Q ——— ———0

Q ———

E 1 1 d d

E 0 0 d d

0

J E

Page 251: EinfTI Script 2013

98 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.6 Moore-Automat für Sequenzerkenner (8)

Schritt 6: Aufbau der Schaltung

K0 = E

J1 = Q0 · E

0

J E

1 0 0

K Q E Q E

Page 252: EinfTI Script 2013

99 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.7 Mealy-Automat für Sequenzerkenner

Schritt 1a: Zustandsdiagramm

Kanten werden mit E/Y beschriftet

E = E1, E2, …, En sind Eingabewerte (hier n=1)

Y = Y1, Y2, …, Ym sind Ausgabewerte (hier m=1)

Page 253: EinfTI Script 2013

100 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.7 Mealy-Automat für Sequenzerkenner (2)

Schritt 1b: Zustandstabelle

identisch zu Moore-Automat (!)

Zustände Eingang Folge-

zustände

A 0 B

A 1 A

B 0 B

B 1 C

C 0 D

C 1 A

D 0 B

D 1 C

Page 254: EinfTI Script 2013

101 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.7 Mealy-Automat für Sequenzerkenner (3)

Schritt 2: binäre Zustandscodierung, binäre Zustandstabelle

identisch zu Moore-Automat (!)

Schritt 3: JK-Flip-Flops und deren Ansteuerung

identisch zu Moore-Automat (!)

Zustände

Q1, Q0 Eingang

Folge- zustände

J1 K1 J0 K0

00 0 01 0 d 1 d 00 1 00 0 d 0 d

01 0 01 0 d d 0

01 1 10 1 d d 1

10 0 11 d 0 1 d

10 1 00 d 1 0 d 11 0 01 d 1 d 0

11 1 10 d 0 d 1

Page 255: EinfTI Script 2013

102 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.7 Mealy-Automat für Sequenzerkenner (4)

Schritt 4: Ausgabefunktionen

in Abhängigkeit von Zustand und Eingabe

Zustände

Q1, Q0 Eingang

Folge- zustände

J1 K1 J0 K0 Ausgabe

00 0 01 0 d 1 d 0 00 1 00 0 d 0 d 0

01 0 01 0 d d 0 0

01 1 10 1 d d 1 0

10 0 11 d 0 1 d 1

10 1 00 d 1 0 d 0 11 0 01 d 1 d 0 0

11 1 10 d 0 d 1 0

Page 256: EinfTI Script 2013

103 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.7 Mealy-Automat für Sequenzerkenner (5)

Schritt 5: Minimieren

Flip-Flop-Ansteuerfunktionen identisch zu Moore-Automat

Schritt 6: Aufbau der Schaltung

1 0

Y Q Q E

Page 257: EinfTI Script 2013

104 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.8 Vergleich Moore- und Mealy-Automaten

Beide geeignet zum Aufbau beliebiger synchroner Schaltwerke

Vorteile Moore-Automat

geringerer Schaltungsaufwand, wenn Ausgabewerte nur vom aktuellen Zustand abhängen

taktsynchrone Ausgabe

Nachteile Moore-Automat

Reaktion erst im nächsten Taktzyklus

Page 258: EinfTI Script 2013

105 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.8 Vergleich Moore- und Mealy-Automaten (2)

Vorteile Mealy-Automat

geringerer Schaltungsaufwand, wenn Übergänge zu einem Zustand verschiedene Ausgabewerte erzeugen sollen

Beispiel: modifiziertes JK-Flip-Flop

Ausgabe zeigt an, dass sich Flip-Flop-Zustand geändert hat.

Nachteile Mealy-Automat

asynchrone Eingabesignale bewirken asynchrone Ausgabesignale

Page 259: EinfTI Script 2013

106 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.9 Reduktion von Zuständen

Weniger Flip-Flops durch Reduktion der Zustände

Zustandsdiagramm Moore-Automat

Zusammenfassung von Zuständen mit gleicher Ausgabe und gleichen Folgezuständen

Page 260: EinfTI Script 2013

107 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.9 Reduktion von Zuständen

Weniger Flip-Flops durch Reduktion der Zustände

Zustandsdiagramm Moore-Automat

Zusammenfassung von Zuständen mit gleicher Ausgabe und gleichen Folgezuständen

Page 261: EinfTI Script 2013

108 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.9 Reduktion von Zuständen (2)

Zustandsdiagramm Mealy-Automat

Zusammenfassung von Zuständen mit gleichen Folgezuständen und gleichen Ausgaben bei den Übergängen

Page 262: EinfTI Script 2013

109 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.9 Reduktion von Zuständen (2)

Zustandsdiagramm Mealy-Automat

Zusammenfassung von Zuständen mit gleichen Folgezuständen und gleichen Ausgaben bei den Übergängen

Page 263: EinfTI Script 2013

110 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

7.10 Zusammenfassung

Schaltwerke

asynchrone und synchrone Schaltwerke

Flip-Flops (RS, D, JK)

Schaltwerkentwurf

Moore-Automat

Mealy-Automat

Page 264: EinfTI Script 2013

Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1

E Technologische Grundlagen

1

Page 265: EinfTI Script 2013

2 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Physik

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 266: EinfTI Script 2013

3 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung (2)

Bisher

Schaltungen auf logischer Ebene Implementierung vernachlässigt

Nun

Einblick in die technische Realisierung elektronischer Schaltungen

Page 267: EinfTI Script 2013

4 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2 Halbleiterdiode

Grundlage: elektrische Schaltungen

Strom

fließt bei geschlossenem Stromkreis konzeptionell:

Strom fließt von „Plus“ nach „Minus“ physikalisch:

Elektronen fließen von „Minus“ nach „Plus“

Page 268: EinfTI Script 2013

5 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2 Halbleiterdiode (2)

Diode

spezielles Bauteil mit zwei Anschlüssen

Strom nur in einer Richtung durch die Diode: Anode Kathode Elektronen: von Kathode zur Anode

Aufbau früher

Röhrendiode: Glaskolben mit Vakuum

Page 269: EinfTI Script 2013

6 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2 Halbleiterdiode (3)

Aufbau heute

Halbleiterdiode

Leiter

freie Elektronen können fließen

Isolator

keine freien Elektronen

Halbleiter

zwischen Leiter und Isolator z.B. Germanium (Ge), Silizium (Si)

Page 270: EinfTI Script 2013

7 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Halbleiter

Elektronenanordnung bei Halbleiterkristallen

je vier Elektronen auf äußerster Schale stabiler Zustand durch Verzahnung der Schalen benachbarter Atome gelegentliche Verunreinigungen:

ein Elektron zuviel oder zuwenig auf der äußeren Bahn geringer Stromfluss möglich (Halbleiter)

Page 271: EinfTI Script 2013

8 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Halbleiter (2)

Dotieren der Halbleiter mit anderen Materialien

gezieltes Verunreinigen Beispiel: Antimon (Sb)

ein Elektron mehr auf der äußeren Schale Elektronenüberschuss N-Leitfähigkeit des Kristalls (negativ)

Page 272: EinfTI Script 2013

9 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Halbleiter (3)

Beispiel: Indium (In) ein Elektron weniger auf der äußeren Schale Elektronenmangel (dargestellt durch Loch auf der äußeren Schale) P-Leitfähigkeit des Kristalls (positiv)

Page 273: EinfTI Script 2013

10 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Aufbau der Halbleiterdiode

Aufbau mit N- und P-Bereich

Grenzbereich (PN-Übergang)

freie Elektronen füllen Löcher

P

N

P

N

Elektronenüberschuss

Elektronenmangel

neutrale Schicht (keine Leitung)

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Page 274: EinfTI Script 2013

11 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Aufbau der Halbleiterdiode (2)

Durchlassrichtung

Elektronen der Spannungsquelle drücken in den N-Bereich Spannungsquelle zieht Elektronen aus dem P-Bereich ab PN-Übergang wird dünner Strom kann fließen

P

N

+

Page 275: EinfTI Script 2013

12 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Aufbau der Halbleiterdiode (3)

Sperrrichtung

Elektronen der Spannungsquelle drücken in den P-Bereich und füllen Löcher auf

Spannungsquelle zieht Elektronen aus dem N-Bereich ab PN-Übergang wird größer Strom kann nicht fließen

P

N +

Page 276: EinfTI Script 2013

13 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

2.3 Digitale Diodenschaltungen

Abbildung der Wahrheitswerte (positive Logik)

1: Stromfluss/positive Spannung 0: kein Stromfluss/keine Spannung

Aufbau einfacher Gatter

Y = A + B Y = A · B

Gn d

A

B Y

A

B Y

VCC

Page 277: EinfTI Script 2013

14 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor

Halbleiterbauteil mit drei Anschlüssen (bipolare Transistoren)

zwischen Basis und Emitter sowie zwischen Basis und Collector wirkt Transistor wie eine Diode

zwischen Emitter und Collector fließt zunächst kein Strom durch geringen Strom an der Basis wird Transistor zwischen Collector und

Emitter leitend

Collector

Emitter

Basis

Page 278: EinfTI Script 2013

15 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor (2)

Transistor als Schalter und Verstärker

kleiner Schaltstrom an der Basis großer Ausgangsstrom zwischen Collector und Emitter Verstärkung zwischen Basis- und Collector-Kreis

Gnd

VCC

Eingang

Page 279: EinfTI Script 2013

16 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor (3)

Interner Aufbau

drei Schichten: NPN

N

P

N

C

B

E

Page 280: EinfTI Script 2013

17 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor (3)

Interner Aufbau

drei Schichten: NPN Ruhezustand: PN-Übergänge

N

P

N

C

B

E

Page 281: EinfTI Script 2013

18 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor (3)

Interner Aufbau

drei Schichten: NPN Ruhezustand: PN-Übergänge geringer Basisstrom

Verringerung des PN-Übergangs zwischen Emitter und Basis Verringerung des PN-Übergangs zwischen Basis und Collector

N

P

N

C

B

E

+

–Elektronen-

fluss

Page 282: EinfTI Script 2013

19 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3 Transistor (4)

NPN- und PNP-Transistoren

prinzipiell gleiche Funktionsweise verschiedene Polung

Collector

Emitter

Basis

Collector

Emitter

Basis

NPN PNP

Page 283: EinfTI Script 2013

20 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Aufbau eines npn-Transistors

Ausgangsbasis: p-dotiertes Substrat

Fertigungsschritte: Substrat wird oxidiert Teile des Oxids werden ausgewaschen, das darunter liegende Silizium

n+ dotiert (z.B. mit Arsen) Teil des Kollektors (Burried Layer) Schwach dotierte kristalline n-Schicht wird aufgebracht (Epitaxie) Aufbringen einer Schutzschicht aus Si3N4, Transistoranschlüsse werden mit

Fotolack geschützt. Wegätzen der nicht vom Lack geschützten Schichten, starke p-Dotierung

des Randes des Burried Layers (Abgrenzung des Transistors) p-Dotierung der Basis, starke n-Dotierung von Emitter und Kollektor,

erneuter Überzug einer Schutzschicht

Page 284: EinfTI Script 2013

21 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Digitale Transistorschaltungen

Einfacher Inverter

Gnd- Potential ( = 0) am Eingang Transistor sperrt

am Ausgang liegt fast vollständige Versorgungsspannung (1) Versorgungsspannung VCC ( = 1) am Eingang Transistor schaltet durch

am Ausgang liegt nur geringe Spannung an (0)

G n d

Eing a n g Ausga n g

VCC

RB

RC

UEin

Page 285: EinfTI Script 2013

22 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Digitale Transistorschaltungen (2)

Multi-Emitter-Transistoren

je eine Basis- und Collector-Zone mehrere Emitterzonen

N P

B

E 1

N N N

E 2 E 3

C

Page 286: EinfTI Script 2013

23 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Digitale Transistorschaltungen (2)

Multi-Emitter-Transistoren

je eine Basis- und Collector-Zone mehrere Emitterzonen

AND-Gatter mit Multi-Emitter-Transistor

Transistor schaltet durch einer von A, B, C auf Masse (0)

X hat nur geringe Spannung alle A, B, C auf VCC

X hat hohe Spannung (VCC)

N P

B

E 1

N N N

E 2 E 3

C

Gn d

A B C X

VCC

Page 287: EinfTI Script 2013

24 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.3 TTL

Transistor-Transistor-Logic (TTL)

Gatteraufbau nur mit bipolaren Transistoren

Pegelbereiche

realerAufbau

PrinzipTTL-NAND

5

2,82,40,80,4

V Eingang Ausgang

verbotenerPegelbereich

Page 288: EinfTI Script 2013

25 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.3 TTL (2)

TTL-Schaltkreise

meist als Dual-in-Line-Gehäuse

Beispiel: Baustein 7400

vier NAND-Gatter mitje zwei Eingängen

1 2 3 4 5 6 7

14 13 12 11 10 9 8

Gnd

VCC

Page 289: EinfTI Script 2013

26 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.3 TTL (3)

Beispiel: Baustein 74LS74

zwei positiv-flankengetriggerteD-Flip-Flops• CLR = Clear: asynchr. Rücksetzen• PRE = Preset: asynchr. Setzen

1 2 3 4 5 6 7

14 13 12 11 10 9 8

Gnd

VCC

D QC

Q

CLR

PRE

D QC

Q

PRE

CLR

Page 290: EinfTI Script 2013

27 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

3.3 TTL (4)

TTL-Familien

elektr. Werte für H und L, Ein- und Ausgangswiderstände genau festgelegt Schaltkreise ohne Zusatzschaltungen direkt miteinander verbindbar

Problem Erhöhung der Schaltgeschwindigkeit führt zu höherer Leistungsaufnahme. spezielle „Low-power“ Transistoren und Schaltungen im Einsatz

TTL LS-TTL ALS-TTL F-TTL AS-TTL Bezeichnung 74xx 74LSxx 74ALSxx 74Fxx 74ASxx

Spannung 5V Leistung pro

Gatter 10mW 2mW 1mW 4mW 22mW

Schaltzeit 10ns 9ns 4ns 2,5ns 1,5ns max.

Frequenz 40MHz 50MHz 100MHz 125MHz 230MHz

Page 291: EinfTI Script 2013

28 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 MOS-Feldeffekttransistor

MOS-FET (Metal-Oxide-Semiconductor, Metall-Oxid-Halbleiter)

Funktionsweise N-MOS (selbstsperrend)

bei Gate-Source-Spannung =0: Transistor gesperrt zwischen Drain und Source hoher Widerstand, kein Stromfluss

bei positiver Spannung zwischen Gate und Source + UGS induziert Elektronen Stromfluss über einen Kanal zwischen

Source und Drain (nur elektr. Feld wesentlich: Feldeffekt-Transistor)

Page 292: EinfTI Script 2013

29 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 MOS-Feldeffekttransistor (2)

Elektrisches Feld steuert Leitfähigkeit im Halbleiterkristall

Schaltbild Aufbau (schematisiert)

Vorteil

kein Stromfluss am Gate, nur Spannung/elektr. Feld (leistungsloser Betrieb)

lediglich Umschalten erfordert Wechsel der Ladungszustände (Leistung!) Leistungsaufnahme von Umschaltfrequenz und Kapazität (~ Feature-size)

abhängig

Gate Source

DrainSubstrat

(selbstsperrender) n-Kanal MOS-FET

N NP

G

B

DS

Siliziumoxid

Substrat(Isolator)

Kanal

Substrat (Bulk) üblicherweise mit Source verbunden

Page 293: EinfTI Script 2013

30 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 MOS-Feldeffekttransistor (3)

realer Aufbau

Leistungsaufnahme: QC = C × U PC = C × U2 × f/2 C∼(gate-length)2

Beispiel: Im Mittel NSW Transistoren beteiligt NSW ≈ 106 Pges = NSW × PC Umschaltfrequenz f = 2 GHz, C = 0,002 pF, U = 3,3 V Pges = (106 × 0,002 × 10-12 × 3,32 × 2 × 109 / 2)W ≈ 20W

C+U ++++

Presenter
Presentation Notes
Q=CU, W=1/2*CU^2, P=W/t
Page 294: EinfTI Script 2013

31 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 MOS-Feldeffekttransistor (4)

Ausgangskennlinienfeld des N-MOS

Linearer Bereich

Ohmscher Bereich

Sättigung

Abschnürbereich

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Page 295: EinfTI Script 2013

32 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4 MOS-Feldeffekttransistor (5)

Typen

n-Kanal MOS FET selbstsperrend (positive Gate-Source-

Spannung schaltet durch) selbstleitend (negative Gate-Source-

Spannung sperrt)

p-Kanal MOS FET selbstsperrend (negative Gate-Source-

Spannung schaltet durch) selbstleitend (positive Gate-Source-

Spannung sperrt)

selbst-sperrend

selbst-leitend

selbst-sperrend

selbst-leitend

Page 296: EinfTI Script 2013

33 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Entwicklung der Technologie

2000/2001 SIA Roadmap Summary

SIA = Semiconductor Industry Association http://public.itrs.net/ http://www.sematech.org

Year Unit 1993 1995 1999 2001 2003 2005 2008 2011 2014 2016

Feature Size microns/nm 0.50 0.35 180 130 100 80 70 50 34 22 Internal Clock

(high performance)

MHz/GHz 200 300 750 1.68 2.31 5.17 6.74 11.5 19.3 28.7

Logic transistors million/cm2 2 4 6.6 13 24 44 109 269 664

Microprocessor million transistors/chip 5.2 12 23.8 47.6 95.2 190 539 1523 4308

DRAM size Mbit/Gbit 16 64 256 512 1 2 6 16 48

SRAM size Mbit/Gbit 1 4 16 64 256

Voltage Vdd 5 3.3 2.5 1.2 1.0 0.9 0.7 0.6 0.5 0.4

Page 297: EinfTI Script 2013

34 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.2 CMOS-Schaltung

CMOS (Complementary Metal Oxide Semiconductor)

komplementär (symmetrischer) MOS-Halbleiter Einsatz selbstsperrender n- und p-Kanal MOS-FETs

Beispiel: Inverter

a y

VDD

GND

P

N

a=1 y=0a y

VDD

GND

P

N

a=0 y=1

einer der Transistoren ist immer gesperrt niedrige Leistungsaufnahme Stromverbrauch nur bei Umschalten

Page 298: EinfTI Script 2013

35 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.3 CMOS-Inverter Layout Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Page 299: EinfTI Script 2013

36 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.4 NAND-Funktion in CMOS

Funktionsweise

Nur wenn a=1 und b=1, sind beide NMOS-Transistoren leitend

am Ausgang liegt y = GND = 0

Andernfalls schaltet mindestens einer der beiden PMOS-Transistoren durch

am Ausgang liegt y = VDD = 1

Page 300: EinfTI Script 2013

37 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.5 NOR-Funktion in CMOS

Funktionsweise

Nur wenn a=0 und b=0, sind beide PMOS-Transistoren leitend

am Ausgang liegt y = VDD = 1

Andernfalls schaltet mindestens einer der beiden NMOS-Transistoren durch

am Ausgang liegt y = GND = 0

Page 301: EinfTI Script 2013

38 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.6 Prinzip n-stellige Funktion in CMOS

zwei Teilnetze P-Netz: durchgeschaltet, wenn y = 1 sein soll N-Netz: durchgeschaltet, wenn y = 0 sein soll

Dies geht jedoch nicht für beliebige Boolesche Funtionen Nur für solche Konjunktionen oder Disjunktionen, bei denen alle Variablen negiert vorkommen

Für andere Boolesche Funktionen: Zusammensetzen aus einfacheren Funktionen

Teilnetz durchgeschaltetgenau dann, wenn y =1

Teilnetz durchgeschaltetgenau dann, wenn y =0

y

P-Netz

N-NetzGND

VDD

x1

xn

Page 302: EinfTI Script 2013

39 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.7 Modellierung

Bisher: Transistor als idealer Schalter

verfeinertes Ersatz-Schaltbild: realitätsnäheres Modell mit Widerständen und Kapazitäten

Rp: Widerstand des P-Netzes: leitet das P-Netz, ist Rp klein, ansonsten groß Rn : Widerstand des N-Netzes: leitet das N-Netz, ist Rn klein, ansonsten groß CLast: Lastkapazität der am Ausgang angeschlossenen Schaltungen und Leitungen

VDD

Rp

Rn CLast

GND

Page 303: EinfTI Script 2013

40 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.8 Modellierung (2)

Da sich bei Reihenschaltungen von MOS-Transistoren die Widerstände addieren, sind zuviele in Reihe geschaltete Eingänge zu vermeiden

Aus physikalischen Gründen sind die Widerstände (im Leitungsfall) der PMOS-Transistoren größer als die der NMOS-Transistoren. Reihenschaltungen im N-Netz bevorzugt gegenüber P-Netz NAND-Schaltungen günstiger als NOR-Schaltungen für PMOS-Transistoren sind Parallelschaltungen günstiger

Um bei großem CLast noch genügende Schaltgeschwindigkeit zu erreichen, müssen u.U. zusätzliche Treiberstufen (z.B. Inverter) an den Ausgängen eingesetzt werden

Presenter
Presentation Notes
Da Löcher eine viel geringere effektive Beweglichkeit aufweisen als Elektronen ist die PMOS-Technologie langsamer als NMOS.
Page 304: EinfTI Script 2013

41 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.9 CMOS-Pegel

Versorgungsspannung

kann in weiten Grenzen schwanken TTL-kompatible Pegel möglich

Beispiel

Schaltungen empfindlich gegen Überspannungen (Entladungen)

Schutzschaltungen an den Eingängen integrierter Bausteine

5

32

V Eingang Ausgang

verbotenerPegelbereich

4,99 V

0,01 V

Page 305: EinfTI Script 2013

42 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.6 Pegelübersicht

CMOSTTL möglich, TTLCMOS nicht

Störabstand

Quelle: http://www.interfacebus.com/voltage_threshold.html

Page 306: EinfTI Script 2013

43 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

4.10 Zusammenfassung CMOS

Vorteile:

Im statischen Zustand keine Stromfluss fast keine Verlustleistung

Stromaufnahme im Wesentlichen durch Umladevorgänge bei Eingabewechseln bedingt (Kapazitäten!) Stromaufnahme wächst mit Frequenz der Eingangssignale bzw. mit der Taktfrequenz

Geringerer Platzbedarf pro Transistor kompaktere Bauweise, mehr Funktionen pro Chip

Nachteile:

Schutzschaltungen an Eingängen notwendig

langsamer (Kapazitäten!) als Bipolar-Schaltungen

Page 307: EinfTI Script 2013

44 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5 Halbleiter-Speicher (Memory)

Speicherzellen in k Worten zu je m Bits organisiert

Adressierung über Memory Address Register (MAR), Read/Write, Input, Output

Beispiel: k=4, m=3

Page 308: EinfTI Script 2013

45 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.1 SRAM-Speicher

RAM: Random Access Memory

Statisches RAM (SRAM)

Nutzung von FlipFlop/Latches

Min. 12 Transistoren Konservatives Design Grosse Fläche (viele Ts)

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Page 309: EinfTI Script 2013

46 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.1 SRAM-Speicher (2)

Nutzung von zwei rückgekoppelten Invertern

Zelle mit 6 Transistoren

Dimensionierung der Transistoren

Page 310: EinfTI Script 2013

47 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.1 SRAM-Speicher (3)

SRAM Zugriff

Es werden nur Nullen geschrieben M1 > M5 > M2 (W/L) M3 > M6 > M4 (W/L) Write:

1. Treibe Bit-Leitungen (bit, ) 2. Selektiere Reihe (WL) 3. Bit-Leitungen setzen Latch

Read: 1. Setze Bit-Leitungen auf VDD 2. Selektiere Reihe (WL) 3. Zelle hebt eine Bit-Leitung an,

senkt die andere Bit-Leitung ab 4. Sense-Amplifier an Spalte

detektieren Differenz zwischen Bit-Leitungen

bit

Page 311: EinfTI Script 2013

48 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.2 DRAM-Speicher

Speicherzelle aus Tortransistor und Kondensator (integriert in Transistor)

Write: 1. Treibe Bit-Leitung 2. Selektiere Reihe (Wort) 3. Lade Kondensator auf Bit-Wert

Read: 1. Setze Bit-Leitung auf VDD/2 2. vorselektiere Reihe 3. Zelle und Bit-Leitung teilen Ladung 4. Sense-Amplifier detektieren

Ladungsänderung (sehr empfindlich, ca. 0.2V) 5. Restauriere Bit-Wert

Refresh: dummy Read in jeder Zelle alle 10-20 msec

GND

Wortleitung

Tortransistor

Kondensator

Bitleitung

Page 312: EinfTI Script 2013

49 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.2 DRAM-Speicher (2)

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Page 313: EinfTI Script 2013

50 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.2 DRAM-Speicher (3)

Quelle: wikipedia.org

Page 314: EinfTI Script 2013

52 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.2 DRAM-Speicher (4)

Page 315: EinfTI Script 2013

53 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 DRAM-Typen

Standard-Zugriff

minimale Zugriffszeit: tRCD + tCAS 30-70 ns Zykluszeit: tRC = tRCD + tCAS + tRP 50-100 ns

Fast Page Mode (FPM): schnellerer Lese-Zugriff innerhalb einer Zeile

CAS-Zykluszeit =tCAS + Auslesen 40 ns typische Burst-Zugriffszeit (4 Worte): 5-3-3-3 bei max. 66 MHz Takt

Page 316: EinfTI Script 2013

54 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 DRAM-Typen (2)

Extended Data Out (EDO): Adressen- und Datenzugriff überlappen

CAS-Zykluszeit = tCAS 20 ns typischer Burst-Zugriff (4 Worte): 5-2-2-2 bei max. 66 MHz

Page 317: EinfTI Script 2013

55 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 DRAM-Typen (3)

Synchrones DRAM (SDRAM): Adressen- und Datenzugriff überlappen

taktsynchroner Zugriff interne Intelligenz (Befehlsregister,...) intern mindestens zwei Speicherbänke parallele Zugriffe Im burst mode (auch bei Schreiben) Daten im Taktzyklus: 6 - 8 ns typischer Burst-Zugriff (4 Worte): 5-1-1-1 bei max. 166 MHz

Page 318: EinfTI Script 2013

56 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 DRAM-Typen (4)

Double Data Rate (DDR-SDRAM, DDRRAM, DDRAM):

wie SDRAM, aber Zugriff bei steigender und fallender Taktflanke Im burst mode zwei Daten pro Taktzyklus: 2,5 ns typischer Burst-Zugriff (4 Worte): 5-0,5-0,5-0,5 bei max. 200 MHz

Page 319: EinfTI Script 2013

57 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.3 DRAM-Typen: Zusammenfassung

Fast Page Mode:

Für ein RAS werden mit schnell aufeinanderfolgenden CAS-Signalen verschiedene schon im Register befindliche Column-Informationen gelesen

EDO (Extended Data Out) RAM

lassen am Ausgang länger als CAS-Signal anliegt Daten gültig überlappende Zugriffe möglich (schneller!)

SDRAM: Synchronous DRAM

Clock (66, 100, ... 166 MHz) relevant für Timing, nicht mehr RAS/CAS eigene Intelligenz des Chips, Daten synchron zum Takt intern mindestens zwei Speicherbänke parallele Zugriffe

DDR-RAM: wie SDRAM, aber zwei Daten pro Takt (pos./neg. Flanke)

RDRAM: (RAMBUS): teuer, ähnlich schnell wie DDRRAMs (bis 3,2 GB/s)

Page 320: EinfTI Script 2013

58 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.4 DRAM Timing

asynchron synchron

Page 321: EinfTI Script 2013

59 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.4 DRAM Timing (2)

DDR-RAM synchron

Page 322: EinfTI Script 2013

60 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.5 DDR2 (Zukunft: DDR3)

Herstellungsprozess in 100 bis 130 nm FBGA-Chips (Fine-Pitch Ball Grid Array) daraus folgt: rund 50% kleinere Chips

(126 mm2 zu bisher 261 mm2) On Die Termination Modulgrößen von 128 MB bis 4 GB Vier Varianten: 200, 214, 240, 244 Pins Höhere Geschwindigkeiten (400 – 800 MHz) Höhere Bandbreite (siehe Tabelle) CAS-Latency von 3, 4, 5 Takten

(hohe Taktfrequenzen!) geringe Spannung (1,8 bzw. 1,5 Volt) deutlich geringerer Leistungsbedarf

(247 mW zu bisher 527 mW)

Page 323: EinfTI Script 2013

61 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.6 DDR2 (Zukunft: DDR3)

DDR2-Varianten und Klassifizierung

Chip-Klassifizierung

Modul-Klassifizierung

Frontside Bus

Speicher-geschwindigkeit

Bandbreite pro Modul

Bandbreite Dual-

Channel DDR2-400 PC2-3200 200 MHz 400 MHz 3,2 GB/s 6,4 GB/s

DDR2-533 PC2-4300 266 MHz 533 MHz 4,3 GB/s 8,6 GB/s

DDR2-667 PC2-5300 333 MHz 667 MHz 5,3 GB/s 10,6 GB/s

DDR2-800 PC2-6400 400 MHz 800 MHz 6,4 GB/s 12,8 GB/s

Page 324: EinfTI Script 2013

62 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.7 Speichermodule: DIMM

64 bit Dateninterface

n DRAM Chips pro DIMM, n = 64 bit / (Bitbreite Chip)

Registered DIMM

Reduzierung der Buslast Erhöhung der Latenz PLL für Taktregenerierung

ECC

8 bit für fehlerkorrigierenden Code Statt 64 bit jetzt 72 bit n+1 DRAM Chips pro DIMM, n = 64 bit / (Bitbreite Chip)

Page 325: EinfTI Script 2013

63 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.8 Speichermodule: RIMM

Rambus Double Data Rate (DDR-SDRAM, DDRRAM, DDRAM):

wie DDR-DRAM, aber

Getrennte Adressleitungen fuer Row und Column 16 bit Dateninterface (statt 64 bit bei DDR-DIMMs)

Hoher Strombedarf

Geringer Marktanteil

Teuer

Page 326: EinfTI Script 2013

64 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.9 Speichermodule: FB-DIMM

Fully-Buffered DIMM

Serielle Datenübertragung

Daisy Chain

Page 327: EinfTI Script 2013

65 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik

5.10 Fazit: Vergleich DRAM-SRAM

DRAM:

sehr hohe Packungsdichte Niedrige Kosten Refresh nötig (üblich 15,6 µs pro Zeile, ==> bei 1024 Zeilen 16

ms/Chip) Low Power (0,1-0,5 W aktiv, 10-25 mW Standby) wenige Anschlüsse (RAS, CAS, Output Enable, Write Enable)

SRAM:

niedrige Packungsdichte hohe Kosten (min. 4, i.a. 6 Transistoren/Zelle) schneller Zugriff (> 10 fach) i.a. höherer Stromverbrauch genutzt für Cache-Speicher

Page 328: EinfTI Script 2013

Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1

F ProgrammierbareLogikbausteine

1

Page 329: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung

Ebene 6

Ebene 5

Ebene 4

Ebene 3

Ebene 2

Ebene 1

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Physik

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 330: EinfTI Script 2013

3Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik

Ausgabeleitungen elektronischer Digitalschaltungen

0: geringe Spannung, geringer Stromfluss1: hohe Spannung, hoher Stromfluss

Ausgang soll sich gelegentlich elektrisch neutral verhalten

Beispiel: Bussystem verbindet Schaltwerke innerhalb eines Rechners

Busleitungen sollen zur Eingabe und zur Ausgabe benutzt werden

Schaltwerk

Schaltwerk

Schaltwerk

Bus

Page 331: EinfTI Script 2013

4Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (2)

Situation

Problem: zwei Ausgänge auf der selben Leitung

elektrisch: Kurzschluss je nach Ausgabewertbzw. Spannungen im verbotenen Bereich

Bus

...

...

...

...

Schaltwerk A Schaltwerk B

Page 332: EinfTI Script 2013

5Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (3)

Lösung: Tri-State-Puffer

Tri-State-Puffer auch mit invertiertem E-Eingang gebräuchlich

E

A Y A E Y 0 0 X 0 1 0 1 0 X 1 1 1

X = Ausgabe elektrisch neutral(floating, hochohmig)

E = enable

E

A Y A E Y0 0 00 1 X1 0 11 1 X

Page 333: EinfTI Script 2013

6Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (4)

Zugang zum Bus nur über Tri-State-Puffer

Schaltwerke können ausgewählte Ausgänge jeweils auf Bus schaltenbestimmter Datenaustausch kann gezielt ausgewählt werden

Bus

...

...

Schaltwerk B

...

...

Schaltwerk A

Page 334: EinfTI Script 2013

7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (5)

Zugang zum Bus nur über Tri-State-Puffer

Schaltwerke können ausgewählte Ausgänge jeweils auf Bus schaltenbestimmter Datenaustausch kann gezielt ausgewählt werden

Bus

...

...

Schaltwerk B

...

...

Schaltwerk A

Page 335: EinfTI Script 2013

8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 SPLD

Simple Programmable Logic Devices (SPLD)

einfache programmierbare Logikbausteine

Read Only Memory (ROM)

FestwertspeicherWerte bei Herstellung festgelegt

Programmable Read Only Memory (PROM)

Festwertspeichereinmalig durch Anwender programmierbar

3.1 ROM/PROM

Page 336: EinfTI Script 2013

9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 ROM/PROM (2)

Funktionsweise

Adressleitungen selektieren SpeicherzelleInhalt an Ausgabeleitung abgreifbar

Beispiel: 8 x 4 Bit ROM

a0a1a2

Adress-

d3 d2 d1 d0

Koppelelement

Dekoder1 0

mit Dioden

1 0

mit Transistoren

Vcc

Page 337: EinfTI Script 2013

10Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 ROM/PROM (3)

Beispiel: 8 x 4 Bit PROM

Einsatz von SicherungenProgrammiervorgang zerstört u.U. Sicherungen

Koppelelemente für PROM

mit Dioden

1 0

mit Transistoren

Vcc

1 0

Sicherung(Fuse)

Page 338: EinfTI Script 2013

11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 EPROM/EEPROM/Flash

Erasable Programmable Read Only Memory (EPROM)

Festwertspeicherelektrisch programmierbar (durch Überspannungen, ca. 25V)durch UV-Bestrahlung löschbar

Electrically Erasable Programmable Read Only Memory (EEPROM, E2PROM)

Festwertspeicherelektrisch programmierbarelektrisch löschbar

Flash-Speicher

Festwertspeicherähnlich EEPROM aber geringere Größenur blockweise löschbar

Page 339: EinfTI Script 2013

12Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 PROM als Schaltnetz

Schematische Darstellung eines PROM

Adressdekoder als feste UND-Matrix(Minterme über Adressleitungen)Koppelelemente als programmierbare ODER-MatrixAuch PLE genannt

Page 340: EinfTI Script 2013

13Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 PROM als Schaltnetz (2)

a1 = x1 a0 = x2 b1 = x3 b0 = x4 y3 y2 y1 y0 0 x 0 = 0 0 0 0 0 0 0 0 0 0 x 1 = 0 0 0 0 1 0 0 0 0 0 x 2 = 0 0 0 1 0 0 0 0 0 0 x 3 = 0 0 0 1 1 0 0 0 0 1 x 0 = 0 0 1 0 0 0 0 0 0 1 x 1 = 1 0 1 0 1 0 0 0 1 1 x 2 = 2 0 1 1 0 0 0 1 0 1 x 3 = 3 0 1 1 1 0 0 1 1 2 x 0 = 0 1 0 0 0 0 0 0 0 2 x 1 = 2 1 0 0 1 0 0 1 0 2 x 2 = 4 1 0 1 0 0 1 0 0 2 x 3 = 6 1 0 1 1 0 1 1 0 3 x 0 = 0 1 1 0 0 0 0 0 0 3 x 1 = 3 1 1 0 1 0 0 1 1 3 x 2 = 6 1 1 1 0 0 1 1 0 3 x 3 = 9 1 1 1 1 1 0 0 1

PROM kann Schaltfunktionen implementieren

Wahrheitstabelle in Hardware abgebildetPROM mit 2m Worten à n Bit kannn Schaltfunktionen mit je m Eingängen realisierenkeine Minimierung

pro Wertekombination der Eingänge wird ein Ergebnis direkt programmiert

Beispiel: 2x2-Multiplizierer

Wahrheitstabelle siehe Folie C-68Werte in PROM „brennen“

Page 341: EinfTI Script 2013

14Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 PAL

Programmable Array Logic (PAL)

frei programmierbare UND-Matrixfeste ODER-MatrixAnzahl der UND-Gatter pro ODER-Gatter fixiertkann jede minimierte Schaltfunktion realisieren

Voraussetzung: Anzahl der Produktterme pro Schaltfunktion klein genug

Page 342: EinfTI Script 2013

15Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 PAL (2)

Begriff PAL

eingetragenes Warenzeichen der Fa. AMD bzw. Lattice

Technik

ursprünglich in TTL- später auch CMOS-Technikursprünglich einmalig programmierbarheute zum Teil auch löschbare Varianten

Varianten

normaler oder invertierter AusgangFlip-Flops an den Ausgängengetaktet oder ungetaktete Flip-FlopsRückkopplung der Ausgänge als interne EingängeTri-State-Ausgänge

Page 343: EinfTI Script 2013

16Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Page 344: EinfTI Script 2013

17Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Schaltfunktion

Page 345: EinfTI Script 2013

18Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

programmierbarerInverter

Page 346: EinfTI Script 2013

19Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

D-Flip-FlopTakt durchProduktterm

Page 347: EinfTI Script 2013

20Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Ausgangsmultiplexermit oder ohneFlip-Flop

Page 348: EinfTI Script 2013

21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Tri-State-Ausgang

Page 349: EinfTI Script 2013

22Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Rückkopplungdes Ausgangs

Page 350: EinfTI Script 2013

23Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL

Generic Array Logic (GAL)

Markenzeichen der Fa. LatticeFunktionsweise wie PAL jedoch flexible AusgabelogikBeispiel: Output Logic Macro Cell (OLMC)

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

paralleles Ladender Flip-Flops

Page 351: EinfTI Script 2013

24Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 GAL (2)

Begriff GAL

Markenzeichen der Fa. Lattice

Technik

ausschließlich CMOSwiederprogrammierbar durch E2CMOS-Technologie (ähnlich EEPROM)

Page 352: EinfTI Script 2013

25Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.5 PLA

Programmable Logic Array (PLA)

frei programmierbareUND-Matrixfrei programmierbareODER-Matrixkann beliebige Schaltfunktionen realisieren

Voraussetzung: Anzahl der Produktterme ausreichend

Page 353: EinfTI Script 2013

26Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 CPLD

Complex Programmable Logic Device (CLPD)

Alternativbezeichnungen(Markennamen):EPLD, EEPLD, PEEL, MAX, SuperPAL, MegaPAL ...

Aufbau

Zusammenfassung der Funktionalität bis zu etwa 100 GAL-BausteineMakrozellen für Berechnung der SchaltfunktionenMakrozellen für Ausgabelogik (I/O-Blocks)

Verschaltung der internen GALs mit einer programmierbaren Zuordnungsmatrix (vollständige oder unvollständige Verschaltung)„Borgen“ zusätzlicher UND-Glieder für Produkttermeaus anderen Makrozellen möglichProgrammierung wie EPROM, EEPROM oder Flash-ROM

PLOE

D+

XOR (n)AP

AR

Q 01

PL PD

Y(n)

Page 354: EinfTI Script 2013

27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 CPLD (2)

Blockschaltbild

Logik-block

Logik-block

Logik-block

Schalt-matrix

Page 355: EinfTI Script 2013

28Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 FPGA

Field Programmable Gate Array (FPGA)

Alternativbezeichnungen (Markenzeichen):LCA, pASIC, FLEX, APEX, ORCA, SPGA ...

Hersteller: Xilinx, Altera, Lattice, Actel, Quicklogic

Aufbau

bis zu mehreren 100.000 Makrozellen für Schaltfunktionen und Flip-Flops

große oder kleine Logikzellen

programmierbare Kommunikationsinfrastruktur zwischen den Zellen (unvollständig)

Programmierung wie EPROM, EEPROM oder Flash-ROM

Programmierung mit flüchtigem Speicher (RAM)

Hochfahren des FPGA durch externen Speicher (z.B. PROM)

Umprogrammierung im laufenden Betrieb möglich

Programmiersprachen: Verilog, VHDL, herstellerspez. Sprachen, Hardware C

Selbstkonfigurierende Systeme (Supercomputing)

Page 356: EinfTI Script 2013

29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 FPGA (2)

Blockschaltbild

programmierbare

programmierbaresVerbindungsnetzwerk

programmierbareEin-/Ausgabelogik

Logikzellen

Page 357: EinfTI Script 2013

30Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Fazit

SPLD

Einmal/mehrmals programmierbar

Abbildung der DNF

CPLD

Arrays von SPLDs

Programmierbare Verschaltung

Deterministische Laufzeit

EDA: Place und Route

(Meistens) nichtflüchtig

FPGA

Programmierung über LUTs

Nicht det. Laufzeit der Verschaltung

EDA: Place, Route und Post Layout Simulation

Timing closure

(Meistens) flüchtig

Aussen vor: ASICs

Page 358: EinfTI Script 2013

1Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

G Zahlendarstellung & Kodierung

Page 359: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Einführung

Page 360: EinfTI Script 2013

3Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1.1 Zeichenketten

Def: ein Zeichen c (engl. character) ist ein Element einer vereinbarten endlichen, nicht-leeren Menge (Zeichenvorrat): c ∈ {c1,c2,…,cm}

Beispiele: grün ∈ {rot, grün, blau}, Do ∈ {Mo, Di, Mi, Do Fr}Ein Alphabet Σ ist ein Zeichenvorrat, auf dem eine lineare Ordnung (Reihenfolge) für die Zeichen definiert ist

Beispiele: {0,1}, 0<1; {A,B,C,D,….,Z}, A<B<C<….<Z;Dann heißt eine endliche Folge w=a1…an von Zeichen eines Alphabets Σ Wort oder Zeichenkette (engl. string) über Σ

IwI = n bezeichnet die Länge der ZeichenketteDas leere Wort (ε oder „“) hat die Länge 0

Außerdem bezeichnetΣ* die Menge aller Zeichenketten über ΣΣ+ die Menge aller nichtleeren Zeichenketten über ΣΣn die Menge aller Zeichenketten der Länge n über Σ

Beipiel: Σ={0,1}, Σ*= {0,1}* = {ε, 0,1,00,01,10,11,000,001, ….}

Page 361: EinfTI Script 2013

4Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1.1 Bitfolgen

Für Σ = {0,1} heißen die Elemente der Menge Σn n-Bit-Wörter oder Binärwörter der Länge nInformationen i.a. nicht bitweise, sondern in größeren Einheiten (i.a. Bitfolgen, bei fester Länge auch Bitvektoren ) zusammengefasstBesondere Bitfolgen bestimmter Länge

Byte: Kleinste adressierbare Einheit im Arbeitsspeicher heutiger Rechner

Bytes im Speicher fortlaufend numeriert

Länge n in Bit Bezeichnung Anzahl versch.

Wörter Anwendung

1 Bit (b) 2

3 Triade 23 = 8 Oktalziffern

4 Tetrade, Halb-Byte, Nibble 24 = 16 Hexadezimal/Dezimalziffern

8 Byte 28 = 256 Zeichen / Buchstaben

7 6 5 4 3 2 1 0

Linkes HalbbyteHigh Nibble

Rechtes HalbbyteLow Nibble

Numerierung der Bits im Byte (umgekehrte Reihenfolge

ebenfalls anzutreffen)

Page 362: EinfTI Script 2013

5Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1.2 Maschinenwörter

Hardware eines Rechers verwaltet i.a. nur Binärwörter fester Längen (Maschinenwörter)Längen durch verschiedene Faktoren bestimmt:

Länge der kleinsten im Speicher adressierbaren EinheitLänge der vom/zum Speicher übertragenen EinheitenLänge der Verarbeitungseinheiten des Prozessors (für elementare Datentypen)Breite der Datenpfade und Ein-/Ausgabe-Schnittstellen

Übliche Maschinenwortlängen sind (heute) Vielfache von Bytestypisch: 32 Bit (4 Bytes) („32 Bit Prozessor“)auch 8 und 16 Bit bei einfachen Microcontrollern 64 bzw. 128 Bit bei derzeitigen Hochleistungs- (Intel Itanium, AMD Opteron, …) oder Grafik-Prozessoren Entsprechend Halbwort, Doppelwort, Vierfachwort

Page 363: EinfTI Script 2013

6Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1.2 Maschinenwörter

Bitpositionen (typisch)

Byte Ordering: Technisch 2 unterschiedliche AdressierungsweisenBig-Endian: höherwertiges Byte an niedrigerer Adresse

Beispiele: Sun SPARC, Motorola, IBM RS6000Little-Endian: niederwertigeres Byte an niedrigerer Adresse

Beispiele: Intel X86, DEC VAX, MIPS R3000

Byte-Adressen n n+1 n+2 n+3Big-Endian

Little-Endian

Wortbreite

n-1 0

LSB = Least Significant Bit

MSB = Most Significant Bit

höchstwertiges Bytehöchstwertiges Byte

Page 364: EinfTI Script 2013

7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Zahlensysteme

Page 365: EinfTI Script 2013

8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Zahlensysteme

ArithmetikMenschen: rechnen gewöhnlich im DezimalsystemComputer: rechnen gewöhnlich im Dual(zahlen)system==> Konvertierung erforderlich

Zahlensysteme: Grundlage: Stellenwertsysteme (B-adische Systeme)Jede natürliche Zahl n ∈ N ist darstellbar durch: n =mit B ∈ N, B ≥ 2 : Basisbi: Koeffizienten bi ∈ {0, …, B-1} (Ziffern)k: größter Index (nur endlich viele bi ≠ 0)Bi: Stellenwert der i-ten Stelle in Zahl n = (bkbk-1…bo)B

führende Nullen werden unterdrücktKoeffizientenfolge (bi) bei gegebener Basis eindeutig bestimmt

Angabe der Basis B

∑ biBii=0

k

Page 366: EinfTI Script 2013

9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Wichtige B-adische Zahlensysteme

für InformatikBasis Zahlensystem Ziffern10 Dezimalsystem 0, …, 92 Dual-/Binärsystem 0,18 Oktalsystem 0, …, 716 Hexadezimalsystem 0, …, 9, A,B,C,D,E,F

Beispiel: Darstellung der Zahl 31103110 = 3 * 101 + 1 * 100

1115 = 1 * 52+ 1 *51 + 1 * 50

111112 = 1 * 24 + 1 * 23 + 1 * 22 + 1 * 21 + 1 * 20

378 = 3 * 81 + 7 * 80

1F16 = 1* 161 + F * 160 (F = 1510)Anmerkung: bei größerer Basis

weniger Ziffern für Darstellung benötigt (kompakter!)Aber: „kleines Einmaleins“ umso schwieriger

A 1010B 1110C 1210D 1310E 1410F 1510

Page 367: EinfTI Script 2013

10Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Darstellung rationaler Zahlen

BrücheDarstellung durch negative Exponenten: z =

==> für rationale Zahl X (und zur Approximation reeller Zahlen)x = = +

bzw. in Kurzform der signifikanten Koeffizienten (Ziffern):

x = (bkbk-1 …. b1 b0, b-1 … b-m)B

Alternativ (wichtig für Konvertierung zwischen Zahlensystemen !):

Horner-Schema (entsteht durch fortgesetztes Ausklammern)

Für natürliche Zahlen

n = = ((…(bk *B + bk-1) * B + … + b2) * B + b1) *B +b0

Für gebrochenen Anteil

z = = ((…(b-m/B + b-m+1) / B + ….+ b-2) / B + b-1) / B

∑ biBii= -m

-1

∑ biBii= -m

k∑ biBii=0

k∑ biBii= -m

-1

∑ biBii= 0

k

∑ biBii= -m

-1

Page 368: EinfTI Script 2013

11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Konvertierung zwischen Zahlensystemen

Aufgabefür natürliche Zahl n ∈ N gegeben: Darstellung in Ausgangsbasis B‘ (hier häufig 10 oder 2)gesucht: Darstellung von n in Zielbasis B (hier häufig 10,16 oder 2)analog für Brüche z bzw. rationale Zahlen x

Methoden basieren aufPotenzreihen-Darstellung (Euklidischer Algorithmus)Horner-Schema

UnterscheidungRechnen im AusgangssystemRechnen im Zielsystem

Page 369: EinfTI Script 2013

12Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Euklidischer Algorithmus

Grundlage:

x = = bP*BP+bP-1*BP-1+ ....+ b1*B+b0+b-1*B-1+...+b-m*B-m

Prinzip Rechnen im Ausgangssystem (Zielbasis B)Division durch fallende Potenzen der ZielbasisZiffern werden sukzessiv berechnet, beginnend mit höchstwertiger Ziffer

Verfahren(1) Berechne P gemäß BP ≤ x < BP+1 (setze dann i = P, Xi =x)(2) Ermittle bi und den Rest Ri durch Division von Xi durch Bi

bi = Xi / Bi ; Ri = Xi mod Bi ( x : größte ganze Zahl ≤ x )(3) Setze Xi = Ri

Wiederhole Schritt (2) für i = P-1, .... , bis Ri = 0 oder Bi (und damit der Umrechnungsfehler) klein genug

∑ biBii= -m

P

Page 370: EinfTI Script 2013

13Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Euklidischer Algorithmus: Beispiel 1

Konvertiere 12210 zur Basis B=227 = 128; 26 = 64; 25 = 32; 24 = 16;23 = 8; 22 = 4; 21 = 2; 20 = 1; ==> P = 6Algorithmus

==> 12210 = 11110102

Page 371: EinfTI Script 2013

14Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Euklidischer Algorithmus: Beispiel 2

Konvertiere 12210 zur Basis B = 553 = 125; 52 = 25; 51 = 5; 50 = 1; ==> P = 2Algorithmus

==> 12210 = 4425

Page 372: EinfTI Script 2013

15Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Euklidischer Algorithmus: Beispiel 3

Umwandlung von 15741,23310 ins Hexadezimalsystem (B=16)

==> 15741,23310 ≈ 3D7D,3BA516

Page 373: EinfTI Script 2013

16Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.3 Horner-Schema

Anwendung üblicherweise zur Umwandlungvon Dezimalsystem in System zur Basis Bgetrennt für natürliche Zahl n und Bruch

Grundlage: (für natürliche Zahl n ∈ N )

n = = ((…(bk *B + bk-1) * B + … + b2) * B + b1) *B +b0

Verfahren ( für n ∈ N )Rechnen im Ausgangssystem (Dezimalsystem)Sukzessive Division der gegebenen Dezimalzahl durch die Basis Bdie jeweiligen ganzzahligen Reste ergeben die Ziffern der Zahl nB von der niedrigstwertigen zur höchstwertigen Stelle

∑ biBii= 0

k

Page 374: EinfTI Script 2013

17Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.3 Horner-Schema: Beispiele

Wandle 1574110 ins Hexadezimalsystem1574110 / 16 = 983 Rest 13 (D16)

98310 / 16 = 61 Rest 7 (716)6110 / 16 = 3 Rest 13 (D16)

310 / 16 = 0 Rest 3 (316)==> 1574110 = 3D7D16

Wandle 12210 ins Dualsystem12210 / 2 = 61 Rest 0

6110 / 2 = 30 Rest 13010 / 2 = 15 Rest 01510 / 2 = 7 Rest 1710 / 2 = 3 Rest 1310 / 2 = 1 Rest 1110 / 2 = 0 Rest 1

==> 12210 = 11110102

Ablesefolgeder Ziffern

Page 375: EinfTI Script 2013

18Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.3 Horner-Schema: Nachkommateil

Grundlage: gebrochener Anteil im Horner-Schemaz = = ((…(b-m/B + b-m+1) / B + ….+ b-2) / B + b-1) / B

damit Verfahrensukzessive Multiplikation des Nachkommateils der Dezimalzahl mit der Basis B des Zielsystemsaus ganzzahligem Anteil der Ergebnisse erhält man nacheinander von höchstwertiger zu niedrigstwertiger die Nachkommaziffern b-i,(im Zielsystem zu schreiben)

Beispiel: Umwandlung von 0,23310 ins Hexadezimalsystem0,23310*16 = 3,728 b-1 = 316

0,72810*16 = 11,648 b-2 = B16

0,64810*16 = 10,368 b-3 = A16

0,36810*16 = 5,888 b-4 = 516

Abbruch bei genügend hoher Genauigkeit==> 0,23310 ≈ 0,3BA516

∑ biBii= -m

-1

Page 376: EinfTI Script 2013

19Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.4 Umwandlung: Basis B -> Dezimalsystem

Werte der einzelnen Stellen der umzuwandelnden Zahl xB werden im Zielsystem (Dezimalsystem) dargestellt und nach Stellenwert-gleichung aufsummiert:

xB = = bP*BP+bP-1*BP-1+ ....+ b1*B+b0+b-1*B-1+...+b-m*B-m

Beispiel: Konvertiere 101101,11012 ins Dezimalsystem1 * 25 = 320 * 24 = 01 * 23 = 81 * 22 = 40 * 21 = 01 * 20 = 11 * 2-1 = 0,51 * 2-2 = 0,250 * 2-3 = 01 * 2-4 = 0,0625

==> 101101,11012 = 45,812510

∑ biBii= -m

P

Page 377: EinfTI Script 2013

20Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.4 Beliebige Stellenwertsysteme

Umwandlungzuerst in Dezimalsystemdann mit Euklidischem Algorithmus oder Horner-Schema ins Zielsystem

Spezialfall: eine Basis Potenz der anderen Basismehrere Stellen können zu einer Ziffer zusammengefasst werden oder eine Stelle kann durch Folge mehrerer Ziffern ersetzt werdenBeispiel: Hexadezimalsystem

24 = 16 ==> 4 Dualstellen ↔ 1 HexadezimalstelleUnmittelbare Umwandlung zum/vom DualsystemBeispiel: Wandlung von 00110100,110101002 ins Hexadezimalsystem

= ( 3 4 , D 4 )16

Besser lesbar als Dual-Darstellung derselben ZahlBreite Anwendung in der DV– Angabe von Arbeitsspeicher-Adressen– Inhalte von Maschinenwörtern– Operanden für Bitfeld-Operationen– C-Notation: Beispiel 0xFFFF

Page 378: EinfTI Script 2013

21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Kodierung

Page 379: EinfTI Script 2013

22Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Kodierung von Informationen

Ziel: sinnvolle Darstellung zu übertragender (speichernder) Information

Shannon:

„Das grundlegende Problem der Kommunikation besteht darin, an einer Stelle genau oder angenähert eine Nachricht wiederzugeben, die an einer

anderen Stelle ausgewählt worden ist.“

Kodierungsarten:

• Quellkodierung(Schicht 6 und 7)

• Kanalkodierung(Schicht 2 und 4)

• Leitungskodierung(Schicht 1)

Kodierung der ursprünglichen Nachricht

z.B. ASCII-Code (Text), TIFF (Bilder), PCM (Sprache), MPEG (Videos), ...

Physikalische Darstellung von Digitalsignalen

Darstellung der zu übertragenden Daten in Codewörtern, die den Eigenschaften des Übertragungskanals angepasst sind (u.a. Redundanz).

Sicherung gegen Übertragungsfehler durch fehlererkennende bzw. -korrigierende Codes

Page 380: EinfTI Script 2013

23Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Beispiel Quellcodierung: PCM

Pulscodemodulation (PCM)Umwandlung analoge in digitale Signale (Sprach-Übertragung)gleichmäßige Abtastung des AnalogsignalsAbtasttheorem (Nyquist):

Abtastrate: min. 2 x Grenzfrequenz des UrsprungssignalsGrenzfrequenz des Telefons: 3,4 kHz ⇒Abtastrate 8000 Hz

Jeder Abtastwert mit 8 Bit quantisiert (digital dargestellt)⇒ Sprachdatenstrom hat Datenrate von 8 Bit x 8000/s = 64 kBit/s

+ 4

+ 3

+ 2

+ 1

- 1

- 2

- 3

- 4 Q

uant

isie

rung

sber

eich

Intervall-nummer

Binär-code

111

110

101

100

000

001

011

010

Zeit Abtast-zeitpunkte

T

Ursprungssignal rekonstruiertes Signal

Abtastfehler

erzeugter Pulscode

Beispiel (Vereinfachung: Quantisierung mit 3 Bit)

erzeugter Pulscode 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1

Page 381: EinfTI Script 2013

24Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Kodierungen von Zahlen und Zeichen

Codes oder Kodierungen sind Abbildungen c: A→B oder c: A*→B* zwischen Zeichenvorräten A und B oder Wörtern über ZeichenvorrätenDie Bildmenge { b ∈ B I b=c(a), a ∈ A } unter c, d.h. die Menge aller Codewörter von c, heißt ebenfalls CodeAusgangszeichen sind Klarzeichen, Zielelemente Codezeichen/CodewörterEine Kodierung erlaubt für dieselbe betrachtete Information den Übergang von Zeichen und Wörtern eines gegebenen Repräsentationssystems zu solchen eines neuen RepräsentationssystemsZur Informationsdarstellung in Rechnersystemen werden fast ausschließlich Binär-Kodierungen (Binär-Codes) von Alphabeten verwendet, d.h. der Form c: A→ {0,1}*, wobei A ein vorgegebenes Alphabet istZiele:

Repräsentationssysteme zur Speicherung, Verarbeitung und Übertragung von InformationenEffizienz bei Kodierung, Speicherung und VerarbeitungSicherung gegen Verfälschung (Fehlererkennnung/-korrektur)Geheimhaltung von Informationen (Verschlüsselung)

Page 382: EinfTI Script 2013

25Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Block-Codes

Ein Code c: A→Bn, dessen Codewörter alle die gleiche Länge n haben, heißt (n-stelliger) Block-Code

Die Anzahl der möglichen Codewörter eines Blockcodes c: A→Bn

beträgt IBIn (IBI = Anzahl Zeichen in B)Ein n-stelliger Block-Code ist dicht, wenn alle b ∈ Bn Codewörter unter c darstellen (c surjektiv)Binäre Block-Codes c: A→ {0,1}n sind für Rechensysteme beson-ders geeignet, da die Codewörter n-Bit-Maschinenwörtern entsprechen Ist IAI=m, d.h. A besteht aus m Zeichen, so benötigt man für einen binären Block-Code c: A→ {0,1}n mindestens n = log2mStellen( x bedeutet „kleinste ganze Zahl ≥ x“)

Page 383: EinfTI Script 2013

26Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 BCD-Kodierung

Binärdarstellung der 10 Dezimalziffern (z.B. Tastatur-Eingabe)

Zur Kodierung der 10 Ziffern werden log210 = 4 Bit benötigt, d.h. Tetraden ==> Tetradenkodierung6 der 16 möglichen Kodierungen stellen keine gültigen Dezimal-ziffern dar (Pseudotetraden), BCD-Code nicht dichtKodierung der Dezimalziffern durch Dual-Äquivalent: BCD (Binary Coded Decimal)-Kodierung Beispiel: Dezimalzahl 812710

als BCD-Zahl: 1000 0001 0010 0111BCD

als Dualzahl: 0001 1111 1011 11112

Vorteil: Zahlen leicht zu lesenNachteile:

nicht-optimale Speicherplatz-NutzungProbleme bei Ausführung arithmetischer Operationen

Page 384: EinfTI Script 2013

27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Codebaum

Jeder Binär-Code kann graphisch durch einen binären Codebaumdargestellt werden, indem jeder Stelle im Codewort eine Schicht im Baum und jedem Binärwert ein linker und ein rechter Unterbaum zugeordnet werdenBeispiel (Codebaum des BCD-Codes)

Page 385: EinfTI Script 2013

28Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.5 Gewichtete Codes

Ein binärer Block-Code c: A→ {0,1}n heißt gewichtet, wenn Stellen der Codewörter Gewichte Wi zugeordnet: Wert der dargestellten Zahl z aus

z = (bi: der Zahl z zugeordnete Koeffizienten)Andernfalls heißt der Code Anordnungscode (ungewichtet)Beispiele: gewichtete BCD-Codes

∑ bi Wii= 0

n

Wi

Page 386: EinfTI Script 2013

29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.5 gewichtete BCD-Codes: Eigenschaften

Aiken-CodePseudotetraden liegen in der Mitteselbst-komplementierend (Vertauschen 0-1 ergibt Komplement)monoton wachsendRundungserkennung (> 5, < 5) am vordersten BitÜbertrag stimmt mit Dezimal-Übertrag überein

2-aus-5-Codebis auf 0 monoton wachsendfehlererkennendEinsatz: Strichcode (5 Striche, 3 schmal 2 breit) (Postleitzahlenkod.)

1-aus-10-Ring-Codemonoton wachsendsehr übersichtlichgroßer AufwandEinsatz: Anzeigen, numerische Tastaturen

Page 387: EinfTI Script 2013

30Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.6 Gray-Kodierung

Aufeinanderfolgende Zahlen so durch Bits codiert, dass sich stets nur ein Bit ändert (sogen. einschrittige Kodierung)Vorteile für A/D-Wandlung und fehleranfällige mechanische AbtasterStellen besitzen keine feste Stellenwertigkeit (ungewichtet)Code-Tabelle:

Ausführung arithmetischer Operationen schwierig

Page 388: EinfTI Script 2013

31Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.7 Codes variierender Länge

Code c: A→B* mit Codewörtern verschiedener Längenheißt variabel langer Code oder Code variierender LängeBeispiel: Impulswahlverfahren beim Telefon c: {0,…,9} →{O,L}*

Ziffer Code1 LO2 LLO3 LLLO4 LLLLO5 LLLLLO6 LLLLLLO7 LLLLLLLO8 LLLLLLLLO9 LLLLLLLLLO0 LLLLLLLLLLO

Vorteil: Häufige Zeichen aus A durch kurze Codewörter darstellbarProblem: Trennen der Codewörter voneinander ist schwierigerCodes nur sinnvoll, wenn sie eindeutig decodierbar sind, d.h.jede Folge von Zeichen aus B kann eindeutig in eine Folge von gültigen Codewörtern zerlegt werden

Page 389: EinfTI Script 2013

32Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.8 Fano-Bedingung

wichtig: sofort decodierbare Codes, d.h. Zeichenfolgen aus Codeworten können von vorne beginnend eindeutig Wort für Wort decodiert werden, ohne nachfolgende Zeichen zu beachtenCodes sind sofort dekodierbar, wenn Fano-Bedingung erfüllt:Kein Codewort ist Präfix (Anfangsstück) eines anderen Codeworts

bedeutet: zu codierende Zeichen treten im Codebaum nur als Blätter aufCodes mit erfüllter Fano-Bedingung heißen auch präfixfreiJeder Blockcode der Länge n erfüllt Fano-Bedingung automatisch: Zur Dekodierung jeweils Blöcke von n Codezeichen gebildet u. dekodiert

Beispiel: BCD-Kodierung der dezimalen Ziffern in Tetraden

Beispiel: C = {0, 10, 011, 11111} ist eindeutiger Code, aber nicht sofort decodierbarZu jedem eindeutigen Code existiert ein sofort decodierbarer Code,der nicht "länger" ist

Page 390: EinfTI Script 2013

33Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 Komprimierende Codes

Page 391: EinfTI Script 2013

34Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 Komprimierende Codes

Ziele komprimierender CodesLängenreduktion der kodierten Information durch KompressionKostenersparnis

Anwendung: Speicherung und Übertragung von Informationen

hier behandelt: Verlustfreie Kodierungen, die vollständige korrekte Dekodierung ermöglichen (z.B. für Text, Programme, Daten, …)

VariantenLauflängenkodierung (Run Length Encoding)Wörterbuch-KompressionHuffman-CodierungArithmetische Kodierung

Page 392: EinfTI Script 2013

35Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.1 Lauflängenkodierung

(engl.: Run Length Encoding, RLE)Viele Daten enthalten Läufe, d.h. Folgen identischer ZeichenIdee: Folge identischer Zeichen durch (Anzahl, Zeichen) kodierenProblem:

Unterscheidung der Anzahlangabe von Daten gleicher RepräsentierungRLE kodiert Läufe beliebiger Zeichen typischerweise durch

(Zeichen, Marker, Anzahl) => sinnvoll nur bei Anzahl > 3Marker in Daten kodiert durch (Marker, Marker)

Beispiel: Marker: # Daten „AAABBBBBBBCDDEEEEEEEEEEEF#34777777“kodiert: „AAAB#7CDDE#11F##347#6“ (komprimiert)

Vereinfachung in Sonderfällen möglichz.B. bei 7-Bit-Zeichen ==> MSB-Bit als Markierung des ZählersAnwendungs-Spezialfall: Null-Unterdrückung

Page 393: EinfTI Script 2013

36Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Wörterbuch-Kompression (Lempel-Ziv)

Wörterbuch mit Tupeln (Phrase, Codewort) wird schrittweise erzeugt

Phrase: Folgen von Eingabezeichenerzeugte Codewörter enthalten Verweise in das Wörterbuch

Vorteileadaptiv (selbstanpassend)optimal, wenn Tabelle beliebig groß und Eingabe unendlich lang

Problem: Datenstruktur für das WörterbuchTabelle, Baum, Hash-Funktion

Verfahren:LZ77 (Lempel, Ziv, 1977), neuere Varianten pkzip, gzipLZ78 (Lempel, Ziv, 1978), Baum statt Tabelle als BasisLZW (Lempel, Ziv, Welch 1984), komplexeres Tabellenverfahren,Basis von compresshttp://goethe.ira.uka.de/seminare/redundanz/vortrag05/

Page 394: EinfTI Script 2013

37Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Lempel-Ziv

Beispiel:Zeichenfolge A A A B A A B A A B A A A B B . . . . . .

Wörterbuch und erzeugter Code:Eintrag#PhraseCodewort

LZW (entwickelt bei Unisys)sehr schnell, sowohl bei Kompression wie Dekompressionauf alle Arten von Ausgangsdateien anwendbar Anwendung bei verschiedensten (Grafik)formaten:

GIF (Graphics Interchange Format): Lizenz CompuServe, nur 256 Farben (8 Bit)PNG (Portable Network Graphics): ab Mitte 90er Jahre, lizenzfrei, bis 48 Bit Farbtiefe TIFF (Tagged Image File Format): gut für S/W od. Graustufen oder Bilder mit großen Flächen gleicher FarbeV42bis: Modem StandardPostscript Level 2

1A

(0,A)

3B

(0,B)

2AA

(1,A)

4AAB(2,B)

5AABA(4,A)

6AABB(4,B)

...

...(...)

Page 395: EinfTI Script 2013

38Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Informationsgehalt (Entropie)

Was ist Information? (<== Informationstheorie)Definition: Der mittlere Informationsgehalt (Entropie) eines Zeichens wird definiert durch

mit N - Anzahl der verschiedenen Zeichenpi - Häufigkeit des Zeichens i (i=1,...,N)a - Basis (für Binärdarstellung/Bits = 2)

Anschaulich:„Die Entropie gibt an, wie überrascht wir sind, welches Zeichen als nächstes kommt“

ppppi

N

iaii

N

iai

111

loglog ∑∑==

=−

Beispiel 1:Gegeben: 4 Zeichen, alle N=4 Zeichen gleich häufig (pi = 0,25 ∀ i) ⇒ Entropie

→ es existiert keine bessere Codierungals mit 2 Bits/Zeichen

[ ]biti

24425,0 loglog 2

4

12

==∑=

Beispiel 2:Gegeben: 4 Zeichen, 1. Zeichen hat Häufigkeit p1=1, p2 = p3 = p4 =0⇒ Entropie

→ Entropie = 0 [bit]

000111 log*3limlog02

=+=+→ pp ap

Page 396: EinfTI Script 2013

39Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Informationsgehalt (2)

Die Entropie (Basis 2) gibt an, wie viele Bits man mindestens zur Codierung benötigt.Gute Annäherung an das theoretische Minimum (für mittlere Codewortlänge)

Aufbau eines binären Baumszu codierende Zeichen als Blätter des Baumes

Beispiel: Codierung der DNA-BausteineA – Adenin p(A) = 0,5C – Cytosin p(C) = 0,3G – Gyanin p(G) = 0,15T – Thymin p(T) = 0,05 Entropie 1,65 Bit ⇒ Codierung mit wenigerals (im Mittel) 2 Bit pro Zeichen möglich

Mittlere Codewortlänge w = (wi := Codewortlänge des Wortes i)

Für Beispiel: w = 0,5 + 0,6 + 0,45 + 0,15 = 1,7 Bits

10

10

10

(0,5)A(0,5)

(1,0)

C(0,3)(0,2)

G(0,15) T(0,05)∑ piwii= 1

N

Page 397: EinfTI Script 2013

40Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Huffman-Code (1)

präfix-freier CodeBedingung: Häufigkeit des Auftretens aller Zeichen ist bekanntArbeitsweise: häufiger auftretende Zeichen werden kürzer codiert als seltenere

1. Liste alle Zeichen zusammen mit ihrer Häufigkeit auf2. Wähle die zwei Knoten mit den geringsten Häufigkeiten3. Mache sie zu Blättern eines binären Teilbaumes, wobei die

Häufigkeiten für beide Knoten addiert werden4. Füge den Teilbaum statt der Knoten wieder in die Liste ein5. Wiederhole Schritte 2 bis 4, bis nur ein Baum vorhanden6. Markiere alle Kanten:

Vater → linker Sohn mit "0"Vater → rechter Sohn mit "1“

7. Das Codewort ergibt sich aus dem Pfad von der Wurzel zum Blatt

Page 398: EinfTI Script 2013

41Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Huffman-Code – Beispiel 1

A = { a, b, c, d, e, f } mitGegebene relativen Häufigkeiten:(0.1, 0.15, 0.25, 0.05, 0.2, 0.25)

Page 399: EinfTI Script 2013

42Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Huffman-Code – Beispiel 1 (2)

Page 400: EinfTI Script 2013

43Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Huffman-Code – Beispiel 1 (3)

Entropie = 2,42Bestimmung der mittleren Codewortlänge:

Zeichen: a b c d e fRel. Häufigkeit: 0.1 0.15 0.25 0.05 0.2 0.25Länge [Bits]: 4 3 2 4 2 2==> mittlere Codewortlänge = 0.4 + 0.45 + 0.5 + 0.2 + 0.4 + 0.5 = 2.45 Bits

Bei Verwendung eines Blockcodes wären [log2(6)] = 3 Bits nötig

Page 401: EinfTI Script 2013

44Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Huffman-Code - Beispiel 2

Buchstaben-Häufigkeit (DE u. UK) s. www.wortspass.de/statb/

Page 402: EinfTI Script 2013

45Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Häufigkeit von Buchstaben/-folgen

Codes (wie Huffman-Code) nicht unbedingt auf einzelne Zeichen beschränktabhängig von der Anwendung- kann es sinnvoller sein, direkt ganze Zeichenketten zu kodierenBeispiel: die englische Sprache.

Letters Digrams TrigramsE 13,05 TH 3,16 THE 4,72T 9,02 IN 1,54 ING 1,42O 8,21 ER 1,33 AND 1,13A 7,81 RE 1,30 ION 1,00N 7,28 AN 1,08 ENT 0,98I 6,77 HE 1,08 FOR 0,76R 6,64 AR 1,02 TIO 0,75S 6,46 EN 1,02 ERE 0,69H 5,85 TI 1,02 HER 0,68D 4,11 TE 0,98 ATE 0,66L 3,60 AT 0,88 VER 0,63C 2,93 ON 0,84 TER 0,62F 2,88 HA 0,84 THA 0,62U 2,77 OU 0,72 ATI 0,59M 2,62 IT 0,71 HAT 0,55P 2,15 ES 0,69 ERS 0,54Y 1,51 ST 0,68 HIS 0,52W 1,49 OR 0,68 RES 0,50

G 1,39 NT 0,67 ILL 0,47B 1,28 HI 0,66 ARE 0,46V 1,00 EA 0,64 CON 0,45K 0,42 VE 0,64 NCE 0,43X 0,30 CO 0,59 ALL 0,44J 0,23 DE 0,55 EVE 0,44

Q 0,14 RA 0,55 ITH 0,44Z 0,09 RO 0,55 TED 0,44

Page 403: EinfTI Script 2013

46Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Codierung von Zeichenfolgen

Weitere Verkleinerung der mittleren Codewortlänge durch Codierung von Folgen von Zeichen möglichBeispiel: Fax-Komprimierung CCITT T4

Scannen einer Seite Zeilen aus 1728 schwarzen u. weißen Punkten (Pixeln)(bei 3,85 oder 7,7 Zeilen/mm (fein))In jeder Bildzeile Länge von schwarzen und weißen Pixeln bestimmt (Lauflänge)Zahlenfolge nach Huffman codiert

Page 404: EinfTI Script 2013

47Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Arithmetische Codierung

Eigenschaften:erreicht gleich optimale Codierung wie die Huffman-CodierungUnterschied zu Huffman: gesamter Datenstrom hat zugeordnete Wahrscheinlichkeit, die sich aus Wahrscheinlichkeiten der enthaltenen Zeichen zusammensetztKodierung eines Zeichens erfolgt unter Berücksichtigung aller vorherigen ZeichenDaten werden als Intervall reeller Zahlen zwischen 0 und 1 kodiertJeder Wert innerhalb des Intervalls als Codewort verwendbarminimale Länge des Codes bestimmt durch zugeordnete Wahrscheinlichkeit

Nachteil: Strom nur als Ganzes decodierbar

Page 405: EinfTI Script 2013

48Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Arithmetische Kodierung: Beispiel

Zu kodieren: ACAB mit p(A) = 0.5, p(B) = 0.2, p(C) = 0.3

ACAB kodierbar durch jede Binärzahl aus Intervall [0.3875, 0.4025), gerundet auf - log2(p(ACAB)) = 6.06 d.h. 7 Bits, z.B. 0.0110010

pA = 0.5 pC = 0.3pB = 0.2

pAA = 0.25 pAC = 0.15pAB= 0.1 pBA pBCpBB pCA pCB pCC

pACA = 0.075 pACC = 0.045pACB = 0.03

pACAA = 0.0375 pACAC = 0.0225pACAB = 0.015

0

0

0.35

0.35

0.5

0.25 0.35 0.5

0.425

0.425

0.7 1

10.70.6 0.64 0.85 0.91

0.50.455

0.3875 0.4025

Page 406: EinfTI Script 2013

49Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Zeichenkodierung

Page 407: EinfTI Script 2013

50Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Zeichenkodierung

Darstellung von Buchstaben, Sonderzeichen etc. zur Textverar-beitung, -Speicherung und Übertragung erfordert andere Kodierung als bei Zahlen

Für 26 Buchstaben sind mindestens log2 26 = 5 Bit zur Kodierung erforderlichHeute gebräuchlich zur Text-Darstellung: 7 bis 8 BitBekannteste Kodierung: ASCII

(American Standard Code for Information Interchange)7 Bit-Kodierung128 mögliche Zeichen:

2 mal 26 Buchstaben10 Ziffern32 Kommunikationssteuer- und Interpunktionszeichen

Page 408: EinfTI Script 2013

51Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 ASCII-Code

ASCII-Code ist dichter 7 Bit Blockcode

Page 409: EinfTI Script 2013

52Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 8 Bit-Kodierung

Problem bei ASCII: keine deutschen Umlaute /nationale Besonderheiten2 Möglichkeiten

nationale Variante der ASCII-7-Bit Kodierungz.B. ISO-7-Bit oder DIN 66003 (Deutsche Variante mit Umlauten)

Erweiterung auf 8 Bit Kodierungzusätzliche 128 Zeichen für nationale Besonderheiten u. Sonderzeichen Beispiele: PC8 (MSDOS)

ISO 8859 (UNIX, WINDOWS)

8-tes Bit (Byte-Orientierung!) auch zur Fehlererkennung nutzbar7 Bit-Kodierung Fehlererkennung

ungerade?: =1 ungerade?: =1

8 Bit mit gerader Parität

8 Bit mit gerader Parität

1: Bitfehler

0: kein Bitfehler

Paritätsschaltung

Page 410: EinfTI Script 2013

53Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.3 ISO-8859-1

Vorschläge zur Erweiterung der ursprünglich auf die USA beschränkten ASCII-Norm auf 8 Bits: ISO-NORM 8859-1

umfasst alle Sonderzeichen westeuropäischer Sprachendeutsche Umlautefranzösiche Akzenteskandinavische Buchstaben wie „ø”spanische Satzzeichen wie “¿”

Page 411: EinfTI Script 2013

54Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Unicode

bis weit in 80-er Jahre: firmenspezifische und nationale, nicht miteinander kompatible, 7- und 8-Bit ZeichenkodierungenChinesiche, japanische, koreanische, arabische, thailändische, bengalische, hebräische und viele andere Schriftzeichen überhaupt nicht oder nur über komplizierte Kodierungssequenzen variabler Länge kodiert

==> Weltweit genormte Kodierung aller Zeichen notwendig für einfachen Datenaustausch

Unicode:Konsortium aus Hard- und Software-Firmen (Apple, IBM, MS, ...,Software AG) begann Ende 80-er mit Entwicklungbisherige nationale, internationale, firmenspez. Zeichenkodierungen abgelöst durch UnicodeÜbergang nur langsam (Kompatibilität zu bisherigen Kodierungen)

Page 412: EinfTI Script 2013

55Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Unicode – Entwurfsprinzipien

Unicode Zeichenkodierungen haben sämtlich 16 Bit LängeSpeicherbedarf für Text wird verdoppelt

Gesamter Code-Umfang von 16 Bits für Zeichenkodierungbis zu 65536 verschiedene Zeichen kodierbarUnicode-Version 3.0.1 vom 17.8.2000 belegt ca. 50 000 Kodierungenhttp://www.unicode.org

Unicode codiert Zeichen, nicht Zeichen-DarstellungenDie Darstellung A, A, A haben alle dieselbe Kodierung U+0041allgemein: U+xxxx (xxxx: hexadezimale Darstellung der Kodierung)Unicode kodiert einfachen (nicht formatierten) Text, d.h. keine expliziten Kodierungen für Schriftgröße und Farbe

Unicode-Zeichen in logischer Reihenfolge gespeichert:Sprachen in lateinischen Buchstaben von links nach rechtsim Hebräischen und Arabischen von rechts nach links

Page 413: EinfTI Script 2013

56Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Unicode – Entwurfsprinzipien (2)

Gleiche Zeichen werden gleichgesetztFür Zeichen verschiedener Sprachen, die in der gleichen Schrift vorkommen, wird nur eine Kodierung gewähltBeispiel: Chinesisch-japanisch-koreanische Schriftzeichen (CJK)

dynamische Erstellung zusammengesetzter Zeichenkombinierte Zeichen ohne eigene Zeichendarstellung, Zusatzzeichen modifizieren die vor ihnen stehenden GrundzeichenBeispiele: U U+0055 U+0308Zusammengesetzte Zeichen häufig mit eigenem Zeichencode

Ü hat Kodierung U+00DCfür zusammengesetzte Zeichen mit eigener Kodierung gleichzeitig Sequenz aus Grundzeichen und modifizierendem Zeichen

Beispiel: fi (U+FB01) ist äquivalent zu f i (U+0066 U+0069)

1-zu-1-Umsetzung Unicode <==> andere Normen garantiertZeichenkodierungen ISO-8859-1 bis ISO-8859-9, CJK-Kodierungenund firmenspezifischen Zeichenkodierungen

Page 414: EinfTI Script 2013

57Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Unicode-Zeichen

Unicode-System in Zeichenbereiche (Scripts) aufgeteilt, die bestimmte Schriftkultur oder Satz von Sonderzeichen widerspiegelnASCII im Bereich U+0000 bis U+007F „C0 Controls and Basic Latin“Weitere Beispiele

U+0080 bis U+00FF enthält „C1 Controls and Latin-1 Supplement“U+0370 bis U+03FF Griechisch

Zeichenbereiche unterschiedlich großASCII: 128 ZeichenCJK-Block: Tausende von Zeichen

Verschiedene Kodierungen des Zeichensatzes (nach ISO 10646)UTF-16: Kanonische Speicherung jedes Zeichens in 2 BytesUTF-8: Zeichen verschieden lang in 1, 2 oder 3 Bytes kodiert

erlaubt kompaktere DarstellungenU+0000 bis U+007F entspricht genau dem ASCII-Code

Page 415: EinfTI Script 2013

58Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.4 Unicode: Speicherplatz

Textdateien verdoppeln bei Umwandlung von 8-bit Kodierungen zur Unicode-Darstellung ihre GrößeBemerkung: Bessere Kompression von Unicode-Dateien wegen höherer RedundanzBeispiel:

Wandlung einer ISO-8859-1-Datei in entsprechende Unicode-DateiRedundanz erhöht sich==> erreichbare Kompressionsrate höher

Page 416: EinfTI Script 2013

59Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.5 Andere Vorschläge: Multicode

Multicodesieht vor, auf der Basis der 7-Bit-ASCII-Zeichen (ähnlich der Norm ISO 8859) eine Zeichenmenge von jeweils 256 Zeichen für die unterschiedlichen Sprachen zur Verfügung zu stellenausreichend für alle westlich orientierten Sprachennicht ausreichend für fernöstliche Sprachen

Multicode verwendet im Gegensatz zu Unicode Umschaltzeichen ==> nicht zustandsfrei

Probleme beim Kopieren, wenn nur Teile von Texten in andere übernommen werden sollenÜbertragungsfehler, wenn verwendete Kodierung nicht zustandsfrei (ein Fehler kann sich auf viele Zeichen auswirken)

Multicode keine sinnvolle Alternative zu Unicode

Page 417: EinfTI Script 2013

60Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Fehlererkennung

Parität

CRC

Hamming-Code

Page 418: EinfTI Script 2013

61Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Fehlererkennung: Parität

Zur Fehlererkennung bei Übertragung oder Speicherung„Sender“: = Schreiboperation „Empfänger“: = Leseoperation

Z.B. 7 Bit-Kodierung auf eine redundante 8 Bit-Kodierung erweitert8-tes Bit durch XOR-Schaltung erzeugt: Paritätsbitgenau dann = 1, wenn an Eingängen (7 Bit) ungerade Zahl von Einsenerzeugte Kodierung hat immer gerade Zahl von Einsen (even parity)

Bei Verfälschung in nur einem Bit: ==> Zahl der Einsen nicht mehr gerade ==> Fehlergerader Anzahl von Bits: Fehler nicht erkennbar

Alternativ: auch Paritätsbit für ungerade Zahl von Einsen (odd parity)

Page 419: EinfTI Script 2013

62Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Fehlererkennung: Parität

Parity Bit: Zählt Anzahl der ‘1‘en, z.B.Sender: 10 111 001 PB: 1Empfänger: 10 101 001 PB: 0Empfänger(2): 10 001 001 PB: 1

Variante: Längs- und QuerparitätVerbesserung ‚Parity Bit‘-Verfahren durch weitere Prüfbits. Dazu mehrere Blöcke gruppiert und gemeinsam behandeltBeispiel: Sender: 1011 1 Empfänger: 1011 1

0010 1 0110 11100 0 1100 00110 0 0110 00011 0011

Ein fehlerhaftes Bit identifizier- und korrigierbar

1-Bit Fehler erkennbar2-Bit Fehler nicht erkennbarKorrekturen nicht möglich!

Page 420: EinfTI Script 2013

63Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

Problem: Erkennung von Mehrbitfehlerneinfache Prüfbits i.a. nicht geeignetGerade Mehrbitfehler häufig in der Datenkommunikation (Modem, Telefonleitung, Fehlersicherung von Dateien)

Page 421: EinfTI Script 2013

64Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

Linearer Code (aus Theorie algebraischer Felder)Wird gebildet aus den Elementen eines Galois-Feldes(:= endlicher Körper, bei q Elementen: GF(q))Alle Codeworte haben die Länge n und bilden einen Unterraum des Vektorraums GF(q)n

Damit ist: die Summe zweier Codeworte wieder ein Codewort, ebenso das Produkt eines Codeworts mit einem beliebigen FeldelementBedeutung: lineare Codes sind aufgrund ihrer strengen mathematischen Struktur hervorragend für schnelle und zuverlässige Codierung bzw. Decodierung geeignet!

Linearer Code zyklischwenn mit jedem Codewort auch das zyklisch (links oder rechts) geshiftete Wort wieder Codewort Beispiel: Ist 1011010 Codewort, dann auch 0101101, 1010110, usw.

Vorteile linearer Codes mit schneller Berechnung kombiniert

Page 422: EinfTI Script 2013

65Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

Idee: CRC: Cyclic Redundancy Checksumn-Bit-Folge (cn-1,cn-2,…,c1,c0) mit ci∈ {0,1} als Koeffizienten eines

Polynoms P(x) = , x∈ {0,1}, betrachtet

Beispiel: 1 1 0 0 1 0 1 entspricht Polynom P(x) = x6+x5+x2+1

Sender und Empfänger vereinbaren Generatorpolynom Gk(x)=xk+

Sender interpretiert einen Datenblock als Polynom und ergänzt ihn mit Hilfe von Gk(x) um k "redundante" Bits (z.B. k = 16 oder 32)Redundanz = Rest bei Division der Datenblock-Bitfolge, die durch k angehängte Nullen erweitert wurde, durch Gk(x)Empfänger erhält bei korrekter Übertragung nach der Division durch Gk(x) den Rest 0

∑ ci xi0

n-1

∑ci xi0

k-1

Page 423: EinfTI Script 2013

66Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Rechenregeln

Polynom-Terme unterschiedlichen Grades voneinander unabhängig ==> (mit x, ci ∈ {0,1}) alle Operationen mod(2) Wahrheitstafeln: a, b ∈ {0,1}

aus ± (2n +1) = 1 mod(2), n ∈ N und ± (2n) = 0 mod(2) Damit:a ± b ≡ ⊕ (Exklusiv Oder)a x b ≡ • (Und)

Polynome gleichen Grades immer subtrahierbarErgebnis ist Polynom geringeren Gradeswegen mod(2) brauchen Zahlenüber/-unterläufe nicht betrachtet werden ==> bei Addition / Subtraktion genügt bitweises Exklusiv OderBeispiel: 10000 11111

― 11111 ― 100001111 = 1111

a b a b a x b a b

0 0 0 0 --

0 1 1 0 0

1 0 1 0 --

1 1 0 1 1

Page 424: EinfTI Script 2013

67Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen CodesB e i s p i e l :z u ü b e r t r a g e n : 1 0 1 1 1 0 0 1 G e n e r a t o r p o l y n o m : x 4 + x + 1 1 0 1 1 1 0 0 1 | 0 0 0 0 : 1 0 0 1 1 = 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 R ( x ) = x 3 + 1 C R C : 1 0 0 1 1 0 1 1 1 0 0 1 | 1 0 0 1 : 1 0 0 1 1 = 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 0 ⇒ Ü b e r t r a g i s t k o r r e k t

Sender

Empfänger

Page 425: EinfTI Script 2013

68Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

10111001| 1001↑ ↑ ↑ Fehlermuster↑ ↑ ↑ Fehlermuster

AEmpfänger:

00101001| 0001 : 10011 = 0010111010011

1111010011

1101010011

1001010011 11 ⇒ Übertragungsfehler

A

B

Page 426: EinfTI Script 2013

69Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

BEmpfänger:

00111011|0001 : 10011 = 0011111110011 11101 10011 11100 10011 11110 10011 11010 10011 10011 10011

0 ⇒ Übertragungsfehler nicht erkannt!

Page 427: EinfTI Script 2013

70Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Fehlererkennung mit zyklischen Codes

Gebräuchliche 16-Bit/32-Bit-Generatorpolynome:(Details z.B. in H.W. Lang: Algorithmen in Java, Oldenburg 2003)Erzeugen 16/32-Bit-Rest: (x16 oder x32 vorangestellt bei Division)CRC-16: (0x8005) G(x) = x16 + x15 + x2 +1 (Magnetband)CRC-CCITT: (0x1021) G(x) = x16 + x12 + x5 +1 (bis etwa 5000 Bytes)Ethernet: (0x04c11df7) 32-Bit-Generatorpol. (ok. bis ~ 12000 Bytes)

Variante von CRC-32: Adler32 (Mark Adler)bei zlib (gzip-Komprimierung), tar-Archiven und in Java zur PrüfungSehr schnell, erkennt gut auch MehrbitfehlerFehlererkennung:

alle Einzelbitfehler, Doppelbitfehler, Dreibitfehleralle Fehlermuster mit ungerader Bitfehleranzahlalle Fehlerbüschel mit 16 oder weniger Bits99,997% aller 17-Bit-Fehlerbüschel99,998% aller Fehlerbüschel mit Länge ≥ 18 BitRestfehlerrate < 0,5* 10-5 der ursprünglichen Blockfehlerrate

Page 428: EinfTI Script 2013

71Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Fehlerkorrigierende CodesFehlerkorrektur

Generell: Einbau von Redundanzen:Länge der Übertragung: n Bit (2n mögliche Binärfolgen)Nachrichtenlänge m (<n) Bit (2m zulässige Codewörter)k Prüfbits (k = n - m)

Lege um jede Nachricht eine „Sphäre“ von Codewörtern

Hammingabstand (H.-Distanz) d:Anzahl der Bitpositionen, an denen sich zwei Wörter eines Alphabets mindestens unterscheiden( d Einzelbit-Fehler, um ein Wort in ein anderes zu überführen)Berechnung: Bilde Exclusives Oder, Zähle Einsen in ResultatBeispiel: 1001101 ⊕ 0011101 = 1010000 ==> d = 2

Page 429: EinfTI Script 2013

72Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Fehlerkorrigierende Codes (2)

Für Code mit Hammingabstand d zwischen je zwei Codewörtern ==>

d ≥ t + 1 ⇒ Code erkennt t-Bit-Fehler(t Bitfehler können kein Codewort in anderes überführen)

d ≥ 2 t + 1 ⇒ Code korrigiert t-Bit-Fehler(legale Codewörter so weit voneinander entfernt, dass selbst bei t Bitfehlern Original-Codewort immer noch näher als jedes andere ==> eindeutig erkennbar)

Beispiel: Code mit nur 4 Codewörtern1) 00000 00000 2) 00000 11111 3) 11111 00000 4) 11111 11111==> Hamming-Distanz 5 ==> korrigiert DoppelbitfehlerWenn durch 2-Bit-Fehler ankommendes Codewort = 00000 00111 ==> muss Wort 2) gewesen seinAber: wenn 3-Bit-Fehler möglich (00000 00111 könnte aus Wort 2) entstanden sein) ==> Codewort nicht eindeutig identifizierbar

Page 430: EinfTI Script 2013

73Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.4 Hamming-Code

Ziel:Verwendung mehrerer Prüfbits, die (überschneidend) jeweils mehrere Bits prüfen. Durch Kombination der Prüfbits Fehler identifizieren und korrigieren

Hamming-Code "minimaler" Code dieser Kategorie.

Idee:Eindeutige Darstellung jeder natürlichen Zahl durch Summe von 2er-Potenzen In einem Codewort w = z1, . . . , zn Prüfbits genau an den kPositionen, deren Index 2er-Potenz an restlichen m = n-k Positionen DatenbitsJedes Prüfbit Paritätsbit für alle Stellen, deren Darstellung gerade die 2er-Potenz der Position des Prüfbits enthält

Page 431: EinfTI Script 2013

74Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.4 Hamming-Code (2)Beispiel: ASCII Codewort

Bit-Nr. 1 2 3 4 5 6 7 8 9 10 11H 100 1000 0 0 1 1 0 0 1 0 0 0 0a 110 0001 1 1 1 1 1 0 0 1 0 0 1m 110 1101 1 1 1 0 1 0 1 0 1 0 1m 110 1101 1 1 1 0 1 0 1 0 1 0 1i 110 1001 0 1 1 0 1 0 1 1 0 0 1

n 110 1110 0 1 1 0 1 0 1 0 1 1 0 g 110 0111 0 1 1 1 1 0 0 1 1 1 1

Prüfbit 1 : Datenbits 3, 5, 7, 9, 11 3 = 1 + 2 5 = 1 + 4Prüfbit 2 : Datenbits 3, 6, 7, 10, 11 6 = 2 + 4 7 = 1 + 2 + 4Prüfbit 4 : Datenbits 5, 6, 7 9 = 1 + 8 10 = 2 + 8Prüfbit 8 : Datenbits 9, 10, 11 11 = 1 + 2 + 8

Empfänger:überprüft Paritätsbitsaddiert ggf. Indizes der fehlerhaften Prüfstellen Index des fehlerhaften Bits1-Bit-Fehler eindeutig identifiziert und korrigiert

Page 432: EinfTI Script 2013

75Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.4 Hamming-Code

Schwächen:Mehrbitfehler in der Regel falsch korrigiert2-Bit-Fehler werden nicht korrigiert (oder falsch korrigiert!)3-Bit-Fehler werden nicht erkannt...

z.B. Fälle:a) Bit 4 und Bit 11 invertiert

Prüfbits 1, 2, 4, 8 falschBit 15 soll korrigiert werden, existiert nicht

b) Bit 2 und Bit 4 invertiertPrüfbits 2, 4 falschBit 6 wird fälschlicherweise als inkorrekt erkannt

c) Bits 1, 8, 9 invertiertalle Prüfbits korrektkein Fehler wird erkannt

Page 433: EinfTI Script 2013

76Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.4 Anzahl Bits für verschiedene Wortlängen

Ein-Bit-Fehlerkorrektur: 2k ≥ m+k+1 (m Datenbits, k Prüfbits) ==>minimal notwendige Anzahl Prüfbits

Für Erkennung von Doppelbit-Fehlern: je 1 Prüfbit mehr (k+1) ==> ECC (Error Checking and Correction)„Chipkill“ (IBM): Multibit ECC, bis 4 Bit, sogar ganze DRAM-Chips

m Datenbits k Prüfbits Gesamtzahl m+k1 2 m+22 3 m+34 3 m+38 4 m+416 5 m+532 6 m+664 7 m+7

Page 434: EinfTI Script 2013

77Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.5 Kodierung: Fazit

Repräsentationssysteme zur Speicherung, Verarbeitung und Übertragung von Informationen

ASCII, Unicode, BCD, Gray, …

Effizienz bei Kodierung, Speicherung und Verarbeitung (Komprimierung)

RLE, Lempel-Ziv, Hamming-Code, Arithmetische Kodierung

Sicherung gegen Verfälschung (Fehlererkennnung/-korrektur)Paritätsbit(s), CRC, Hamming-Code

Geheimhaltung von Informationen (Verschlüsselung)Hier nicht behandelt

Page 435: EinfTI Script 2013

Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1

H Rechnerarithmetik

1

Page 436: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

1 Einordnung

Ebene 6

Ebene 5

Ebene 4

Ebene 3

Ebene 2

Ebene 1

Ebene 0

ISA (Instruction Set Architecture)

Mikroarchitektur

Digitale Logik

Physik

Betriebssystem

Assemblersprache

Problemorientierte Sprache

Page 437: EinfTI Script 2013

3Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Übersicht

Zahlendarstellung

Binäre Addition

Binäre Subtraktion

Binäre Multiplikation

Binäre Division

Fest- und Fließkommadarstellung

Page 438: EinfTI Script 2013

4Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2 Zahlendarstellung

Positionale Zahlendarstellung

ZiffernPosition der Ziffern gewichtet ihren Wert

Dezimalsystem

Beispiel:4711 = (4,7,1,1)10 = 4·103 + 7·102 + 1·101 + 1·100

Allgemein: n-stellige Dezimalzahl (zn-1, zn-2, …,z2, z1, z0)10

= zn-1 ·10n-1+ zn-2 ·10n-2 +…+ z2 ·102 + z1 ·101 + z0 ·100

mit zi ∈ {0,1,2,3,4,5,6,7,8,9}

2.1 Positive ganze Zahlen

Page 439: EinfTI Script 2013

5Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Positive ganze Zahlen (2)

Dualsystem, Binärsystem

Beispiel:10112 = (1,0,1,1)2 = 1·23 + 0·22 + 1·21 + 1·20

Allgemein: n-stellige Dualzahl(zn-1, zn-2, …,z2, z1, z0)2

= zn-1 ·2n-1+ zn-2 ·2n-2 +…+ z2 ·22 + z1 ·21 + z0 ·20

mit zi ∈ {0,1}

Page 440: EinfTI Script 2013

6Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.1 Positive ganze Zahlen (3)

Allgemein

Darstellung natürlicher Zahlen durch Zahlensystem zu einer beliebigen Basisb ≥ 1(zn-1, zn-2, …,z2, z1, z0)b

= zn-1 ·bn-1+ zn-2 ·bn-2 +…+ z2 ·b2 + z1 ·b1 + z0 ·b0

mit zi ∈ {0,1, …,b-1}

Typische Basen für Rechnerarithmetik

b = 2 Dualsystemb = 8 Oktalsystem zi ∈ {0,1,2,3,4,5,6,7}b = 10 Dezimalsystemb = 16 Hexadezimalsystem zi ∈ {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

Page 441: EinfTI Script 2013

7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.2 Konvertierung der Darstellung

Umwandlung von einer Zahlendarstellung in die andere

Basis des Ziel-Zahlensystems als DivisorReste bilden die Ziffern der DarstellungBeispiel:1910 x2

19 ÷ 2 = 9 Rest 1 least significant digit9 ÷ 2 = 4 Rest 14 ÷ 2 = 2 Rest 02 ÷ 2 = 1 Rest 01 ÷ 2 = 0 Rest 1 most significant digit

x = (1,0,0,1,1)2

Page 442: EinfTI Script 2013

8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

2.3 Darstellung positiver Zahlen im Rechner

Zahlenspeicherung in Registern

einzelne Flip-Flops speichern eine Ziffer (Bit)mehrere Flip-Flops speichern eine Zahl

Registerbreite

8 Bit = 1 ByteWort = 16 Bit / 32 Bit (Word)Doppelwort = 32 Bit / 64 Bit (Double Word)Vierfachwort= 64 Bit / 128 Bit (Quad Word)

Wortbreite hängt von Prozessorarchitektur ab

Page 443: EinfTI Script 2013

9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Binäre Addition

Schriftliche Addition

Verfahren wie beim Dezimalsystem10011+1001

Page 444: EinfTI Script 2013

10Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Binäre Addition

Schriftliche Addition

Verfahren wie beim Dezimalsystem10011+1001

1 Übertrag0

Page 445: EinfTI Script 2013

11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Binäre Addition

Schriftliche Addition

Verfahren wie beim Dezimalsystem10011+1001

11 Übertrag00

Page 446: EinfTI Script 2013

12Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3 Binäre Addition

Schriftliche Addition

Verfahren wie beim Dezimalsystem10011

Kontrolle:+1001

19 + 9 = 2811 Übertrag

11100Übertrag wird auch Carry genannt

Feste Registerbreite und Addition, z.B. vier Bit1011

Kontrolle:+1001

11 + 9 = 20 = 16 + 41 11 Übertrag0100

letzter Übertrag gehört zum Ergebniskann aber nicht mehr dargestellt werden

Page 447: EinfTI Script 2013

13Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.1 Halbaddierer

Addition in Spalte s (sum)

zwei Eingänge: erste Ziffer von jeder Zahlzwei Ausgänge: erste Ziffer des Ergebnisses (s), Carry (c)Wahrheitstabelle:

Schaltung:

a b s c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

+

a

b s

c= ⋅

= ⋅ + ⋅ = ⊕

c a b

s a b a b a b

a

b

c

sHA

Blockschaltbild

Page 448: EinfTI Script 2013

14Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.2 Volladdierer

Addition in anderen Spalten

drei Eingänge: je eine Ziffer der Summanden und Carry von vorheriger Zifferzwei Ausgänge: Summenziffer und CarryWahrheitstabelle:

a b cin s cout

0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Schaltung:

Aufbau mit Halbaddierern

realer Aufbau als zweistufiges Schalt-netz (geringere Gatterlaufzeiten)

Blockschaltbild

HA

HA

a

b

cin

cout

s

c

s c

s

ab

cout

sFA

cin

Page 449: EinfTI Script 2013

15Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.3 Paralleles Addierwerk

Schaltnetz zur Addition n-Bit langer Summanden

lange Gatterlaufzeit bis Endergebnis stabilGatterlaufzeit: t = 2n · Δt

„Ripple Carry Adder“ (RCA)

* FA: Full Adder (Volladdierer)

FA

a0 b0cin

FA

a1 b1

FA

a2 b2

FA

an-1 bn-1

...

s0s1s2sn-1

cout

cccc

Page 450: EinfTI Script 2013

16Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.4 Serielles Addierwerk

Synchrones Schaltwerk zur Addition n-Bit langer Summanden

Schieberegister für Summanden und Ergebnisje eine Stelle pro Takt wird addiert (Ergebnis nach n Takten)Carry-Flip-Flop muss initialisiert werden

an-1 a1 a0

bn-1 b1 b0

sn-1 s1 s0

FAc

s

DQ cout

Clk

Page 451: EinfTI Script 2013

17Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.5 Carry-Look-Ahead-Addierer

Beschleunigung der Addition

Vermeidung des sequentiellen Durchlaufs der ÜberträgeIdee: parallele Berechnung aller Stellenüberträge für jede Stelle i

Es gilt für Stelle i

ci+1 = ai · bi + (ai + bi) · ci = Gi + Pi · ci mit

Gi = ai · bi gibt an, ob Stelle i Carry generiert (Generate)Pi = ai + bi gibt an, ob Stelle i Carry weitergeben muss (Propagate),

falls vorherige Stelle Carry generiert oder weitergibtSchaltfunktionen für Überträgec1 = G0 + P0 · c0

c2 = G1 + P1 · c1 = G1 + P1 · G0 + P1 · P0 · c0

c3 = G2 + P2 · G1 + P2 · P1 · c1 = G2 + P2 · G1 + P2 · P1 · G0 + P2 · P1 · P0 · c0

Page 452: EinfTI Script 2013

18Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.5 Carry-Look-Ahead-Addierer (2)

Berechnung der Überträge mit maximal 2 Gatterlaufzeiten möglich

max. Anzahl der Gattereingänge hängt von der Breite des Addierers ab

Kaskadierung möglich durch Ausgabe von P und G des Gesamtblocks

Page 453: EinfTI Script 2013

19Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.6 Carry-Select-Addierer

Beschleunigung der Addition

Idee: nicht auf das Carry des niederwertigen Blocks warten, sondern beide Ergebnisse berechnen und später selektieren

Multiplexer selektiert Endergebnis

Page 454: EinfTI Script 2013

20Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

3.7 Carry-Save-Addierer

Mehr als zwei Summanden

Überträge aus ersten Addition werden in der nächsten Addition berücksichtigt (keine Weitergabe der Überträge in der laufenden Addition)

Beispiel: 4-Bit CSA für vier Summanden

FAc s

a3 b3 c3

FAc s

a2 b2 c2

FAc s

a1 b1 c1

FAc s

a0 b0 c0

FAc s

FAc s

FAc s

HAc s

d0d1d2d3

Standardaddierer

Page 455: EinfTI Script 2013

21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4 Binäre Subtraktion

Subtrahierer kann ähnlich wie Addierer entwickelt werden

Verwendung von Addierern zur Subtraktion

Idee: a – b = a + (-b)

Vorzeichen und Betrag

ein Bit repräsentiert Vorzeichenandere Bits repräsentieren Betrag der ZahlBeispiel:010012 = 9110012 = -9

Nachteil: Vorzeichen muss für Berechnungen ausgewertet werden

4.1 Darstellung negativer ganzer Zahlen

Page 456: EinfTI Script 2013

22Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Einerkomplement-Darstellung

Berechnung des Einerkomplements einer Zahl N bei n Ziffern

C= 2n – N - 1 bei n Ziffern/BitsKomplement C entspricht dem Wert –N

Darstellung positiver ganzer Zahlen

höherwertigste Ziffer zn-1 = 0andere Ziffern unbeschränktWert:

Darstellung negativer ganzer Zahlen

höherwertigste Ziffer zn-1 = 1andere Ziffern unbeschränktWert:

− = ⋅∑ in 1 1 0 2 i

i(z ,...,z ,z ) z 2

Page 457: EinfTI Script 2013

23Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Einerkomplement-Darstellung (2)

Beispiel: Darstellungslänge n=4

10002 = -24 + 1 + 8 = -7kleinste negative Zahl

11112 = -24 + 1 + 15 = 0größte (negative) Zahl

Nachteil

Null hat zwei unterschiedliche Darstellungen (0000 und 1111 bei Länge 4)

Vorteil der Einerkomplement-Darstellung

einfache Umwandlung von positiver zu negativer Zahl und umgekehrtjede Ziffer wird „invertiert“: zi' = 1 - zi

Beispiel: aus 10002 wird 01112 (aus –7 wird 7)

Page 458: EinfTI Script 2013

24Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Einerkomplement-Darstellung (3)

Addition

Einsatz von leicht modifizierten Standardaddierern für Zahlen in Einerkomplement-DarstellungCarry-out muss zum Ergebnis addiert werden

ohne Überlauf kommt Carry-out nur bei Addition von ein oder zwei negativen Zahlen vorX + (-Y) mit -Y als 2n – Y - 1 wird zu X + 2n – Y – 1Übertrag 2n gleicht -1 aus(-X) + (-Y) wird zu 2n – X - 1 + 2n – Y - 1Übertrag 2n gleicht -1 aus, übrig bleibt 2n – (X + Y) - 1 also eine Zahl im Einerkomplement

Subtraktion

vorherige Komplementbildung durch Invertierung der Ziffern

Page 459: EinfTI Script 2013

25Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Einerkomplement-Darstellung (4)

Additionsschaltwerk für Einerkomplement

Rückführen und Addieren des Carry-out-Signals

HA

a0 b0

FA

a1 b1

FA

a2 b2

FA

an-1 bn-1

...

cout

cccc

s0s1s2sn-1

HAHAHAHA ...cccc

Page 460: EinfTI Script 2013

26Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.2 Einerkomplement-Darstellung (5)

Einerkomplement heute kaum mehr im Einsatz

doppelte Darstellung der NullVerwendung modifizierter Standardaddierer

je ein Schaltwerk für rein positive Zahlen und Zahlen im Einerkomplement erforderlich

Page 461: EinfTI Script 2013

27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Zweierkomplement-Darstellung

Berechnung des Zweierkomplements einer Zahl N bei n Ziffern

C = 2n - N bei n Ziffern/BitsKomplement C entspricht dem Wert –N

Darstellung positiver ganzer Zahlen

höherwertigste Ziffer zn-1 = 0andere Ziffern unbeschränktWert:

Darstellung negativer ganzer Zahlen

höherwertigste Ziffer zn-1 = 1andere Ziffern unbeschränktWert:

− = ⋅∑ in 1 1 0 2 i

i(z ,...,z ,z ) z 2

− = − + ⋅∑n in 1 1 0 2 i

i(z ,...,z ,z ) 2 z 2

Page 462: EinfTI Script 2013

28Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Zweierkomplement-Darstellung (2)

Beispiel: Darstellungslänge n=4

10002 = -24 + 8 = -8kleinste negative Zahl

11112 = -24 + 15 = -1größte negative Zahl

Vorteil der Zweierkomplement-Darstellung

eindeutige Darstellung der Null (0000 bei Länge n=4)einfache Umwandlung von positiver zu negativer Zahl und umgekehrt

jede Ziffer wird „invertiert“: zi' = 2 – 1 - zi

anschließend 1 auf niederwertigste Stelle addieren(Zweierkomplement ist um eins größer als Einerkomplement)Beispiel: aus 10012 wird 01102 und dann 01112 (aus –7 wird 7)

Page 463: EinfTI Script 2013

29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.3 Zweierkomplement-Darstellung (3)

Nachteil

für kleinste negative Zahl ist das Zweierkomplement nicht mehr darstellbar(1000)2 = -8 wird zu (1000)2 = 8 (?)8 bereits außerhalb des Darstellungsbereichs (Überlauf)

Addition

Einsatz von Standardaddierern für Zahlen im Zweierkomplement

Subtraktion

vorherige Komplementbildung eines Summanden erfordertInvertierung der ZiffernAddition von 1kann durch gesetzten Carry-Eingang erzielt werden

Page 464: EinfTI Script 2013

30Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.4 Subtraktion im Zweierkomplement

Addier- und Subtrahierwerk

beim Subtrahieren:Invertieren der b-Eingänge durch XOR-GatterAddieren von 1 durch gesetztes Carry-in

Überlauferkennung: cout ≠ cin

bei Subtraktion ist gesetztes Carry-out der Normalfall

+ + + +

a3 b3 a2 b2 a1 b1 a0 b0

Standardaddierer cinADD, SUBcout

s3 s2 s1 s0

Page 465: EinfTI Script 2013

31Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Zahlenraum der Zweierkomplement-Darstellung

Zahlenraum für n-stellige Register

Beispiel: n=40000 0001

0010

0011

0100

0101

01100111

10001001

1010

1011

1100

1101

11101111 Binärdarstellung

Page 466: EinfTI Script 2013

32Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Zahlenraum der Zweierkomplement-Darstellung

Zahlenraum für n-stellige Register

Beispiel: n=40000 0001

0010

0011

0100

0101

01100111

10001001

1010

1011

1100

1101

11101111 0 1

2

3

4

5

67

89

10

11

12

13

1415 positiver Wert

Binärdarstellung

Page 467: EinfTI Script 2013

33Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

4.5 Zahlenraum der Zweierkomplement-Darstellung

Zahlenraum für n-stellige Register

Beispiel: n=40000 0001

0010

0011

0100

0101

01100111

10001001

1010

1011

1100

1101

11101111 0 1

2

3

4

5

67

89

10

11

12

13

1415 positiver Wert

0 12

3

45

67

–1–2

–3

–4–5

–6–7

–8

Wert im Zweierkomplement

Binärdarstellung

Page 468: EinfTI Script 2013

34Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation

Vorzeichenlose Multiplikation

Multiplikation für 2er-Komplement

Page 469: EinfTI Script 2013

35Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation auf Binärzahlen (rein positive Zahlen)

0011 x 1010

Page 470: EinfTI Script 2013

36Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation auf Binärzahlen (rein positive Zahlen)

0011 x 10100011 1

Page 471: EinfTI Script 2013

37Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation auf Binärzahlen (rein positive Zahlen)

0011 x 10100011 10000 0

Page 472: EinfTI Script 2013

38Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation auf Binärzahlen (rein positive Zahlen)

0011 x 1010 Kontrolle: 3 x 10 = 300011 1 111102 = 300000 00011 1

+ 0000 000011110

Page 473: EinfTI Script 2013

39Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5 Binäre Multiplikation

Schriftliche Multiplikation auf Binärzahlen (rein positive Zahlen)

0011 x 1010 Kontrolle: 3 x 10 = 300011 1 111102 = 300000 00011 1

+ 0000 000011110

Übertragung auf den Rechner

Realisierung in Hardware: Addierer und SchieberegisterRealisierung in Software: Addition und Bittest/Schieberegister

einige Prozessoren besitzen keine Multiplikationshardware (RISC)

Page 474: EinfTI Script 2013

40Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Vorzeichenlose Multiplikation

Alternative A: serielles Schaltwerk zur Multiplikation

Lösche p (clear p)n-mal:

ermittle b0

addiere a auf (p2n-1,...pn+1, pn) oder nicht, je nach b0 (add)verschiebe p einschließlich cout der vorherigen Addition (shift right p)(shift right b)

an-1 ... a1 a0 bn-1 ... b1 b0

p2n-1 ... pn+1 pn pn-1 ... p1 p0

n

n

nn-Bit-Addierer

Steuer-werk

shift right b

clear pshift right p

add

cout

Page 475: EinfTI Script 2013

41Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Vorzeichenlose Multiplikation (2)

Alternative B: Array-Multiplizierer

Schaltwerk für das schriftliche MultiplikationsschemaBeispiel: n = 4

a3 a2 a1 a0 x b3 b2 b1 b0

a3b0 a2b0 a1b0 a0b0 a3b1 a2b1 a1b1 a0b1 0 a3b2 a2b2 a1b2 a0b2 0 0

+ a3b3 a2b3 a1b3 a0b3 0 0 0 p7 p6 p5 p4 p3 p2 p1 p0

UND-Verknüpfung

Page 476: EinfTI Script 2013

42Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Vorzeichenlose Multiplikation (3)

Alternative B: Array-Multiplizierer

Schaltwerk für n = 4

p3 p2 p1 p0p7 p6 p5 p4

a3 a2 a1 a0

b3

b2

b1

b0

cincout

bi

aisin

soutai

bi

FA

Page 477: EinfTI Script 2013

43Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Vorzeichenlose Multiplikation (4)

Alternative C: Alternative B und Wallace-Baum von CS-Addierern

Einsatz von Carry-Save-Addierer für die einzelnen Zeilenbaumförmige statt sequentielle Anordnung der CSABeispiel: n = 8

CSA

CSA

CSA

CSA

CSA

CSA

RCA

z3 z2 z1

z4

z5

z6

z7

z8

CSA

CSA

CSA

RCA

CSA

CSA

CSA

z3 z2 z1z6 z5 z4z8 z7

Vorteil: geringere Gatterlaufzeit

CSA-Kette

Wallace-Baum

zi = a * bi

FAc s

a3 b3 c3

FAc s

a2 b2 c2

FAc s

a1 b1 c1

FAc s

a0 b0 c0

FAc s

FAc s

FAc s

HAc s

d0d1d2d3

Standardaddierer

Page 478: EinfTI Script 2013

44Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.1 Vorzeichenlose Multiplikation (5)

Alternative D: zweistufiges Schaltnetz für Multiplizierer

z.B. als PROM/ROM

Schnellste Variante

Extrem aufwändig

22n · 2n Bits notwendig (Tabelle mit 22n Einträgen, je 2n Bit breit)

Übergang zu kleineren Blockmultiplizierer (Radixmultiplizierer)

Blockmultiplizierer für k-Bit als ROM-Implementierungblockweises MultipliziererenAddieren der Blöcke mit CSA

Page 479: EinfTI Script 2013

45Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement-Darstellung

n-Bit-breites Ergebnis bei Multiplikation auch für Zweierkomplement korrekt

Beispiel: –2 x 3= –6 (bei n=4)1110 x 00110000 0

0000 01110 1

+ 1110 100101010

Page 480: EinfTI Script 2013

46Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement-Darstellung

n-Bit-breites Ergebnis bei Multiplikation auch für Zweierkomplement korrekt

Beispiel: –2 x 3= –6 (bei n=4)1110 x 00110000 0

0000 01110 1

+ 1110 100101010 10102 = -6

Problem: Überlauf — Ergebnis passt meist nicht in n Bits

2n-Bit-breites Ergebnis ist nicht korrekt001010102 = 42

Page 481: EinfTI Script 2013

47Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (2)

Alternative A: Erweiterung der Faktoren auf 2n-Bit

Vorzeichenerweiterungz.B. aus 1110 wird 11111110, aus 0011 wird 00000011

Nachteil

2n-Bit-breiter Addierer2n statt n Runden/Additionen (bei seriellem Addierer)

Page 482: EinfTI Script 2013

48Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (3)

Alternative B: Addition eines Korrekturterms

a · (-b) = a · (2n - b) = 2n · a – (a · b)(-a) · b = (2n - a) · b = 2n · b – (a · b)(-a) · (-b) = (2n - a) · (2n - b) = 22n - 2n · a - 2n · b + (a · b)

Korrekturterm für a · (-b): 22n - 2n · a = 2n · (2n - a) Korrekturterm für (-a) · b: 22n - 2n · b = 2n · (2n - b)

Korrekturterm für (-a) · (-b) : 2n · a + 2n · b - 22n

Nachteil: Zusatzaufwand

statt 22n – a · b

statt 22n – a · b

statt a · b

Page 483: EinfTI Script 2013

49Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (4)

Alternative C: getrennte Behandlung des Vorzeichens

Umwandlung der Faktoren in positive ZahlenBerechnung des ErgebnisvorzeichensAnpassen des Ergebnisses

Nachteil: Zusatzaufwand

Page 484: EinfTI Script 2013

50Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (5)

Alternative D: Verfahren nach Booth

Idee: a x 0111 = a x 1000 – a x 0001gilt auch für skalierte Bitfolge, z.B. a x 011100 = a x 100000 – a x 000100Folge von 1-Bits lässt sich durch eine Addition und eine Subtraktion multiplizieren

Algorithmus nach Boothbetrachte alle Bits bi und gleichzeitig Bit bi-1 (b-1 wird als 0 definiert)(bi, bi-1)2 = 012 addiere a x 2i (Beginn einer 1-Folge)(bi, bi-1)2 = 102 subtrahiere a x 2i (Ende einer 1-Folge)(bi, bi-1)2 = 002 oder (bi, bi-1)2 = 112

tue nichts

Page 485: EinfTI Script 2013

51Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (6)

Alternative D: Verfahren nach Booth

Subtraktion durch Addition des Zweierkomplementsgültige Ergebnisse auch für negative Zahlen (Zweierkomplement)n-Bit breiter Addierer ausreichend durch geschicktes Schieben

Multiplikation mit 2i entspricht Schiebeoperation um i StellenSchiebeoperation mit Vorzeichenpropagierung(Vorzeichen wird verdoppelt)

Page 486: EinfTI Script 2013

52Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (7)

Alternative D: Verfahren nach Booth

Beispiel: –2 x 3 = –6 (bei n = 4)1110 x 00110

00000000 Start- 1110 00110

Page 487: EinfTI Script 2013

53Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (7)

Alternative D: Verfahren nach Booth

Beispiel: –2 x 3 = –6 (bei n = 4)1110 x 00110

00000000 Start- 1110 00110

0010000000010000 Shift

Page 488: EinfTI Script 2013

54Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (7)

Alternative D: Verfahren nach Booth

Beispiel: –2 x 3 = –6 (bei n = 4)1110 x 00110

00000000 Start- 1110 00110

0010000000010000 Shift

001100001000 Shift

Page 489: EinfTI Script 2013

55Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (7)

Alternative D: Verfahren nach Booth

Beispiel: –2 x 3 = –6 (bei n = 4)1110 x 00110

00000000 Start- 1110 00110

0010000000010000 Shift

001100001000 Shift

+ 1110 00111110100011110100 Shift

Page 490: EinfTI Script 2013

56Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (7)

Alternative D: Verfahren nach Booth

Beispiel: –2 x 3 = –6 (bei n = 4)1110 x 00110

00000000 Start- 1110 00110

0010000000010000 Shift

001100001000 Shift

+ 1110 00111110100011110100 Shift

0011

11111010 Shift

111110102 = -6

Page 491: EinfTI Script 2013

57Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (8)

Alternative D: Verfahren nach Booth

Beispiel: 3 x -2 = –6 (bei n = 4)0011 x 11100

00000000 Start11100

00000000 Shift

Page 492: EinfTI Script 2013

58Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (8)

Alternative D: Verfahren nach Booth

Beispiel: 3 x -2 = –6 (bei n = 4)0011 x 11100

00000000 Start11100

00000000 Shift- 0011 1110

1101000011101000 Shift

Page 493: EinfTI Script 2013

59Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (8)

Alternative D: Verfahren nach Booth

Beispiel: 3 x -2 = –6 (bei n = 4)0011 x 11100

00000000 Start11100

00000000 Shift- 0011 1110

1101000011101000 Shift

111011110100 Shift

Page 494: EinfTI Script 2013

60Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation für Zweierkomplement (8)

Alternative D: Verfahren nach Booth

Beispiel: 3 x -2 = –6 (bei n = 4)0011 x 11100

00000000 Start11100

00000000 Shift- 0011 1110

1101000011101000 Shift

111011110100 Shift

111011111010 Shift

111110102 = -6

Page 495: EinfTI Script 2013

61Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Schriftliche Division

Restoring Division

Non-Restoring Division

Division in modernen Prozessorarchitekturen

Page 496: EinfTI Script 2013

62Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 =

Page 497: EinfTI Script 2013

63Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 1

- 10010011

Page 498: EinfTI Script 2013

64Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 10

- 100100111- 1001

1110 Unterlauf / negatives Ergebnis

Page 499: EinfTI Script 2013

65Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 10

- 100100111- 1001

1110 Unterlauf / negatives Ergebnis + 1001 Korrektur

0111

Page 500: EinfTI Script 2013

66Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 101

- 100100111- 1001

1110+ 1001

01111- 1001

0110

Page 501: EinfTI Script 2013

67Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 1011

- 100100111- 1001

1110+ 1001

01111- 1001

01101- 1001

0100

Page 502: EinfTI Script 2013

68Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division

Papier- und Bleistift-Version adaptiert

Beispiel: 103 / 9 = ?01100111 / 1001 = 1011

- 100100111- 1001

1110+ 1001

01111- 1001 Kontrolle :

103 / 9 = 11 Rest 401101- 1001

0100

Verfahren auch Restoring-Division genannt, da durch Korrektur ursprünglicher Dividend wiederhergestellt wird

Quotient

Rest

Page 503: EinfTI Script 2013

69Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6 Binäre Division (2)

Mathematisch

Dividend / Divisor = Quotient + Rest / Divisoroder

Dividend = Quotient x Divisor + Rest

häufig verlangt: Rest hat gleiches Vorzeichen wie DividendÜberlauf möglich, wenn Quotient nicht so breit wie Dividend

Page 504: EinfTI Script 2013

70Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Restoring Division

Einsatz von Addition/Subtraktion und Schiebeoperationen

in jedem Schritt testweise Subtraktion des skalierten Divisors b vom Dividenden a

qi = 1 falls a – b ≥ 0qi = 0 und Korrektur falls a – b < 0

Nachholen signifikanter Ziffern zum Zwischenergebnis durch Schiebeoperation

Page 505: EinfTI Script 2013

71Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Restoring Division (2)

Serielles Dividierwerk für vorzeichenlose Zahlen

Lade q: obere Hälfte = 0, untere Hälfte = a (load q)n-mal:

schiebe q nach links (shift left q)subtrahiere b von obere Hälfte q (sub):negativ: q0 = 0 und addiere b zurück (add)positiv: q0 = 1

Ergebnis: obere Hälfte q = Rest, untere Hälfte q = Quotient

bn-1 ... b1 b0

q2n-1 ... qn+1 qn qn-1 ... q1 q0

n

n

n

n-Bit-Addierer/ Steuer-werk

load q shift left q

add/sub

Subtrahierercout

q = a / b

insert_q0

Page 506: EinfTI Script 2013

72Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.1 Restoring Division (3)

Vorzeichenbehaftete Division mit Zweierkomplement-Darstellung

Verfahren im Prinzip identischjedoch:

unterschiedliche Erkennung von UnterläufenPropagierung des Vorzeichens in oberer Hälfte von q beim Laden

Page 507: EinfTI Script 2013

73Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.2 Non-Restoring Division

Restoring Division

Divisor wird subtrahiertfalls Unterlauf (Ergebnis negativ) Divisor wird wieder addiertim nächsten Durchlauf wird die Hälfte des Divisor subtrahiert(Linksshift des Dividenden vor der Subtraktion, entspricht *= 21)

Idee für Non-Restoring Divisionbei Unterlauf wird stattdessen Hälfte des Divisors addiertErsparnisse einer Addition bzw. Subtraktion

Page 508: EinfTI Script 2013

74Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

6.3 Division in modernen Prozessorarchitekturen

Iterative Approximation

Durch Multiplikation und Addition

SRT Algorithmus

Sweeney (IBM), Robinson (Univ. Illinois) und Tocher (Imperial College)Simultane tabellenbasierte Generierung mehrerer QuotientenbitsPentium-Bug von 1994

Page 509: EinfTI Script 2013

75Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

7 BCD-Arithmetik

BCD-Code

4-Bit Darstellung von Dezimalzahlen im Rechner

Zahlendarstellung mit mehreren 4-Bit breiten Ziffern, z.B.0001 0011 1001 entspricht der Dezimalzahl 139

Dar-stellung Wert Dar-

stellung Wert

0000 0 1000 8 0001 1 1001 9 0010 2 1010 0011 3 1011 0100 4 1100 0101 5 1101 0110 6 1110 0111 7 1111

verb

oten

e C

odes

Page 510: EinfTI Script 2013

76Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

7 BCD-Arithmetik

Vorteil

leichtes Umwandeln von Dezimalzahlen in BCD-codierte Zahlen

Rechnen mit BCD-codierten Zahlen

spezielle RechenwerkeUnterstützung in gängigen Prozessoren

zumindest für Addition und Subtraktion

Nachteil

oft nicht alle Rechenoperationen in Hardware unterstütztRechenoperation in Software ineffizientVerschwendung von Speicherplatz

Page 511: EinfTI Script 2013

77Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8 Festkomma-Zahlendarstellung

Feste Kommaposition bei der Darstellung von Zahlen

Beispiel: n = 4, Komma an Position k = 2Registerinhalt 0110 bedeutet 01,102 bedeutet 1,5

allgemeine Wertberechnung (für positive Zahlen):

negative Zahlen analog

Rechenoperationen

Addition und Subtraktion unverändertMultiplikation

Ergebnis hat 2k NachkommastellenDivision

Einfügen des Ergebniskommas sobald erste Nachkommastelle des Dividenden berührt wird

− − − − = ⋅∑ in k 1 1 0 1 k 2 i

i(z ,...,z ,z ,z ,...,z ) z 2

Page 512: EinfTI Script 2013

78Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

8 Festkomma-Zahlendarstellung

Darstellungsbereich

Für n=8, k=40 = 000000001 = 00010000 Vorkomma-Auflösung10 = 101000000,5 = 000010000,625 = 000010100,0625 = 00000001 Nachkomma-Auflösung15,9375 = 11111111

Idee

Kommaposition variabelZusatzaufwand für die PositionskodierungD.h. geringere Auflösung, aber größerer Darstellungsbereich

Page 513: EinfTI Script 2013

79Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Fließkomma-Zahlendarstellung

Darstellung großer und kleiner Zahlen mit gleichem Verfahren

Idee

Darstellung einer Anzahl von Ziffern (Mantisse) plusDarstellung der Position des Kommas (Fließkomma, Gleitkomma)Beispiele

12345, k = 2 : 123,4512345, k = 5 : 0,1234512345, k = –4 : 123.450.000

Beispiel: wissenschaftliche Notation des Taschenrechners1,2345 x 104 entspricht 12.345Exponent zur Basis 10 gibt Position des Kommas an

Page 514: EinfTI Script 2013

80Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9 Fließkomma-Zahlendarstellung (2)

Allgemein

Zahl x wird dargestellt als: m x be

Mantisse m, Basis b, Exponent e

e wird auch Charakteristik genannt

Darstellung nicht eindeutig

2 = 1,0 x 21 oder 2 = 0,5 x 22

Normalisierung

Zahl x ≠ 0 heißt normalisiert, wenn gilt: 1 ≤ m < b

Beispiel für b = 10:

12.345 wird dargestellt als 1,2345 x 104

Wert der Mantisse zwischen 1 und 10

Beispiel für b = 2:

3,625 wird dargestellt als 1,11012 x 21

Wert der Mantisse zwischen 1 und 2

Page 515: EinfTI Script 2013

81Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.1 Binäre Darstellung von Fließkommazahlen

Freiheitsgrade bei der Darstellung

Gesamtlänge der DarstellungLänge der Exponentendarstellung (Länge der Mantissendarstellung)Darstellung der Mantisse(Einer-, Zweierkomplement oder Vorzeichen und Betrag)Darstellung des Exponenten(Einer-, Zweierkomplement, Vorzeichen und Betrag oder Biased Exponent)

Biased Exponent

Darstellung des Exponenten ist immer positiv und um eine Konstante höher als der tatsächliche Wert (Bias)

e = eDarst - BBeispiel: Bias B = 63, Exponent e = –8 Darstellung eDarst = 55Vorteil: durchgängiger positiver Nummernraum für die Charakteristik

Page 516: EinfTI Script 2013

82Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.2 IEEE 754 Darstellung

Standard zur Vereinheitlichung der unterschiedlichen Darstellungen

Aufbau einer IEEE 754 Fließkommazahl

allgemeine Wertberechnung: x = (-1)s x 1,m x 2e-B

erste Ziffer (immer 1) wird nicht in Mantisse gespeichertBias B hängt von der Länge der Exponentendarstellung E ab: B = 2E-1 - 1gültige Charakteristiken: 0 < e < 2E - 1(Werte 0 und 2E - 1 sind reserviert)

http://steve.hollasch.net/cgindex/coding/ieeefloat.html

s e m

VorzeichenExponent (Länge E)

Mantisse (Länge M)

Page 517: EinfTI Script 2013

83Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.2 IEEE 754 Darstellung

Spezielle Werte

Null / ZeroVorzeichen s, e = 0 , m = 0 (positive und negative Null)

Unendlich / Infinitysymbolische Darstellung für unendlich große ZahlVorzeichen s, e = 2E - 1, m = 0 (positiv und negativ Unendlich)

NaN / Not a numberVorzeichen s, e = 2E - 1, m ≠ 0

denormalisierte Zahlen (kleiner als kleinste normalisierte Zahl)Vorzeichen s, e = 0, m ≠ 0Wertberechnung: (-1)s x 0, m x 21-B

Page 518: EinfTI Script 2013

84Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.2 IEEE 754 Darstellung

Formatdefinitionen

zusätzliches Format: Extended Precision zwischen Double und Quad (herstellerabhängig definierbar)Vgl. zu Festkommadarstellung bei z.B. 32bit

Single Precision Double Precision Quad Precision

Gesamtlänge (N) 32 Bit 64 Bit 128 Bit

Vorzeichen 1 Bit 1 Bit 1 Bit

Mantissen (M) 23 Bit 52 Bit 112 Bit

Exponent (E) 8 Bit 11 Bit 15 Bit

Bias (B) 127 1023 16383

⏐xmin⏐(norm.) 2-126 ≈ 10-38 2-1022 ≈ 10-308 2-16383 ≈ 10-4932

⏐xmin⏐(denorm.) 2-149 ≈ 10-45 2-1074 ≈ 10-324 2-16492 ≈ 10-4965

⏐xmax⏐ (2 - 2-23) x 2127 ≈ 1038

(2 - 2-52) x 21023 ≈ 10308

(2 - 2-112) x 216383 ≈ 104932

Page 519: EinfTI Script 2013

85Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.2 IEEE 754 Darstellung

Manche Architekturen haben herstellerspezifisches Format

Großrechner wie S/390 von IBM

VAX

Cray-Supercomputer (einige)

Nicht alle dezimal „runden“ Zahlen darstellbar

12,45

IEEE 754 S/390

M E M E

23bit 8bit 24bit 7bit

Page 520: EinfTI Script 2013

86Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

9.3 Rechenoperationen

Beispiel IEEE 754 Darstellung

Addition/Subtraktion

denormalisiere Zahl mit kleinerem Exponentd.h. Exponenten auf gleichen Wert bringen

addiere oder subtrahiere Mantissennormalisiere Mantisseberechne Vorzeichen des Ergebnisses

Multiplikation/Division

multipliziere/dividiere Mantissenaddiere/subtrahiere Exponentennormalisiere Mantisseberechne Vorzeichen des Ergebnisses

Page 521: EinfTI Script 2013

1Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation nach Booth (Beispiel)

Beispiel: 10 x -13 = -130 (bei n = 5)01010 x 10011a b

01010 x 100110 b-1mit ‚0‘ hinzufügen, um letzten ‚10‘Übergang betrachten zu können

p0000000000 Resultat p mit 10 bit initialisieren

von b 100110 die bits b0 und b-1 betrachten10 -> subtrahiere a x 2i (Ende einer 1-Folge)

0000000000 2K von a -> 101101111110110 danach nächste Op Position nach links 1111110110 erster Schritt fertig

von b 100110 die bits b1 und b0 betrachten1111110110 11 -> nichts tun und Op Position nach links____00000_ 1111110110

Page 522: EinfTI Script 2013

2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik

5.2 Multiplikation nach Booth (Beispiel)

Beispiel: 10 x -13 = -130 (bei n = 5)

1111110110 01 -> addiere a x 2i (Beginn einer 1-Folge)___01010__ danach nächste Op Position nach links

1 0000011110 Schritt fertig

0000011110 00 -> tue nichts__00000___ danach nächste Op Position nach links 0000011110 Schritt fertig

0000011110 10 -> subtrahiere a x 2i (Ende einer 1-Folge)110110____1101111110 Ergebnis fertig

-130 dezimal

Page 523: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 1

Rechnerarchitektur

Das grundlegende Organisationskonzept der meisten Computer, die gegenwärtig benutztund auf dem Markt angeboten werden, ist das etwas 50 Jahre alte Konzept von ’von-Neu-mann, Burks, und Goldstine’.

Burks, A>W., Goldstine, H.H., von Neumann, J., Preliminary Discussion of the Logical Design of anElectronic Computing Instrument, in: Taub, A.H. (ed.): Collected Works of John von Neumann, vol.5, Mac Millan, New York, 1963, pp 34-79.

Hauptgrund für die Langlebigkeit des Konzepts ist die einzigartige Verbindung von Ein-fachheit und Flexibilität.Das folgende Blockschaltbild erläutert das Grundkonzept, wobei der Einfachheit halber an-genommen wird, daß alle Datentransporte über eine gemeinsame Verbindungseinrichtung(Bus) stattfinden.

Auf der Ebene der Rechnerstruktur faßt man i.a. den Befehlsprozessor und den Datenpro-zessor zu einer Einheit zusammen, die zentrale Recheneinheit (central processing unit CPU)genannt wird.Die von-Neumann-Architektur kann als die Rechnerorganisation des minimalen Hard-wareaufands bezeichnet werden, bestehend aus folgenden Einheiten:

- CPU: sie interpretiert die Befehle des Programms und führt sie aus.- Speicher: er enthält das Maschinenprogramm und die dazugehörigen Daten.- I/O-Prozessor: er stellt die Verbindung mit der Außenwelt her und verwendet

dazu die peripheren Ein/Ausgabegeräte.- Datenwege: sie dienen dem Informationaustausch zwischen den Komponenten

und enthalten sowohl Datenpfade, als auch Adreß- und Kontrollpfade zurSteuerung des Systems.

Das ist die einfachste Form der physikalischen Struktur der von-Neumann-Architektur.

CPU

Befehlsprozessor

Befehle

Sequentielle Rechner - von-Neumann-Architektur

Datenprozessor I/O-Prozessor

Speicher

Verbindungseinrichtung (Bus)

Daten Daten

Befehle/Daten

Vorlesung Einführung in die Technische Informatik Seite 2

Rechnerarchitektur

Neben der Struktur ist das Operationsprinzip einer Rechnerarchitektur die wichtigste Fest-legung des funktionellen Verhaltens der Architektur. Um das Operationsprinzip der von-Neumann Architektur angeben zu können, müssen wir die Informationsstruktur und dieKontrollstruktur betrachten.Grundsätzlich ist die kleinste identifizierbare Informationseinheit in einem Rechner der boo-lesche Vektor der Länge n (n Š 1), wobei häufig 8 bit zusammengefaßt die kleinste adres-sierbare Einheit, das Byte, darstellen.In der von-Neumann-Maschine können diese booleschen Vektoren die folgenden Informa-tionstypen repräsentieren:

- Befehle (Anweisungen an die Hardware)- Daten (Zahlen oder Zeichen)- Adressen von Speicherzellen

Die von-Neumann-Maschine kann einem Speicherzelleninhalt nicht ansehen, was er reprä-sentiert. Die Interpretation eines solchen Maschinenwortes erfolgt auf grund des Zustands,indem sich die Maschine zum Zeitpunkt der Interpretation befindet. Die aus dem Speichergeholte Information wird abwechselnd als Befehl oder als Datum interpretiert, wobei beimStart eines Programms mit der Befehlsinterpretation begonnen wird.

Definition : Rechnerarchitektur [Giloi 93]Eine Rechnerarchitektur ist bestimmt durch ein Operationsprinzip für die Hard-ware und die Struktur ihres Aufbaus aus den einzelnen Hardware-Betriebsmit-teln.

Definition : OperationsprinzipDas Operationsprinzip definiert das funktionelle Verhalten der Architekturdurch Festlegung einer Informationsstruktur und eine Kontrollstruktur.

Definition : (Hardware) - StrukturDie Struktur einer Rechnerarchitektur ist gegeben durch Art und Anzahl derHardware-Betriebsmittel sowie die sie verbindenden Kommunikationseinrich-tungen.

- Kontrollstruktur : Die Kontrollstruktur einer Rechnerarchitektur wird durchSpezifikation der Algorithmen für die Interpretation und Transformation derInformationskomponenten der Maschine bestimmt.

- Informationsstruktur : Die Informationsstruktur einer Rechnerarchitektur wirddurch die Typen der Informationskomponenten in der Maschine bestimmt, derRepräsentation dieser Komponenten und der auf sie anwendbaren Operationen.Die Informationsstruktur läßt sich als Menge von ’abstrakten’ Datentypen spe-zifizieren.

- Hardware-Betriebsmittel : Hardware-Betriebsmittel einer Rechnerarchitektursind Prozessoren, Speicher, Verbindungseinrichtungen und Peripherie.

- Kommunikationseinrichtungen : Kommunikationseinrichtungen sind die Ver-bindungseinrichtungen, wie z.B.: Busse, Kanäle, VNs ; und die Protokolle, diedie Kommunikationsregeln zwischen den Hardware-Betriebsmittel festlegen.

Page 524: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 3

PC

Rechnerarchitektur

Ablauf der Befehlsausführung

Die ’abstrakte von-Neumann-Maschine‘ (der I/O-Prozessor wird nicht berücksichtigt) be-steht aus dem Befehls-und Datenprozessor und aus dem Speicher. Alle Speicherzellen(Hauptspeicher und Register) stellen zusammen das Zustandsregister der Maschine dar. Dieabstrakte von-Neumann-Maschine ist also nichts anderes als ein endlicher Automat (FSM),dessen Zustände durch den jeweiligen Speicherinhalt gegeben sind, wobei mit jedem Zu-standsübergang immer nur der Inhalt von genau einer Speicherzelle verändert werden kann.

• sequentielle Befehlsabarbeitung mit einem DatumDieses Prinzip der maximalen Flexibilität führt zu einem sehr hohen Transport von Maschi-nenworten zwischen Speicher und CPU, der sich leistungsmindernd auswirkt. Er wird von-Neumann-Flaschenhals (von-Neumann-bottleneck) genannt.

Programm-anfang

ersten Befehl ausSpeicher holen

Befehl in dasBefehlsregisterbringen

Ausführung eventuellerAdreßänderungen und ggf.Auswertung weiterer Angabenim Befehl

evtl. Operandenaus dem Speicherholen

Umsetzen des Operationscodesin Steueranweisungen

Operation ausführen,Befehlszähler um 1 erhöhenoder Sprungadresse einsetzen

Programm-ende?

Ende

Ja

Nein

nächsten Befehl ausdem Speicher holen

Program Counter

PC+1

PC:=BRA

Vorlesung Einführung in die Technische Informatik Seite 4

Rechnerarchitektur

Maschinensprache

Die wichtigste Schnittstelle zwischen Hardware und Software ist die Maschinensprache.

Sie ist definiert durch eine Menge von Maschinenbefehlen.Ein Maschinenbefehl (auch: Maschineninstruktion oder auch nur Instruktion) entspricht ei-ner elementaren Operation des Rechners. Alle Anweisungen aus höheren Programmierspra-chen müssen auf Maschinenbefehle abgebildet werden (->Compiler).

Ein Maschinenbefehl besteht aus einem Bitmuster, das unmittelbar vom Prozessor interpre-tiert werden kann. Ein Teil des Bitmusters beschreibt die gewünschte Operation (Operati-onscode), ein anderer Teil die Operandenadresse(n), also die Adresse(n) derSpeicherelemente, die durch die Operation verknüpft werden sollen.

Bei den Maschinenbefehlen unterscheidet man zwei grundlegende Typen:• Maschinenbefehle mit fester Länge• Maschinenbefehle mit variabler Länge

Bei den Maschinenbefehlen mit fester Länge ist der Operandenteil ebenfalls fest und somitsind nur Adressierungsverfahren möglich, deren Operandenadresse in das Befehlsformathineinpassen.

z.B. 32-bitOPC OPA

Operation Code Operand Addresses

OPC

OPC

Operation Code

EA effective Address

ADR ext. fields

Operand Addresses

z.B. 16-bit und n x 16-bit

Maschinenbefehle mit variable Länge nutzen je nach Adressierungsart unterschiedliche Be-fehlslängen, wobei die folgenden Worte die zusätzlichen Operandenadresse enthalten.

Page 525: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 5

Rechnerarchitektur

Maschinentypen

Ist im Befehlsformat kein Operandenfeld für die Adressierung vorgesehen, so nennt mandiese Architektur

- 0-Adreß-Maschine oder Stack-Maschine

Die Befehle beziehen sich immer implizit auf spezielle Register, in diesem Fall auf den ’top-of-stack’.

Die Drei-Adreß-Maschine kann drei Operanden pro Befehl referenzieren. wird aber zumeistnur als Register-Register-Maschine mit festem Befehlsformat realisiert (->RISC).

Ist im Befehlsformat ein Operandenfeld für die Adressierung vorgesehen, so kann man ne-ben dem impliziten Register einen Speicheroperanden referenzieren. Monadischen Opera-tionen werden auf das implizite Register, den Akkumulator, angewendet. DyadischenOperationen verknüpfen den Inhalt des Akkumulators mit dem Inhalt der durch die Operan-denadresse referenzierten Speicherzelle.Diese Architektur heißt

- Ein-Adreß-Maschine oder Akkumulator-Maschine

Die von-Neumann-Architektur ist eine solche Ein-Adreß-Maschine.

Sind im Befehlsformat zwei Operandenfelder für die Adressierung vorgesehen, so kann manbei dyadischen Operationen direkt zwei durch den Befehl referenzierten Speicherzellen ver-knüpfen.Diese Architektur heißt

- Zwei-Adreß-Maschine

OPC

OPC

Operation Code

EA effective Address

ADR ext. fields

Operand Addresses

z.B. 16-bit und n x 16-bit

EA1 EA2Destination Source

ADD D0,D1

Operandenfelder

Befehl:addiert die zwei Register D0 und D1 das Resultat wird in D0 abgelegt.D0 ist damit überschrieben

ADD D0,(A0)Befehl:addiert das Register D0 mit dem Inhalt

das Resultat wird in D0 abgelegt.D0 ist damit überschrieben

der Speicherzelle, wo A0 hinzeigt

ADD (A1),(A0)Befehl:addiert den Inhalt der Speicherzelle (A1)

das Resultat wird in der Speicherzelle (A1) abgelegt.Die Speicherzelle (A1) ist damit überschrieben

mit dem Inhalt der Speicherzelle, wo A0 hinzeigt

Beispiele

Rn <- Rn + Rx Rn <- Rn + Mem(A0) Mem(A1) <- Mem(A1) + Mem(A0)

ADR ext. fields

Vorlesung Einführung in die Technische Informatik Seite 6

Rechnerarchitektur

Klassifikation von Befehlen

• Transportbefehle; sie dienen dazu, Daten von einem Ort an einen anderen zuübertragen. Speicherbefehle schreiben Registerinhalte in den Arbeitsspeicher,Ladebefehle transportieren aus dem Speicher zu lesende Daten ins Register.Register-Register-Transporte werden ebenfalls als Laden bezeichet, Speicher-Speicher-Transporte als Speichern. Transport mit Sofortoperanden dient zumInitialisieren von Register- oder Speicherinhalten.

• Arithmetische Befehle; sie dienen dazu, Operanden gemäß den vom Prozessorunterstützten Zahlen/Datentypen zu manipulieren (Betragszahlen, ganze Zah-len, Gleitkommazahlen, Bytes; Addition, Subtraktion, Multiplikation, Divisi-on, Invertierung usw.).

• Vergleichsbefehle; hier werden zwei Operanden gemäß einer Ordnungsrelati-on und/oder der Bitmustergleichheit miteinander verglichen. Das Ergebniswird als Anzeige im Statuswort des Prozessors abgelegt (Anzeigen ’<, >, =’).

• Sprungsbefehle; der unbedingte Sprung überschreibt den Befehlszähler immermit einem angegebenen Operanden, der bedingte nur, wenn die Anzeigen imStatuswort des Prozessors einer als Sofortoperand angegebenen Maske entspre-chen. Wichtig ist weiter der Unterprogrammsprung, der an die angegebene Pro-grammadresse verzweigt, den alten Befehlszählerstand und dieRücksprungadresse aber vorher rettet (in ein angegebenes Register,oder auf denStack). Unter Umständen gibt es auch spezielle Schleifenbefehle, z. B. "dekre-mentiere und springe wenn größer 0".

• Bitmuster-Befehle; sie dienen dazu, Operanden gemäß einer Bitmusteropera-tion zu manipulieren (Bitmuster - UND/ODER/XOR/NEGIEREN, Schieben).

• Bit-Befehle; Transportbefehle zwischen einem Anzeigebit des Statusworts undBitstellen in Registern oder Speicher (Bit testen, Bit schreiben) bzw. von So-fortoperand zu Bitstelle (Bit setzen, Bit löschen).

• E/A-Befehle; Transportbefehle zwischen E/A-Steuerung und Registern, bzw.Speicher.

• Spezialbefehle; sie beeinflussen die Betriebsart des Prozessors durch Ladenspezieller Register (z. B. Basisadreßregister), dienen der Unterbrechungsbe-handlung und stehen i. d. R. nur privilegierten Programmen (z. B. dem Be-triebssystem) zur Verfügung.

Page 526: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 7

Rechnerarchitektur

Adressierungstechniken

• immediate; Sofortoperand; im Befehl steht nicht die Speicheradresse des Ortsdas Operanden, sondern der Operand selbst. Mit Sofortoperanden können Kon-stanten in eine Berechnung eingebracht werden.

• short immediate; Kurzer Sofortoperand; der im Befehl stehende Sofortoperandbesitzt besonders kurze Bitlänge (z. B. 4 oder 8 Bit), hiermit können gut diehäufigen Konstanten 0, 1 eingebracht werden.

• register direct; Register direkt; der Operand steht in dem angegebenen Regi-ster.

• Speicher direkt; der Operand steht in der per Adresse angegebenen Speicher-zelle. Die Adresse steht direkt im Adreßteil des Befehlswortes.

• register indirect; Register indirekt; im angegebenen Register findet sich dieSpeicheradresse des Operanden.

• Speicher indirekt; in der per Adresse angegebenen Speicherzelle steht die Spei-cheradresse des Operanden.

• register indirect with displacement; ... mit Distanz; zur Operandenadressewird eine im Befehl stehende Konstante hinzuaddiert.

• register indirect with index; ... indiziert; zur Operandenadresse wird der Inhalteines zusätzlich angegebenen Indexregisters hinzuaddiert.

• ... Basisregister relativ; zur Operandenadresse wird der Inhalt eines besonderenRegisters (des Basisregisters), das nicht ausdrücklich im Befehl genannt wird,dazuaddiert.

• program counter indirect;... Befehlszähler relativ; zur Operandenadresse wirdder momentane Inhalt des Befehlszählers hinzuaddiert.

• Register indirekt mit Postinkrement; (An)+; nach dem Operandenzugriff wirddas im Befehl angegebene Register im Inhalt um 1 erhöht.

• Register indirekt mit Prädekrement; -(An); vor dem Operandenzugriff wird dasim Befehl angegebene Register im Inhalt um 1 vermindert, dann wird der Inhaltals Adresse des Operanden ausgewertet.

Mit den letzten beiden Adressierungsarten können gut die Stackoperationen "Push" und"Pop" realisiert werden (->Stack).

Vorlesung Einführung in die Technische Informatik Seite 8

Rechnerarchitektur

Adressierungstechniken des MC 68000

The addressing modes of a CPU determine the way in which a processor can reference anoperand held in one of its registers or in memory. For each operand, the addressing modespecifies how the processor is to locate or calculate the actual address of the operand. Thisactual address is called the effective address EA.

Die große Anzahl der Adressierungsmodi ist typisch für die Generation der ersten Mikro-prozessoren, die mehr oder weniger nach dem Vorbild der PDP11 entworfen wurden. IhreKomplexität und die teilweise damit verbundene lange Ausführungszeit eines Befehls führtezu der Entwicklung der -> Load/Store-Architekturen.

Nr. EA-Modus EA-Reg. Adressierungsart Mnemonik1 0 0 0 Reg.-Nr. Datenregister direkt Dn2 0 0 1 Reg.-Nr. Adressierregister direkt An3 0 1 0 Reg.-Nr. Adressierregister indirekt (ARI) (An)4 0 1 1 Reg.-Nr. ARI mit Postinkrement (An)+5 1 0 0 Reg.-Nr. ARI mit Predekrement -(An)6 1 0 1 Reg.-Nr. ARI mit Adressdistanz d16(An)7 1 1 0 Reg.-Nr. ARI mit Adressdistanz und Index d8(An,Rx)

8 1 1 1 0 0 0 Absolut kurz $XXXX9 1 1 1 0 0 1 Absolut lang $XXXXXXXX10 1 1 1 0 1 0 PC relativ mit Adressdistanz d16(PC)11 1 1 1 0 1 1 PC rel. mit Adressdistanz u. Index d8(PC,Rx)12 1 1 1 1 0 0 Konstante, Statusregister *, SR, CCR13 1 1 1 1 0 1 (nicht verwendet) 14 1 1 1 1 1 0 (nicht verwendet) 15 1 1 1 1 1 1 (nicht verwendet)

Übersicht der Adressierungsarten

EA-field 6-bit

3-bit 3-bit

8 Datenregister und 8 Adreßregister adressierbar

16-bit

32-bit

Page 527: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 9

Rechnerarchitektur

Adressierungsart "Register direkt".Die Operandenadresse ist ein Register (Datenregister, Adreßregister, Statusregister).Beispiel:

MOVE DO,D3 gleichbedeutend mit:MOVE.W DO,D3

Befehl Daten-länge EA1

Adresse (Quelle)

EA2Adresse (Ziel)

Operanden

Schematische Darstellung:

vor Ausführung des Befehls:

Programmspeicher15 8 7 0

Datenspeicher15 8 7 0

Prozessor

36 008004

8006 nächster Befehl

DO

D3DO 12345678

D3 87654321

nach Ausführung des Befehls:

12345678

87654321

PC 00008004

DO

D3

12345678

12345678

PC 00008006

Programmspeicher15 8 7 0

Datenspeicher15 8 7 0

36 008004

8006 nächster Befehl

Prozessor

MOVE.x

0 0 x x15 12 11 6 5 0

EA1EA2

.B 8 bit

.W 16 bit

.L 32 bit

Operad SizeBefehl

Vorlesung Einführung in die Technische Informatik Seite 10

Rechnerarchitektur

+

Generation:

Operand

Memory address:

031Assembler syntax:Mode:Register:Data register:Number of extension words:

EA = DnDn000nDn0

Generation:

Operand031

Assembler syntax:Mode:Register:Address register:Number of extension words:

EA = AnAn001nAn0

Generation:

Memory address031

Assembler syntax:Mode:Register:Address register:

EA = (An)(An)010nAn

Operand031

Number of extension words: 0

Memory address:

Generation:

Memory address031

Assembler syntax:Mode:Register:Address register:

EA = (An)

(An)+011nAn

Operand031

Number of extension words: 0

Operand length (1,2, or 4)

An = An + Size

Page 528: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 11

Rechnerarchitektur

Registermodell

Programmiermodell mit demn im User-Mode ansprechbaren Registern. Im Supervisor-Mode sind weitere Register vorhanden, die nur mit privilegierten Befehlen bearbeitet wer-den können.

31 16 15 8 7 0D0D1D2D3D4D5D6D7

Acht Daten-

31 16 15 0A0A1A2A3A4A5A6A7

Acht Adress-Register

USER STACK POINTERSUPERVISOR STACK POINTER

31 24 23 0

Programmzähler

15 8 7 0

StatusregisterSYSTEM

BYTE

USER

BYTE

davon ein StackpointerA7’

CCR

PC

SR

Register

User ModeSupervisor Mode

Vorlesung Einführung in die Technische Informatik Seite 12

Rechnerarchitektur

Statusregister des MC68000

Das CPU 32 Manual, das die gesamten Befehle und Adressierungsarten des MC68000 Pro-zessors enthält, findet man im "Netz" unter folgender URL:http://mufasa.informatik.uni-mannheim.de/lsra/tools/bsvc/bsvc.html.

T S I2 I1 I0 X N Z V C15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Trace-Betriebsart

Supervisor-Bit

System-Byte Anwender-Byte (CCR)

Statusregister (SR)

Interrupt-Maske

Extend(Erweiterung)

Negativ

Zero(Null)

Überlauf(Overflow)

Carry(Übertrag)

Bedingungscodes(Condition Codes)

Supervisor and User Byte of status registerSystem- und Anwender-Byte im Statusregister

Page 529: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 13

Rechnerarchitektur

Byte Ordering

There are two different conventions for ordering the bytes within a longer data type as word,long word, etc. Bid Endian byte order puts the most significant byte of the data type (thebig end) to the address xxxx00. Little Endian puts the least significant byte of the data type(the little end) to the address xxxx00. The data type ‘byte’ has the same arrangement on both‘byte sexes’.

When operating within one machine, the byte sex is normally unnoticable. Byte order is aproblem when exchanging data among machines with different orderings.A special protocol is required to type tag all data types larger than bytes. These tags allowthe rearrangement of the byte order for the machine. This can be performed at the sendingor the receiving side (-> XDR Protocol).

800B0

801B1

802B2

803B3

804B4

805B5

806B6

807B7

800B0

801B1

802B2

803B3

804B4

805B5

806B6

807B7

Base Address : 800

800WH0

801WL0

802WH1

803WL1

804WH2

805WL2

806WH3

807WL3

800WL0

801WH0

802WL1

803WH1

804WL2

805WH2

806WL3

807WH3

800LHH0

801LHL0

802LLH0

803LLL0

804LHH1

805LHL1

806LLH1

807LLL1

800LLL0

801LLH0

802LHL0

803LHH0

804LLL1

805LLH1

806LHL1

807LHH1

Big Endian Little Endian

B0 = Byte 0

WHo = Word 0, High Byte

LHH0 = Longword 0, High Word, High Byte

WLo = Word 0, Low Byteetc.

etc.

LHL0 = Longword 0, High Word, Low ByteLLH0 = Longword 0, Low Word, High ByteLLL0 = Longword 0, Low Word, Low Byteetc.

Bytes

Words (16 bit)

Longwords (32 bit)

Vorlesung Einführung in die Technische Informatik Seite 14

Rechnerarchitektur

Memory Alignment

Die Ausrichtung von Datenobjekten auf Speicheradressen nennt man Alignment. Die Adres-sierung von Datenobjekten im Speicher erfogt i.A. auf der Basis der kleinsten Einheit, mei-stens dem Byte. Größere Datentypen könnten damit an jeder möglichen Byteadressebeginnen. Ist die Datenbreite des Speichers z.B. 32 bit, so könnte ein long word Operand,der auf einer ungeraden Byteadresse beginnt (-----01)2 zu mehreren Speicherzugriffen füh-ren, bei denen nur Teile des Operanden geholt werden können. Architekturen, die solche Zu-griffe unterstützen, haben keine Restriktionen auf die Anordnung der Datenobjekte imSpeicher (unrestricted data alignment). Der Nachteil ist, das die Anzahl der erforderlichenHauptspeicherzugriffe erhöht wird.

Die Assemblerdirektive für das Erzwingen eines Alignments lautet:

.align 2

Hierbeit stellt 2 die Anzahl der Bytes für das Memory Alignment dar.

800LHH0

801LHL0

802LLH0

803

LLL0804 805 806 807

LHH0 = Longword 0, High Word, High ByteLHL0 = Longword 0, High Word, Low ByteLLH0 = Longword 0, Low Word, High ByteLLL0 = Longword 0, Low Word, Low Byteetc.

Longwords (32 bit)Address of Longword = 801

1.Fetch

2.Fetch

Will man diesen Nachteil vermeiden, so muß man bestimmte Restriktionen für die Anord-nung der Datenobjekte im Speicher einführen. Dieses Alignment ist aus Leistungsgründenund zur Vereinfachung der Hardware des Speicherports sehr wichtig. Damit verbietet maneine Anordnung des Longwords wie im obigen Beispiel. Eine solche Anordnung der Daten-objekte im Speicher nennt man dann missaligned. Versucht man auf ein längeres Datenobjekt mit einer ‘missaligned’ Adresse zuzugreifen(was die Hardware nicht kann!!), so wird eine Ausnahmebehandlung (Exception) ausgelöst,der sogenannte ‘Missaliged Trap’ (->Trap).Die 68xxx -Prozessorfamilie hat je nach Implementierung unterschiedliche Alignments, wo-bei zumindest die Instruktionen immer auf 16-bit Kanten beginnen müssen. Der 68000 Si-mulator erwartet auch für die Daten ein 16-bit Alignment.Die meisten Architekturen benutzen als minimales Alignment die Wortbreite ihrer Register.

Page 530: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 15

Befehlsliste und Effekte auf CCR

Mnemonic Operation Assembler Syntax Conditioncodes

ABCD Addition dezimal ABCD Dy, Dx * U * U *

X N Z V O

mit Erweiterungsbit ABCD-(Ay), -Ax

ADD Addiere binär ADD.s<ea>,Dn * * * * *

ADD.sDn,<ea>

ADDA Addiere Adresse ADD.s<ea>,An - - - - -

ADDI Addiere direkt ADDI.s#<data>,<ea> * * * * *

ADDQ Addiere schnell ADDQ.s#<data>,<ea> * * * * *

ADDX Addiere mit ADDX.s Dy, Dx * * * * *Erweiterungsbit

ADDX.s -(Ay), -(Ax)

AND Logisches UND AND.s <ea>, Dn - * * 0 0

AND.s Dn, <ea>

ANDI UND direkt ANDI.s#<data>,<ea> - * * 0 0

ASL,ASR Arithmetische Ver- ASd.s Dx, D * * * * *

ASd.s <ea>schiebung nach links,nach rechts

AS.d # <data>, Dy

Bcc Bedingter Sprung Bcc <label> - - - - -

BCHG Prüfe ein Bit und BCHG Dn, <ea> - - - - -ändere es BCHG # <data>, <ea>

BCLR Prüfe ein Bit und BCLR Dn, <ea> - - * - -setze es auf 0 BCLR # <data>, <ea>

BRA Unbedingter Sprung BRA <label> - - - - -BSET Prüfe ein Bit und BSET Dn, <ea> - - * - -

setze es BSET # <data>, <ea>

Vorlesung Einführung in die Technische Informatik Seite 16

Befehlsliste und Effekte auf CCR (Fortsetzung)

BSR Sprung zum BSR <label> - - - - -

BTST Prüfe ein Bit BTST Dn, <ea> - - * - -

BTST # <data>, <ea>

CHK Prüfe Register CHK <ea>,An - - U U U

CLR Setze Operand auf 0 CLR.x <ea> - 0 1 0 0CMP Vergleiche CMP.s <ea>, Dn - * * * *

EOR Logisches exclusiv EOR.s Dn, <ea> - * * 0 0

auf Grenzen

CMPA Vergleiche Adresse CMPA.s <ea>, An - * * * *CMPI Vergleiche direkt CMPI.s# <data>,<ea> - * * * *CMPM Vergleiche Speicher CMPM.s (Ay)+, (Ax)+ - * * * *

Unterprogramm

DBcc-><- Prüfe Bedingung, DBcc Dn, <label> - - - - -vermindere undspringe

DIVS Division m. Vorzeichen DIVS <ea>, Dn - * * * 0

DIVU Division o. Vorzeichen DIVU <ea>, Dn - * * * 0

ODEREORI Exclusives ODER EORI.s# <data>,<ea> - * * 0 0

direkt

EXG Datentausch EXG Rx, Ry - - - - -zwischen Register

EXT Vorzeichen- EXT.s Dn - * * 0 0erweiterung

JMP Springe JMP <ea> - - - - -

JSR Springe zum Unter- JSR <ea> - - - - -programm

Mnemonic Operation Assembler Syntax ConditioncodesX N Z V O

Page 531: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 17

Befehlsliste und Effekte auf CCR (Fortsetzung)

LSL,LSR Logische LSd.s Dx, Dy * * * 0 *

LEA Lade die effektive LEA <ea>, An - - - - -Adresse

LINK Verbinde und weise zu LINK An, - - - - -<Verschiebung>

MOVE Transportiere Daten MOVE.s<ea>, <ea> - * * 0 0Code-Bits

MOVE Transportiere zum MOVE <ea>, CCR * * * * *Bedingungsspeicherzum CCR

MOVE Transportiere zum MOVE <ea>, SR * * * * *Statusregisterzum SR

MOVE Transportiere vom MOVE SR, <ea> - - - - -Statusregistervom SR

MOVE Transportiere den MOVE USP, An - - - - -Anwender-Stack-USPpointer

MOVE An, USP

MOVEA Transportiere die MOVEA.s <ea>, An - - - - -Adresse

MOVEM Transportiere MOVE.s <Register- - - - - -mehrere Register(see note) liste>, <ea>

MOVEM.s <ea>,<Registerliste>

MOVEP Transportiere MOVEP Dx, d (Ay) - - - - -periphere Daten MOVEP d(Ay), Dx

MOVEQ Transportiere MOVEQ#<data>, Dn - * * 0 0schnell

Mnemonic Operation Assembler Syntax ConditioncodesX N Z V O

Verschiebungnach linksnach rechts

LSd.s# <data>, DyLSd.s <ea>

Vorlesung Einführung in die Technische Informatik Seite 18

Befehlsliste und Effekte auf CCR (Fortsetzung)

MULS Multiplikation mit MULS <ea>, Dn - * * 0 0Vorzeichen

MULU Multiplikation ohne MULU <ea>, Dn - * * 0 0Vorzeichen

NBCD Negiere dezimal NBCD <ea> * U * U *mit Erweiterung

NEG Negiere NEG.s <ea> * * * * *

NEGX Negiere mit NEGX.s <ea> * * * * *Erweiterung

NOP Keine Operation NOP - - - - -

NOT Logisches Komplement NOT.s <ea> - * * * *

OR Logisches ODER OR.s <ea> - * * 0 0OR Dn, <ea>

ORI Logisches ODER ORI.s# <data>, <ea> - * * 0 0direkt

PEA Eintragen der PEA <ea> - - - - -

RESET Normieren externer RESET - - - - -Einheiten

ROL,ROR Ringverschiebung ROd.s Dx, Dy - * * 0 *nach linksnach rechts

ROd.s# <data>, DyROd.s <ea>

ROXL, Ringverschiebung ROXd.s Dx, Dy * * * 0 *mit Erweiterungsbitnach links, nach

ROXd.s# <data>, D<ROXd.s <ea>

ROXR

rechts

RTE Springe zurück RTE * * * * *von Ausnahme

Mnemonic Operation Assembler Syntax ConditioncodesX N Z V O

Page 532: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 19

Befehlsliste und Effekte auf CCR (Fortsetzung)

RTR Springe zurück RTR * * * * *und ersetze Bedingungscodes

RTS Zurück vom RTS - - - - -Unter-

SBCD subtrahiere dezimal SBDC Dy, Dx * U * U *mit Erweiterungsbit SBCD -(Ay), -(Ax)

Scc Setze in Abhängig- Scc <ea> - - - - -keit der Bedingung

STOP Lade das Statusre- STOP # <data> - - - - -gister und halte an

SUB Subtrahiere binär SUB.s <ea>, Dn * * * * *SUB.s Dn, <ea>

SUBA Subtrahiere Adresse SUBA.s <ea>, An - - - - -

SUBI Subtrahiere direkt SUBI.s# <data>, <ea> * * * * *

SUBQ Subtrahiere schnell SUBQ.s# <data>, <ea> * * * * *

SUBX Subtrahiere mit SUBX.s Dy, Dx * * * * *SUBX.s -(Ay), -(Ax)Erweiterungsbit

SWAP Vertauschte SWAP Dn - * * 0 0Registerhälften

TAS Teste und setze TAS <ea> - * * 0 0Operand

TRAP fangen TRAP#<vector> - - - - -TRAPV fangen bei Überlauf TRAPV - - - - -TST Teste einen TST.s <ea> - * * 0 0

Operanden

UNLK lösen UNLK An - - - - -

Mnemonic Operation Assembler Syntax ConditioncodesX N Z V O

Vorlesung Einführung in die Technische Informatik Seite 20

Rechnerarchitektur

Bedingte Sprünge; ‘Conditional Branches’

(-> Bcc Instruction im CPU32 User Manual)The Bcc instructions allow selection of a control path in a program based on conditions.IF (condition is true) THEN (branch to new sequence) ELSE (execute next instruction)

The new sequence of instructions may be at higher or lower memory addresses relative tothe branch instruction. The displacement is added as ‘signed int’ to the PC.

The branch condition table presents the abreviations of the conditions and their coding

CC carry clear 0100 CCS carry set 0101 CEQ equal (to zero) 0111 ZGE greater or equal 1100 N • V + N • VGT greater than 1110 N • V • Z + N • V • ZHI high 0010 C • ZLE less or equal 1111 Z + N • V + N • VLS low or same 0011 C + ZLT less than 1101 N • V + N • VMI minus 1011 NNE not equal (to zero) 0110 ZPL plus 1010 NVC overflow clear 1000 VVS overflow set 1001 V

CC false (0)

branch on condition codeBNE

Branch

SUB generation of condition code

Successor

BranchTarget

branch forward

branch backLoop

CC true (1)

pair ofinstructions

Label:

Label:

CC true (1)

CC false (0)

CC ?

PC++

PC + d

Page 533: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 21

Rechnerarchitektur

(-> DBcc Instruction im CPU32 User Manual)Don’t branch on condition !!!REPEAT (body of loop)UNTIL (condition is true)

The DBcc instruction can cause a loop to be terminated when either the specified conditionCC is true or when the count held in Dn reaches -1. Each time the instruction is executed,the value in Dn is decremented by 1.

IF (CC == true) THEN PC++ELSE {

Dn--IF (Dn == -1)THEN PC++ELSE PC <- PC + d}

CC true (0)

decrement and branch on condition codeDBcc

Branch

SUB generation of condition code

Successor

branch backLoop

CC false (1) and Dn != -1

pair ofinstructions

Label:

PC++ PC + d

or Dn == -1

CC ?

true

DBcc

Dn = -1 ?

Dn - 1

false

PC++

true

false

PC + d

Vorlesung Einführung in die Technische Informatik Seite 22

Rechnerarchitektur

Unterprogramme; Subroutines

The subroutine is a sequence of instructions which is treated as a separate program modulewithin a larger program. The subroutine can be "called" or executed one or more times asthe program executes. Generally, the subroutines associated with a programm accomplishspecific tasks, each of which represents a simpler procedure than that of the entire program.

When the subroutine is called during execution of programs, its instructions are executedand control is then returned to the next instruction in sequence following the call to the sub-routine.

The instruction BSR and JSR cause a transfer of control to the beginning address of a sub-routine. In the Branch to Subroutine statement

BSR <label>the <label> operand causes the assembler to calculate the displacement between the BSR in-struction and the instruction identified by <label>.The instruction RTR and RTS finishes the subroutine and return to the instruction followingthe "call".

Branch to subroutine BSR<disp> 1.(SP)<-(SP)-4;((SP))<-(PC) <disp> is 8-bitor 16-bitsigned integer

2.(PC)<-(PC)+<disp>

Jump to subroutine JSR<EA> 1.(SP)<-(SP)-4;((SP))<-(PC) <EA> is acontroladdressing type

2.(PC)<-(EA)

Return and restore RTR 1.(CCR)<-((SP))7:0;(SP)<-(SP)+2 (CCR) =(SR) 7:02.(PC)<-((SP));(SP)<-(SP)+4Condition codes

Return from RTS (PC)<-((SP));(SP)<-(SP)+4subroutine

Instruction Syntax Operation Comments

BSR

PC++Save

subroutine

return

PC++Restore

Page 534: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 23

Rechnerarchitektur

Stack

Ein Stack ist ein wichtiges Hilfsmittel, das die Verarbeitung von Unterprogrammen und Un-terbrechungen (Interrupts) ermöglicht. Man kann einen Stack entweder direkt in Hardwareauf dem Prozessorchip realisieren oder mit Hilfe eines Stackpointers in den Hauptspeicherabbilden. Die erste Methode ist zwar schneller, erfordert aber mehr Chipfläche als ein ein-ziges Register. Ein weiterer Vorteil der Stackpointer-Methode besteht darin, daß die Spei-chertiefe des Stacks durch zusätzlichen Hauptspeicher beliebig vergrößert werden kann.Ein Stack arbeitet nach dem LIFO-Prinzip (Last In First Out). Dabei sind nur zwei Opera-tionen erlaubt: PUSH und POP. Mit der PUSH-Operation wird ein Datenwort auf den Stackgelegt und mit der POP-Operation wird es wieder zurückgeholt. Während des Zugriffs aufden Hauptspeicher wird der Stackpointer als Adresse (Zeiger) benutzt. Außerdem wird derStackpointer durch die Ablaufsteuerung so verändert, daß ein Zugriff nach dem LIFO-Prin-zip erfolgt. Es gibt zwei Möglichkeiten, den Stackpointer zu verändern:1. vor der PUSH-Operation und nach der POP-Operation2. nach der PUSH-Operation und vor der POP-Operation.

Beachten Sie, daß die Darstellung des Speichers mit niedrigen und höheren Adressen auchvertauscht dargestellt werden kann!

Stack Growing

(SP) -> Top

fffffe

to lower address

Bottom

(free)000000

baseaddress

to higher address

into Lower MemoryStack Growing

(SP) ->

Top

fffffe

to lower address

Bottom

(free)

000000

baseaddress

to higher address

into Higher Memory

(SP) <- (SP) - k

PUSH (value to stack):

then((SP)) <- Operand

Operand <- ((SP))then(SP) <- (SP) + k

POP (value from stack):

(SP) <- (SP) + k

PUSH (value to stack):

then((SP)) <- Operand

Operand <- ((SP))then(SP) <- (SP) - k

POP (value from stack):

Vorlesung Einführung in die Technische Informatik Seite 24

Rechnerarchitektur

Stack

Betrachten wir den Fall, das der Stack zu den niedrigen Adressen hin wächst, so hat diePUSH-Operation folgende Auswirkung:

(SP) ->Stack

fffffe

to lower addressProgram

(free)

000000

baseaddress to higher address

Stack Placement in Memory

Data

.text

.data

.stack

Stack Operation PUSH

(SP) = 1000 -> 12AE

fffffe

to lower address(free)

000000

baseaddress

to higher address

(SP) = 0ffe ->

12AE

fffffe

to lower address000000

baseaddress

to higher address

345C

for Stack growing to lower addresses

before PUSH after PUSH

MOVE.W D0, -(SP) (D0) = 345C

Die Organisation des Stacks ist prozessorspezifisch. Meist beginnt er am Ende des Haupt-speichers und "wächst" nach niedrigeren Adressen. Für diesen Fall beginnt das Programmam Anfang des Hauptspeichers. An das Programm schließt sich der Datenbereich an. DerStack darf niemals so groß werden, daß er den Daten- oder sogar Programmbereich über-schreibt (Stack-Overflow). Wenn durch einen Programmierfehler (zu viele Unterprogramm-aufrufe ohne entsprechende Returns from Subroutine) der Stack überläuft, muß dasBetriebssystem das betreffende Programm abbrechen.

(free)

Page 535: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 25

Rechnerarchitektur

Beispielprogramm: Vektoraddition

ORG $0 LEA $4000,SP init stack pointer BRA START

VECA DC.W 1,2,3,4,5,6 first vector (6 words)VECB DC.W 1,2,3,4,5,6 second vector (6 words)LENGTH DC.W 6 length of one vectorRVEC DS.W 6 reserve memory for result

ORG $2000 start at location 2000 Hex

START CLR.L D0 clear D0 MOVE.W (LENGTH),D0 load LENGTH value LEA VECA,A0 load base address of first vector LEA VECB,A1 load base address of second vector LEA RVEC,A2 load base address of result vector BSR SR_ADD branch to SR BREAK end of program SR_ADD SUB.W #1,D0 decrement counter BMI EXIT if negative, exit SR MOVE.W (A0)+,D1 load first operand to D1 MOVE.W (A1)+,D2 load second operand to D2 ADD.W D1,D2 add operands MOVE.W D2,(A2)+ store result BRA SR_ADD next loopEXIT RTS return from SR

Vorlesung Einführung in die Technische Informatik Seite 26

Rechnerarchitektur

Argument Passing

The information needed by the subroutine is defined in terms of parameters which allow thesubroutine to handle general cases rather than operate on specific values. Each subroutinecall allows different values to be supplied as input parameters and output parameter passedback as results. There are different methodes to transfer the parameters, depending of the memory used tosupply values.

• register• stack• parameter areas• in-line

• Register transferWhen only a small number of arguments are to be transferred, they can be passed directlybetween the main program and the subroutine in the processor registers. Data structures suchas arrays are passed by the address that points to the start of the data structure. Notice the distiction between to calling mechanisms:

- call-by-value- call-by-reference

Call-by-value passes a copy to the subroutine, which can be altered, but has no effect outsidethe subroutine.Call-by-reference passes only a pointer to the data or the data structure, thus giving the sub-routine complete access to the data structure. The data values may be changed by the sub-routine.This parameter passing is restricted to only a small number of arguments which have to fitinto the registers of the processor. The advantage of this kind of is argument passing is a veryfast call, because there is no main memory access required for saving and loading of para-meters.

• Stack transferA stack can be used to pass arguments by having the calling routine push values or addresseson the stack before the call. Popping the arguments in the subroutine give access to the va-lues or addresses. For programs running in user mode the active stack pointer is the USP.The following example shows the passing of input parameter to a subroutine and the addres-sing of the values by the subroutine. MOVE.W VAL1,-(SP) ;PUSH FIRST VALUE TO STACK MOVE.W VAL2,-(SP) ;PUSH SECOND VALUE TO STACK ;STACK increases to lower memory BSR SUBR ...SUBR MOVE.W D1,-4(SP) ;MOVE OF VAL1 TO D1 MOVE.W D2,-6(SP) ADD.W D1,D2 ...

Page 536: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 27

Rechnerarchitektur

• Parameter areasWhen large numbers of parameters are to be passed, a parameter area in memory can beused. The area contains values and/or addresses that are accessed by the subroutine. Thesame area could be used by several subroutines requiring different parameters as long as thearea is large enough to hold the maximum number of arguments.

• In-line codingThis method defines argument values which are constant and will not change after assembly.These values can be defined by DC directives following the call. JSR SUBR DC.W 1 ; DEFINE CONSTANT IN CODE AREA ...

SUBR MOVEA.L (SP),A0 ; GET PC INTO A0 MOVE.W (A0)+,D1 ; GET ARGUMENT FROM CODE AREA

Stack Frames

One of the principal issues in the design of subroutines involves the concept of transparency.Simply stated, when a subroutine finishes executing, it should have no "visible" effect ex-cept as defined by its linkage to the calling program. For example, a subroutine should notchange the values in any registers, unless a register is used to return a result. In some pro-grams this is accomplished by pushing the contents of the registers used by the subroutineon the stack upon entry to the subroutine. The values are restored before returning to the cal-ling program. The return address is automatically saved and restored by the JSR and RTSinstructions. The use of the system stack to save and restore the return address and the con-tents of registers used within the subroutine assures that the details of the subroutine opera-tion are transparent to the calling program. If a subroutine itself makes a subroutine call, theuse of the stack for temporary storage of register contents by each subroutine and for eachreturn address allows such nesting of subroutine calls without difficulty. This concept ofusing the stack to store data temporarily during subroutine execution can be extended by de-fining a stack frame.The stack frame is a block of memory in the stack that is used for return addresses, inputparameters, output parameters, and local variables. It is the area of the stack accessed by asubroutine during its execution. Local variables are those values used during the subroutineexecution that are not transferred back to the calling routine. A loop counter, for example,which changes as the subroutine performs each iteration might be defined as a local variable.On each call to the subroutine, a new set of parameters, local variables, and return addressescan be accessed by a subroutine using the stack frame technique. If the subroutine is calledbefore it is completely finished, the values in the stack frame will not be destroyed.

Vorlesung Einführung in die Technische Informatik Seite 28

Rechnerarchitektur

Subroutine Usage and Argument passing

;; Program operation creating a stack frame;; ________________________________________

ORG $1000 ; SET ORIGIN LEA $6000,SP ; INITIALISATION OF STACK

;; Calling Program

N EQU 8 ; 8 BYTES INPUTM EQU 8 ; 8 BYTES OUTPUT

ADD.L #-N,SP ; OUPUT AREA OF STACK MOVE.L ARG,-(SP) ; INPUT ARGUMENT PEA X ; INPUT ADDRESS JSR SUBR ; JUMP SUBROUTINE ADD.L #8,SP ; SKIP OVER INPUTS ON STACK MOVE.L (SP)+,D1 ; READ INPUTS MOVE.L (SP)+,D2

BREAK ;

ARG DC.L $01234567 ; ARGUMENT TO PASSX DS.B 200 ; TABLE WHOSE ADDRESS IS PASSED

;; Subroutine

SUBR LINK A1,#-M ; SAVE OLD FRAME POINTER, MOVE NEW FP TO A1

MOVE.L LOCAL1,-4(A1) ; SAVE LOCAL VARIABLES ON STACK MOVE.L LOCAL2,-8(A1)

ADD.L #1,-4(A1) ; CHANGE LOCAL VARIABLE MOVEA.L 8(A1),A2 ; GET X

* ; put in some code here

MOVE.L OUTPUT1,16(A1) ; PUSH AN OUTPUT

UNLK A1 ; RESTORE RTS ; RETURN

LOCAL1 DC.L $98765432 ; LOCAL VARIABLESLOCAL2 DC.L $87654321OUTPUT1 DC.L 'ABCD' ; OUTPUT VALUE END

Page 537: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 29

Rechnerarchitektur

(a) before

FFFF

(b) after (c) after (d) after (e) after

(f) after (g) after (h) after (i) after

0

SP

first Instr. ADD.L

OutputArea

SPSP ARG

MOVE.L

OutputArea

SPARG

OutputArea

PEA

XARG

OutputArea

X

JSR

SP Ret PC

ARG

OutputArea

X

SP

Ret PC

(free)

LINK

Old FP

LocalArea

(free)

FP

-4(A1)

16(A1)

FP=(A1)

UNLINK

ARG

OutputArea

XSP

OutputArea

SP

RTS

ARG

OutputArea

XRet PCSP

ADD.L #8

Dis

plac

men

t Add

ress

ing

with

in S

ubro

utin

e

(free)

Vorlesung Einführung in die Technische Informatik Seite 30

Rechnerarchitektur

Processor Operating Modes

UserMode

SupervisorMode

Exception + Reset + Trap + Interrupt + Error

Supervisor Program sets status to user

more privileges

privileged Instructions cannot beexecuted !=> Exception

USP A7

all Instructions can be executed !

MOVE to SR

SSP A7’also access to USP !MOVE USP

CCR

R/WRead only

SRT S I0 I1 I2

no modification of• Trace bit• Supervisor bit• Interrupt Mask

Stack Pointer

MOVE to SRANDI to SRORI to SR...Special System InstructionsRESETSTOPRTE

SRT S I0 I1 I2

R/W by special operations to SR

Page 538: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 31

Rechnerarchitektur

Exception Processing

• Transfer of control from user program to supervisor program- cause of exception

• trap instruction and unusual condition during instruction execution software exception -> synchronous

• external events interrupts -> synchronous

InstructionTrap

return

PC++Restore

user program

which causes exception

supervisor program

TRAP Handler

Save SR internallySet S=1, T=1determine Vector No. (cause of TRAP)Push PC++ -> SSPPush SR -> SSPPC <- (Vector base + Vector) Jump to handler

RTE

Save User State

Restore User State

Exception Processing Sequence

TRAP Instructionnormal execution

Vectors

$080-$0BC Instruction to CALL service from Operating System

Unimplemeted Instructionsnormal execution $028-$02C Opcodes 1010 ; 1111 (FP-Emulation)

CHK Instructionrange check $018 wrong array reference

DIV_ Instructiondivision by zero $014 abort program

TRAP V Instructionexec. when V=1 $01C overflow detection

TRAPs

Privilege Violationtried to execute priv. Instr. $028-$02C Opcodes 1010 ; 1111 (FP-Emulation)

Program TRAPs

Error TRAPs

Illegal Instruction Address Error Bus Error

Vorlesung Einführung in die Technische Informatik Seite 32

Rechnerarchitektur

Interrupts

Interrupts are externally generated requests for exception processing. They allow externaldevices to interupt the processor execution at any time of the program execution (asynchro-nously). The control flow of the processor is switched to the interrupt-handling routine, na-med interrupt service routine (ISR). There are mechanisms to disable the immediateresponse to the interrupt signal (Masking and/or Priority).

Interrupt Types• non-masked interrupt requests (IRQs)

highest priority; used for immediate error handling• masked IRQs

Mask-bit of CPU; disabling of interrups within critical program segments• prioritized IRQs

multiple levels; introduction of priorities in order to weight the devices con-cerning their importance for service; can be implemented by hardware or soft-ware.

Application for Interrupts• Input/Output and Communication; - Service for Devices

- program controlled (busy waiting)- interrupt controlled - fast reaction

• Timing Control- Timer, Watch Dogs- Multiprogramming Systems

PC++Restore

user program supervisor program

Processor

Save SR internallySet S=1, T=1determine Vector No. (which device)Push PC++ -> SSPPush SR -> SSPPC <- (Vector base + Vector) Jump to ISR

RTE

Save User State

Restore User State

Interrupt Processing Sequence

Device

IRQevent

ISR

Page 539: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 33

Rechnerarchitektur

Hardware Structure of IRQ-Signaling

Processor

to Instruction-

Interrupt Priority Logic

Device

IRQ

event

SR

CR MaskR

DATA

Processor

IRQ3

IRQ2

IRQ1

IRQ0

4-Levels

Vorlesung Einführung in die Technische Informatik Seite 34

Rechnerarchitektur

Memory Management

1. Schutzfunktion => Zugriffsrechte

Eine Möglichkeit den Speicher zu organisieren- R/W Memory- ROM

CPU I/D

R/W

ROM

RAMR/W

Beim Multi-processing oder Multi-user Systemen reicht die oben genannte Möglichkeit,den Speicher zu organisieren, nicht aus.

......

......

0

.data 1

.data 2

.data 1

.data 2

.text 1

.text 2

.text 1

.text 2

1000

3600

960010000

0

0

1000

400

3000

4000

pid = 1

pid = 2

phys. Mem.

Memory fragmentation

In den gängigen Architekturen wird mit 32 Bit adressiert. Daraus folgt die Größedes virtuellen Adressraums mit 232

Virtuelle Adresse Physikalische Adresse

base of .text

+>

upper bound virtual address

physical addr.access trap

2. Erweiterung des begrenzten physikalischen Hauptspeichers

Page 540: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 35

Rechnerarchitektur

Virtueller Speicher / Paging

Logischer und physikalischer Adressraum werden in Seiten fester Größe unterteilt, meist 4KByte. Logische Pages werden in einer Pagetable auf physikalische Pageframes abgebildet,dabei ist der logische Adressraum im allgemeinen wesentlich größer als der physikalischvorhandene Speicher. Nur ein Teil der Pages ist tatsächlich im Hauptspeicher, alle anderensind auf einen Sekundärspeicher (Platte) ausgelagert.

- Programme können größer als der Hauptspeicher sein- Programme können an beliebige logische Adressen geladen werden, unabhän-

gig von der Aufteilung des physikalischen Speichers- einfache Verwaltung in Hardware durch feste Größe der Seiten- für jede Seite können Zugriffsrechte (read/write, User/Supervisor) festgelegt

und bei Zugriffen überprüft werden- durch den virtuellen Speicher wird ein kostengünstiger großer und hinreichend

schneller Hauptspeicher vorgetäuscht (ähnlich Cache)

Die Pagetable enthält für jeden Eintrag einen Vermerk, ob die Seite im Hauptspeicher vor-handen ist (P-Bit / present). Ausgelagerte Pages müssen bei einer Referenz in den Haupt-speicher geladen werden, ggf. wird dabei eine andere Page verdrängt. Modifizierte Seiten(M-Bit / modify) müssen dabei auf den Sekundärspeicher zurückgeschrieben werden. Dazuwird ein weiteres Bit eingeführt, das bei einem Zugriff auf die Seite gesetzt wird (R-Bit /referenced)

Replacement-Strategien :- not recently used - NRU

mithilfe der Bits R und M werden vier Klassen von Pages gebildet0: not referenced, not modified1: not referenced, modified2: referenced, not modified3: referenced, modifiedes wird eine beliebige Seite aus der niedrigsten nichtleeren Klasse entfernt

- FIFOdie älteste Seite wird entfernt (möglicherweise die am häufigsten benutzte)

- Second-Chance / Clockwie FIFO, wurde der älteste Eintrag benutzt, wird zuerst das R-Bit gelöscht unddie nächste Seite untersucht, erst wenn alle Seiten erfolglos getestet wurden,wird der älteste Eintrag tatsächlich entfernt

- least recently used - LRUdie am längsten nicht genutzte Seite wird entfernt, erfordert Alterungsmechnis-mus

Vorlesung Einführung in die Technische Informatik Seite 36

Bei modernen 32 Bit Prozessoren und einer Seitengröße von z.B. 4 KByte wird die Pageta-ble sehr groß, z.B. 4 MByte bei 32 Bit Pagetable Einträgen. Da meist nicht alle Einträge ei-ner Tabelle wirklich genutzt werden, wird eine mehrstufige Umsetzung eingeführt. ZumBeispiel referenzieren die obersten Adressbits eine Tabelle eährend die mittleren Bits denEintrag in dieser Tabelle selektieren.

- einzelne Tabellen werden kleiner und in der zweiten Stufe werden nurwenige Tabellen benötig

- die Tabellen der zweiten Ebene können selbst ausgelagert werden

Pagetables können aufgrund ihrer Größe nur im Hauptspeicher gehalten werden. Zum Be-schleunigen der Adressumsetzung, insbesondere bei mehrstufigen Tabellen, wird ein Cacheverwendet. Dieser Translation Lookaside Buffer (TLB) enthält die zuletzt erfolgten Adres-sumsetzungen. Er ist meist vollassoziativ ausgeführt und enthält z.B. 64 Einträge. Neuer-dings wird auch noch ein setassoziativer L2-Cache davorgeschaltet.Pagetables sind prinzipiell cachable, allerdings werden die Einträge wegen ihrer relative sel-tenen Benutzung (im Vergleich zu normalen Daten) schnell aus dem allgemeinen Cache ver-drängt.

Rechnerarchitektur

Virtueller Speicher / Paging

Page 541: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 37

Rechnerarchitektur

Definition : A memory hierarchy is the result of an optimization process with respect to techno-logical and economic constrains. The implementation of the memory hierarchy con-sists of multiple levels, which are differing in size and speed. It is used for storingthe working set of the ‘process in execution’ as near as possible to the executionunit.

The memory hierarchy consists of the following levels:

- registers- primary caches- local memory- secondary caches- main memory

The mechanisms for the data movement between levels may be explicit (for registers, bymeans of load instructions) or implicit (for caches, by means of memory addressing).

Registers are the fastest storage elements within a processor. Hence, they are used to keepvalues locally on-chip, and to supply operands to the execution unit(s) and store the resultsfor further processing. The read-write cycle time of registers must be equal to the cycle timeof the execution unit and the rest of the processor in order to allow pipelining of these units.Data is moved from and into the registers by explicit software control.

Memory Hierarchy

faster

denser

on chip

off chip

sizespeed costmoreexpensive

larger

CPU

2nd-Level Cache

Main Memory

Disk Storage

Register Files

1st-Llevel Cache

CPU Chip

External ProcessorInterface

Tapes

2-10ms

60-200ns

10-30ns

5-10ns2-5ns

Vorlesung Einführung in die Technische Informatik Seite 38

Rechnerarchitektur

Due to the fixed size of the instruction word the register select fields have the same width (5bits) as in the register file structure. The large RF requires more address bits and thereforethe addressing is done relatively to the window pointer.

(more details in -> Rechnerarchitektur 1)

Registers can be grouped in a wide variety of ways:

- evaluation stack- register file- multiple register window- register banks

Example: Overlapping Register Windows (SPARC-Processor)The desire to optimize the frequent function calls and returns led to the structure of overlap-ping register windows. The save and restore of local variables to and from the procedurestack is avoided, if the calling procedure can get an empty set of registers at the procedureentry point. The passing of parameter to the procedure can be performed by overlapping ofthe actual with the new window. For global variables a number of global registers can bereserved and accessed from all procedure levels. This structure optimize the procedure callmechanism of high level languages, and optimizing compiler can allocate many variablesand parameters directly into registers.

global

parameter

local variables

variables

parameter

parameter

local variables

local variables

parameter

0

78

15

23

31

24

16

112

119

127

135

128

120

parameter

local variables

parameter parameter

local variables

parameter parameter

local variables

parameter

procedure B

procedure C

procedure A

global variables

global variables

global variablesR0A

R7A

R0B

R7B

R0C

R7C

register file

R8A

R15AR16A

R23AR24A

R31A

R8B

R15BR16B

R23BR24B

R31B

R8C

R15CR16C

R23CR24C

R31C

overlapping registersbetween A and B

overlapping registersbetween B and C‘

24 window registers

8 globalregisters

Page 542: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 39

Rechnerarchitektur

Caches are the next level of the memory hierarchy. They are small high speed memories em-ployed to hold small blocks of main memory that are currently in use.

The principle of locality, which justifies the use of cache memories, has two aspects:

- locality in space or spatial locality- locality in time or temporal locality

Most programs exhibit this locality in space in cases where subsequent instructions or dataobjects are referenced from near the current reference. Programs also exhibit locality in timewhere objects located in a small region will be referenced again within a short periode. In-structions are stored in sequence, and data objects normally being stored in the order of theiruse. The following figure is an idealized space/time diagram of address references, repre-senting the actual working set w in the time interval Δτ.

Caches are transparent to the software. Usually, no explicit control of cache entries is possi-ble. Data is allocated automatically by cache control in the cache, when a load instructionreferences the main memory.

Address

timeT T + Δτ

Space

Instruction

Data w ( T, T +Δτ)

ΔτData

Vorlesung Einführung in die Technische Informatik Seite 40

Rechnerarchitektur

Cache memory design aims to make the slow, large main memory appear to the processoras a fast memory by optimizing the following aspects:

- maximizing the hit ratio- minimizing the access time- minimizing the miss penalty- minimizing the overhead for maintaining cache consistency

The performance gain of a cache can be described by the following formula:

The hit ratio of the cache (in %) is the ratio of accesses that find a valid entry (hit) to accessesthat failed to find a valid entry (miss). The miss ratio is 100% minus hit ratio.

The access time to a cache should be significantly shorter than that to the main memory. On-chip caches (L1, primary caches) normally need one clock tick to fetch an entry.

Access to off-chip caches (L2, secondary caches) is dependent on the chip-to-chip delay, thecontrol signal protocol, and the access time of the external memory chips used.

Gcache

Tm = tacc of main memory

H = hit ratio [0, ...1]

Tm

( 1 - H ) Tm + H Tc

= =1

( 1 - H ) + H Tm

Tc

=1

1 - H Tc

Tm( 1 - ) Tc = tacc of cache memory

miss ratio hit ratio

Tc

Tm =15

G

H0.50 1

1

2

3

4

5

example for

Page 543: EinfTI Script 2013

Vorlesung Einführung in die Technische Informatik Seite 41

Rechnerarchitektur

One of the most important features of the cache organization is the mapping principle. Threedifferent strategies can be distinguished, but the range of caches - from directly mapped toset associative to fully associative - can be viewed as a continuum of levels of set associati-vity.(more details in -> Rechnerarchitektur 1)

The main memory is the lowest level in the semiconductor memory hierarchy. Normally alldata objects must be present in this memory for processing by the CPU. In the case of a de-mand-paging memory, they are fetched from the disk storage to the memory pages on de-mand before processing is started. Its organization and performance are extremely importantfor the system’s execution speed. Due to the cost-performance ratio mostly all main memoryimplementation uses DRAMs. The simplest form of memory organization is the word-widememory, matching the bus width of the external processor interface.

High-performance processors need more memory bandwidth than a simple one-word mem-ory can provide. The access and cycle times of highly integrated dynamic RAMs are notkeeping up with the clock speed of the CPUs. Therefore, special architectures and organiza-tions must be used to speed-up the main memory system.

(more details in -> Rechnerarchitektur 1)

Directly Mapped Cache

indexi

2nentries

ith

Main Memory

cache block

2m

blocks

2npagesize

ith

ith

Cache

m mem block

=

TagMem

indexnm

Address

hit

Hardware Structure(Address Path Only)

ofcachesize

cachesize

m+n+x+z

Wordselect

Byteselect

0

Tagz Bitsx Bitsm Bits n Bits

Index

Cache Mapping

Vorlesung Einführung in die Technische Informatik Seite 42

Rechnerarchitektur

Schichtenmodell der Interpretationsebenen

Auf die Ebenen der Mikroprogrammierung und Nanoprogrammierung wird heute in Hoch-leistungsprozessoren meist verzichtet, um die Interpretation und Ausführung der Befehleschnell zu machen. Daraus ergibt sich, daß die Befehle einfach sein sollten, um den HW-Kontrollvektor durch einfache Schaltnetzfunktionen aus der Instruktion ableiten zu können. Die Nachbildung der komplexen Befehle durch eine Sequenz einfacher Befehle wird in denBackendteil des Compilers verschoben.

HLL-Compiler

Compiler Backend

Assembler

CML-Interpreter

Programm InterpreterMikro-

Programm InterpreterNano-

HLL Höhere Programmiersprache

Hardware

Software

Funktionseinheiten des ProzessorsHW-Kontrollvektor

IML Zwischensprache

ASL Assemblersprache

CML konventionelle Maschinensprache

MPL Mikroprogrammsprache

NPL Nanoprogrammsprache

Page 544: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 19

Operationsprinzip - Pipeline

Unter dem Operationsprinzip versteht man das funktionelle Verhalten der Architektur, wel-ches auf der zugrunde liegenden Informations- und Kontrollstruktur basiert.

Bestandteile eines ’sehr’ einfachen Autos :

- Karosserie- Lack- Fahrgestell- Motor- Räder

Verarbeitung von mehreren Datenelementen mit nur einer Instruktion

Pipeline - Prinzip parallele V.E. (P.E‘s)

Vektorrechner Feldrechner(’array of processing elements’)

Beispiel : Automobilfertigung

Pipeline - Prinzip

Page 545: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 20

Operationsprinzip - Pipeline

Welche Möglichkeiten des Zusammenfügens (Assembly) gibt es ?

FließbandWorkgroup(PIPELINE)

Worauf muß man achten ?

Abhängigkeiten !

Karosserie -Lackiererei Fahrgestelleinbau Motoreinbau

Räder assembly montieren

Blech Lack Fahrgestell Motor Räder

Produktion von verschiedenen Modellen : 3 Farben R(ot),

2 Motoren N(ormal),

2 Karosserien L(imousine),

Auftrag

F

M

K

R

N

K

41

Fließband

G(rün)

B(lau)

I(njection)

K(ombi)

Beispiel : Automobilfertigung

Page 546: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 21

Pipeline des Fertigungsvorgangs

Operationsprinzip - Pipeline

K La F M R

Lb10 min 10 min 10 min 10 min

20 min

20 min

L1 L2

time

stage

Auftrag 41

41

41

41

41

41

41

K L1 L2 F M R

42

42

42

42

42

42

43

43

43

43

43

43

1 : 5

2 : 4

3 : 3

3 : 3

3 : 3

2 : 4

1 : 5

3 : 3

Optimierung der Stufe : Lackierung

10 min 10 min

Stufen - Zeit - Diagramm der Pipeline

ppt

Page 547: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 22

Pipeline - Register

Unter einem Register verstehen wir eine Hardwarestruktur die ein- oder mehrere Bits spei-chern kann. Register sind (normalerweise) D-Flip Flops (siehe PI2).

Wichtige Kenndaten eines Registers:

Clock-to-output Zeit (tco):

Zeit zwischen Taktflanke und dem Zeitpunkt an dem eine Änderung des Eingangs am Aus-gang sichtbar ist.

Setup Zeit (tsu):

Zeit vor der Taktflanke in der der Eingangswert schon stabil sein muss (sich nicht mehr än-dern darf; Grund-> Digitale Schaltungstechnik, Stichwort: metastabile Zustände)

Hold Zeit (th):

Zeit nach der Taktflanke an der sich der Eingangswert noch nicht ändern darf (Grund wiederwie tsu).

D Q

clk

D-FF Register

32 32

Clock

D

Q

tsu

th

tcoAusgang gueltig mit neuen Daten

tcyc

Daten sollten am Eingang stabil sein

cycle time

Page 548: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 23

Pipelining

The performance gain achieved by pipelining is accomplished by partitioning an operationF into multiple suboperations f1 to fk and overlapping the execution of the suboperations ofmultiple operations F1 to Fn in successive stages of the pipeline [Ram77]

[RAM77] Ramamoorthy, C.V., Pipeline Architecture, in: Computing Surveys, Vol.9, No. 1, 1977, pp. 61-102.

the operation F can be partitioned

all suboperations fi require approximately

there are several operations F

the execution time of the suboperations is long

the same amount of time

the execution of which can be overlapped

compared with the register delay time

Assumptions for Pipelining

1

2

3

4

F

instr. result(s)f1

stage

fkf2 f3& operands

Linear Pipeline with k Stages

Technology requirement for Pipelining

Page 549: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 24

Pipelined Operation Time

k + (n-1)tp ( n, k) =

time to fill time to process

stagestime

the pipeline n-1 operations

1 2 3 4 5

start-up

processing

drain

for this example: tp (10,5) = 5 + (10 - 1) = 14

or fill

TP ( n, k) = tp (n,k)

number of operations

k + (n-1) =

n operations

time unit

S ( n, k) = pipelined execution time

scalar execution time

k + (n-1) =

n k

Gewinn Gain

ThroughputDurchsatz

initiation rate, latencyEffizienz Efficiency

E ( n, k) = k

= 1

k ( k + (n-1)) =

n k S ( n, k)

k + (n-1)

n

Pipeline Interrupts

data dependencies

resource dependencies control-flow dependencies

nlim S k

pipelinephases

Page 550: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 25

Assumptions for Pipelining

the operation F can be partitioned 1

F

time tf

time tf

time tf

1

2

1’

2’

time tf / 2

time tf / 2time tf / 2

f1 f2

F

F

f2 f3f1

f1 << f2

f3 << f2

f2 a f3f1

f3f1

f2 b f2 c

f2

time t2 /3

f2

f2

f2

Version 1

Version 2

all suboperations fi require approximately the same amount of time2

Page 551: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 26

Item 4 is a technological requirement for the utilization of a pipeline. Assuming a parti-tioning of the operation F into three suboperations f1, f2, f3, and also no pipelining, the ope-ration F can be executed in the time:

Assumptions for Pipelining

If there is a discontinuous stream of operations F owing to a conflict, bubbles are insertedinto the pipeline. This reduces the performance gain significantly.

A typical example of this is the control dependency of the instruction pipeline of a processor.Here, each conditional branch instruction may disrupt the instruction stream and cause (k-1)bubbles (no-operations) in the pipeline, if the control flow is directed to the nonpredictedpath.

The registers are introduced behind each function of the suboperation and this creates thepipeline stages. Placing the register at the output (not at the input!!!) makes suboperation sta-ges compatible with the definition of state machines, which are used to control the pipeline.

there are several operations F

the execution time of the suboperations is long

the execution of which can be overlapped

compared with the register delay time

3

4

t (F) = tf1 + tf2 + tf3

Dooutput

stage 2

tsu tcotf2

inputDi

stage 1

tsu tcotf1 Di

stage 3

tsu tcotf3

Clock

Introduction of registers

t (F) = ( max (tfi) + tco + tsu ) 3 = 3 max (tfi) + 3 ( tco + tsu )

register delay timetcyc k stages

tcyc = max (tfi) + tco + tsu fcyc = 1 / tcyc

Page 552: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 27

Data Flow Dependencies

Three different kinds of data flow dependency hazards can occur between two instructions.These data dependencies can be distinguished by the definition-use relation.

- flow dependency read after write RAW - anti-dependency write after read WAR - output dependency write after write WAW

Basically, the only real dependencies in a program are the data flow dependencies, whichdefine the logical sequence of operations transforming a set of input values to a set of outputvalues (see also Data Flow Architectures). Changing the order of instructions must considerthese data flow dependencies to keep the semantic of a program.

The Flow Dependency read after write (RAW)

This data dependency hazard can occur e.g. in a pipelined processor where values for a se-cond instruction i+1 are needed in the earlier stages and have not yet been computed by thelater stages of instruction i. The hazardous condition arises if the dependend instructions arecloser together than the number of stages among which the conflicting condition arises.

To avoid the hazard, the two instructions must be separated in time within the pipeline. Thiscan be accomplished by inserting bubbles (NOPs) into the pipeline (simply speaken: bywaiting for i to complete) or building a special hardware (hardware interlock), which in-serts NOPs automatically.

X <- A + B

Y <- X + C

destination ( i ) = source ( i + 1 )

instruction i+1

instruction i

definition use relation

timeread A,B

X:= A op B

write X

stageread execute write

Y:= X op C

write Y

ii+1 i

i+1 ii+1

issue i

issue i+1read X,C

RFALU

RFwriteread

read execute write

1 write port2 read ports ppt

Page 553: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 28

Data Flow Dependencies

The Anti-Dependency write after read (WAR)

This dependency can only arise in the case of out-of-order instruction issue or out-of-ordercompletion. The write back phase of instruction i+1 may be earlier than the read phase ofinstruction i. Typical high-performance processors do not use out-of-order issue. This case,then, is of less importance. If the compiler reorders instructions, this reordering must preser-ve the semantics of the program and take care of such data dependencies.

The Output Dependency write after write (WAW)

The result y of the first instruction i will be written back to the register file later than y ofinstruction i+1 because of a longer pipeline for the division. This reverses the sequence ofwrites i and i+1 and is called out-of-order completion.

X <- Y + B

Y <- A + C

source ( i ) = destination ( i + 1 )

instruction i+1

instruction i

Y <- A / B

Y <- C + D

destination ( i ) = destination ( i + 1 )

instruction i+1

instruction i

timeread A,B

1. A op B

stage

read execute write

ii+1 i

i+1

issue i

issue i+1read C,D

RF

FU2

RFwriteread

read execute write

FU1

2. A op Bi

3. A op Bi

C op Di+1FU2

FU1

write Yi

write Y

Page 554: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 29

Data Flow Dependencies

Inserting Bubbles

We must avoid the RAW-hazard in the pipeline, because reading X before it is written backfrom the previous instruction reads an old value of X and thus destroys the semantic of thetwo sequential instructions. The sequential execution model (von Neumann architecture) as-sumes that the previous instruction is completed before the execution advances to the nextinstruction.

The conflicting stages are RF read and the RF write, which have a distance of 3 pipeline sta-ges. Reading the correct value for X from the register file requires the insertion of 2 NOPsin between the two conflicting instructions. This delays the instruction i+1 by 2 clocks whichthen removes the RAW-hazard. The compiler (or programmer) is responsible for detectingthe hazard and and inserting NOP into the instruction stream.

The 2 bubbles in the pipeline can be utilized by other usefull instructions independent fromi and i+1 (see instruction scheduling).

timeread A,B

X:= A op B

write X

stageread execute write

ii

i

issue i

RFALU

RFwriteread

1 write port2 read ports

read A,B

X:= A op B

write X NOP

NOP

iiw1 i

w1

issue i

issue i+1

issue NOPNOPw1

NOP

NOP

w2w2

NOPw2issue NOP

read A,B

X:= A op B

write X NOP

NOP

iiw1 i

w1

issue i

issue NOPNOPw1

NOP

NOP

w2w2

NOPw2issue NOP

Y:= X op C

write Y

i+1i+1

read X,Ci+1

pipeline distance

Page 555: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 30

Data Flow Dependencies

Hardware Interlock

A hardware mechanism for detecting and avoiding the RAW-Hazard is the interlock hard-ware. The RAW-Hazard condition is detected by comparing the source fields of instructioni+1 (and i+2) with the destination field of instruction i, until i is written back to the registerfile and thus the instruction is completely executed.

The hardware interlock detects the RAW-Hazard and delays the issue of instruction i+1 untilthe write back of instruction i is completed.

The hardware mechanism doesn’t need additional NOPs in the instruction stream. Thebubbles are inserted by the hardware.

Nevertheless the produced bubbles can be avoided by scheduling useful and independent in-structions in between i and i+1 (see also instruction scheduling).

timeread A,B

X:= A op B

write X

stageread execute write

Y:= X op C

write Y

ii+1 i

i+1 ii+1

issue i

issue i+1read X,C

RFALU

RFwriteread

read execute write

A

B

issuecheckfor i+1

delaypointforconflict

read A,B

X:= A op B

write Xread X,C

Y:= X op C

write Y

i

ii

ii

i+1

i+1

i+1i+1

i+1

bubbles in the pipeline

time

stage

fetch decode read execute write

instruction instruction issuepoint

i+2

i+2 i+1i+2

i+3

i+1

i+2

Page 556: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 31

Data Forwarding

Data forwarding

Data forwarding is a hardware structure, which helps to reduce the number of bubbles in thepipeline. As can be seen in the stage time diagram, the result of a calulation in the executestage is ready just behind the ALU register. Using this value for the next source operand in-stead of waiting after the write back stage and then reading it again from the RF, can savethe two bubbles.

The forwarding data path takes the result from the output of the execute stage and send itdirectly to the input of the ALU. There a data forwarding multiplexer is switch to the for-warding path in order to replace the invalid source operand read from the register file.

The forwarding control logic detects that a specific register (eg. R7) is under new definitionand at the same time is used in the following instruction as a source operand. In this case,the corresponding mux is switch to replace S1 or S2, which is the old value from register R7.

The scoreboard logic implements this checking in the stage before the issue point.

RF ALURF

writeread

data forwarding path

(S1)

(S2)

(R)

load data path

forwarding control

fetch decode read execute write

instruction instruction issuepoint

Aissuecheckfor i+1

read A,B

X:= A op B

write X

read X,CY:= X op C

write Y

i

ii

ii

i+1

i+1i+1

i+1

i+1

bubble in the pipeline

no

dataforwarding

time

stage

forwarding data mux

2

data from cache/memory

Page 557: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 32

Control Flow Dependencies

The use of pipelining causes difficulties with respect to control-flow dependencies. Everychange of control flow potentially interrupts the smooth execution of a pipeline and may pro-duce bubbles in it. One of the following instructions may be responsible for them:

- conditional branch instruction- jump instruction- jump to subroutine- return from subroutine

The bubbles (no operations) in the pipeline reduce the gain of the pipeline thus reducing per-formance significantly. There are two causes of bubbles. The first one is a data dependencyin the pipeline itself, the branch condition being evaluated a pipeline stage later than neededby the instruction fetch stage to determine the correct instruction path. The second one is thelatency for accessing the instruction and the new destination for the instruction stream.

U = n + m

= n

1 +

1mn

n number of useful instructionsm number of no operations

m = b (1-p) Nb + b q No

no ops caused by branches

no ops caused by the latency of branch target fetches

b number of branchesp probability of correct guessesNb penalty for wrong guessq frequency of other causes (jump)No penalty for other causes

(bubbles)

Pipeline Utilization

U = 1 +

1 bn + (1-p) Nb b

n q No

Page 558: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 33

Control Flow Dependencies

Reduction of Branch Penalty

The ’no’ operations (NOPs) in the pipeline can be reduced by the following techniques:

reduction of branch penalty Nb

- forwarding of condition code- fast compare- use of delay slots- delayed branch- delayed branch with squashing

increase of p

- static branch prediction- dynamic branch prediction- profiled branch prediction

reduction of instruction fetch penalty No

- instruction cache- improvement of instruction prefetch- branch target buffer- alternate path following

avoid branches

- predication of instructions

The design of control flow and especially conditional branches in ISAs is very complex. Thedesign space is large and advantages and disadvantages of various branch architectures aredifficult to analyze. The following discussion of branches shows only a small area of the de-sign space.

For further reading please refer to:

Sima et al., Advanced Computer Architectures, A Design Space Approach

Branch architectures

Page 559: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 34

Control Flow Dependencies

Effect of Branches

Before we start to analyse the effects of branching we should introduce the basic terms andhave a closer look to the internals of the instruction fetch unit.

Definition : Branch successor: The next sequential instruction after a (conditio-nal) branch is named the branch successor or fall-through instruc-tion.

In this case, it is assumed the branch is not taken. The operation of fetching the next instruc-tion in the instruction stream requires to add the distance from the actual instruction to thenext instruction to the value of the actual program counter (PC).

Definition : Branch target: The instruction to be executed after a branch is takenis called a branch target.

The operation required to take the branch is to add the branch offset from the instructionword to the PC and then fetch the the branch target instruction from the instruction memory.

The number of pipeline cycles wasted between a branch taken and the resumption of instruc-tion execution of the branch target is called a delay slot. Depending on the pipeline the num-ber of delay slots b may vary between 0 and k-1.

In the following stage-time diagram we assume that the instruction fetch can immediatelycontinue when the branch direction is defined by the selection of the condition code, whichis forwarded to the instruction fetch stage.

fetch decode read execute writestage

branch ’cc’ i

ii

ii

delay slot 1delay slot 2 delay slot 3

forwarding of CC selection

timecmp i-1

i-1

i-1

i-1i-1

forwarding of cmpare result (condition codes)

correct nextinstructions

branch successoror branch target

Page 560: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 35

Control Flow Dependencies

Effect of Branches

In the following we use the term condition code CC as the result of a compare instruction,which might be stored in a special CC-register or stored in a general purpose integer registerRx. Using Rx as destination allows multiple cmp-instructions to be overlapped. The corre-sponding bcc has to read its register and decode the actual cc from the bits of Rx.

Feeding the result of this bit selection to the instruction fetch stage through the forwardingpath of cc selection instructs the IF stage to switch the control flow to the new direction.

The calculation of the branch PC might be performed in the ALU, but is typically shifted toearlier stages with an additional adder. The PC is held in the IF-stage and not stored in theRF!

forwarding path of cc selection

cc

forwarding data path for CC

IF DECRF

ALURF

writeread

cmp R1,R2 -> CC

bcc CC, offset

calculate all reasonable bits

depending on the selection of CC bitschange the control flow

calculate next PC

branch

delay slot

branch branch target successor

i-1

i

i+1

t

t+1

i+2

i+3

numbering is used to identify the instructions in the flow of processor code

branchpredecessor

cmp R1,R2 -> R4

bcc R4, offset

and store to condition code register

bcc R5, offset

cmp R6,R7 -> R5

Page 561: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 36

Forwarding of the Condition Code

forwarding path of cc selection

cc

forwarding data path for CC

fetch decode read execute writestage

branch i

ii

ii

i+1

i+1

i+1

i+1

i+1

i+2i+2

i+2

i+2

i+2

i+3i+3

i+3i+3

i+3

delay slot

forwarding of cc

timecmp i-1

i-1

i-1

i-1i-1

forwarding of cmp data (CC)

correct nextinstructions

IF DECRF

ALURF

writeread

Page 562: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 37

Control Flow Dependencies

Fast Compare

fast compare logic

CC=

fetch decode read execute writestage

branch i

ii

ii

i+1

i+1

i+1

i+1

i+1

i+2i+2

i+2

i+2

i+2

delay slot

timecmp i-1

i-1

i-1

i-1i-1

forwarding of fast cmp data

correct nextinstructions

IF DECRF

ALURF

writeread

simple tests for equal, unequal, <0, <=0, >0, >=0, =0

0

delay slot

Page 563: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 38

Delayed Branch

Idea: Reducing the branch penalty by allowing <d> useful instructions to be executed beforethe control transfer takes place.

67% of all branches of a program are taken (loops!). Therefore, it is wise to use the predic-tion "branch taken".

Goal: zero branch penalty

Technique: moving independent instructions into the delay slots.

Probability of using delay slots: 1. slot ~ 0.6; 2. slot ~ 0.2; 3. slot ~ 0.1;

fetch decode read execute write

stage

branch instruction

cc=trueready

i

ii

ii

i+1

i+1

in the pipeline

fetch decode read execute writei

ii

ii

i+1

i+1

bubbles in the pipeline

i+1

i+1

i+1

tt

t

t

t

t+1t+1

t+1t+1

t+1

delay slot instr.target instructiontarget +1 instr.

branch instructiondelay slot instr.target instructiontarget +1 instr. t+1

t

CC=falseready

i+2

t

t

t

t

t+1t+1

t+1t+1

t+1

i+1

i+1

i+1i+2i+2

i+2

i+2

(a) branch taken

successor instr.

forwarding of CC

(b) branch not taken

time

stagetime

delay slot

control transfer

control transfer

Page 564: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 39

Delayed Branch with Squashing

If the anullment bit is asserted, the delay slot instruction will be anulled, when the branchdecision was predicted falsely.

This enables the compiler to schedule instructions from before and after the branch instruc-tion into the delay slot.

fetchdecode& read execute write

4-stages

branchi+1

i+1

i+1

i+1

tt

t

t

delay slottarget

timei

i

i

i

forwarding of CC to control flow

instructions

target + 1 t+1

t+1

t+1

t+1

t+2

t+2

t+2

t+2

target + 2

fetchdecode& read execute write

4-stages

branchi+1

i+1

i+1

i+1

tt

t

t

delay slottarget

timei

i

i

i

forwarding of CC to control flow

instructions

successor+ 2 i+2

i+2

i+2

i+2

i+3

i+3

i+3

i+3

successor+ 3

branch taken

branch NOT taken

annulled delay and target instructions (a=1)

31 0

bcc

static branch prediction bit anullment bit

branch offset

ppt

Page 565: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 40

Branch Prediction

Two different approaches can be distinguished here:

- static-branch prediction- dynamic-branch prediction

The static-branch information associated with each branch does not change as the programexecutes. The static-branch prediction utilizes compile time knowledge about the beha-viour of a branch. The compiler can try to optimize the ordering of instructions for the cor-rect path.

Four prediction schemes can be distinguished:

- branch not taken- branch taken- backward branch taken- branch direction bit

built-in static prediction strategies

branch

delay slot

branch branch

Static branch =1 =0

branchnot taken

branchtaken

branchbackward

branch withstatic prediction

target successor

prediction bit

Page 566: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 41

Static Branch Prediction

The hardware resources required for static branch prediction are a forwarding path for theprediction bit, and a logic for changing the instruction fetch strategy in the IF stage. This pre-diction bit supplied by the output of the instruction decode stage decides which path is fol-lowed. The prediction bit allows execution of instructions from the branch target or from thesuccessor path directly after the delay slot instruction.

The static branch prediction is controlled by the programmer/compiler (e.g. prediction bitwithin the branch instruction).

For example, the GCC will try to use static branch prediction if available from the architec-ture and optimizations are turned on. If the programmer wants to retain control, GCC provi-des a builtin function for this purpose ( __builtin_expect(condition, c) ):

if (__builtin_expect (a==b, 0)) f();This means, we expect a==b to evaluate to false ( =0 in C) and therefore to not execute thefunction f().

IF DECRF

ALURF

writeread

branch

delay slot

branch successor branch target

Static branch prediction bit

=1

=0

Page 567: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 42

Profiled Branch Prediction

The profiled branch prediction is a special case of static prediction. The guess of thebranch direction is based on a test run of the program. This profile information on branchbehaviour is used to insert a static branch prediction bit into the branch instruction that hasa higher proportion of correct guesses.

from the GCC 3.x manual

‘-fprofile-arcs’ Instrument "arcs" during compilation to generate coverage data or for profile-directed block ordering. During execution the program records how many times each branch is executed and how many times it is taken. When the compiled program exits it saves this data to a file called ‘AUXNAME.da’ for each source file. AUXNAME is generated from the name of the output file, if explicitly specified and it is not the final executable, otherwise it is the basename of the source file. In both cases any suffix is removed (e.g. ‘foo.da’ for input file ‘dir/foo.c’, or ‘dir/foo.da’ for output file specified as ‘-o dir/foo.o’).

For profile-directed block ordering, compile the program with ‘-fprofile-arcs’ plus optimization and code generation options, generate the arc profile information by running the program on a selected workload, and then compile the program again with the same optimization and code generation options plus ‘-fbranch-probabilities’ (*note Options that Control Optimization: Optimize Options.).

The other use of ‘-fprofile-arcs’ is for use with ‘gcov’, when it is used with the ‘-ftest-coverage’ option.

With ‘-fprofile-arcs’, for each function of your program GCC creates a program flow graph, then finds a spanning tree for the graph. Only arcs that are not on the spanning tree have to be instrumented: the compiler adds code to count the number of times that these arcs are executed. When an arc is the only exit or only entrance to a block, the instrumentation code can be added to the block; otherwise, a new basic block must be created to hold the instrumentation code.

Page 568: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 43

Dynamic Branch Prediction

Dynamic branch prediction uses information on branch behaviour as the program execut-es. No initial dynamic information exists before the program starts executing.

The dynamic information is normally associated with a specific branch. The association canbe realized by using the instruction address of the branch as the unique identifier of thebranch.

The dynamic prediction depends on the past behaviour of this branch and is stored in a tableaddressed by the branch instruction address. A unique addressing would need the wholeaddress as an index, usually 32 bit in length. This length prohibits direct use of this addressas an index to the state table.

simple branch predictor using only one history bit

X’_Y’ : = f (a, X_Y)

new state old stateinput

a current branch behaviourX prediction bit

Y history bits

/a00

10

01

/a

11

a/a

a

a

a

/a

XY

a current branch behaviour

X prediction bit

Y history bit

take 1take not 0

last branch taken 1last branch not taken 0

taken anot taken /a

predictorstate

memory

predictorstate

machine

1 n

low order of branch address

n

prediction bit

current

behaviourbranch

to/from instructionsequencer

history bits

X Y

X ’ Y ’

a

Page 569: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 44

Dynamic Branch Prediction

Integration of Dynamic Branch predictor into the pipeline

dynamic branch predictor

CCXa

a

branch address

IF DECRF

ALURF

writeread

X

Page 570: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 45

Reduction of Instruction Fetch Penalty

Instruction Cache

Instruction Buffer

Idea: Holding a number of instruction (e.g. 32) in fast buffer organized as an "instructionwindow".

Branch Target Buffer

Optimize instruction fetch in case of a correctly predicted branch

predictorstate

memory

predictorstate

machine

1 n

low order bits of branch address

n

prediction bit

current

behaviorbranch

to/from instructionsequencer

history

branchPC

memory

branchtarget

instructionst

t+2t+3

t+1

branchaddresstag field

high order bits of branch address

= hit

m

bits branch PCto IF stage

to DEC stage

hiding Nb hiding No

prefetch

memoryfetch

PCfetchPC

DECstage

top bottom

>=<=

buffer length

top

bottom

prefetch PC

fetch PC

instruction bufferhit condition

bottom <= fetch PC <= top

hit

&

Page 571: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 55

Caches

Caches are the next level of the memory hierarchy. They are small high speed memories em-ployed to hold small blocks of main memory that are currently in use.The principle of locality, which justifies the use of cache memories, has two aspects:

- locality in space or spatial locality- locality in time or temporal locality

Most programs exhibit this locality in space in cases where subsequent instructions or dataobjects are referenced from near the current reference. Programs also exhibit locality in timewhere objects located in a small region will be referenced again within a short periode. In-structions are stored in sequence, and data objects normally being stored in the order of theiruse. The following figure is an idealized space/time diagram of address references, represen-ting the actual working set w in the time interval .

Caches are transparent to the software. Usually, no explicit control of cache entries is possi-ble. Data is allocated automatically by cache control in the cache, when a load instructionreferences the main memory. Some processors feature explicit control over the caching of data. Four types of user modeinstructions can improve hit rate significantly (cache bypassing on stores, cache preloading,forced dirty-line flush, line allocation without line fill).

Address

timeT T +

Space

Instruction

Data w ( T, T +)

Data

Vorlesung Rechnerarchitektur Seite 56

Caches

Cache memory design aims to make the slow, large main memory appear to the processoras a fast memory by optimizing the following aspects:

- maximizing the hit ratio- minimizing the access time- minimizing the miss penalty- minimizing the overhead for maintaining cache consistency

The performance gain of a cache can be described by the following formula:

The hit ratio of the cache (in %) is the ratio of accesses that find a valid entry (hit) to accessesthat failed to find a valid entry (miss). The miss ratio is 100% minus hit ratio.The access time to a cache should be significantly shorter than that to the main memory. On-chip caches (L1) normally need one clock tick to fetch an entry. Access to off-chip caches (L3) is dependent on the chip-to-chip delay, the control signal pro-tocol, and the access time of the external memory chips used.

Gcache

Tm = tacc of main memory

H = hit ratio [0, ...1]

Tm

( 1 - H ) Tm + H Tc

= =1

( 1 - H ) + H Tm

Tc

=1

1 - H Tm

Tc( 1 - ) Tc = tacc of cache memory

miss ratio hit ratio

Tc

Tm =15

G

H0.50 1

1

2

3

4

5

example for

0.9

Gcache =(H=1)

Page 572: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 57

Cache Terms

Cache block size:

Cache block size is the size of the addressable unit within a cache, which is at the same timethe size of the data chunk to be fetched from main memory.Cache line:

A cache line is the data of a cache block, typically a power of 2 number of words. The termis mainly used for the unit of transport between main memory and cache. Cache entry:

A cache entry is the cache line together with all required management information, e.g. thetag field and the control field.Cache frame:

The cache frame refers to the addressable unit within a cache which can be populated withdata. It defines the empty cache memory space, where a cache line can be placed.

Set:

A set is the number of cache blocks which can be reached by the same index value. A set is only these pairs (2-way) or quadruples (4-way) of cache blocks, not the whole partof one way of the set-associative cache memory. Bedauerlicherweise gibt es keinen Begriff für den jeweiligen Teil des set-associative cacheSpeichers. Somit wird ’set’ auch häufig als die Bezeichnung für diesen Teil des Speichersverwendet.

H [%]

0.5

0

1

1 2 84 16

hit ratio versus cache size

0.9

32 64

0.2

0.8

directly mapped

fully associative

log2 of Cache size [KB]

16 - 32 KB L1 Cache H > 0.9

Vorlesung Rechnerarchitektur Seite 58

Cache Organizations

Five important features of the cache, with their various possible implementations are: - mapping direct, set associative, fully associative

- organization cache block size, entry format, split cache, unified cache

- addressing logically indexed, physically indexed, logically indexed/physically tagged

- management consistency protocol, control bits, cache update policy

- placement random, filo, least recently used

One of the most important features is the mapping principle. Three different strategies canbe distinguished, but the range of caches - from directly mapped to set associative to fullyassociative - can be viewed as a continuum of levels of set associativity.

Cache Mapping

indexi

2nentries

ith

Main Memory

cache block

2m

blocks

2npagesize

ith

ith

Cache

mem block

=

TagMem

indexnm

Address

hit

Hardware Structure(Address Path Only)

ofcachesize

cachesize

m+n+x+z-1

Wordselect

Byteselect

0

Tagz Bitsx Bitsm Bits n Bits

Index

Directly Mapped Cache

tag

Page 573: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 59

Cache Mapping

=

TagMem 1

or

indexi

2n-1entries

ith

Main Memory

cache block

2m+1

blocks

2n-1pagesize

ith

ith

Cache

mem block

ofcachesize

cachesize

cache block

set 0

set 1

=

indexn-1

m+1Address

hit

Hardware Structure(Address Path Only)

TagMem 0 set 0

set 1

m+n+x+z-1

Wordselect

Byteselect

0

Tagz Bitsx Bitsm+1 Bits n-1 Bits

Index

2-way Set Associative Cache

=Tag 2n-1

=Tag 3

=Tag 2

=Tag 1

2nentries

Main Memory

2m+n

main

Cache

mem block

memoryblocks

cachesize

or

m+nAddress

hit

Hardware Structure(Address Path Only)

=Tag 0

or

m+n+x+z-1

Wordselect

Byteselect

0

Tagz Bitsx Bitsm+n Bits

Fully Associative Cache

tag

tag

Vorlesung Rechnerarchitektur Seite 60

Cache Mapping

word select

index

word select

index set 0/1

set 0set 1

word select

directly mapped set associative fully associative

x

nn-1

wordmux

wordmux

wordmux

setmux

setmux

from tagcompare

from tagcompare

Data Paths of Differently Mapped Caches

Cache Organization

The basic elements of a cache organization are: - the entry format- the cache block size - the kind of objects stored in cache - special control bits

tag field control field data field

pid physical logical

invalid

modified

placement

MESI

word 0 word 1 word 2 word 3

exclusivesharedEntry format

Page 574: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 61

Cache Line Fetch Order

Always fetch required word first. This keeps the memory access latency to a minimum.

see also: DRAM Burst mode for further explanations- interleaved mode- sequential mode- programmable burst length

08

1018

0. Adr.80

1810

1. Adr.101808

2. Adr.181080

3. Adr.

010

818

Mem_Adr

EN_L EN_H

CPU BUS

1. read of Mem

0,88,0

mod ++mod - -mod ++mod - -

access sequence:

byte offsets for 64bit words

interleaved mode (INTEL mode )

2. read of Mem

10,1818,10

fast multiplexing with TS driver or multiplexer

Vorlesung Rechnerarchitektur Seite 62

Cache Consistency

The use of caches in shared-memory multiprocessor systems gives rise to the problem of ca-che consistency. Inconsistent states may occur, when two processors keep a copy of thesame memory cell in their caches, and one processor modifies the cache contents or the mainmemory by a write. Two memory-update strategies can be distinguished:

- the write back (WB), sometimes also known as copy back, - and the write through (WT).

The WT strategy is the simplest one. Whenever a processor starts a write cycle, the cache isupdated and the same value is written to the main memory. The cache is said to be written-through. Nevertheless, this write must inform all other caches of the new value at thisaddress. While the active bus master (CPU or DMA) is placing its write address on to theaddress bus, all other caches in the other CPUs must check this address against their cacheentries so as to invalidate or update the cache line. The WB strategy is more efficient, because the main memory is not updated for each storeinstruction. The modified data is stored in the cache data field only, the line being markedas modified in the cache control field. The write to the main memory is performed only onrequest, and then whole cache lines are written back (WB). This memory update strategy iscalled write back or copy back and allows the cache to hold newer values than the main me-mory. Information must be available in the cache line, which keeps track of the state of acache entry. The MESI states and MESI consistency protocol are widely used and are there-fore given here as an example of cache consistency protocols. Four possible states of a cacheline are used by the MESI protocol:

- Modified: one or more data items of the cache line are written by a store ope-ration, the modified or dirty bit being set

- Exclusive unmodified: the cache line belongs to this CPU only, the contentsis not modified

- Shared unmodified: the cache line is stored in more than one cache and can beread by all CPUs. A store to this address must invalidate all other copies andupdate the main memory

- Invalid: the cache entry is invalid; this is the initial state of a cache line thatdoes not contain any valid data.

Page 575: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 63

Cache Consistency

The states of the cache consistency control bits and the transitions between them are illustra-ted in two figures, the first one showing all transitions of the cache of a bus master CPU, andthe second state diagram showing the transitions of a slave CPU cache (snooping mode).Definition : A processor of a shared-memory multiprocessor system (bus-interconnected) is

called bus master if it has gained bus mastership from the arbitration logic and isin the process of performing active bus transactions.

Processors of a shared-memory multiprocessor system are called bus slaves if the-se processors can not currently access the bus for active bus transactions. Theyhave to listen passively (snooping) for the active transactions of the bus master.

InvalidShared

Unmodified

ExclusiveUnmodifiedExclusive

ModifiedExclusive Read Miss [3]

Write Hit

Read Hit,

Shared Read Miss

Exc

lusi

ve R

ead

Mis

s [3

]

Sha

red

Rea

d M

iss

[3]

ExclusiveRead Miss

SharedRead Miss [3]

Write Hit [2]

Writ

e M

iss[

1]

Write Hit

Read Hit /

Read Hit /

[1] = Read with intent to modify[2] = Invalidation Bus Transaction

I

M E

S

Cache Consistency State Transitions for Bus Master CPU

Write Miss

[3] = Address tag miss

Shared Read miss

Exclusive Read miss

= Snoop response

[4] = Copy back of modified data

Snoop Hit on Writeor on Read w.i.t.m.

Sno

op H

it on

Writ

e [4

]or

on

Rea

d w

.i.t.m

. [4]

Snoop Hiton Read

Sno

op H

it on

Rea

d

Snoop Hiton Read [4}

Snoop Hit on Writeor on Read w.i.t.m.

State Transitions for Snooping CPU (Slave)

SharedUnmodified

SInvalid

I

ExclusiveModified

M ExclusiveUnmodified

E

or on Invalidation

Vorlesung Rechnerarchitektur Seite 64

Cache Addressing Modes

The logically addressed cache is indexed by the logical (or virtual) address of the processcurrently running on the CPU. The address translation need not be performed for the cacheaccess, and the cache can therefore be accessed very fast, normally within one clock cycle.Only the valid bit must be checked to see whether or not the data item is in the cache line.The difficulty with the logically addressed cache is that no snooping of external physicaladdresses is possible.

The logically indexed/physically tagged cache scheme avoids both disadvantages bystoring the high-order part of the physical address in the cache line as additional tag infor-mation. If the size of the index part of the logical address is chosen to match the page size,then the indexing can be performed without MMU translation.

logically addressed physically addressed

CACHEATCMMUlogical

address

physicaladdress

dataCACHE

ATCMMU

logicaladdress

physicaladdress

data

validdata

validaddress

validdata

validaddress

TLB

The physically addressed cache is able to snoop and need not be invalidated on a processswitch, because it represents a storage with a one-to-one mapping of addresses to main me-mory cells. The address translation from logical to physical address must be performed inadvance. This normally slows down the cache access to two clock cycles, the address trans-lation and the cache access.

logically addressed/physically tagged

AddressCompare

CACHE

ATCMMU

logicaladdress

physicaladdress

data

validdata

validaddress

physicaladdress

validaccess

Page 576: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 65

Cache Consistency

Symbols for Animation

Exclusive Read Miss [3]

Write Hit

Read Hit,

Shared Read Miss

Exc

lusi

ve R

ead

Mis

s [3

]

Sha

red

Rea

d M

iss

[3]

ExclusiveRead Miss

SharedRead Miss [3]

Write Hit [2]

Writ

e M

iss[

1]

Write Hit

Read Hit /

Read Hit /

I

M E

S

Cache Consistency State Transitions

Write Miss Shared read miss

Exclusive read miss

for Bus Master CPU

Snoop Hit onRead w.i.t.m. or Write

Sno

op H

it on

Rea

d w

.i.t.m

. or W

rite

[4] Snoop Hit

on Read

Sno

op H

it on

Rea

d

Snoop Hiton Read [4}

Snoop Hit onRead w.i.t.m. or Write

SI

M E

Cache Consistency State Transitions for BusSlave CPU (Snooping)

Tag MData E S Ii

Prozessor 0

L1 CacheTag MData E S Ii

Prozessor 1

L1 Cache

im

0 4 8 C

Main MemoryArbiter

BG0 BG1

BR0BR1

HitHitMHitHitM

Snoop Response

Snoop Response

0 0I

0 1-

1 0E;S

1 1M

Hit HitMMESI

LD R1 <- ($A004)

ADD R1, #1, R1

ST R1 -> ($A004)

Vorlesung Rechnerarchitektur Seite 66

Cache Placement

directly mapped cache

single entryno choice

set/fully associativeset 0 set

random replacement

fifo replacement

circular fifo

random FF

first in - first out

per cache lineset count = n

t(read cache)

count

pointer/per indexnod (number of sets)

least recently used LRU

am längsten zurückliegender Zugriffeines Eintrags ... der Eintrag wird überschrieben

... Algorithmus

Page 577: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 67

More Cache Variants

There are a couple more cache related terms one encounters with todays processors:• split cache versus unified cache• inclusive/exclusive caches• trace caches

Split Cache / Unified Cache

Unified Caches serve both as instruction and data cache; in a split cache architecture, a de-dicated instruction cache and a dedicated data cache exist. Split caches are very often foundas L1 caches of processors (Internal Havard Architecture). A processor having a dedicated instruction memory and a dedicated data memory is calledHavard Architecture.

Inclusive/Exclusive Caches

Inclusive: Data is held in L1 and L2 on fetch; if evicted in L1, remains in L2; fast access lateron; effectively cache size is lostExlucise: Data is only fetcher into L1; if evicted from L1 it is written to L2; effective cachesize is L1+L2; copy from L1 to L2 costs time; can be optimized using a Victim Buffer.

Trace Cache

A trace cache is a special case of an instruction cache. A trace cache does not hold instruc-tions exactly as they are found in main memory but rather in a decoded form, and possiblya sequential entry of trace cache corresponds to an instruction stream across a branch.

Processor

L1I-cache

L1D-cache

Unified L2 Cache

to memory

Page 578: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 86

Memory Management

Ziele des Memory Management

• Schutzfunktion => Zugriffsrechte• Speicherverwaltung für Prozesse• Erweiterung des begrenzten physikalischen Hauptspeichers

Eine sehr einfache Möglichkeit den Speicher zu organisieren ist die Aufteilung in einenFestwertspeicher (Read-Only-Memory) für das Programm und in einen Schreib-Lese-Spei-cher für die Daten.

- R/W Memory

- ROM - kann nicht überschrieben werden

Eine solche feste Aufteilung ist nur für ’single tasking’-Anwendungen sinnvoll, wie sie z.B.in ’eingebetteten Systemen’ mit Mikrocontrollern verwendet werden.

CPU Instr./Data

Read/Write

Beim Multi-processing oder Multi-tasking Systemen reicht die oben genannte Möglichkeit,den Speicher zu organisieren, nicht aus. Es existieren viele Prozesse, die quasi gleichzeitigbearbeitet werden müssen. Probleme:

- Verlagern von Objekten im Speicher - relocation- Schutz von Objekten im Speicher - protection

Lösung:

Einführung eines logischen Adreßraumes pro Prozeß und einer Abbildung der logischenAdreßräume auf den physikalischen Adreßraum (Hauptspeicher), die Adreßumsetzung -’address translation’

=> viele Prozesse konkurrieren um den physikalischen Speicher!

=> um ausgeführt zu werden, müssen alle Segmente (.text / .data / .bss) in den Speichergeladen werden

Segmentierung ist die Aufteilung des logischen Adreßraumes in kontinuierliche Bereicheunterschiedlicher Größe zur Speicherung von z.B. Instruktionen (.text) oder Daten (.data)oder Stack-Daten (.bss), etc.Jedes Segment kann jetzt mit Zugriffsrechten geschützt werden.

ROM

RAMR/W

Literature:Andrew S. Tanenbaum,"Structured Computer Or-ganization", 4th edition,Prentice-Hall, p. 403ff.

Address Space

Vorlesung Rechnerarchitektur Seite 87

base of segment

Memory Management

Memory Segmentation

Um einen Prozeß ausführen zu können, müssen alle Segmente des Prozesses im Hauptspei-cher sein. - Der Platz ist bereits durch andere Prozesse belegt

=> Es müssen so viele Segmente anderer (ruhender) Prozesse aus dem Speicher auf diePlatte ausgelagert werden, wie der neue auszuführende Prozess Platz benötigt. Randbe-dingung durch die Segmentierung: es muß ein fortlaufender Speicherbereich sein!

• Swapping: Aus- und Einlagerung ganzer Prozeßsegmente (Cache flush!)- Es ist zwar noch Platz vorhanden, aber die Lücken reichen nicht für die benötigten neuen

Segmente aus. Wiederholtes Aus- und Einlagern führt zu einer Fragmentierung des Spei-chers -’Memory fragmentation’

=> Es müssen Segmente verschoben werden, d.h. im Speicher kopiert werden, um Lük-ken zu schließen (Cache flush!).

In den gängigen Architekturen wird mit n=32 oder 64 Bit adressiert. Daraus folgt dieGröße des virtuellen Adressraums mit 2n Byte (232= 4 GByte; 264= 16 ExaByte= 16.77Millionen TBytes)

- Der Hauptspeicherplatz reicht von seiner Größe nicht für den neuen Prozeß aus=> der Hauptspeicher wird durch das Konzept des Virtuellen Speichers durch die Ein-beziehung des Sekundärspeichers (Platte) erweitert.

......

......

0

.data 1

.data 2

.data 1

.data 2

.text 1

.text 2

.text 1

.text 2

1000

3600

960010000

0

0

1000

400

3000

4000

pid = 1

pid = 2

phys. Mem.

Memory fragmentation

Virtuelle Adresse Physikalische Adresse

base of segment

+>

upper bound virtual address

physical addraddress

access rights

=

R/WI/DS/U

protection

.text.

to memory

from processor

zurLaufzeit

MMU

violation trap

access trap

11000

.data

pid = 1

Page 579: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 88

Memory Management

Literatur: Hwang, Kai; Advanced Computer Architecture, Mc Graw Hill, 1993.Stone, Harold S.; High Performance Computer Architecture, Addison Wesley, 1993Giloi: RechnerarchitekturTannenbaum, Andrew S.: Modern Operating Systems, Prentice-Hall, 1992.Intel: i860XP Microprocessor Programmers Reference ManualMotorola: PowerPC 601 RISC Microprocessor User’s Manual

Grundlagen

Die Memory Managment Unit (MMU) ist eine Hardwareeinheit, die die Betriebssoftwareeines Rechners bei der Verwaltung des Hauptspeichers für die verschiedenen auszuführen-den Prozesse unterstützt.

- address space protection- virtual memory - demand paging- segmentation

Each word/byte in the physical memory (PM) is identified by a unique physical address.All memory words in the main memory forms a physical address space (PAS).All program-generated (or by a software process generated) addresses are called virtualaddresses (VA) and form the virtual address space (VAS).When address translation is enabled, the MMU maps instructions and data virtual addres-ses into physical addresses before referencing memory. Address translation maps a set of vi-tual addresses V uniquely to a set of physical addresses M.Virtual memory systems attempt to make optimum use of main memory, while using anauxiliary memory (disk) for backup. VM tries to keep active items in the main memory andas items became inactive, migrate them back to the lower speed disk. If the management al-gorithms are successful, the performance will tend to be close to the performance of the hig-her-speed main memory and the cost of the system tend to be close to the cost per bit of thelower-speed memory (optimization of the memory hierarchy between main memory anddisk). Most virtual memory systems use a technique called paging. Here, the physical address spa-ce is divided up into equallly sized units called page frames. A page is a collection a datathat occupies a page frame, when that data is present in memory. The pages and the pageframes are always of the same fixed size (e.g. 4K Bytes). There might be larger (e.g. 8KB)or smaller page sizes defined in computer systems depending on the compromise betweenaccess control and number of translations.

Vorlesung Rechnerarchitektur Seite 89

Memory Management

Logischer und physikalischer Adressraum werden in Seiten fester Größe unterteilt, meist 4oder 8KByte. Logische Pages werden in einer Pagetable auf physikalische Pageframes ab-gebildet, dabei ist der logische Adressraum im allgemeinen wesentlich größer als der physi-kalisch vorhandene Speicher. Nur ein Teil der Pages ist tatsächlich im Hauptspeicher, alleanderen sind auf einen Sekundärspeicher (Platte) ausgelagert.

- Programme können größer als der Hauptspeicher sein- Programme können an beliebige physikalischen Adressen geladen werden, un-

abhängig von der Aufteilung des physikalischen Speichers- einfache Verwaltung in Hardware durch feste Größe der Seiten- für jede Seite können Zugriffsrechte (read/write, User/Supervisor) festgelegt

und bei Zugriffen überprüft werden- durch den virtuellen Speicher wird ein kostengünstiger großer und hinreichend

schneller Hauptspeicher vorgetäuscht (ähnlich Cache)Die Pagetable enthält für jeden Eintrag einen Vermerk, ob die Seite im Hauptspeicher vor-handen ist (P-Bit / present). Ausgelagerte Pages müssen bei einer Referenz in den Haupt-speicher geladen werden, ggf. wird dabei eine andere Page verdrängt. Modifizierte Seiten(M-Bit / modify) müssen dabei auf den Sekundärspeicher zurückgeschrieben werden. Dazuwird ein weiteres Bit eingeführt, das bei einem Zugriff auf die Seite gesetzt wird (R-Bit /referenced)

Die Abbildung des virtuellen Adressraums auf den physikalischen erfolgt beim pagingdurch die Festlegung von Zuordnungspaaren (VA-PA).Hierbei werden die n (n=12 fuer 4K oder 13 fuer 8KB) niederwertigen bits der Adresse vonder VA zur PA durchgereicht und nicht uebersetzt

Virtueller Speicher / Paging

Page 580: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 90

Virtueller Speicher / Paging

Replacement-Strategien :- not recently used - NRU

mithilfe der Bits R und M werden vier Klassen von Pages gebildet0: not referenced, not modified1: not referenced, modified (empty class in single processor systems!)2: referenced, not modified3: referenced, modifiedes wird eine beliebige Seite aus der niedrigsten nichtleeren Klasse entfernt

- FIFOdie älteste Seite wird entfernt (möglicherweise die am häufigsten benutzte)

- Second-Chance / Clockwie FIFO, wurde der älteste Eintrag benutzt, wird zuerst das R-Bit gelöscht unddie nächste Seite untersucht, erst wenn alle Seiten erfolglos getestet wurden,wird der älteste Eintrag tatsächlich entfernt

- least recently used - LRUdie am längsten nicht genutzte Seite wird entfernt, erfordert Alterungsmechnis-mus

Vorlesung Rechnerarchitektur Seite 91

Memory Management

Verfahren zur Adreßtransformation

PAT: Es wird eine Abbildung von VA nach PA vorgenommen, wobei eine feste Page Sizevorausgesetzt wird. Der Offset innerhalb einer Page ist damit eine feste Anzahl von bits (lastsignificant bit (LSB)) aus der VA, die direkt in die PA übernommen werden.Der Offset wird also nicht verändert !Die Abbildung der höherwertigen Adreßbits erfolgt nach den oben genannten Mapping-Ver-fahren.

BAT: Provides a way to map ranges of VA larger than a single page into contiguous area ofphysical memory (typically no paging)• Used for memory mapped display buffers or large arrays of MMU data.• base-bound mapping scheme

• block sizes 128 KB (217) to 256 MB (228)• fully associative BAT registers on chip

small number of BAT entries (4 ... 8)

+ BAT entries have priority over PATs

Address Translation

Page Address Translation Segment Address Translation Block Address Translation

directmapping

invertedmapping

one level

base-bound onelevel

multilevel

associativePT

invertedPT

..............

wie PAT

checking

mapping

Page 581: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 92

Memory Management

Direct Page Table

For all used VA-Frames exist one PT-Entry which maps VA to PA. There are much moreentries required as physical memory is available.

For all PA exist one PT-Entry. Indexing with the VA doesn’t work any more!!!To find the right mapping entry a search with the VA as key must be performed by linearsearch or by associative match. Used for large virtual address space VAS, e.g. 264 and tokeep the PT small.

Inverted Page Table

......

......

page frame

VAS

page frame

inv PT PAS

page frame

PAVAhigh

virtual page

virtual pagevirtual page

=

search match

VA high

page frame

VAS

page frame

direkt PT PAS

page frame

PA

virtual page

virtual pagevirtual page

VA Page Table Index

used

Vorlesung Rechnerarchitektur Seite 93

Memory Management

Die virtuelle Adresse VA wird in einem Schritt in eine physikalische Adresse PA umgesetzt.Dazu wird ein höherwertiger Teil der VA zur Indizierung in die Page Table PT verwendet.In der PT findet man dann unter jedem Index genau einen Eintrag mit dem höherwertigenTeil der PA. Der niederwertige Teil der Adresse mit z.B. 12 bit wird als Seiten-Offste direktzur physikalischen Adresse durchgereicht. Diese einstufige Abbildung kann nur für kleineTeile der VA high verwendet werden (Tabellengröße 4 MB bei 32 bit entries)

Einstufiges Paging

12

12

Page Table Index

PT

VA high

20VA Offset

031

PA high

PA high Cntrl

220 Entries

VA

PA31 0

20

12dir_base

31 0000000000000

Page 582: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 94

Memory Management

Mehrstufiges Paging

Bei 32 Bit Prozessoren und einer Seitengröße von z.B. 4 KByte wird die Pagetable sehr groß,z.B. 4 MByte bei 32 Bit Pagetable Einträgen. Da meist nicht alle Einträge einer Tabellewirklich genutzt werden, wird eine mehrstufige Umsetzung eingeführt. Zum Beispiel refe-renzieren die obersten Adressbits eine Tabelle, während die mittleren Bits den Eintrag indieser Tabelle selektieren.

- es ist möglich, in der page dir Einträge als nicht benutzt zu kennzeichnen- damit werden in der zweiten Stufe weniger Tabellen benötig- die Tabellen der zweiten Ebene können selbst ausgelagert werden

Pagetables können aufgrund ihrer Größe nur im Hauptspeicher gehalten werden. Pagetablessind prinzipiell cachable, allerdings werden die Einträge wegen ihrer relativ seltenen Benut-zung (im Vergleich zu normalen Daten) schnell aus dem allgemeinen Cache verdrängt.

Zum Beschleunigen der Adressumsetzung, insbesondere bei mehrstufigen Tabellen, wirdein Cache verwendet. Dieser Translation Lookaside Buffer (TLB) oder auch Address Trans-lation Cache (ATC) enthält die zuletzt erfolgten Adressumsetzungen. Er ist meist vollasso-ziativ ausgeführt und enthält z.B. 64 Einträge. Neuerdings wird auch noch einsetassoziativer L2-Cache davorgeschaltet.

Directory Table Offset

CR0CR2CR2CR3 dir_base

{}

Control registers Page directory

Page table

{}

{} Address

Physical memory

31 0 31 0

31 0486TM CPU

Linear Address31 22 12 0

10

20

30

10

12

31 0

Page directory Page table

Linear Address TLB(32 entries) Physical

Memory

base

base20

20

Vorlesung Rechnerarchitektur Seite 95

Memory Management

A virtual address refers indirectly to a physical address by specifying a page table through adirectory page, a page within that table, and an offset within that page.

A page table is simply an array of 32-bit page specifiers. A page table is itself a page (1024entries with 4 bytes = 4kBytes). Two levels of tables are used to address a page frame in mainmemory. Page tables can occupy a significant part of memory space (210 x 210 words = 222

bytes; 4MBytes).The physical address of the current page directory is stored in the DTB (Directory table base)field of the dirbase register.

i860XP

31 22 21 12 11 0

DIR PAGE OFFSET

Page directory Page table Page frame

DIR entry

Page table entry

0

1023

0

1023

physical address

0

1023

1010 10 + 2

4kBytes

dirbase register

Format of a Virtual Address

two-level Page Address Translation

2 bit byte sel

word

Page 583: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 96

Memory Management

A page table entry contains the page frame address and a number of management bits. The present bit can be used to implement demand paging. If P=0, than that page is not pre-sent in main memory. An access to this page generates a trap to the operating system, whichhas to fetch the page from disk, set the P bit to 1 and restart the instruction.

Definition : PageThe virtual address space is divided up into equal sized units called pages. [Ta-nenbaum]Eine Page (im Kontext der MMU) entsteht durch die Unterteilung des virtuellenund physikalischen Speichers in gleich große Teile.

Definition : Page frameIst der Speicherbereich im Hauptspeicher, in den genau eine Page hineinpaßt.

i860XP

31 12 11 0

PAGE Frame Address

Format of a Page Table Entry (i860XP)

3579

PWUWT

CDAXXAVAIL D

PresentWritable

UserWrite-throughCache Disable

AccessedDirty

(Reserved)Available for system programmers use

Vorlesung Rechnerarchitektur Seite 97

Memory Management

Hashing

Literatur: Sedgewick, Robert, Algorithmen, Addison-Wesley, 1991, pp.273-287Hashing ist ein Verfahren zum Suchen von Datensätzen in Tabellen• Kompromiß zwischen Zeit- und PlatzbedarfHashing erfolgt in zwei Schritten:1. Berechnung der Hash-Funktion

Transformiert den Suchschlüssel (key, hier die VA) in einen Tabellenindex. Dabei wirdder Index wesentlich kürzer als der Suchschlüssel und damit die erforderliche Tabellekleiner.

Im Idealfall sollten sich die keys möglichst gleichmäßig über die Indices verteilen.

- Problem: Mehrdeutigkeit der Abbildung2. Auflösung der Kollisionen, die durch die Mehrdeutigkeit entstehen.

a) durch anschließendes lineares Suchen

b) durch erneutes Hashing

Index

Hash- linear Search

Entry

Entry Cntrl

2n

0

Fkt.

n

n/2z.B.0

VA high

VA PA

2n/2

inverted PT

simple

VAhigh VAhigh

Hash Function

7 6 5 4 3 2 1 0

Hash-Index3 2 1 0

2n/2-1

Page 584: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 98

Memory Management

LRU-Verfahren

Als Beispiel für einen Algorithmus, der das LRU-Verfahren realisiert, sei ein Verfahren be-trachtet, das in einigen Modellen der IBM/370-Familie angewandt wurde. Sei CAM (Content Addressable Memory) ein Assoziativspeicher mit k Zellen, z.B. der Ca-che. Zusätzlich dazu wird eine (k x k)-Matrix AM mit boolschen Speicherelementen ange-legt. Jeder der ’entries’ des CAM ist genau eine Zeile und eine Spalte dieser Matrixzugeordnet. Wird nun ein entry vom CAM aufgesucht, so wird zuerst in die zugehörige Zeile der bool-schen Matrix der Einsvektor e(k) und danach in die zugehörige Spalte der Nullvektor n(k)eingeschrieben (e(k) ist ein Vektor mit k Einsen; n(k) ist ein Vektor mit k Nullen). Dies wirdbei jedem neuen Zugriff auf das CAM wiederholt. Sind nacheinander in beliebiger Reihen-folge alle k Zellen angesprochen worden, so enthält die Zeile, die zu der am längsten nichtangesprochenen Zelle von CAM gehört, als einzige den Nullvektor n(k).

Sei i der Index der als erste angesprochenen Zelle von CAM, und sei AM die (k x k)-Alte-rungsmatrix. Dann ist nach dem Ansprechen der Zelle i AMi = n(k), während alle Elementevon AMi eins sind bis auf das Element (AMi)i, das null ist (da zunächst e(k) in die Zeile AMi

und dann in die Spalte AMi eingeschrieben wird). Dabei bezeichnen wir die Zeilen einerSpeichermatrix durch einen hochgestellten Index und die Spalten durch einen tiefgestelltenIndex. Bei jeder Referenz einer anderen Zelle von CAM wird durch das Einschreiben von e(k) indie entsprechende Zeile und nachfolgend durch das Einschreiben von n(k) in die entspre-chende Spalte von AM eine der Einsen in AMi durch Null ersetzt und eine andere Zeile mitEinsen angefüllt (bis auf das Element auf der Hauptdiagonale, das null bleibt). Damit wer-den nach und nach alle Elemente von AMi durch Null ersetzt, falls die Zelle i zwischenzeit-lich nicht mehr angesprochen wird. Da aber nach k Schritten nur in einer der k Zellen alleEinsen durch Nullen überschrieben sein können, müssen alle anderen Zeilen von AM nochmindestens eine Eins enthalten. Damit indiziert die Zeile von AM, die nur Nullen enthält,die LRU-Zelle (entry) des Assoziativspeichers. [ Giloi, Rechnerarchitektur, Springer, 1993,pp. 130]

AM0 AMk-1AMi

AM0

AMi

AMk-1

1 1 ... 11

...

00

00

0

k

......

...

Encoder

0

10

i

k-1i

1

cache entry

k cacheentries

k x k-MatixCAM

0

k-1

i

OR

Vorlesung Rechnerarchitektur Seite 99

Memory Management

LRU-Verfahren: Beispiel

Es wird ein CAM mit 8 entries angenommen. Das kann ein vollassoziativer Cache mit 8 ent-ries sein oder auch ein Set eines Caches mit 8 ’ways’ sein. Die Initialisierung der Alterungs-matrix erfolgt mit ’0’. Als Beispiel für die Veränderung der Werte in AM soll die folgendeZugriffsreihenfolge betrachtet werden.Zugriffsreihenfolge: 0, 1, 3, 4, 7, 6, 2, 5, 3, 2, 0, 4

Der Start erfolgt mit allen Einträgen als gleichalt markiert. Der erste Eintrag in Zeile undSpalte 0 läßt den Eintrag 0 altern. Es sind danach nur noch die mit x markierten Einträge zumErsetzen zu verwenden. Sind alle Einträge einmal referenziert, so bleibt in jedem weiterenZugriffsschritt immer nur ein Eintrag als der Älteste markiert stehen. [Tannenbaum, ModernOperating Systems, Prentice Hall, 1992, pp.111-112]

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1

1 0 1 1 1 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 0 1 1 1 1

1 0 1 0 1 1 1 1

0 0 0 0 0 0 0 0

1 1 1 0 1 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 0 0 1 1 1

1 0 1 0 0 1 1 1

0 0 0 0 0 0 0 0

1 1 1 0 0 1 1 1

1 1 1 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 0 0 1 1 0

1 0 1 0 0 1 1 0

0 0 0 0 0 0 0 0

1 1 1 0 0 1 1 0

1 1 1 1 0 1 1 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 0

0 0 1 0 0 1 0 0

1 0 1 0 0 1 0 0

0 0 0 0 0 0 0 0

1 1 1 0 0 1 0 0

1 1 1 1 0 1 0 0

0 0 0 0 0 0 0 0

1 1 1 1 1 1 0 1

1 1 1 1 1 1 0 0

0 0 0 0 0 1 0 0

1 0 0 0 0 1 0 0

1 1 0 1 1 1 1 1

1 1 0 0 0 1 0 0

1 1 0 1 0 1 0 0

0 0 0 0 0 0 0 0

1 1 0 1 1 1 0 1

1 1 0 1 1 1 0 0

0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

1 1 0 1 1 0 1 1

1 1 0 0 0 0 0 0

1 1 0 0 0 0 0 0

1 1 1 1 1 0 1 1

1 1 0 1 1 0 0 1

1 1 0 1 1 0 0 0

0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

1 1 0 0 1 0 1 1

1 1 1 0 1 1 1 1

1 1 0 0 0 0 0 0

1 1 1 0 1 0 1 1

1 1 0 0 1 0 0 1

1 1 0 0 1 0 0 0

0 0 0 0 0 0 0 0

1 0 0 0 0 0 0 0

1 1 0 1 1 1 1 1

1 1 0 0 1 1 1 1

1 1 0 0 0 0 0 0

1 1 0 0 1 0 1 1

1 1 0 0 1 0 0 1

1 1 0 0 1 0 0 0

0 1 1 1 1 1 1 1

0 0 0 0 0 0 0 0

0 1 0 1 1 1 1 1

0 1 0 0 1 1 1 1

0 1 0 0 0 0 0 0

0 1 0 0 1 0 1 1

0 1 0 0 1 0 0 1

0 1 0 0 1 0 0 0

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0

1

2

3

4

5

6

7

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 71 1 1 1 1 1 1 10

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

x

x

x

1 1 1 1 1 1 1 1

0

0

0

0

0

0

0

0

1 1 1 1 1 1 1 10

0

0

0

0

0

0

0

0 1 3 4

7 6 2 5

3 2 0 4

ppt

Page 585: EinfTI Script 2013

Vorlesung Rechnerarchitektur Seite 100

Main Memory

Some definitions ...

.... mode :

page mode : Betriebsart in der auf alle bits in dieser Page (RA) wesentlich schnellerzugegriffen werden kann. (12-25ns tCAC) Zum Zugriff wird eine neue CA und CAS benötigt.

1 Mbit x 1 bit

1024 bit page

C_Dec

R_D

ec

10

10 10 CA

RA

31 12 11 0Mem base

1222 21RA CA byte

sel

burst mode : Holt 2n Werte aus dem Speicher ohne eine neue CA.CAS muß aber geschaltet werden, um den internen Zähler zu inkremen-tieren.

memory modell :

6 - 2 - 2 - 2

latency in clocks

tRAC tCAC

32 bit Word=> 4 MByte

L - B - B - B

Vorlesung Rechnerarchitektur Seite 101

Main Memory

Some definitions ...

Hardware view:

asynchronous :Without a relation to a global clock signal.Signals propagating a net of gates behave asynchronous, because of the delay within each gate level.

synchronous:All signals and signal changes are referenced to a global clock signal.All locations are supplied by this clock signal, it is assumed that the edge of the clock signal defines thesame time at all locations

Caution : simplified view

- clock jitter- clock skew- clock network delay

bandwidth :

Term derived from ET. HFT, means the available frequency space f for a transmission channel

used in TI as:possible number of data, which can be carried through an interface, eg. bus, memory.unit [MBytes/s]

transfer rate :Number of Data items, which are moved in one second.unit [MBytes/s]

f1 f2f=f2-f1unit [MHz]f