EinfTI Script 2013
Transcript of 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
Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
2
A Organisatorisches
2
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
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
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
6 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
4 Inhalt
Aufbau von Rechnersystemen
„Unter die Haube sehen“
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
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
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!
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
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
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.
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
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
Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1
B Einführung
1
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)
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
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
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
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
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)
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)
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} ]
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
11Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
2 Information und ihre Übertragung (4)
Nachrichtenträger
analoges Signal
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)
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
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
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
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
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
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
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
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)
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
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)
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
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.
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
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
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)
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
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
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
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)
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
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
34Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
3.2 Leistungssteigerung
1975 – 2000
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
36Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
3.3 Trends Mikroprozessoren und Speicher (2)
Leistungszuwachs:
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
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
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
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 (?)
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
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
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
Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1
C Schaltalgebra
1
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
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
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?
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.
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?
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.
8Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
2.2 Komplexe Schaltung
Komplexes Szenario: viele Schalter
Wann leuchtet die Lampe?
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
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
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
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
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
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'
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:
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)
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 =+
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
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 +=⋅
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
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
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
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
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
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) ⊕=
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, ⇒=
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
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 +=
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
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
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
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
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)
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
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 ⋅⋅⋅
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
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 =
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
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
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
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
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
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
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 +⋅=⋅+⋅
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
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 ⋅
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 ⋅
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
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
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
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
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
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 ⋅⋅
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
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 ⋅⋅
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
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
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
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
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
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
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
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 ⋅⋅⋅
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 ⋅⋅⋅
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 ⋅⋅⋅
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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.
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
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
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
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 ⋅⋅+⋅⋅+⋅⋅+⋅⋅=
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)
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
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)
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
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)
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 ⋅=⋅=⋅=⋅=
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
⋅⋅⋅=⋅⋅+⋅⋅=
⋅⋅+⋅⋅+⋅⋅+⋅⋅=
⋅=
Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
1
D Sequentielle Logik
1
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
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
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)
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 )
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
43 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
5.1 D-Flip-Flop (2)
Realisierung
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
81 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
7.5 Moore-Automat fürs „Aufstehen“
Schritt 1a: Zustandsdiagramm
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
1
E Technologische Grundlagen
1
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
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
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“
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
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)
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)
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)
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)
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
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
+
–
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 +
–
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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 ++++
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
50 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
5.2 DRAM-Speicher (3)
Quelle: wikipedia.org
52 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
5.2 DRAM-Speicher (4)
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
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
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
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
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)
58 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
5.4 DRAM Timing
asynchron synchron
59 Prof. Dr. Ulrich Brüning LS Rechnerarchitektur Einführung in die Technische Informatik
5.4 DRAM Timing (2)
DDR-RAM synchron
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)
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
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)
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
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
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
Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1
F ProgrammierbareLogikbausteine
1
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
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
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
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
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
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
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
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
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)
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
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
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“
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
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
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)
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
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
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
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
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
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
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
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)
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
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)
27Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
4 CPLD (2)
Blockschaltbild
Logik-block
Logik-block
Logik-block
Schalt-matrix
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)
29Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
5 FPGA (2)
Blockschaltbild
programmierbare
programmierbaresVerbindungsnetzwerk
programmierbareEin-/Ausgabelogik
Logikzellen
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
1Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
G Zahlendarstellung & Kodierung
2Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
1 Einführung
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, ….}
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)
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
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
7Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
2 Zahlensysteme
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
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
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
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
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
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
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
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
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
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
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
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
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
21Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
3 Kodierung
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
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
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)
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“)
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
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)
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
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
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
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
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
33Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
4 Komprimierende Codes
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
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
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/
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)
...
...(...)
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
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
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
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)
42Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
4.4 Huffman-Code – Beispiel 1 (2)
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
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/
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
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
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
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
49Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
5 Zeichenkodierung
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
51Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
5.1 ASCII-Code
ASCII-Code ist dichter 7 Bit Blockcode
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
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 “¿”
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)
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
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
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
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
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
60Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
6 Fehlererkennung
Parität
CRC
Hamming-Code
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)
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!
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)
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
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
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
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
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
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!
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
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
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
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
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
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
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
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
Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik 1
H Rechnerarithmetik
1
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
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
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
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}
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}
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
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
9Prof. Dr. Ulrich BrüningLS Rechnerarchitektur Einführung in die Technische Informatik
3 Binäre Addition
Schriftliche Addition
Verfahren wie beim Dezimalsystem10011+1001
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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 =
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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.
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.
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.
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
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
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
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.
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
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
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
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
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)
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 ...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
&
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)
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
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
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.
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
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
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
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
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
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
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
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
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
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
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