Sie sind auf Seite 1von 585

Vorlesung Einfhrung in die Technische Informatik WS 2013/14

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

A Organisatorisches

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Dozent
Prof. Dr. Ulrich Brning
Lehrstuhl fr Rechnerarchitektur, Institut fr Technische Informatik (Ziti),
Universitt Heidelberg

LS Rechnerarchitektur
Prof. Dr. U. Brning B6, 26, Building B (3rd floor) 68131 Mannheim Fon: +49 (0) 621 - 181 2724 Fax: +49 (0) 621 - 181 2713

E-mail: ulrich.bruening@ziti.uni-heidelberg.de

Sekratariat: Andrea Seeger


Fon: +49 (0) 621 181 2723

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 bungsbetreuung
bungsleiter Denis Wohlfeld (wohlfeld@ziti.uni-heidelberg.de) Tutoren Oliver Hommel (oli.Hommel@t-online.de): Tutorium 1: Mo. 16:0017:30 Uhr; Ort: INF 501 / FP (R.102)

Enrico Krmer (Enrico.Kraemer@stud.uni-heidelberg.de): Tutorium 2:


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

Aaron Sievers (Sievers_Aaron@web.de): Tutorium 3: Mi. 14:15-15:45


Uhr; Ort: INF 227 / SR 2.401

Felix Kaiser (F.Kaiser@stud.uni-heidelberg.de): Tutorium 4: Mi. 14:1515:45 Uhr; Ort: INF 227 / SR 2.402

Prof. Dr. U. Brning (D. Wohlfeld wohlfeld@uni-heidelberg.de):


Tutorium 5: Mo. 16:00-17:30 Uhr; Ort: INF 288 HS6
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 Studiengnge
Bachelorstudiengang Angewandte Informatik
Pflichtveranstaltung Vertiefung Technische Informatik

1. Semester

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4 Inhalt
Aufbau von Rechnersystemen
Unter die Haube sehen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4 Inhalt
Stichworte

Digitale Logik Digitale Schaltungen Rechnerarithmetik Mikroarchitektur Instruktionssatz

Rechnerarchitektur
Ein-, Ausgabegerte Betriebsystemkonzepte

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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 Verfgung gestellt
und knnen selbst ausgedruckt werden

weitergehende Informationen zum Nachlesen siehe angegebene Literatur

URL zur Veranstaltung (nur nach Anmeldung fr Veranstaltung)


Moodle2 Termine, Folien zum Ausdrucken und
Zusatzinformationen

Nutzen Sie das dortige Forum fr Fragen!

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

6 Vorlesung (2)
Rckmeldungen und Fragen
Geben Sie mir Rckmeldungen bzgl. nderungen oder Ergnzungen zum
Stoff

Stellen Sie Fragen, auerhalb der Vorlesung auch per Email! Machen Sie mich auf Fehler aufmerksam! Nutzen Sie (auerhalb der Vorlesung) die Mglichkeit, mit den
bungsbetreuern und Ihren Mit-Studierenden zu diskutieren

Selbst-lern-Mglichkeiten
Literatur Wikipedia

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

7 Literatur
Ergnzungsliteratur
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.

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

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, Klrung von Fragen,
Verstndnisfragen

1. bungsblatt ab Freitag 18.10 ber Moodle

eine Woche zur Bearbeitung


Erste Abgabe im Tutorium ab Mo. 28.10. eine Woche spter Rckgabe und Besprechung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

9 Studien- bzw. Prfungsleistungen


Leistungsnachweis:
bungen >= 50% aller bungsaufgaben gut gelst
(max. 2 x unentschuldigt gefehlt)

=> Zulassung zur Klausur

Klausur nach dem WS ber Vorlesung und bungen


Technische Informatik

ggfs. Nachprfung vor Beginn des Wintersemesters


Nachklausur

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

B Einfhrung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Zielsetzung
Grundverstndnis der digitalen Logik Verstndnis zum Aufbau und der Arbeitsweise von Rechnersystemen System-Zusammenhang von HW und SW
Mglichkeiten und Grenzen der Hardware Verstndnis fr spezifisches Systemverhalten Leistungsfhigkeit von Hardware Strken und Schwchen Vergleich zu Software Grundlagen fr die Entwicklung hardwarenaher Programme Ansteuerung von Ein- Ausgabegerten (z.B. Treiber) Implementierung effizienter Programme (z.B. in Maschinensprache)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Was ist Technische Informatik?


schwerpunktmige Zusammengehrigkeit

Technische und Systemnahe Informatik Rechnernetze Rechnerarchitektur Entwurf digitaler Hardware (Betriebssysteme) (Verteilte Systeme)

Informatik Signaltheorie Technische Informatik Rechnerarchitektur Robotik / Sensorik

Logik

Mathematik
(diskrete)

Elektrotechnik
(Digitaltechnik)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Systementwurf
Beispiel: Komponenten fr Systementwurf mit ASIC oder FPGA

Technische Informatik
Systemarchitektur
Softwareentwicklung (C, C++, ASM) Driver API O/S (Linux) Hardwareentwicklung (HDL, Schematics) Logikentwurf ASIC oder FPGA Design Simulation und Verifikation Synthese, Back-End Package- & Board-Design Test und Debugging

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Beispiel (1)
Beispiel: Komponenten fr ASIC Systementwurf
ATOLL board
ATOLL-Projekt www.atoll-net.de

Simulationsfenster bond Draehte

ATOLL chip

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Testaufbau

Einfhrung in die Technische Informatik

1 Beispiel (2)
Beispiel: Komponenten fr FPGA Systementwurf
HTX-Board ra.ziti.uni-heidelberg.de

Testaufbau

Simulationsausgabe

FPGA board
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Information und ihre Darstellung


Information und Nachricht sind grundlegende Begriffe der Informatik
Information 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 grer, je kleiner die Wahrscheinlichkeit pi


ist.

Zwei gleich wahrscheinliche Ereignisse werden gerade durch eine


Entweder-Oder-Entscheidung dargestellt. Dies entspricht der Einheit des Informationsgehalts 1 bit (binary digit)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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 Empfnger.

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)


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Information und ihre bertragung (2)


Nachricht = Zeichenfolge
Ein Zeichen ist ein Element aus einer endlichen Menge von
unterscheidbaren Elementen, dem Zeichenvorrat.

Ein Zeichenvorrat, in dem eine lineare Ordnung (Reihenfolge) definiert


ist, heit Alphabet.

Ein Symbol ist die bedeutungstragende Einheit d.h. ein Symbol ist das
Zeichen zusammen mit der Bedeutung.

Eine digitale Informationsbertragung verwendet definierte


Symbole. Dabei existiert ein endlicher Symbolvorrat. Im technischen Bereich sind Zeichenvorrte, die nur aus zwei Zeichen
bestehen, von grerer Bedeutung.

Ein Zeichenvorrat mit nur zwei Zeichen heit binrer Zeichenvorrat.


Die Zeichen heien Binrzeichen (bit) Darstellung durch [ {0,1}; {O,H}; {l,H}; {grn,rot}; {0V,5V} ]
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Information und ihre bertragung (3)


Die Nachricht wird durch Signale bertragen

analoge

digitale 010010001001010 SOS

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

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

2 Information und ihre bertragung (4)


analoges Signal

Nachrichtentrger

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

2 Analoge und digitale Rechner


Analogrechner
Verarbeitung kontinuierlicher Gren Lnge, Spannung, Temperatur

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

2 Analoge und digitale Rechner (2)


Digitale Rechner
Verarbeitung diskreter Gren mechanische Rasten, Spannungsniveaus, Stromfluss

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

2 Analoge und digitale Rechner (3)


Vergleich: Genauigkeit
Unterscheidung Genauigkeit der Darstellung von Gren Genauigkeit der Verarbeitung von Gren Analogrechner theoretisch beliebig genaue Darstellung unprzise Mechanik/Elektronik des Rechners:
Ungenauigkeiten selbst bei einfachen Berechnungen (z.B. durch Temperaturabhngigkeit)

Digitalrechner theoretisch ungenaue Darstellung (kann nur in Stufen rechnen) unprzise Mechanik/Elektronik des Rechners:
aber: Ungenauigkeiten bei der Verarbeitung nur in Extremfllen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

2 Analoge und digitale Rechner (4)


Vergleich: Datenspeicherung
Analogrechner Speicherung von Daten problematisch siehe z.B. alte Tonkassetten Digitalrechner Speicherung von Daten einfach realisierbar

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

2 Analoge und digitale Rechner (5)


Analogrechner
Einsatz fr Spezialprobleme Beispiel: Lsen von Differentialgleichungen heute nicht mehr in Gebrauch

Digitalrechner
heute vorwiegend elektronische Digitalrechner im Einsatz Vorteil insbesondere hhere Genauigkeit lsst sich kostengnstiger als bei Analogrechnern
erreichen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

3 Historische Entwicklung
3000 v. Chr.
Abacus: lteste Rechenhilfe der Welt genauer Ursprung unklar verschiedene Versionen noch heute im asiatischen Raum im Einsatz

1629
Rechenschieber (William Oughtred): Analogrechner-Beispiel

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

3 Historische Entwicklung (2)


1623: erste Rechenmaschine (Wilhelm Schickard /Tbingen fr Kepler)

alle vier Grundrechenarten

1642: Pascaline (Blaise Pascal)


mechanische Rechenmaschine nur Addition

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

18

3 Historische Entwicklung (3)


1666
Grundlagen der Logik (Gottfried Wilhelm Leibniz)

1673
mechanische Rechenmaschine,
Stepped Reckoner (Leibniz)

vier Grundrechenarten Wurzelziehen Przisionsprobleme


bei der Herstellung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

3 Historische Entwicklung (4)


1804
automatischer Webstuhl (Joseph Jacquard) Lochkarten bestimmen Muster Lcher steuern Anheben
und Senken der Kettfden

erster Nur-Lese-Speicher
(ROM, Read-Only Memory)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

3 Historische Entwicklung (5)


1822
Differenzmaschine (Charles Babbage) Przisionsprobleme bei der Herstellung Nur ein Algorithmus

1834
Analytische Maschine (Babbage) theoretisch programmierbar erster universeller Rechenautomat Rechenwerk Mill Speicher Store Einsatz von Lochkarten erste Programmiererin:
Lady Augusta Ada Lovelace

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

3 Historische Entwicklung (6)


1847
Boolesche Algebra (George Boole) binre logische Operationen Basis fr heutige Digitalrechner

1890
Tabelliermaschine (Herman Hollerith) Zhl- und Sortiermaschine
(Volkszhlung)

Basis Lochkarten Holleriths Firma wurde spter zur IBM

1930
elektromech. Analogrechner Differential Analyzer (Vannevar Bush)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

22

3 Historische Entwicklung (7)


1936
Turingmaschine (abstraktes Modell fr Berechenbarkeit) Entscheidungsproblem Theoretische Informatik

1940
Z3 (Konrad Zuse) Relaistechnik (2200 Stck) 10 Hertz Taktfrequenz 22-stellige Binrzahlen
(Gleitkomma-Format)


LS Rechnerarchitektur

dezimale Ein-/Ausgabe Speicher mit 64 Worten Steuereinheit mit Sequenzer Addition in 3 Takten, Multiplikation in 16 Takten

Prof. Dr. Ulrich Brning

Einfhrung in die Technische Informatik

23

3 Historische Entwicklung (8)


1945
von Neumann Architektur (John von Neumann) klassischer Universalrechner vier wesentliche Komponenten: Befehlsprozessor, Datenprozessor,
Speicher, Ein- u. Ausgabe-Prozessor Programme und Daten in einem Speicher (Princeton-Architektur) Zugang zum Speicher erfolgt ber den BUS streng sequentielle Befehlsausfhrung binre Kodierung

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

Einfhrung in die Technische Informatik

24

3 Historische Entwicklung (9)


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

Rhrentechnik (19000 Stck) 130 m2, 30 Tonnen, 140 kW ca. 5000 Additionen je Sek. 20 Akkumulatoren 1 Multiplizierer, 3 Funktionstabellen programmiert durch Kabelverbindungen E/A mittels Lochkarten gebaut fr ballistische Berechnungen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

3 Historische Entwicklung (9.1)


Kernspeicher

benutzt als Hauptspeicher von 1951 bis 70er Jahre sehr aufwndige Fertigung (Handarbeit): Ferritkerne mit Leitungen Schreiben: x- u. y-Leitung je halber Strom zur (Um)Magnetisierung Lesen: wie Schreiben: je nach Magnetisierung Induktionssignal auf z Vorteil: Daten bei Stromausfall erhalten

x z

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

3 Historische Entwicklung (10)


1959
Integrierte Schaltung (Jack Kilby)

1961
PDP-1 (DEC) Transistortechnik magnetischer Kernspeicher fr
4096 18-Bit Worte

200 kHz Takt CRT, 512 x 512 Pixel Grafik erster Minicomputer

1965
PDP-8 Omnibus (erstes Bussystem)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

3 Historische Entwicklung (11)


1965
IBM 360 erste Rechnerfamilie mit gleichem
Instruktionssatz

Mehrprogrammbetrieb mikroprogrammierbar 32-Bit Worte 16 MByte Adressraum

1968
Strukturierte Programmierung (Edsger Dijkstra) Go To Statement Considered Harmful Prozedurale Programmierung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

3 Historische Entwicklung (12)


1972
PDP-11 16-Bit Speicherworte Entwicklungsumgebung fr UNIX und C

1976
Cray-1 erster Vektorrechner 1981 IBM-PC

1985
MIPS erster RISC-Mikroprozessor

1987
Connection Machine erster massiv paralleler Rechner mit 65536 Prozessoren
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

3 Historische Entwicklung (13)


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

1997
Supercomputer ASCI Red 1 TFlops

2000
erster Mikroprozessor mit 1 GHz Taktfrequenz

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

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

3 Historie (14): Deutsche Rechner-Hersteller


Zuse
1958: Z22 (Rhren, Ferritkernspeicher, 20 IPS), ALGOL 1961: Z23 (Transistoren, Ferritkernspeicher, 150 IPS), ALGOL60

AEG/Telefunken
1967-: TR440 (Mainframe, Transistoren/Schaltkreise, Magnetplatten/Bnder, bis 2 CPUs, 48 Bit, 800 kIPS), FORTRAN, u.a. in Kl, Mnchen

1974-: ATM 80 (Prozessrechner, 16/32 bit, 256 kB RAM), FORTRAN, BASIC

Siemens
1959: S2002 (Universalrechner, Ferritkernspeicher, Transistoren), ALGOL 1964: S3003 (Transistor/Schaltkreise) bis 9 Programme gleichzeitig 1971-: S300 (Prozessrechner, 16 Bit, Halbleiter-Speicher)

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


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

3.1 Entwicklung der Prozessoren


Beispiel: Prozessoren von Intel 1974 Intel 8080
erste universelle 8-Bit CPU auf einem Chip

1978 Intel 8086


erste 16-Bit CPU auf einem Chip

1981 Einfhrung des IBM PC 1985 Intel 80386


erste 32-Bit CPU

1989 Intel 80486


Cache auf Chip integriert

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

3.1 Entwicklung der Prozessoren (2)


1993 Intel Pentium
zwei Pipelines

1995 Intel Pentium Pro


bis zu fnf Instruktionen gleichzeitig

2000 Pentium 4
bis 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

3.2 Leistungssteigerung
1975 2000

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

34

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


Jahre

Vervierfachung der Speichergre alle 3 Jahre Verdopplung der Speicherleistung alle 10 Jahre Zum gleichen Preis die doppelte Leistung in weniger als 2 Jahren
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

3.3 Trends Mikroprozessoren und Speicher (2)


Leistungszuwachs:

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

3 Historische Entwicklung (13)


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

1997
Supercomputer ASCI Red 1 TFlops

2000
erster Mikroprozessor mit 1 GHz Taktfrequenz

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

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

3.4 Entwicklung der Betriebssysteme


1950 1960
Stapelverarbeitung Wechselpufferbetrieb Spooling (Trennung von Ein-, Ausgabe und Berechnung)

1964 DOS/360 (IBM)


allgemeines Betriebssystem mit Mehrprogrammbetrieb

1969 Unix (Bell Labs)


Betriebssystem fr Minicomputer

1972 MVS (IBM)


Virtueller Speicher

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

38

3.4 Entwicklung der Betriebssysteme (2)


1976 CPM 80 (Digital Research)
Betriebssystem fr Mikroprozessor

1981 MS/DOS (Microsoft)


Durchbruch als Mikroprozessor-Betriebssystem

1982 MacOS / Finder (Apple)


graphische Oberflche

1985 Netware (Novell)


Vernetzung von PCs

1986 MS Windows (Microsoft)


die graphische Oberflche fr PC

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

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 (?)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

4 Schichtenmodell
Abstraktionsschichten eines Rechensystems
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Problemorientierte Sprache
Compiler

Assemblersprache
Assembler

Betriebssystem
Teilinterpretation

ISA (Instruction Set Architecture)


Interpretation durch Mikroprogramm

Mikroarchitektur
Implementierung in Gattern

Digitale Logik
Implementierung in Hardware

Bauelemente Einfhrung in die Technische Informatik 41

5 Struktur der Vorlesung


berblick

A Organisatorisches B Einfhrung C Schaltalgebra D Sequentielle Logik E Technologische Grundlagen F Programmierbare Logikbausteine G Zahlendarstellung H Rechnerarithmetik I Hypothetischer Prozessor J Prozesse und Nebenlufigkeit K Speicherverwaltung L Massenspeicher

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

42

5 Struktur der Vorlesung (2)


Einordnung der Kapitel
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Problemorientierte Sprache Assemblersprache Betriebssystem

A
A A B B C C D D E E F F G G H H I I J J K K L L

B
Organisatorisches Organisatorisches Einfhrung Einfhrung Schaltalgebra Schaltalgebra Sequentielle Logik Sequentielle Logik Technologische Grundlagen Technologische Grundlagen Programmierbare Logikbausteine Programmierbare Logikbausteine Zahlendarstellung Zahlendarstellung Rechnerarithmetik Rechnerarithmetik Hypothetischer Prozessor Hypothetischer Prozessor Prozesse und Nebenlufigkeit Prozesse und Nebenlufigkeit Speicherverwaltung Speicherverwaltung Massenspeicher Massenspeicher

J K

ISA (Instruction Set Architecture)

I
Mikroarchitektur

F H
C D E
Digitale Logik Bauelemente

Einfhrung in die Technische Informatik

43

C Schaltalgebra

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Problemorientierte Sprache Assemblersprache Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur Digitale Logik Physik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Digitale elektrische Systeme


Einfaches Szenario: Lampenschaltung
S c h a lt e r

S p a n n u n g s q u e lle

L i ch t q u e l l e

Strom kann bei geschlossenem Stromkreis flieen. Zwei Zustnde: Strom fliet Lampe leuchtet Strom fliet nicht Lampe bleibt dunkel

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Einfache Schaltungen


Einfaches Szenario: zwei Schalter in Reihe

Wann leuchtet die Lampe?

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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.

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Einfache Schaltungen (2)


Einfaches Szenario: zwei parallele Schalter

Wann leuchtet die Lampe?

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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.

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.2 Komplexe Schaltung


Komplexes Szenario: viele Schalter

Wann leuchtet die Lampe?

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.2 Komplexe Schaltung


Komplexes Szenario: viele Schalter

Beispiel: (mindestens) 3 Schalter geschlossen, damit Lampe leuchtet Reihe von Alternativen mglich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 Logische Schaltungen
Bisher:
Stromkreis, Schalter und Lampe

Betrachtung aus dem Blickwinkel der Logik


zwei Zustnde an aus Stromfluss kein Fluss wahr falsch true false 10

Realisierung mit elektronischen Bausteinen


zwei Zustnde, z.B. Stromfluss kein Stromfluss

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

3 Logische Schaltungen (2)


Elementare Funktionen ber die beiden Zustnde
realisiert mit Funktionsbausteinen (Gatter) Eingnge und Ausgnge

Komplexere Funktionen durch mehrere zusammengeschaltete Gatter Logische Funktion tritt in den Vordergrund
Elektronik wird weniger wichtig

Betrachtung elementarer Funktionen / Gatter

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

3.1 Und-Gatter
Implementierung der Konjunktion
zwei Parameter
A 0 0 1 1 B 0 1 0 1 Y 0 0 0 1

alternative Schreibweisen

Y=AB

Wahrheitstafel

Y = AB Y = AB Y = A&B

mehrere Parameter

Y = A1 A2 An

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

3.2 Oder-Gatter
Implementierung der Disjunktion
zwei Parameter
A 0 0 1 1 B 0 1 0 1 Y 0 1 1 1

alternative Schreibweisen

Y=A+B

Y = AB

Wahrheitstafel

mehrere Parameter

Y = A1 + A2 + + An

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

3.3 Nicht-Gatter
Implementierung der Negation
ein Parameter
A 0 1 Y 1 0

alternative Schreibweisen

Y=A

Wahrheitstafel

Y = A Y = A'

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

3.4 Logische Schaltungen


Zusammenschalten mehrerer elementarer Gatter zu einer Schaltung
Eingnge und Ausgnge

Beispiel 1:

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

3.4 Logische Schaltungen (2)


Beispiel 2:

Problemkreise
Synthese von Schaltungen aus Wahrheitstabelle Nachweis der quivalenz von Schaltungen minimaler Aufbau von Schaltungen (Kostenersparnis)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

4 Boolesche Algebra
Von George Boole 1854 entwickelte Algebra
zwei Werte: 0 und 1 drei Operationen: + und und vier Axiome (nach Huntington, 1904):
1. 2. 3. Kommutativitt A+B=B+A Neutrales Element 0+A=A AB=BA 1A=A

Distributivitt (A + B) C = (A C) + (B C) (A B) + C = (A + C) (B + C) Komplementres Element

4.

A + A =1

AA = 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

4.1 Wichtige Stze


Aus den Axiomen beweisbare Stze
Abgeschlossenheit Boolesche Operationen liefern nur boolesche Werte als Ergebnis Assoziativitt (A + B) + C = A + (B + C)

A (B C) = (A B) C

Idempotenz A+A=A

A A=A

Absorption A + (A B) = A
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

A (A + B) = A

Einfhrung in die Technische Informatik

18

4.1 Wichtige Stze (2)


Doppeltes Komplement A=A Komplementre Werte 0 =1 Satz von De Morgan (A + B) = A B

1=0

(A B) = A + B

Dualitt Fr 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.

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

4.2 Schaltalgebra
Boolesche Algebra fr logische Schaltungen

Operation UND () Operation ODER (+) Operation NICHT () zwei Zustnde 0 und 1 entsprechen den Werten

Gesetze der Booleschen Algebra helfen bei


Synthese von Schaltungen aus Wahrheitstabellen Nachweis der quivalenz von Schaltungen Minimierung von Schaltungen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

5 Schaltfunktionen
Zweiwertige Funktion ber zweiwertige Variablen
eindeutige Zuordnungsvorschrift mgliche Wertekombinationen der Eingabevariablen je ein Ergebniswert bei n Eingabevariablen ergeben sich 2n Kombinationsmglichkeiten fr
mgliche Eingabewerte

Darstellung durch boolesche Ausdrcke Variablen und Operationen aus der booleschen Algebra
Beispiel:

f(a,b,c) = a b + c

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

5.1 Wahrheitstafeln
Tabellarische Darstellung der Zuordnung
Beispiel:
a 0 0 0 0 1 1 1 1
n

b 0 0 1 1 0 0 1 1

c 0 1 0 1 0 1 0 1

f(a,b,c) 1 0 1 0 1 0 1 1

Es gibt 256 dreistellige Schaltfunktionen


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

(2 ) 2 verschiedene n-stellige Schaltfunktionen

Einfhrung in die Technische Informatik

22

5.2 Einstellige Schaltfunktionen


Vier einstellige Schaltfunktionen
Name: Wahrheitstafel Ausdruck: x 0 1 NullIdentittsEinsNegation funktion funktion funktion f(x) f(x) f(x) f(x) 0 1 0 1 0 0 1 1 f(x) = x f(x) = 0 f(x) = x f(x) = 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

23

5.3 Zweistellige Schaltfunktionen


Sechzehn zweistellige Schaltfunktionen
Name: x 0 Wahrheits0 tafel 1 1 Ausdruck: y 0 1 0 1 Nullfunktion f(x,y) 0 0 0 0 f(x,y) = 0 Konjunktion f(x,y) 0 0 0 1 f(x) = x y f(x,y) 0 0 1 0 f(x) = x y f(x,y) 0 0 1 1 f(x,y) = x

Konjunktion: UND-Funktion

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

5.3 Zweistellige Schaltfunktionen (2)


Sechzehn zweistellige Schaltfunktionen
Name: x y f(x,y) Wahr- 0 0 0 heits- 0 1 1 tafel: 1 0 0 1 1 0 Ausdruck: f(x, y) = x y f(x,y) 0 1 0 1 f(x,y) = y Exklusives Oder Disjunktion f(x,y) f(x,y) 0 0 1 1 1 1 0 1 f(x, y) = x y + x y f(x,y) = x + y

exklusives Oder: Antivalenz, Addition-Modulo-2,

f(x) = x y

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

5.3 Zweistellige Schaltfunktionen (3)


Sechzehn zweistellige Schaltfunktionen
Name: x y Wahr- 0 0 heits- 0 1 tafel: 1 0 1 1 Ausdruck: PeirceFunktion f(x,y) 1 0 0 0 f(x,y) = x y quivalenz f(x,y) 1 0 0 1 f(x,y) = x y + x y f(x,y) 1 0 1 0 f(x,y) = y Implikation f(x,y) 1 0 1 1 f(x,y) = x + y

Peirce-Funktion: negiertes Oder, NOR quivalenz: f(x,y) y Implikation: f(x,y) = y x

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

5.3 Zweistellige Schaltfunktionen (4)


Sechzehn zweistellige Schaltfunktionen
Name: x y Wahr- 0 0 heits- 0 1 tafel: 1 0 1 1 Ausdruck: f(x,y) 1 1 0 0 f(x, y) = x Implikation f(x,y) 1 1 0 1 f(x, y) = x + y ShefferFunktion f(x,y) 1 1 1 0 f(x, y) = x y EinsFunktion f(x,y) 1 1 1 1 f(x,y) = 1

Implikation: f(x,y) = x y Sheffer-Funktion: negiertes Und, NAND

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

5.4 Sheffer-Funktion
Eine Funktion zur Darstellung aller anderen
Sheffer-Funktion / NAND NICHT-Funktion
Y=X

UND-Funktion
Y = A B

ODER-Funktion

Y = A +B

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

5.5 Darstellung von Schaltfunktionen


Mgliche Darstellungen
Wahrheitstabelle boolescher Ausdruck Schaltung mit elementaren Gattern (UND, ODER, NICHT)

Problem
boolescher Ausdruck und Schaltung sind nicht eindeutig mehrere Ausdrcke (Schaltungen) reprsentieren die gleiche
Schaltfunktion

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

5.6 Normalformen
Normierte Ausdrcke zur Darstellung von Schaltfunktionen Begriffe
Produktterm einfache Variable (evtl. negiert) Konjunktion einfacher Variablen (jeweils evtl. negiert) x, x, x y z Beispiele: Summenterm analog zu Produktterm, jedoch Disjunktion Beispiele: x, x, x + y + z

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

5.6 Normalformen (2)


Weitere Begriffe
Minterm Produktterm, in dem jede Variable einer Schaltfunktion genau einmal
vorkommt (einfach oder negiert)

Beispiel: x1 x 2 x3 x 4 ist Minterm fr Funktion

f ( x1, x 2 , x3 , x 4 )

Maxterm Summenterm, in dem jede Variable einer Schaltfunktion genau einmal


vorkommt (einfach oder negiert)

Beispiel: x1 + x 2 + x3 + x 4 ist Maxterm fr Funktion

f ( x1, x 2 , x3 , x 4 )

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

5.6 Normalformen (3)


Noch mehr Begriffe
disjunktive Normalform (DNF) Disjunktion von Produkttermen Beispiel: x + x y + y z konjunktive Normalform (KNF) Konjunktion von Summentermen Beispiel: x (x + y) (y + z)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

5.6 Normalformen (4)


Noch mehr aber besonders wichtige Begriffe
kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen Beispiel: KDNF zur Funktion : f ( x1, x 2 , x3 , x 4 )
x1 x 2 x 3 x 4 + x1 x 2 x3 x 4 + x1 x 2 x 3 x 4

kanonische konjunktive Normalform (KKNF, KKF) Konjunktion einer Menge von Maxtermen mit gleichen Variablen Beispiel: KKNF zur Funktion : f ( x1, x 2 , x3 , x 4 )
(x1 + x 2 + x 3 + x 4 ) ( x1 + x 2 + x3 + x 4 ) ( x1 + x 2 + x 3 + x 4 )

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

34

5.7 Hauptsatz der Schaltalgebra


Jede Schaltfunktion lsst sich als genau eine KDNF darstellen
v Fr jedes f(x) = 1 aus der Wahrheitstafel bilde man einen Minterm fr die
KDNF.

Eine Variable xi wird invertiert, wenn die Variable fr diesen Eintrag in der
Wahrheitstabelle 0 ist, ansonsten einfach verwendet.

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

0 1 0 1

x1 x 2 x 3 x 4

Darstellung durch KDNF bis auf Vertauschungen eindeutig


(Kommutativitt)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

5.7 Hauptsatz der Schaltalgebra (2)


Jede Schaltfunktion lsst sich als genau eine KKNF darstellen
Fr jedes f(x) = 0 aus der Wahrheitstafel bilde man einen Maxterm fr
die KKNF.

Eine Variable xi wird invertiert, wenn die Variable fr diesen Eintrag in der
Wahrheitstabelle 1 ist, ansonsten einfach verwendet.

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

x1 + x 2 + x 3 + x 4

Darstellung durch KKNF bis auf Vertauschungen eindeutig


(Kommutativitt)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

5.7 Hauptsatz der Schaltalgebra (3)


berfhrung der kanonischen Normalformen ineinander
Wegen Dualitt gilt:
v v KDNF(f ( x )) = KKNF( f ( x ))
und

v v KKNF(f ( x )) = KDNF( f ( x ))

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

6 Synthese von Schaltungen


Vorgehen
Aufstellen der Wahrheitstafel Bilden der KDNF (oder KKNF) Aufbau der dazugehrigen Schaltung

6.1 Beispiel: Oderfunktion


Wahrheitstafel fr eine einfache zweistellige Funktion
x1 0 0 1 1 x2 0 1 0 1 F(x1,x2) 0 1 1 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

38

6.1 Beispiel: Oderfunktion (2)


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

f(x1,x 2 ) = x1 x 2 + x1 x 2 + x1 x 2
Problem
Schaltung wird in aller Regel nicht minimal sein

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

6.2 Beispiel: Eingabemelder


Zwei dreistellige Schaltfunktionen
eine der Eingabevariablen kann 1 sein Ergebnis ist Nummer der Eingabevariable
(als Ergebnis zweier Schaltfunktionen)

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

6.2 Beispiel: Eingabemelder (2)


Uninteressante Funktionswerte

einige Eingabewerte knnen nicht vorkommen / werden ausgeschlossen dont care Ergebnisse mit d gekennzeichnet dabei gleichgltig, ob =0 oder =1 (d.h. d kann fr beides stehen)

Bildung der KDNF fr beide Schaltfunktionen


f2 (x1, x 2 , x 3 ) = x1 x 2 x 3 + x1 x 2 x 3 f1(x1, x 2 , x 3 ) = x1 x 2 x 3 + x1 x 2 x 3 uninteressante Funktionsergebnisse werden nicht bercksichtigt
(d.h. bei KDNF wie Null-Ergebnisse behandelt)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

41

7 quivalenz von Schaltfunktionen


Schaltfunktionen lassen sich auf gleiche KDNF (bzw. KKNF)
zurckfhren

Umformungen nach den Gesetzen der Booleschen Algebra


Erhaltung der Schaltfunktion

Nutzen
z.B. Minimieren von Schaltfunktionen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

42

8 Minimierung
Suche nach einer minimalen Darstellung einer Schaltfunktion Grenbegriff notwendig

Menge der notwendigen Gatter Anzahl der Variablen Anzahl der notwendigen ICs Anzahl der notwendigen Kontakte ...

Grenbegriff von den Kosten bestimmt Grenbegriff hier


Anzahl der Symbole

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

43

8.1 Grundlage der Minimierung


Gesetze der Booleschen Algebra
Insbesondere
A B + A B = A Beweis

A B + A B = A (B + B)
A (B + B) = A 1

wg. (Kommutativitt u.) Distributivitt

wg. komplementrem Element

A 1 = A
wg. neutralem Element

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

44

8.2 Vorgehensweise
Manuelles Minimieren
Umformen (z.B. der KDNF) nach den Regeln der Booleschen Algebra

Algorithmisches Verfahren
Verfahren nach Quine/McCluskey kann durch ein Programm angewandt werden geeignet fr Schaltfunktionen mit vielen Variablen

Graphische Verfahren
Hndlersche Kreisgraph Karnaugh-Veitch Diagramme geeignet fr Schaltfunktionen mit wenigen Variablen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

45

8.3 Karnaugh-Veitch-Diagramme
Ausgangspunkt KDNF (oder KKNF)
Rechteckschema je ein Feld fr jeden mglichen Minterm (Maxterm) Anordnung der Felder, so dass benachbarte Felder bzw. Minterme
zusammenfassbar

Diagramm fr zweistellige Schaltfunktion


Funktion: f(x1,x2) Diagramm:

x1
x2
x2

x1 x1 x 2
x1 x 2

x1 x 2 x1 x 2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

46

8.3 Karnaugh-Veitch-Diagramme (2)


Diagrammaufbau
jede Variable xi halbiert das Diagramm in zwei zusammenhngende Teile erster Teil fr xi zweiter Teil fr xi Variable x1
x1
x2 x2 x1 x 2 x1 x1 x 2 x1 x 2
x2

Variable x2
x1
x1 x 2

x1
x1 x 2

x1 x 2

x2

x1 x 2

x1 x 2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

47

8.4 Beispiel: Oderfunktion


Aufstellen der KDNF

f1(x1, x 2 ) = x1 x 2 + x1 x 2 + x1 x 2
Eintragung in das Diagramm
Eintragung einer 1, wenn Minterm bentigt wird Eintragung einer 0, wenn Minterm nicht bentigt wird
x1
x2 x2
0 1

x1
1 1

Eintragung auch direkt aus Wahrheitstafel mglich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

48

8.4 Beispiel: Oderfunktion (2)


Markierung mglichst weniger und mglichst groer
zusammenhngender Bereiche mit 1en
nur Schnittmengen von vollstndigen Hlften (insbesondere einzelne
Minterme) oder Gesamtdiagramm erlaubt

alle 1 Felder mssen schlielich markiert sein


x1
x2
0 1

x1
1 1

x2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

49

8.4 Beispiel: Oderfunktion (2)


Markierung mglichst weniger und mglichst groer
zusammenhngender Bereiche mit 1en
nur Schnittmengen von vollstndigen Hlften (insbesondere einzelne
Minterme) oder Gesamtdiagramm erlaubt

alle 1 Felder mssen schlielich markiert sein


x1
x2
0 1

x1
1 1

x2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

50

8.4 Beispiel: Oderfunktion (2)


Markierung mglichst weniger und mglichst groer
zusammenhngender Bereiche mit 1en
nur Schnittmengen von vollstndigen Hlften (insbesondere einzelne
Minterme) oder Gesamtdiagramm erlaubt

alle 1 Felder mssen schlielich markiert sein


x1
x2
0 1

x1
1 1

x2

markierten Bereiche ergeben Produktterme, die summiert werden:


f(x1,x2) = x1 + x2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

51

8.4 Beispiel: Oderfunktion (3)


Alternative Markierung
Markierung nicht so gro wie mglich, aber alle 1en markiert
x1
x2
0 1

x1
1 1

x2

markierten Bereiche ergeben Produktterme, die summiert werden:


f(x1,x 2 ) = x1 + x1 x 2

Funktion korrekt, jedoch nicht minimal

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

52

8.5 Beispiel: Eingabemelder


Dreistellige Schaltfunktionen
Karnaugh-Veitch-Diagramm

x 2 x2 x2 x1 x1

x3

x1 x 2 x 3

x1 x 2 x 3 x1 x 2 x 3

x1 x 2 x 3

x3

x1 x 2 x 3

x1 x 2 x 3 x1 x 2 x 3

x1 x 2 x 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

53

8.6 Beispiel: Eingabemelder (2)


Halbierungen des Diagramms
Variable x1
x 1 x 1

x1 x 2 x 3
x1 x 2 x 3

x1 x 2 x 3
x1 x 2 x 3

x1 x 2 x 3
x1 x 2 x 3

x1 x 2 x 3
x1 x 2 x 3

Variable x2

x2
x1 x 2 x 3 x1 x 2 x 3

x 2

x2
x1 x 2 x 3 x1 x 2 x 3

x1 x 2 x 3 x1 x 2 x 3

x1 x 2 x 3
x1 x 2 x 3

Wichtig: die Bereiche fr x 2 gehren zusammen Vorstellung: Diagramm ist an den Rndern zusammengeklebt

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

54

8.7 Beispiel: Eingabemelder (3)


Halbierungen des Diagramms
Variable x3

x3
x3

x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3 x1 x 2 x 3
x 1 x 2 x 3 x 1 x 2 x 3 x1 x 2 x 3 x 1 x 2 x 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

55

8.7 Beispiel: Eingabemelder (4)


Belegen des Diagramms aus der Wahrheitstafel
Funktion f2 aus Folie C-41 Eintragung der dont care-Werte
x 2 x2 x2 x1 x1

x3 x3

0 1

1 d

d d

0 d

dont care-Werte knnen mitmarkiert werden oder nicht Ziel: mglichst groe Bereiche markieren markierte dont care-Werte werden spter zu 1, andere zu 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

56

8.7 Beispiel: Eingabemelder (5)


Markierungen fr f2
zwei Bereiche
x 2 x2 x2 x1 x1

x3 x3

0 1

1 d

d d

0 d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

57

8.7 Beispiel: Eingabemelder (5)


Markierungen fr f2
zwei Bereiche
x 2 x2 x2 x1 x1

x3 x3

0 1

1 d

d d

0 d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

58

8.7 Beispiel: Eingabemelder (5)


Markierungen fr f2
zwei Bereiche
x 2 x2 x2 x1 x1

x3 x3

0 1

1 d

d d

0 d

markierten Bereiche ergeben Produktterme, die summiert werden:


f2(x1,x2,x3) = x2 + x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

59

8 KV-Verfahren
Diagramm aufstellen (nach Wahrheitstafel) Markierungen anbringen
Was darf markiert werden? 2k Elemente markieren (Rechtecke) Schnittmengen von Hlften sind erlaubt algebraischen Ausdruck ermitteln beteiligte Schnittmengen fhren zu Produkttermen Summe der Produktterme bilden

Hufig benutzte einfachere Schreibweise am Beispiel f(a,b,c)


a
0 0 1 1 0 1 1 1

c
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

60

8.9 Beispiel: unbestimmte Funktion


Gegeben folgende Belegung aus der Wahrheitstafel
Welche Markierungen? x 2 x2 x2 x1 x1
x3
x3
1 1 0 1 d d 1 d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

61

8.9 Beispiel: unbestimmte Funktion (2)


Gegebene Belegung aus der Wahrheitstafel
Beste Markierung:
x 2 x2 x2 x1 x1

x3
x3

1 1

0 1

d d

1 d

markierten Bereiche ergeben Produktterme, die summiert werden:


f(x1,x 2 ,x 3 ) = x 2 + x 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

62

8.10 Vierstellige Funktionen


Karnaugh-Veitch-Diagramm fr vierstellige Schaltfunktion
x2
x4
x4 x4
x3
x1 x 2 x 3 x 4
x 2

x1

x2 x1
x1 x 2 x 3 x 4

x3

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

63

8.10 Vierstellige Funktionen (2)


Halbierungen fr vierstellige Schaltfunktion
x1 x1

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x2 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x 2

x2 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4 x1 x 2 x 3 x 4
x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

64

8.10 Vierstellige Funktionen (3)


Halbierungen fr vierstellige Schaltfunktion
x3 x3 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x4
x4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4 x1 x 2 x 3 x 4 x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x1 x 2 x 3 x 4
x1 x 2 x 3 x 4

x4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

65

8.10 Vierstellige Funktionen (4)


Markierungen
insbesondere folgende Markierungen mglich

x x x

Vorstellung:

x
Diagramm ist an den Rndern jeweils

zusammengeklebt

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

66

8.11 Beispiel: 2x2-Multiplizierer


Binrer Multiplizierer fr 2 mal 2 Eingnge

Binrdarstellung von Zahlen von 0 bis 3 bzw. 0 bis 15 zwei Eingnge a1 und a0 zwei Eingnge b1 und b0 vier Ausgnge y3, y2, y1 und y0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

67

8.11 Beispiel: 2x2-Multiplizierer (2)


a1 = x1 a0 = x2 b1 = x3 b0 = x4 y3 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 y2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 y1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 y0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1

0x0=0 0x1=0 0x2=0 0x3=0 1x0=0 1x1=1 1x2=2 1x3=3 2x0=0 2x1=2 2x2=4 2x3=6 3x0=0 3x1=3 3x2=6 3x3=9

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

68

8.12 Beispiel: 2x2-Multiplizierer (3)


Karnaugh-Veitch-Diagramm fr y0:
x2 x4
x4
x4
0 0 0 0 x 2 0 1 1 0 0 1 1 0 x1

x2 x1
0 0 0 0

x3
x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

69

8.12 Beispiel: 2x2-Multiplizierer (3)


Karnaugh-Veitch-Diagramm fr y0:
x2
x4 x4
x4
0 0 0 0 x 2 0 1 1 0 0 1 1 0 x1

x2 x1
0 0 0 0

x3 x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

70

8.12 Beispiel: 2x2-Multiplizierer (3)


Karnaugh-Veitch-Diagramm fr y0:
x2 x4 x4
x4
0 0 0 0 x 2 0 1 1 0 0 1 1 0 x1

x2 x1
0 0 0 0

x3 x3

Markierte Bereiche:
y0 = x2 x4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

71

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4
x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

72

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4 x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Markierte Bereiche:

y1 = x 2 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

73

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4 x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Markierte Bereiche:

y1 = x 2 x 3 x 4 + x1 x 2 x 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

74

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4 x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Markierte Bereiche:

y1 = x 2 x 3 x 4 + x1 x 2 x 3 + x1 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

75

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4 x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Markierte Bereiche:

y1 = x 2 x 3 x 4 + x1 x 2 x 3 + x1 x 3 x 4 + x1 x 2 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

76

8.12 Beispiel: 2x2-Multiplizierer (4)


Karnaugh-Veitch-Diagramm fr y1:
x2
x4 x4
x4
0 0 0 0 x 2 0 0 1 1 0 1 0 1 x1

x2 x1
0 1 1 0

x3

x3

Markierte Bereiche:

y1 = x 2 x 3 x 4 + x1 x 2 x 3 + x1 x 3 x 4 + x1 x 2 x 4 y1 = x 2 x 3 ( x 4 + x1 ) + x1 x 4 ( x 3 + x 2 ) y1 = x 2 x 3 ( x 4 x 1 ) + x1 x 4 ( x 3 x 2 )
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

77

8.12 Beispiel: 2x2-Multiplizierer (5)


Karnaugh-Veitch-Diagramm fr y2
x2
x4
x4 x4
0 0 0 0 x 2 0 0 0 0 0 0 0 1 x1

x2 x1
0 0 1 1

x3

x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

78

8.12 Beispiel: 2x2-Multiplizierer (5)


Karnaugh-Veitch-Diagramm fr y2
x2 x4
x4 x4 x3
0 0 0 0 x 2 0 0 0 0 0 0 0 1 x1

x2 x1
0 0 1 1

x3

y 2 = x1 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

79

8.12 Beispiel: 2x2-Multiplizierer (5)


Karnaugh-Veitch-Diagramm fr y2
x2 x4
x4 x4 x3
0 0 0 0 x 2 0 0 0 0 0 0 0 1 x1

x2 x1
0 0 1 1

x3

y 2 = x1 x 3 x 4 + x1 x 2 x 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

80

8.12 Beispiel: 2x2-Multiplizierer (5)


Karnaugh-Veitch-Diagramm fr y2
x2 x4
x4 x4 x3
0 0 0 0 x 2 0 0 0 0 0 0 0 1 x1

x2 x1
0 0 1 1

x3

y 2 = x1 x 3 x 4 + x1 x 2 x 3 = x1 x 3 ( x 2 + x 4 ) = x1 x 3 ( x 2 x 4 )

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

81

8.12 Beispiel: 2x2-Multiplizierer (6)


Karnaugh-Veitch-Diagramm fr y3
x2 x4
x4 x4
x3
0 0 0 0 x 2 0 0 0 0 0 0 1 0 x1

x2 x1
0 0 0 0

x3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

82

8.12 Beispiel: 2x2-Multiplizierer (6)


Karnaugh-Veitch-Diagramm fr y2
x2 x4
x4 x4 x3
0 0 0 0 x 2 0 0 0 0 0 0 1 0 x1

x2 x1
0 0 0 0

x3

y 3 = x1 x 2 x 3 x 4

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

83

9 Schaltnetze
Mehrere Schaltfunktionen (Combinational Networks)
sind von gleichen Eingangsvariablen abhngig
f1(x1,x2,,xn) f2(x1,x2,,xn) fm(x1,x2,,xn)

entspricht Schaltung mit mehreren Ausgngen

x1 x2 ... xn ...

f 1 (x) f 2 (x) f m (x)

Kombinatorische Logik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

84

9 Schaltnetze (2)
Gerichteter, azyklischer Graph
Gatter, Ein- und Ausgnge sind Knoten Verbindungsleitungen 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, wenn alle Signale einfach und negiert vorliegen und Gatter mit ausreichender Anzahl von Eingngen vorliegen.

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

85

9 Schaltnetze (3)
Begrndung

Bezug zur KDNF (oder KKNF) alle Variablen werden einfach oder negiert benutzt zunchst Minterme: ein Und-Gatter pro Minterm (erste Stufe) Summe der Minterme: ein Oder-Gatter fr alle Minterme

Beispiel: Eingabemelder

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

86

9 Schaltnetze (4)
Anzahl der notwendigen Gatter bei n Eingngen
max. 2n Und-Gatter pro Schaltfunktion mit bis zu n Eingngen (KDNF) ein Oder-Gatter mit bis zu 2n Eingngen

Minimierung
reduziert Gatteranzahl und Eingangsanzahl pro Gatter Minimierung parallel fr mehrere Schaltfunktionen des Schaltnetzes Verwendung derselben Gatter z.B. Karnaugh-Veitch-Diagramme fr mehrere Schaltfunktionen des
Netzes

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

87

10 Typische Schaltnetze

10.1 1-aus-k-Multiplexer
Steuerleitungen weisen viele Eingabeleitungen einem Ausgang zu

n Steuerleitungen s0, s1, , sn-1 (Eingnge) k = 2n Eingnge x0, x1, , xk-1 ein Ausgang y es gilt: y = xi fr (sn-1, , s1, s0)2 = i (Zahlendarstellung im Binrsystem)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

88

10.1 1-aus-k-Multiplexer (2)


Realisierung
fr n = 2 als DNF

y = s1 s0 x 0 + s1 s0 x1 + s1 s0 x 2 + s1 s0 x 3

Einsatz
Anzeige und Auswahl verschiedener Datenquellen
z.B. Auslesen von Daten aus Speicherzellen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

89

10.2 1-zu-k-Demultiplexer
Steuerleitungen weisen eine Eingabeleitung vielen Ausgngen zu

n Steuerleitungen s0, s1, , sn-1 (Eingnge) ein Eingang x k = 2n Ausgnge y0, y1, , yk-1 es gilt: yi = x fr (sn-1, , s1, s0)2 = i (Zahlendarstellung im Binrsystem)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

90

10.2 1-zu-k-Demultiplexer (2)


Realisierung
fr n = 2 als DNF

y 0 = s1 s0 x, y1 = s1 s0 x1, y 2 = s1 s0 x 2 , y 3 = s1 s0 x 3

Einsatz
Zuordnung und Auswahl verschiedener Datensenken
z.B. Speichern von Daten in Speicherzellen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

91

10.3 k-zu-n-Kodierer
Nummer eines Eingangs wird ausgegeben
k = 2n Eingnge x0, x1, , xk-1 immer genau eine Eingangsleitung auf 1
i mit xi = 1 und j i xj = 0

n Ausgnge y0, y1, , yn-1 es gilt: (yn-1, , y1, y0)2 = i


(Zahlendarstellung im Binrsystem)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

92

10.3 k-zu-n-Kodierer (2)


Realisierung
fr n = 2, k = 4 als DNF
y0 = x1 + x3 , y1 = x2 + x3

Einsatz
z.B. Signalisierung eines Eingangssignals

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

93

10.4 n-zu-k-Dekodierer
Eingnge selektieren genau einen von vielen Ausgngen
n Eingnge x0, x1, , xn-1 k = 2n Ausgnge y0, y1, , yk-1 es gilt: yi = 1 und j i yj i = 0

mit (xn-1, , x1, x0)2 = i (Zahlendarstellung im Binrsystem)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

94

10.4 n-zu-k-Dekodierer (2)


Realisierung
fr n = 2, k = 4 als DNF

y 0 = x 0 x1, y1 = x 0 x1, y 2 = x 0 x1, y 3 = x 0 x1

Einsatz:
z.B. Dekodierung eines Maschinenbefehls

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

95

10.5 Beispiel: 2x2-Multiplizierer


Funktionsgleichungen: y 0 = x 2 x 4
y1 = x 2 x 3 x 4 + x1 x 2 x 3 + x1 x 3 x 4 + x 1 x 2 x 4 y 2 = x1 x 2 x 3 + x1 x 3 x 4 y 3 = x1 x 2 x 3 x 4

Realisierung:

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

96

D Sequentielle Logik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung
Ebene 6
Problemorientierte Sprache Assemblersprache Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur Digitale Logik Physik

Ebene 5
Ebene 4

Ebene 3
Ebene 2

Ebene 1
Ebene 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Begriff Sequentielle Logik


Kombinatorische Logik
Schaltnetze mit Gattern Ideal: verzgerungsfreie Gatter und Verbindungen
sofortiges Ergebnis beim Anlegen von Werten an den Eingngen

Nicht ideal: natrlich mit der Gatterverzgerung tpd


und der Verzgerung der Wire delays tpdw

keine Zyklen/Rckkoppelungen im Schaltnetz

Sequentielle Logik
Gatter haben Laufzeitverhalten Annahme einer Gatterlaufzeit tpd (propagation delay) Zyklen bzw. Rckkopplungen Schaltwerke Schaltungen mit Gattern als gerichteter zyklischer Graph
mit Speichereigenschaft

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 Asynchrone und synchrone Schaltwerke


Asynchrone Schaltwerke
vernderte Eingnge sorgen fr vernderte Ergebnisse Gatterlaufzeit bestimmt Zeitdauer bis stabiles Ergebnis vorliegt zuverlssiges Design schwierig Kaum Werkzeuguntersttzung sehr schnelle Schaltungen mglich

Synchrone Schaltwerke
Taktgeber sorgt fr Weiterleitung stabiler Ergebnisse in nchste Stufe langsamste Teilschaltung bestimmt maximale Taktfrequenz Sehr gute Werkzeuguntersttzung (static timing analysis)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4 RS-Flip-Flop
Betrachtung eines einfachen asynchronen Schaltwerks
X ' X( t t ) A ( t ) Y ( t )

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

Wie verhlt sich das Schaltwerk bei unterschiedlichen Eingngen?

Zur Erinnerung: Wahrheitstafel eines NOR-Gatters


x1 0 0 1 1 x2 x 1 x 2 0 1 1 0 0 0 1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4.1 Analyse des Schaltwerks


Wegen Rckkopplung Betrachtung von Ein- und Ausgngen
Betrachtung einer Konfiguration und deren Auswirkungen nach t:
A 0 B 0 X 0 Y 1 X 0 Y 1

X und Y sind stabil Konfiguration:


A 1 B 0 X 0 Y 1 X 0 Y 1

X und Y sind stabil Vernderungen von A bleiben irrelevant

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4.1 Analyse des Schaltwerks (2)


Weitere Konfiguration:
A 0 B 0 X 1 Y 0 X 1 Y 0

X und Y sind stabil

Konfiguration:
A 0 B 1 X 1 Y 0 X 1 Y 0

X und Y sind stabil Vernderungen von B bleiben irrelevant

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4.1 Analyse des Schaltwerks (3)


Weitere vernderliche Konfiguration
Konfiguration:
A 1 B 0 X 1 Y 0 X 0 Y 0

X verndert sich
A 1 B 0 X 0 Y 0 X 0 Y 1

danach bleiben X und Y stabil


A 1 B 0 X 0 Y 1 X 0 Y 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4.1 Analyse des Schaltwerks (4)


Vernderliche Konfiguration
Konfiguration:
A 0 B 1 X 0 Y 1 X 0 Y 0

Y verndert sich
A 0 B 1 X 0 Y 0 X 1 Y 0

danach bleiben X und Y stabil


A 0 B 1 X 1 Y 0 X 1 Y 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

4.1 Analyse des Schaltwerks (5)


Tabelle der Zustandsbergnge
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 X 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Y 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 X 0 1 1 0 1 0 0 0 Y
01

1 0 0 0 0 1 1 0

stabil stabil instabil instabil stabil instabil stabil instabil


01

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

4.1 Analyse des Schaltwerks (6)


Verhalten weiterer Konfigurationen
Konfiguration:
A 0 B 0 X 0 Y 0 X 1 Y 1

X und Y verndern sich


A 0 B 0 X 1 Y 1 X 0 Y 0

X und Y verndern sich erneut Schaltwerk schwingt!

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

4.1 Analyse des Schaltwerks (6)


Verhalten weiterer Konfigurationen
Konfiguration:
A 0 B 0 X 0 Y 0 X 1 Y 1

X und Y verndern sich


A 0 B 0 X 1 Y 1 X 0 Y 0

X und Y verndern sich erneut Schaltwerk schwingt!

Minimale Laufzeitschwankungen werden Schwingung beenden einer der beiden stabilen Zustnde wird eintreten

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

4.1 Analyse des Schaltwerks (6)


Tabelle der Zustandsbergnge
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 X 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Y 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 X 1 0 1 0 1 0 1 0 0 0 Y 1 1 0 0 0 0 0 1 1 0 instabil stabil stabil instabil instabil instabil stabil instabil stabil instabil

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

4.1 Analyse des Schaltwerks (7)


Verhalten weiterer Konfigurationen
Konfiguration:
A 0 B 1 X 1 Y 1 X 0 Y 0

letztlich bergang in einen stabilen Zustand


A 0 B 1 X 1 Y 0 X 1 Y 0

Konfiguration:
A 1 B 0 X 1 Y 1 X 0 Y 0

letztlich bergang in einen stabilen Zustand


A 1 B 0 X 0 Y 1 X 0 Y 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

4.1 Analyse des Schaltwerks (7)


Tabelle der Zustandsbergnge
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 X 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Y 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 X 1 0 1 0 1 0 1 0 0 0 0 0 Y 1 1 0 0 0 0 0 0 1 1 0 0 instabil stabil stabil instabil instabil instabil stabil instabil instabil stabil instabil instabil

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

4.1 Analyse des Schaltwerks (8)


Konfigurationen mit beiden Eingngen auf 1
Konfiguration:
A 1 B 1 X 0 Y 0 X 0 Y 0

X und Y stabil

Konfiguration:
A 1 B 1 X 0 Y 1 X 0 Y 0

instabil bergang zu obiger stabiler Konfiguration

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

4.1 Analyse des Schaltwerks (9)


Konfigurationen mit beiden Eingngen auf 1
Konfiguration:
A 1 B 1 X 1 Y 0 X 0 Y 0

instabil bergang zu vorheriger stabiler Konfiguration Konfiguration:


A 1 B 1 X 1 Y 1 X 0 Y 0

instabil bergang zu vorheriger stabiler Konfiguration

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

4.1 Analyse des Schaltwerks (10)


Tabelle der Zustandsbergnge
A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 X 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 Y 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 X 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 Y 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 instabil stabil stabil instabil instabil instabil stabil instabil instabil stabil instabil instabil stabil instabil instabil

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

18

4.2 Bedeutung
Ausschlieen der Eingabewerte:
A=B=1
X Y

zwei stabile Ausgabewert-Kombinationen mit

Bezeichnung
bistabiler Speicher Flip-Flop

Umbenennung der Ein- und Ausgnge


R=A S=B Q=X QY
Reset, Lschen Set, Setzen Ausgang negierter Ausgang

RS-Flip-Flop

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

4.2 Bedeutung (2)


Verkrzte Wahrheitstafel eines RS-Flip-Flops
R 0 0 1 1 S 0 1 0 1 Q Q 1 0 Q bleibt unverndert

Eingabekombination nicht erlaubt

Blockschaltbild

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

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 lsst Warnlampe leuchten, auch wenn
Alarm-Signal T wieder = 0

Beispiel: Entprellen von Tastern/Schaltern

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

4.4 Zeitdiagramm
Reaktion des RS-Flip-Flops ber die Zeit

steigende Signalflanke triggert das Umschalten des Flip-Flops Verzgerung und Einschwingzeit abhngig von der Gatterlaufzeit

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

22

4.5 Getaktetes RS-Flip-Flop


Synchrone Schaltung
bernahme der Eingnge nur whrend einer Taktphase

Blockschaltbild

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

23

4.5 Getaktetes RS-Flip-Flop (2)


Realisierung mit NAND-Gattern

Achtung!

wg. De Morgan sind Ausgnge invertiert

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

4.5 Getaktetes RS-Flip-Flop (3)


Zeitverhalten des getakteten RS-Flip-Flops
C
1

0 1 0 1 0 1 0

R
S
Q

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

4.5 Getaktetes RS-Flip-Flop (3)


Zeitverhalten des getakteten RS-Flip-Flops
C
R

1
0

S
Q

1 0 1
0

1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

4.5 Getaktetes RS-Flip-Flop (3)


Zeitverhalten des getakteten RS-Flip-Flops
C
R

1
0

S
Q

1 0 1
0

1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

4.5 Getaktetes RS-Flip-Flop (3)


Zeitverhalten des getakteten RS-Flip-Flops
C
R

1
0

S
Q

1 0 1
0

1 0

Vernderungen finden whrend der 1-Phase des Taktsignals statt mehrere Vernderungen pro Taktphase mgliche

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

4.5 Getaktetes RS-Flip-Flop (4)


Problem
rckgekoppelte Schaltung vom Aus- zum Eingang des Flip-Flops

Vernderungen am Ausgang knnen Vernderungen am Eingang


whrend einer Taktphase nach sich ziehen.

selbst bei kurzen Taktphasen sind ungewollte Rckkopplungen mglich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

4.6 Master-Slave-RS-Flip-Flop
RS-Flip-Flop reagiert auf (absteigende) Taktflanke
zweistufiges Flip-Flop

Takt auf 1
Master Flip-Flop nimmt Eingnge auf, Slave bleibt unverndert

Takt auf 0
Master Flip-Flop reagiert nicht mehr auf Eingnge, Slave bernimmt
Zustand des Masters

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

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


Flip-Flop reagiert auf absteigende Taktflanke
Zeitverhalten
C

1 0 1 0 1 0

R S

1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

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


Flip-Flop reagiert auf absteigende Taktflanke
Zeitverhalten
C R S QM Q 1
0 1

0 1 0
1 0 1

QM: Q-Ausgang des Master-Flip-Flops Rckkoppelung ber Schaltnetz nun unkritisch

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

4.7 Flanken-Impulse
Impulse der Dauer t aus positiver oder negativer Flanke des Signals

C(t) C(t)
C( t + t ) positive Flanke
negative Flanke

1 0 1 0

1 0
1 0 1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

4.8 Flankengetriggerte Master-Slave-RS-Flip-Flops


Normales Master-Slave-RS-Flip-Flop nimmt Eingnge whrend der
gesamten 1-Phase des Taktes an

Flankengetriggerte Flip-Flops
bernehmen Eingnge nur bei Taktflanken Impuls aus positiver oder negativer Taktflanke intern erzeugt Blockschaltbild flankengetriggerter RS-Flip-Flops

positive Flankentriggerung

negative Flankentriggerung

positive Flanke = aufsteigende Flanke negative Flanke = abfallende Flanke

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

34

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

pro Takteinheit logische Verarbeitung in den zwischengeschalteten Schaltnetzen Weitergabe der Information an nchste Stufe der Pipeline Ausgabe am Ende der Pipeline nach drei Takten kommt die verarbeitete Information am Ende heraus

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

4.9 Pipelining (2)


Einfaches Beispiel

Annahme
alle Flip-Flops geben zu Beginn Q = 0 aus

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

4.9 Pipelining (3)


Zeitverhalten
Takt 1
C R S Q1

Takt 2

Takt 3

Takt 4
1 0

1 0 1 0
1 0 1 0 1 0

Q2
Q3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

4.9 Pipelining (3)


Zeitverhalten
Takt 1
C R S Q1

Takt 2

Takt 3

Takt 4
1 0

1 0 1 0
1 0 1 0 1 0

Q2
Q3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

38

4.9 Pipelining (3)


Zeitverhalten
Takt 1
C R S Q1

Takt 2

Takt 3

Takt 4
1 0

1 0 1 0
1 0 1 0 1 0

Q2
Q3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

4.9 Pipelining (3)


Zeitverhalten
Takt 1
C R S Q1

Takt 2

Takt 3

Takt 4
1 0

1 0 1 0
1 0 1 0 1 0

Q2
Q3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

4.9 Pipelining (3)


Zeitverhalten
Takt 1
C R S Q1

Takt 2

Takt 3

Takt 4
1 0

1 0 1 0
1 0 1 0 1 0

Q2
Q3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

41

5.0 Weitere Flip-Flops


5.1 D-Flip-Flop
Synchroner Baustein
verkrzte Wahrheitstafel eines D-Flip-Flops
D 0 0 1 1 C 0 1 0 1 Q Q 0 Q 1 Q bleibt unverndert 0 wird bernommen Q bleibt unverndert 1 wird bernommen

Blockschaltbild

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

42

5.1 D-Flip-Flop (2)


Realisierung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

43

5.1 D-Flip-Flop (2)


Realisierung

Flankengetriggertes D-Flip-Flop

positive Flankentriggerung

negative Flankentriggerung

Es wird im Wesentlichen das positv flankengetriggerte FF verwendet

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

44

5.2 Register
Flip-Flops bilden ein Register
Speicher fr bestimmte Anzahl von Binrwerten

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

45

5.3 JK-Flip-Flop
RS-Flip-Flop mit zustzlicher Umschaltfunktion (Toggle)
in der Regel synchron und mit Master-Slave-Aufbau Blockschaltbilder flankengetriggerter JK-Flip-Flops

positive Flankentriggerung

negative Flankentriggerung

verkrzte Wahrheitstafel eines JK-Flip-Flops


C 0 1 1 1 1 J * 0 0 1 1 K * 0 1 0 1 Q Q Q 0 1
Q

keine nderung ohne Takt Rcksetzen (K=R) Setzen (J=S) Q wird invertiert (Toggle)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

46

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

47

6 Typische Schaltwerke
6.1 Schieberegister
Register mit Schiebeoperation
Binrwerte werden z.B. im Register nach rechts geschoben Realisierung mit D-Flip-Flops

Vielfltige Anwendung
Teil arithmetischer Operationen Serialisierung und Deserialisierung von Daten

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

48

6.1 Schieberegister (2)


Schieberegister fr Links- und Rechtsschiebe-Operationen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

49

6.1 Schieberegister (2)


Schieberegister fr Links- und Rechtsschiebe-Operationen

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

50

6.2 Asynchroner Zhler


Beispiel:
dreistelliger Binrzhler zhlt abfallende Flanken des Taktimpulses
Aufbau mit JK-Flip-Flops

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

51

6.2 Asynchroner Zhler (2)


Zeitverhalten
C Q0 Q1 Q2 000 001 010 011 100 101 11 0 11 1 1 0

1 0
1 0 1 0 Q2Q1Q0

Dominoeffekt verzgert stabilen Zustand des Zhlers lange Zhler sind nicht beliebig schnell taktbar

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

52

6.3 Synchroner Zhler


Unmittelbarer bergang aller beteiligten Flip-Flops pro Taktzyklus Mgliche Zustnde eines dreistelligen Binrzhlers

bergnge pro Takt unbedingte bergnge

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

53

6.3 Synchroner Zhler (2)


Einsatz von JK-Flip-Flops
Aufstellen einer Zustandsbergangstabelle fr das JK-Flip-Flop
bergang Q Q 00 01 10 11 J 0 1 d d K d d 1 0 K Eingang irrelevant K Eingang irrelevant J Eingang irrelevant J Eingang irrelevant

Drei JK-Flip-Flops notwendig fr dreistelligen Zhler


Takt fr alle Flip-Flops identisch Wie mssen Steuereingnge J und K angesprochen werden?

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

54

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Eingnge der Flip-Flops J2 K2 J1 K1 J0 K0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

55

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 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 Eingnge der Flip-Flops J2 K2 J1 K1 J0 K0

Folgezustnde ermitteln

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

56

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 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 Eingnge der Flip-Flops J2 0 K2 d J1 0 K1 d J0 1 K0 d

Folgezustnde ermitteln bergnge pro Flip-Flop ermitteln

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

57

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 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 Eingnge der Flip-Flops J2 0 0 K2 d d J1 0 1 K1 d d J0 1 d K0 d 1

Folgezustnde ermitteln bergnge pro Flip-Flop ermitteln

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

58

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 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 Eingnge der Flip-Flops J2 0 0 0 K2 d d d J1 0 1 d K1 d d 0 J0 1 d 1 K0 d 1 d

Folgezustnde ermitteln bergnge pro Flip-Flop ermitteln

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

59

6.3 Synchroner Zhler (3)


Zustandsbergnge des Zhlers
Zustnde (gleichzeitig Folgezustand Ausgabe) Q2 Q1 Q0 Q2 Q1 Q0 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 Eingnge der Flip-Flops J2 0 0 0 1 d d d d K2 d d d d 0 0 0 1 J1 0 1 d d 0 1 d d K1 d d 0 1 d d 0 1 J0 1 d 1 d 1 d 1 d K0 d 1 d 1 d 1 d 1

Folgezustnde ermitteln bergnge pro Flip-Flop ermitteln

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

60

6.3 Synchroner Zhler (4)


Schaltnetzentwurf
Eingnge sind Ausgnge Qi der Flip-Flops Ausgnge sind Ansteuerungen Ji und Ki der Flip-Flops

Einsatz der Minimierung fr minimale Schaltungen


Beispiel: Schaltfunktion K2
Q1

Q 1 d 0 d 1

Q1

Q 0
Q2
Q2

Q 0 d 0

d 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

61

6.3 Synchroner Zhler (4)


Schaltnetzentwurf
Eingnge sind Ausgnge Qi der Flip-Flops Ausgnge sind Ansteuerungen Ji und Ki der Flip-Flops

Minimierung nach KV
Beispiel: Schaltfunktion K2
Q1

Q 1 d 0 d 1

Q1

Q 0
Q2
Q2

Q 0 d 0

d 0

DNF der Schaltfunktion: K2 = Q0 Q1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

62

6.3 Synchroner Zhler (5)


Schaltnetzentwurf fr Beispiel: Schaltfunktion J2
wie bei K2

Einsatz der Minimierung fr minimale Schaltungen


Q1

Q 1 0 d 1 d

Q1

Q 0
Q2
Q2

Q 0 0 d

0 d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

63

6.3 Synchroner Zhler (5)


Schaltnetzentwurf fr Beispiel: Schaltfunktion J2
wie bei K2

Minimierung nach KV
Q1

Q 1 0 d 1 d

Q1

Q 0
Q2
Q2

Q 0 0 d

0 d

DNF der Schaltfunktion: J2 = Q0 Q1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

64

6.3 Synchroner Zhler (6)


Schaltfunktionen insgesamt:
J2 = Q0 Q1 , K2 = Q0 Q1

J1 = Q0 ,
J0 = 1 ,

K1 = Q0
K0 = 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

65

6.3 Synchroner Zhler (6)


Schaltfunktionen insgesamt:
J2 = Q0 Q1 , K2 = Q0 Q1

J1 = Q0 ,
J0 = 1 ,

K1 = Q0
K0 = 1

Realisierung der Schaltung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

66

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 Zustnden bergnge zwischen den Zustnden Abhngigkeit der bergnge von Eingabewerten und vorherigen Zustnden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

67

7 Schaltwerkentwurf (2)
Beispiel: dreistelliger Binrzhler
acht Zustnde unbedingte bergnge pro Taktzyklus
keine Abhngigkeit von Eingabewerten

Ausgabe direkte Ausgabe der


Zustandsreprsentation durch Flip-Flop-Ergebnisse

Gesucht: allgemeines Verfahren zur Synthese von Schaltwerken aus


der Beschreibung endlicher Automaten
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

68

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
Wecker klingelt Automat Wochenende Wecker auf 10:00 Uhr stellen wach

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

69

7.1 Beispiel Aufstehen (2)


Version 1: Ausgaben mit Zustnden assoziiert

Zustnde zeigen Aktionen an

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

70

7.1 Beispiel Aufstehen (2)


Version 1: Ausgaben mit Zustnden assoziiert

Zustnde zeigen Aktionen an

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

71

7.1 Beispiel Aufstehen (2)


Version 1: Ausgaben mit Zustnden assoziiert

Zustnde zeigen Aktionen an nicht beachtete Eingabewerte werden nicht eingetragen unbedingte bergnge nicht beschriftet
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

72

7.1 Beispiel Aufstehen (2)


Version 1: Ausgaben mit Zustnden assoziiert

Zustnde zeigen Aktionen an nicht beachtete Eingabewerte werden nicht eingetragen unbedingte bergnge nicht beschriftet
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

73

7.1 Beispiel Aufstehen (3)


Version 2: Ausgaben mit Kanten assoziiert

Zustnde reprsentieren Ereignisse zwischen Aktionen Zustnde mssen mglicherweise umbenannt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

74

7.1 Beispiel Aufstehen (3)


Version 2: Ausgaben mit Kanten assoziiert

Zustnde reprsentieren Ereignisse zwischen Aktionen Zustnde mssen mglicherweise umbenannt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

75

7.1 Beispiel Aufstehen (3)


Version 2: Ausgaben mit Kanten assoziiert

Zustnde reprsentieren Ereignisse zwischen Aktionen Zustnde mssen mglicherweise umbenannt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

76

7.2 Moore-Automat
Aufbau eines Moore-Automaten (E. Moore, Bell Labs)
getaktetes System
Moore-FSM

X Z
t+1

Z t+1

Zt

:= f ( X t , Z t ) := g ( Z
t

g
function with glitches

Yt

Eingabewerte X und bisheriger Zustand Z fhren zu


Zustandsvernderungen Z (t+1) (Zustandsbergnge) an der nchsten Taktflanke

Ausgabewerte Y hngen nur vom augenblicklichen Zustand ab

Ausgabe mit Zustand assoziiert


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

77

7.3 Mealy-Automat
Aufbau eines Mealy-Automaten (G. Mealy, IBM)
getaktetes System
Mealy-FSM

X
t+1 t t t

t+1

:= f ( X , Z ) := g ( X , Z )
t t

g
asynchronous path

Yt

Eingabewerte X und bisheriger Zustand Z fhren zu


Zustandsvernderungen (Zustandsbergnge)

Ausgabewerte Y hngen von Eingabewerten und augenblicklichem


Zustand ab

Ausgabe mit Zustandsbergngen (Transitionen) assoziiert


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

78

7.3 Mealy-Automat
Aufbau eines simple-Moore Automaten (Medwejew Automat)
getaktetes System
simple Moore-FSM
Z
t+1

:= f ( X , Z ) Z
t

Ht

Xs

Z Z t+1

= H t_Y

f Xi
t

Yt X
t

= Xs _ Xi

Eingabewerte X und bisheriger Zustand Z fhren zu


Zustandsvernderungen (Zustandsbergnge)

Ausgabewerte Y sind direkt als Zustand codiert, bentigen manchmal


zustzliche bits H zur eindeutigen Unterscheidung der Zustnde

Ausgabe direkt mit State bits Z codiert


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

79

7.4 Vorgehensweise
Einzelschritte
1. Zustandsdiagramm bzw. Zustandstabelle 2. binre Zustandscodierung, binre 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

80

7.5 Moore-Automat frs Aufstehen


Schritt 1a: Zustandsdiagramm

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

81

7.5 Moore-Automat frs Aufstehen (2)


Schritt 1b: Zustandstabelle
Zustnde schlaf6 schlaf6 wach6 wach6 weckerst schlaf10 schlaf10 wach10 auf Eingnge WochenWecker ende d 0 d 1 1 d 0 d d d d 0 d 1 d d d d Folgezustnde schlaf6 wach6 weckerst auf schlaf10 schlaf10 wach10 auf auf

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

82

7.5 Moore-Automat frs Aufstehen (3)


Schritt 2: binre Zustandscodierung, binre Zustandstabelle
Zustnde Q2 Q1 schlaf6 0 0 schlaf6 0 0 wach6 0 0 wach6 0 0 weckerst 0 1 schlaf10 0 1 schlaf10 0 1 wach10 1 0 auf 1 0 1 1 1 1 Q0 0 0 1 1 0 1 1 0 1 0 1 Eingnge WO WE d 0 d 1 1 d 0 d d d d 0 d 1 d d d d d d d d Folgezustnde Q2 Q1 Q0 schlaf6 0 0 0 wach6 0 0 1 weckerst 0 1 0 auf 1 0 1 schlaf10 0 1 1 schlaf10 0 1 1 wach10 1 0 0 auf 1 0 1 auf 1 0 1 d d d d d d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

83

7.5 Moore-Automat frs Aufstehen (4)


Schritt 3: JK-Flip-Flops und deren Ansteuerung
Zustnde Eingnge Folgezustnde 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

84

7.5 Moore-Automat frs Aufstehen (4)


Schritt 3: JK-Flip-Flops und deren Ansteuerung Zustandsbergangstabelle JK-Flip-Flop (Folie D.54)
bergang Q Q 00 01 10 11 J 0 1 d d K d d 1 0 K Eingang irrelevant K Eingang irrelevant J Eingang irrelevant J Eingang irrelevant

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

85

7.5 Moore-Automat frs Aufstehen (4)


Schritt 3: JK-Flip-Flops und deren Ansteuerung
Zustnde Eingnge Folgezustnde Q2 Q1 Q0 WO WE Q2 Q1 Q0 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 Flip-Flop-Ansteuerung J2 K2 J1 K1 J0 K0 0 d 0 d 0 d 0 d 0 d 1 d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

86

7.5 Moore-Automat frs Aufstehen (4)


Schritt 3: JK-Flip-Flops und deren Ansteuerung
Zustnde Eingnge Folgezustnde Q2 Q1 Q0 WO WE Q2 Q1 Q0 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 Flip-Flop-Ansteuerung J2 K2 J1 K1 J0 K0 0 d 0 d 0 d 0 d 0 d 1 d 0 d 1 d d 1 1 d 0 d d 0 0 d d 0 1 d 0 d d 0 d 0 1 d d 1 d 1 d 0 0 d 1 d d 0 0 d d 0 d d d d d d d d d d d d

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

87

7.5 Moore-Automat frs Aufstehen (5)


Schritt 4: Eintragen der Ausgabefunktionen in Abhngigkeit vom
Zustand
Zustnde Q 2 Q1 schlaf6 0 0 wach6 0 0 weckerst 0 1 schlaf10 0 1 wach10 1 0 auf 1 0 1 1 1 1 Ausgabe WA=wach WS=Wecker st. 0 0 1 0 1 1 0 0 1 0 1 0 d d d d

Q0 0 1 0 1 0 1 0 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

88

7.5 Moore-Automat frs Aufstehen (5)


Schritt 5: Minimieren
J2 Q 1 Q 0 W O Q 1 Q o W E J1 Q 2 Q 0 W O J0 Q 2 Q 1 W E W A Q 2 Q1 Q 0 Q1 Q 0 W S Q1 Q 0
K2 0 K1 Q1 Q 0 W E K 0 Q 2 Q1 W O Q1 W E

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

89

7.5 Moore-Automat frs Aufstehen (6)


Schritt 6: Aufbau der Schaltung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

90

7.6 Moore-Automat fr 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)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

91

7.6 Moore-Automat fr Sequenzerkenner (2)


Schritt 1b: Zustandstabelle
Zustnde Eingang A A B B C C D D 0 1 0 1 0 1 0 1 Folgezustnde B A B C D A B C

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

92

7.6 Moore-Automat fr Sequenzerkenner (3)


Schritt 2: binre Zustandscodierung, binre Zustandstabelle
Zustnde FolgeEingang zustnde Q1 Q0 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

93

7.6 Moore-Automat fr Sequenzerkenner (4)


Schritt 3: JK-Flip-Flops und deren Ansteuerung
Zustnde FolgeEingang J K1 J0 K0 zustnde 1 Q1, Q0 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

94

7.6 Moore-Automat fr Sequenzerkenner (5)


Schritt 4: Ausgabefunktion in Abhngigkeit vom Zustand
Zustnde Ausgabe Q1, Q0 Y 00 0 01 0 10 0 11 1

Schritt 5: Minimieren
Y = Q1 Q0 trivial

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

95

7.6 Moore-Automat fr Sequenzerkenner (6)


Flip-Flop #1

J1
E

Q1

Q 1 d d d d

Q1

Q 0
E

Q 0 0 1
Q1

0 0
Q1

K1
E

Q 1 0 1 1 0

Q 0
E

Q 0 d d

d d

J1 = Q0 E

K1 Q0 E Q0 E

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

96

7.6 Moore-Automat fr Sequenzerkenner (7)


Flip-Flop #0

J0
E

Q1

Q 1 1 0 d d

Q1

Q 0
E

Q 0 d d
Q1

1 0
Q1

K0
E

Q 1 d d 0 1

Q 0
E

Q 0 0 1

d d

J0 E

K0 = E

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

97

7.6 Moore-Automat fr Sequenzerkenner (8)


Schritt 6: Aufbau der Schaltung
J0 E

K0 = E
K1 Q0 E Q0 E

J1 = Q0 E

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

98

7.7 Mealy-Automat fr 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)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

99

7.7 Mealy-Automat fr Sequenzerkenner (2)


Schritt 1b: Zustandstabelle
Zustnde Eingang A A B B C C D D 0 1 0 1 0 1 0 1 Folgezustnde B A B C D A B C

identisch zu Moore-Automat (!)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

100

7.7 Mealy-Automat fr Sequenzerkenner (3)


Schritt 2: binre Zustandscodierung, binre Zustandstabelle
identisch zu Moore-Automat (!)

Schritt 3: JK-Flip-Flops und deren Ansteuerung


Zustnde FolgeEingang J K1 J0 K0 zustnde 1 Q1, Q0 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

identisch zu Moore-Automat (!)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

101

7.7 Mealy-Automat fr Sequenzerkenner (4)


Schritt 4: Ausgabefunktionen
in Abhngigkeit von Zustand und Eingabe
Zustnde FolgeEingang J K1 J0 K0 Ausgabe zustnde 1 Q1, Q0 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

102

7.7 Mealy-Automat fr Sequenzerkenner (5)


Schritt 5: Minimieren

Y Q1 Q 0 E

Flip-Flop-Ansteuerfunktionen identisch zu Moore-Automat

Schritt 6: Aufbau der Schaltung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

103

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 abhngen

taktsynchrone Ausgabe

Nachteile Moore-Automat
Reaktion erst im nchsten Taktzyklus

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

104

7.8 Vergleich Moore- und Mealy-Automaten (2)


Vorteile Mealy-Automat
geringerer Schaltungsaufwand, wenn bergnge zu einem Zustand
verschiedene Ausgabewerte erzeugen sollen

Beispiel: modifiziertes JK-Flip-Flop

Ausgabe zeigt an, dass sich Flip-Flop-Zustand gendert hat.

Nachteile Mealy-Automat
asynchrone Eingabesignale bewirken asynchrone Ausgabesignale

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

105

7.9 Reduktion von Zustnden


Weniger Flip-Flops durch Reduktion der Zustnde Zustandsdiagramm Moore-Automat
Zusammenfassung von Zustnden mit gleicher Ausgabe und gleichen
Folgezustnden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

106

7.9 Reduktion von Zustnden


Weniger Flip-Flops durch Reduktion der Zustnde Zustandsdiagramm Moore-Automat
Zusammenfassung von Zustnden mit gleicher Ausgabe und gleichen
Folgezustnden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

107

7.9 Reduktion von Zustnden (2)


Zustandsdiagramm Mealy-Automat
Zusammenfassung von Zustnden mit gleichen Folgezustnden und
gleichen Ausgaben bei den bergngen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

108

7.9 Reduktion von Zustnden (2)


Zustandsdiagramm Mealy-Automat
Zusammenfassung von Zustnden mit gleichen Folgezustnden und
gleichen Ausgaben bei den bergngen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

109

7.10 Zusammenfassung
Schaltwerke
asynchrone und synchrone Schaltwerke Flip-Flops (RS, D, JK)

Schaltwerkentwurf
Moore-Automat Mealy-Automat

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

110

E Technologische Grundlagen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Problemorientierte Sprache Assemblersprache Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur Digitale Logik Physik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung (2)
Bisher
Schaltungen auf logischer Ebene Implementierung vernachlssigt

Nun
Einblick in die technische Realisierung elektronischer Schaltungen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Halbleiterdiode
Grundlage: elektrische Schaltungen

Strom
fliet bei geschlossenem Stromkreis konzeptionell: Strom fliet von Plus nach Minus physikalisch: Elektronen flieen von Minus nach Plus

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Halbleiterdiode (2)
Diode
spezielles Bauteil mit zwei Anschlssen

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

Anode Kathode

Aufbau frher
Rhrendiode: Glaskolben mit Vakuum

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Halbleiterdiode (3)
Aufbau heute
Halbleiterdiode

Leiter
freie Elektronen knnen flieen

Isolator
keine freien Elektronen

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Halbleiter
Elektronenanordnung bei Halbleiterkristallen

je vier Elektronen auf uerster Schale stabiler Zustand durch Verzahnung der Schalen benachbarter Atome gelegentliche Verunreinigungen: ein Elektron zuviel oder zuwenig auf der ueren Bahn geringer Stromfluss mglich (Halbleiter)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Halbleiter (2)


Dotieren der Halbleiter mit anderen Materialien
gezieltes Verunreinigen Beispiel: Antimon (Sb)

ein Elektron mehr auf der ueren Schale Elektronenberschuss N-Leitfhigkeit des Kristalls (negativ)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Halbleiter (3)


Beispiel: Indium (In)

ein Elektron weniger auf der ueren Schale Elektronenmangel (dargestellt durch Loch auf der ueren Schale) P-Leitfhigkeit des Kristalls (positiv)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.2 Aufbau der Halbleiterdiode


Aufbau mit N- und P-Bereich
P N

Grenzbereich (PN-bergang)
freie Elektronen fllen Lcher

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Elektronenberschuss

P N

Elektronenmangel neutrale Schicht (keine Leitung)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

2.2 Aufbau der Halbleiterdiode (2)


Durchlassrichtung

P N

Elektronen der Spannungsquelle drcken in den N-Bereich Spannungsquelle zieht Elektronen aus dem P-Bereich ab PN-bergang wird dnner Strom kann flieen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

2.2 Aufbau der Halbleiterdiode (3)


Sperrrichtung

P N

Elektronen der Spannungsquelle drcken in den P-Bereich und fllen


Lcher auf

Spannungsquelle zieht Elektronen aus dem N-Bereich ab PN-bergang wird grer Strom kann nicht flieen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

2.3 Digitale Diodenschaltungen


Abbildung der Wahrheitswerte (positive Logik)
1: Stromfluss/positive Spannung 0: kein Stromfluss/keine Spannung

Aufbau einfacher Gatter


A B Y VCC

Y=A+B

Y=AB
A B Y

Gnd

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

3 Transistor
Halbleiterbauteil mit drei Anschlssen (bipolare Transistoren)
Collector Basis Emitter
zwischen Basis und Emitter sowie
zwischen Basis und Collector wirkt Transistor wie eine Diode

zwischen Emitter und Collector fliet zunchst kein Strom durch geringen Strom an der Basis wird Transistor zwischen Collector und
Emitter leitend

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

3 Transistor (2)
Transistor als Schalter und Verstrker
VCC

Eingang Gnd
kleiner Schaltstrom an der Basis groer Ausgangsstrom zwischen Collector und Emitter Verstrkung zwischen Basis- und Collector-Kreis

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

3 Transistor (3)
Interner Aufbau
C N B P N E
drei Schichten: NPN

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

3 Transistor (3)
Interner Aufbau
C N B P N E
drei Schichten: NPN Ruhezustand: PN-bergnge

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

3 Transistor (3)
Interner Aufbau
C N B P N E
drei Schichten: NPN Ruhezustand: PN-bergnge geringer Basisstrom Verringerung des PN-bergangs zwischen Emitter und Basis Verringerung des PN-bergangs zwischen Basis und Collector
Elektronenfluss +

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

18

3 Transistor (4)
NPN- und PNP-Transistoren
Collector Basis Emitter Basis Emitter Collector

NPN
prinzipiell gleiche Funktionsweise verschiedene Polung

PNP

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

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, Transistoranschlsse werden mit Fotolack geschtzt. Wegtzen der nicht vom Lack geschtzten 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

3.2 Digitale Transistorschaltungen


Einfacher Inverter
VCC
RC RB UEin

Eingang Gnd

Ausgang

Gnd- Potential ( = 0) am Eingang Transistor sperrt am Ausgang liegt fast vollstndige Versorgungsspannung (1) Versorgungsspannung VCC ( = 1) am Eingang Transistor schaltet durch am Ausgang liegt nur geringe Spannung an (0)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

3.2 Digitale Transistorschaltungen (2)


Multi-Emitter-Transistoren
je eine Basis- und Collector-Zone mehrere Emitterzonen

C B N N P N

E1 E 2 E 3

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

22

3.2 Digitale Transistorschaltungen (2)


Multi-Emitter-Transistoren
je eine Basis- und Collector-Zone mehrere Emitterzonen

C B N N P N

AND-Gatter mit Multi-Emitter-Transistor


Transistor schaltet durch einer von A, B, C auf Masse (0)
X hat nur geringe Spannung

E1 E 2 E 3
VCC

alle A, B, C auf VCC


X hat hohe Spannung (VCC)

X A BC Gnd

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

23

3.3 TTL
Transistor-Transistor-Logic (TTL)
Gatteraufbau nur mit bipolaren Transistoren

Prinzip TTL-NAND

Pegelbereiche
V Eingang Ausgang 5 2,8 2,4 0,8 0,4 verbotener Pegelbereich

realer Aufbau

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

3.3 TTL (2)


TTL-Schaltkreise
meist als Dual-in-Line-Gehuse

Beispiel: Baustein 7400


VCC 14 13 12 11 10 9 8

vier NAND-Gatter mit je zwei Eingngen

7 Gnd

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

3.3 TTL (3)


Beispiel: Baustein 74LS74
VCC 14 13 12 11 10 9
PRE

zwei positiv-flankengetriggerte D-Flip-Flops


Q

D C

CLR

D C

CLR = Clear: asynchr. Rcksetzen PRE = Preset: asynchr. Setzen

PRE Q

CLR Q

7 Gnd

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

3.3 TTL (4)


TTL-Familien
Bezeichnung Spannung Leistung pro 10mW Gatter Schaltzeit 10ns max. 40MHz Frequenz TTL 74xx LS-TTL ALS-TTL 74LSxx 74ALSxx 5V 2mW 9ns 50MHz 1mW 4ns F-TTL 74Fxx 4mW 2,5ns AS-TTL 74ASxx 22mW 1,5ns

100MHz 125MHz 230MHz

elektr. Werte fr H und L, Ein- und Ausgangswiderstnde genau festgelegt Schaltkreise ohne Zusatzschaltungen direkt miteinander verbindbar

Problem
Erhhung der Schaltgeschwindigkeit fhrt zu hherer Leistungsaufnahme. spezielle Low-power Transistoren und Schaltungen im Einsatz

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

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)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

4 MOS-Feldeffekttransistor (2)
Elektrisches Feld steuert Leitfhigkeit im Halbleiterkristall
Schaltbild
Aufbau (schematisiert)

(selbstsperrender) n-Kanal MOS-FET Drain Substrat Source B Gate


Substrat (Bulk) blicherweise mit Source verbunden

S N

G
Kanal

D N Siliziumoxid (Isolator) Substrat

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

lediglich Umschalten erfordert Wechsel der Ladungszustnde (Leistung!) Leistungsaufnahme von Umschaltfrequenz und Kapazitt (~ Feature-size)
abhngig

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

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

+U
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

++++

C
30

Einfhrung in die Technische Informatik

4 MOS-Feldeffekttransistor (4)
Ausgangskennlinienfeld des N-MOS Linearer Bereich
Ohmscher Bereich
Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Sttigung
Abschnrbereich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

4 MOS-Feldeffekttransistor (5)
Typen
n-Kanal MOS FET selbstsperrend (positive Gate-SourceSpannung schaltet durch)

selbstleitend (negative Gate-SourceSpannung sperrt)

selbstsperrend

selbstleitend

p-Kanal MOS FET selbstsperrend (negative Gate-SourceSpannung schaltet durch)

selbstleitend (positive Gate-SourceSpannung sperrt)

selbstsperrend

selbstleitend

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

4.1 Entwicklung der Technologie


2000/2001 SIA Roadmap Summary
Year Feature Size Internal Clock (high performance) Logic transistors Microprocessor DRAM size SRAM size Voltage Unit microns/nm MHz/GHz million/cm2 million transistors/chip Mbit/Gbit Mbit/Gbit Vdd 1993 1995 1999 2001 2003 2005 2008 2011 2014 2016 0.50 200 2 5.2 16 1 5 0.35 300 4 12 64 4 3.3 180 750 6.6 23.8 256 16 2.5 130 1.68 13 47.6 512 64 1.2 100 2.31 24 95.2 1 256 1.0 0.9 0.7 0.6 0.5 0.4 80 5.17 44 190 2 70 6.74 109 539 6 50 11.5 269 34 19.3 664 22 28.7

1523 4308 16 48

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

4.2 CMOS-Schaltung
CMOS (Complementary Metal Oxide Semiconductor)
komplementr (symmetrischer) MOS-Halbleiter Einsatz selbstsperrender n- und p-Kanal MOS-FETs

Beispiel: Inverter
VDD VDD

einer der Transistoren ist immer gesperrt


y

a=1
a

y=0
y

a=0
a

y=1
N

niedrige Leistungsaufnahme Stromverbrauch nur bei Umschalten

GND

GND

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

34

4.3 CMOS-Inverter Layout


Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

4.6 Prinzip n-stellige Funktion in CMOS


zwei Teilnetze
P-Netz: durchgeschaltet, wenn y = 1 sein soll
x1 VDD P-Netz Teilnetz durchgeschaltet genau dann, wenn y =1 xn Teilnetz durchgeschaltet genau dann, wenn y =0 N-Netz GND y

N-Netz: durchgeschaltet, wenn y = 0 sein soll

Dies geht jedoch nicht fr


beliebige Boolesche Funtionen

Nur fr solche Konjunktionen oder Disjunktionen, bei denen alle Variablen negiert vorkommen

Fr andere Boolesche Funktionen: Zusammensetzen aus einfacheren


Funktionen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

38

4.7 Modellierung
Bisher: Transistor als idealer Schalter verfeinertes Ersatz-Schaltbild: realittsnheres Modell mit
Widerstnden und Kapazitten

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: Lastkapazitt der am Ausgang angeschlossenen Schaltungen und Leitungen

VDD Rp

Rn GND

CLast

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

4.8 Modellierung (2)


Da sich bei Reihenschaltungen von MOS-Transistoren die
Widerstnde addieren, sind zuviele in Reihe geschaltete Eingnge zu vermeiden

Aus physikalischen Grnden sind die Widerstnde (im Leitungsfall) der


PMOS-Transistoren grer als die der NMOS-Transistoren. Reihenschaltungen im N-Netz bevorzugt gegenber P-Netz NAND-Schaltungen gnstiger als NOR-Schaltungen fr PMOS-Transistoren sind Parallelschaltungen gnstiger

Um bei groem CLast noch gengende Schaltgeschwindigkeit zu


erreichen, mssen u.U. zustzliche Treiberstufen (z.B. Inverter) an den Ausgngen eingesetzt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

4.9 CMOS-Pegel
Versorgungsspannung
kann in weiten Grenzen schwanken TTL-kompatible Pegel mglich Beispiel
V Eingang Ausgang 5 3 2 0,01 V 4,99 V verbotener Pegelbereich

Schaltungen empfindlich gegen berspannungen (Entladungen)


Schutzschaltungen an den Eingngen integrierter Bausteine

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

41

4.6 Pegelbersicht

CMOSTTL mglich, TTLCMOS nicht Strabstand


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

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

Einfhrung in die Technische Informatik

42

4.10 Zusammenfassung CMOS


Vorteile:
Im statischen Zustand keine Stromfluss
fast keine Verlustleistung

Stromaufnahme im Wesentlichen durch Umladevorgnge bei


Eingabewechseln bedingt (Kapazitten!) Stromaufnahme wchst mit Frequenz der Eingangssignale bzw. mit der Taktfrequenz

Geringerer Platzbedarf pro Transistor


kompaktere Bauweise, mehr Funktionen pro Chip

Nachteile:
Schutzschaltungen an Eingngen notwendig

langsamer (Kapazitten!) als Bipolar-Schaltungen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

43

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

44

5.1 SRAM-Speicher
RAM: Random Access Memory Statisches RAM (SRAM) Nutzung von FlipFlop/Latches
Min. 12 Transistoren Konservatives Design Grosse Flche (viele Ts)

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

45

5.1 SRAM-Speicher (2)


Nutzung von zwei
rckgekoppelten Invertern
Zelle mit 6 Transistoren

Dimensionierung der Transistoren

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

46

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, 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
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

47

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 5. Restauriere Bit-Wert Refresh: dummy Read in jeder Zelle alle 10-20 msec
Bitleitung Wortleitung Tortransistor

Kondensator GND

Ladungsnderung (sehr empfindlich, ca. 0.2V)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

48

5.2 DRAM-Speicher (2)

Quelle: Digitale Schaltungstechnik, Prof. Fischer, Uni Mannheim

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

49

5.2 DRAM-Speicher (3)

Quelle: wikipedia.org

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

50

5.2 DRAM-Speicher (4)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

52

5.3 DRAM-Typen
Standard-Zugriff

minimale Zugriffszeit: Zykluszeit:

tRCD + tCAS tRC = tRCD + tCAS + tRP

30-70 ns 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

53

5.3 DRAM-Typen (2)


Extended Data Out (EDO): Adressen- und Datenzugriff berlappen

CAS-Zykluszeit = typischer Burst-Zugriff (4 Worte):

tCAS

20 ns

5-2-2-2 bei max. 66 MHz

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

54

5.3 DRAM-Typen (3)


Synchrones DRAM (SDRAM): Adressen- und Datenzugriff berlappen

taktsynchroner Zugriff interne Intelligenz (Befehlsregister,...) intern mindestens zwei Speicherbnke 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

55

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

56

5.3 DRAM-Typen: Zusammenfassung


Fast Page Mode:
Fr ein RAS werden mit schnell aufeinanderfolgenden CAS-Signalen
verschiedene schon im Register befindliche Column-Informationen gelesen

EDO (Extended Data Out) RAM


lassen am Ausgang lnger als CAS-Signal anliegt Daten gltig
berlappende Zugriffe mglich (schneller!)

SDRAM: Synchronous DRAM


Clock (66, 100, ... 166 MHz) relevant fr Timing, nicht mehr RAS/CAS eigene Intelligenz des Chips, Daten synchron zum Takt intern mindestens zwei Speicherbnke 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)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

57

5.4 DRAM Timing


asynchron
synchron

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

58

5.4 DRAM Timing (2)


DDR-RAM synchron

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

59

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 Modulgren von 128 MB bis 4 GB Vier Varianten: 200, 214, 240, 244 Pins Hhere Geschwindigkeiten (400 800 MHz) Hhere 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)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

60

5.6 DDR2 (Zukunft: DDR3)


DDR2-Varianten und Klassifizierung ChipModulFrontside SpeicherBandbreite Klassifizierung Klassifizierung Bus geschwindigkeit pro Modul DDR2-400 DDR2-533 DDR2-667 DDR2-800 PC2-3200 PC2-4300 PC2-5300 PC2-6400 200 MHz 266 MHz 333 MHz 400 MHz 400 MHz 533 MHz 667 MHz 800 MHz 3,2 GB/s 4,3 GB/s 5,3 GB/s 6,4 GB/s Bandbreite DualChannel 6,4 GB/s 8,6 GB/s 10,6 GB/s 12,8 GB/s

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

61

5.7 Speichermodule: DIMM


64 bit Dateninterface
n DRAM Chips pro DIMM, n = 64 bit / (Bitbreite Chip)

Registered DIMM
Reduzierung der Buslast Erhhung der Latenz PLL fr Taktregenerierung

ECC
8 bit fr fehlerkorrigierenden Code Statt 64 bit jetzt 72 bit n+1 DRAM Chips pro DIMM, n = 64 bit / (Bitbreite Chip)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

62

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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

63

5.9 Speichermodule: FB-DIMM


Fully-Buffered DIMM Serielle Datenbertragung Daisy Chain

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

64

5.10 Fazit: Vergleich DRAM-SRAM


DRAM:
sehr hohe Packungsdichte Niedrige Kosten Refresh ntig (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 Anschlsse (RAS, CAS, Output Enable, Write Enable)

SRAM:

niedrige Packungsdichte hohe Kosten (min. 4, i.a. 6 Transistoren/Zelle) schneller Zugriff (> 10 fach) i.a. hherer Stromverbrauch genutzt fr Cache-Speicher

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

65

F Programmierbare Logikbausteine

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Problemorientierte Sprache Assemblersprache Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur Digitale Logik Physik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik
Ausgabeleitungen elektronischer Digitalschaltungen
0: geringe Spannung, geringer Stromfluss 1: hohe Spannung, hoher Stromfluss

Ausgang soll sich gelegentlich elektrisch neutral verhalten


Beispiel: Bussystem verbindet Schaltwerke innerhalb eines Rechners

Schaltwerk

Schaltwerk
Bus

Schaltwerk
Busleitungen sollen zur Eingabe und zur Ausgabe benutzt werden
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (2)


Situation

... Schaltwerk A ...

... Schaltwerk B ...

Bus Problem: zwei Ausgnge auf der selben Leitung


elektrisch: Kurzschluss je nach Ausgabewert
bzw. Spannungen im verbotenen Bereich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (3)


Lsung: Tri-State-Puffer

A E

A 0 0 1 1

E 0 1 0 1

Y X 0 X 1

X = Ausgabe elektrisch neutral (floating, hochohmig) E = enable

Tri-State-Puffer auch mit invertiertem E-Eingang gebruchlich


A 0 0 1 1 E 0 1 0 1 Y 0 X 1 X

A E

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (4)


Zugang zum Bus nur ber Tri-State-Puffer

... Schaltwerk A ... Bus ...

... Schaltwerk B

Schaltwerke knnen ausgewhlte Ausgnge jeweils auf Bus schalten bestimmter Datenaustausch kann gezielt ausgewhlt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Einschub: Tri-State-Ausgabelogik (5)


Zugang zum Bus nur ber Tri-State-Puffer

... Schaltwerk A ... Bus ...

... Schaltwerk B

Schaltwerke knnen ausgewhlte Ausgnge jeweils auf Bus schalten bestimmter Datenaustausch kann gezielt ausgewhlt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 SPLD
Simple Programmable Logic Devices (SPLD)
einfache programmierbare Logikbausteine

3.1 ROM/PROM
Read Only Memory (ROM)
Festwertspeicher Werte bei Herstellung festgelegt

Programmable Read Only Memory (PROM)


Festwertspeicher einmalig durch Anwender programmierbar

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3.1 ROM/PROM (2)


Funktionsweise
Adressleitungen selektieren Speicherzelle Inhalt an Ausgabeleitung abgreifbar

Beispiel: 8 x 4 Bit ROM


Koppelelement a0 a1 a2 mit Dioden AdressDekoder 1 mit Transistoren 0

d3 d2 d1 d0

Vcc

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3.1 ROM/PROM (3)


Beispiel: 8 x 4 Bit PROM
Einsatz von Sicherungen Programmiervorgang zerstrt u.U. Sicherungen
Koppelelemente fr PROM mit Dioden Sicherung (Fuse) 1 mit Transistoren 0

Vcc

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

3.1 EPROM/EEPROM/Flash
Erasable Programmable Read Only Memory (EPROM)
Festwertspeicher elektrisch programmierbar (durch berspannungen, ca. 25V) durch UV-Bestrahlung lschbar

Electrically Erasable Programmable Read Only Memory (EEPROM,


E2PROM)
Festwertspeicher elektrisch programmierbar elektrisch lschbar

Flash-Speicher
Festwertspeicher hnlich EEPROM aber geringere Gre nur blockweise lschbar
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

3.2 PROM als Schaltnetz


Schematische Darstellung eines
PROM
Adressdekoder als feste UNDMatrix (Minterme ber Adressleitungen)

Koppelelemente als
programmierbare ODER-Matrix

Auch PLE genannt

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

3.2 PROM als Schaltnetz (2)


PROM kann Schaltfunktionen implementieren
Wahrheitstabelle in Hardware abgebildet PROM mit 2m Worten n Bit kann
n Schaltfunktionen mit je m Eingngen realisieren

keine Minimierung pro Wertekombination der Eingnge wird ein Ergebnis direkt
programmiert

Beispiel: 2x2-Multiplizierer

Wahrheitstabelle siehe Folie C-68 Werte in PROM brennen

0x0=0 0x1=0 0x2=0 0x3=0 1x0=0 1x1=1 1x2=2 1x3=3 2x0=0 2x1=2 2x2=4 2x3=6 3x0=0 3x1=3 3x2=6 3x3=9

a1 = x1 a0 = x2 b1 = x3 b0 = x4 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

y3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

y2 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0

y1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0

y0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

3.3 PAL
Programmable Array Logic
(PAL)
frei programmierbare UNDMatrix

feste ODER-Matrix Anzahl der UND-Gatter pro


ODER-Gatter fixiert

kann jede minimierte


Schaltfunktion realisieren

Voraussetzung: Anzahl
der Produktterme pro Schaltfunktion klein genug

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

3.3 PAL (2)


Begriff PAL
eingetragenes Warenzeichen der Fa. AMD bzw. Lattice

Technik
ursprnglich in TTL- spter auch CMOS-Technik ursprnglich einmalig programmierbar heute zum Teil auch lschbare Varianten

Varianten

normaler oder invertierter Ausgang Flip-Flops an den Ausgngen getaktet oder ungetaktete Flip-Flops Rckkopplung der Ausgnge als interne Eingnge Tri-State-Ausgnge

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

Schaltfunktion

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

programmierbarer Inverter

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

18

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

D-Flip-Flop Takt durch Produktterm


AR PL PD Q D AP

+ XOR (n)

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

Ausgangsmultiplexer mit oder ohne Flip-Flop


AR PL PD Q D AP

+ XOR (n)

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

Tri-State-Ausgang

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

Rckkopplung des Ausgangs

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

22

3.4 GAL
Generic Array Logic (GAL)
Markenzeichen der Fa. Lattice Funktionsweise wie PAL jedoch flexible Ausgabelogik Beispiel: Output Logic Macro Cell (OLMC)
PL OE

paralleles Laden der Flip-Flops

+ XOR (n)

AR PL PD Q D AP

0 1

Y(n)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

23

3.4 GAL (2)


Begriff GAL
Markenzeichen der Fa. Lattice

Technik
ausschlielich CMOS wiederprogrammierbar durch E2CMOS-Technologie (hnlich EEPROM)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

3.5 PLA
Programmable Logic Array (PLA)
frei programmierbare
UND-Matrix

frei programmierbare
ODER-Matrix

kann beliebige Schaltfunktionen


realisieren

Voraussetzung: Anzahl der


Produktterme ausreichend

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

4 CPLD
Complex Programmable Logic Device (CLPD)
Alternativbezeichnungen
(Markennamen): EPLD, EEPLD, PEEL, MAX, SuperPAL, MegaPAL ...
+ XOR (n) PL OE

AR PL PD Q D AP

0 1

Y(n)

Aufbau
Zusammenfassung der Funktionalitt bis zu etwa 100 GAL-Bausteine Makrozellen fr Berechnung der Schaltfunktionen Makrozellen fr Ausgabelogik (I/O-Blocks) Verschaltung der internen GALs mit einer programmierbaren
Zuordnungsmatrix (vollstndige oder unvollstndige Verschaltung)

Borgen zustzlicher UND-Glieder fr Produktterme


aus anderen Makrozellen mglich

Programmierung wie EPROM, EEPROM oder Flash-ROM


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

4 CPLD (2)
Blockschaltbild

Logikblock Schaltmatrix Logikblock Logikblock

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

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 fr Schaltfunktionen und Flip-Flops groe oder kleine Logikzellen programmierbare Kommunikationsinfrastruktur zwischen den Zellen (unvollstndig) Programmierung wie EPROM, EEPROM oder Flash-ROM Programmierung mit flchtigem Speicher (RAM) Hochfahren des FPGA durch externen Speicher (z.B. PROM) Umprogrammierung im laufenden Betrieb mglich Programmiersprachen: Verilog, VHDL, herstellerspez. Sprachen, Hardware C Selbstkonfigurierende Systeme (Supercomputing)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

5 FPGA (2)
Blockschaltbild

programmierbare Logikzellen programmierbares Verbindungsnetzwerk

programmierbare Ein-/Ausgabelogik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

5 Fazit
SPLD
Einmal/mehrmals
programmierbar

FPGA
Programmierung ber LUTs Nicht det. Laufzeit der
Verschaltung

Abbildung der DNF

EDA: Place, Route und Post


Layout Simulation

CPLD
Arrays von SPLDs Programmierbare
Verschaltung

Timing closure

(Meistens) flchtig

Deterministische Laufzeit
EDA: Place und Route

Aussen vor: ASICs

(Meistens) nichtflchtig
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

Zahlendarstellung & Kodierung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einfhrung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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: grn {rot, grn, blau}, Do {Mo, Di, Mi, Do Fr} Ein Alphabet ist ein Zeichenvorrat, auf dem eine lineare Ordnung (Reihenfolge) fr die Zeichen definiert ist
Beispiele: {0,1}, 0<1; {A,B,C,D,.,Z}, A<B<C<.<Z;

Dann heit eine endliche Folge w=a1an von Zeichen eines Alphabets Wort oder Zeichenkette (engl. string) ber IwI = n bezeichnet die Lnge der Zeichenkette
Das leere Wort ( oder ) hat die Lnge 0

Auerdem bezeichnet
* die Menge aller Zeichenketten ber + die Menge aller nichtleeren Zeichenketten ber n die Menge aller Zeichenketten der Lnge n ber Beipiel: ={0,1}, *= {0,1}* = {, 0,1,00,01,10,11,000,001, .}
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1.1 Bitfolgen
Fr = {0,1} heien die Elemente der Menge n n-Bit-Wrter oder Binrwrter der Lnge n Informationen i.a. nicht bitweise, sondern in greren Einheiten (i.a. Bitfolgen, bei fester Lnge auch Bitvektoren ) zusammengefasst Besondere Bitfolgen bestimmter Lnge
Lnge n in Bit 1 3 4 8 Bit (b) Triade Tetrade, Halb-Byte, Nibble Byte Bezeichnung Anzahl versch. Wrter 2 23 = 8 24 = 16 28 = 256 Oktalziffern Hexadezimal/Dezimalziffern Zeichen / Buchstaben Anwendung

Byte: Kleinste adressierbare Einheit im Arbeitsspeicher heutiger Rechner 7 6 5 4 3 2 1 0


Linkes Halbbyte Rechtes Halbbyte Low Nibble High Nibble Numerierung der Bits im Byte (umgekehrte Reihenfolge ebenfalls anzutreffen)

Bytes im Speicher fortlaufend numeriert


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1.2 Maschinenwrter
Hardware eines Rechers verwaltet i.a. nur Binrwrter fester Lngen (Maschinenwrter) Lngen durch verschiedene Faktoren bestimmt:
Lnge der kleinsten im Speicher adressierbaren Einheit Lnge der vom/zum Speicher bertragenen Einheiten Lnge der Verarbeitungseinheiten des Prozessors (fr elementare Datentypen) Breite der Datenpfade und Ein-/Ausgabe-Schnittstellen

bliche Maschinenwortlngen sind (heute) Vielfache von Bytes


typisch: 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1.2 Maschinenwrter
Bitpositionen (typisch)
Wortbreite
MSB = Most Significant Bit LSB = Least Significant Bit

n-1 Big-Endian: Little-Endian:

0 hherwertiges Byte an niedrigerer Adresse Beispiele: Sun SPARC, Motorola, IBM RS6000 niederwertigeres Byte an niedrigerer Adresse Beispiele: Intel X86, DEC VAX, MIPS R3000
n n+1 n+2 n+3
hchstwertiges Byte

Byte Ordering: Technisch 2 unterschiedliche Adressierungsweisen

Byte-Adressen Big-Endian

hchstwertiges Byte

Little-Endian

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Zahlensysteme

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Zahlensysteme
Arithmetik
Menschen: rechnen gewhnlich im Dezimalsystem Computer: rechnen gewhnlich im Dual(zahlen)system ==> Konvertierung erforderlich

Zahlensysteme:
Grundlage: Stellenwertsysteme (B-adische Systeme) k Jede natrliche Zahl n N ist darstellbar durch: n = biBi i=0 mit B N, B 2 : Basis bi: Koeffizienten bi {0, , B-1} (Ziffern) k: grter Index (nur endlich viele bi 0) Angabe der i B : Stellenwert der i-ten Stelle in Zahl n = (bkbk-1bo)B Basis B fhrende Nullen werden unterdrckt Koeffizientenfolge (bi) bei gegebener Basis eindeutig bestimmt

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Wichtige B-adische Zahlensysteme


fr Informatik
Basis 10 2 8 16 3110 1115 111112 378 1F16 Zahlensystem Dezimalsystem Dual-/Binrsystem Oktalsystem Hexadezimalsystem Ziffern 0, , 9 0,1 0, , 7 0, , 9, A,B,C,D,E,F A B C D E F 1010 1110 1210 1310 1410 1510

Beispiel: Darstellung der Zahl 3110


= 3 * 101 + 1 * 100 = 1 * 52+ 1 *51 + 1 * 50 = 1 * 2 4 + 1 * 2 3 + 1 * 2 2 + 1 * 2 1 + 1 * 20 = 3 * 81 + 7 * 80 = 1* 161 + F * 160 (F = 1510)

Anmerkung: bei grerer Basis


weniger Ziffern fr Darstellung bentigt (kompakter!) Aber: kleines Einmaleins umso schwieriger
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Darstellung rationaler Zahlen


Brche
Darstellung durch negative Exponenten: z =

biBi
i= -m

-1

==> fr rationale Zahl X (und zur Approximation reeller Zahlen)


x x =

bzw. in Kurzform der signifikanten Koeffizienten (Ziffern): = (bkbk-1 . b1 b0, b-1 b-m)B

biBi i= -m

=
i=0

biBi

biBi
i= -m

-1

Alternativ (wichtig fr Konvertierung zwischen Zahlensystemen !): Horner-Schema (entsteht durch fortgesetztes Ausklammern)
Fr natrliche Zahlen n z
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

= =

biBi
i= 0 -1

= (((bk *B + bk-1) * B + + b2) * B + b1) *B +b0 = (((b-m/B + b-m+1) / B + .+ b-2) / B + b-1) / B 10

Fr gebrochenen Anteil

biBi
i= -m

Einfhrung in die Technische Informatik

2.1 Konvertierung zwischen Zahlensystemen


Aufgabe
fr natrliche Zahl n N gegeben: Darstellung in Ausgangsbasis B (hier hufig 10 oder 2) gesucht: Darstellung von n in Zielbasis B (hier hufig 10,16 oder 2) analog fr Brche z bzw. rationale Zahlen x

Methoden basieren auf


Potenzreihen-Darstellung (Euklidischer Algorithmus) Horner-Schema

Unterscheidung
Rechnen im Ausgangssystem Rechnen im Zielsystem

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

2.2 Euklidischer Algorithmus


Grundlage:
x=

Prinzip

i= -m

biBi

= bP*BP+bP-1*BP-1+ ....+ b1*B+b0+b-1*B-1+...+b-m*B-m

Rechnen im Ausgangssystem (Zielbasis B) Division durch fallende Potenzen der Zielbasis Ziffern werden sukzessiv berechnet, beginnend mit hchstwertiger 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 : grte ganze Zahl x ) (3) Setze Xi = Ri Wiederhole Schritt (2) fr i = P-1, .... , bis Ri = 0 oder Bi (und damit der Umrechnungsfehler) klein genug

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

12

2.2 Euklidischer Algorithmus: Beispiel 1


Konvertiere 12210 zur Basis B=2
27 = 128; 26 = 64; 23 = 8; 22 = 4; Algorithmus 25 = 32; 21 = 2; 24 = 16; 20 = 1; ==> P = 6

==> 12210 = 11110102


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

2.2 Euklidischer Algorithmus: Beispiel 2


Konvertiere 12210 zur Basis B = 5
53 = 125; 52 = 25; Algorithmus 51 = 5; 50 = 1; ==> P = 2

==> 12210 = 4425

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

14

2.2 Euklidischer Algorithmus: Beispiel 3


Umwandlung von 15741,23310 ins Hexadezimalsystem (B=16)

==> 15741,23310 3D7D,3BA516

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

2.3 Horner-Schema
Anwendung blicherweise zur Umwandlung
von Dezimalsystem in System zur Basis B getrennt fr natrliche Zahl n und Bruch

Grundlage: (fr natrliche Zahl n N )


n =

i= 0

biBi

= (((bk *B + bk-1) * B + + b2) * B + b1) *B +b0

Verfahren ( fr n N )
Rechnen im Ausgangssystem (Dezimalsystem) Sukzessive Division der gegebenen Dezimalzahl durch die Basis B die jeweiligen ganzzahligen Reste ergeben die Ziffern der Zahl nB von der niedrigstwertigen zur hchstwertigen Stelle

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

2.3 Horner-Schema: Beispiele


Wandle 1574110 ins Hexadezimalsystem
1574110 / 16 = 983 98310 / 16 = 61 6110 / 16 = 3 310 / 16 = 0 Rest 13 Rest 7 Rest 13 Rest 3 (D16) (716) (D16) (316) ==> 1574110 = 3D7D16

Wandle 12210 ins Dualsystem


12210 / 2 = 61 6110 / 2 = 30 3010 / 2 = 15 1510 / 2 = 7 710 / 2 = 3 310 / 2 = 1 110 / 2 = 0 Rest 0 Rest 1 Rest 0 Rest 1 Rest 1 Rest 1 Rest 1

Ablesefolged er Ziffern

==> 12210 = 11110102


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

2.3 Horner-Schema: Nachkommateil


Grundlage: gebrochener Anteil im Horner-Schema
z =

damit Verfahren
sukzessive Multiplikation des Nachkommateils der Dezimalzahl mit der Basis B des Zielsystems aus ganzzahligem Anteil der Ergebnisse erhlt man nacheinander von hchstwertiger zu niedrigstwertiger die Nachkommaziffern b-i, (im Zielsystem zu schreiben)

i= -m

biBi

-1

= (((b-m/B + b-m+1) / B + .+ b-2) / B + b-1) / B

Beispiel: Umwandlung von 0,23310 ins Hexadezimalsystem


0,23310*16 = 3,728 0,72810*16 = 11,648 0,64810*16 = 10,368 0,36810*16 = 5,888 ==> 0,23310 0,3BA516
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

b-1 = 316 b-2 = B16 b-3 = A16 b-4 = 516

Abbruch bei gengend hoher Genauigkeit

Einfhrung in die Technische Informatik

18

2.4 Umwandlung: Basis B -> Dezimalsystem


Werte der einzelnen Stellen der umzuwandelnden Zahl xB werden im Zielsystem (Dezimalsystem) dargestellt und nach Stellenwertgleichung aufsummiert:
xB = biBi = bP*BP+bP-1*BP-1+ ....+ b1*B+b0+b-1*B-1+...+b-m*B-m
P

Beispiel: Konvertiere 101101,11012 ins Dezimalsystem


1 0 1 1 0 1 1 1 0 1 * 25 = 32 * 24 = 0 * 23 = 8 * 22 = 4 * 21 = 0 * 20 = 1 * 2-1 = 0,5 * 2-2 = 0,25 * 2-3 = 0 * 2-4 = 0,0625 45,812510 19

i= -m

==> 101101,11012 =
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.4 Beliebige Stellenwertsysteme


Umwandlung
zuerst in Dezimalsystem dann mit Euklidischem Algorithmus oder Horner-Schema ins Zielsystem

Spezialfall: eine Basis Potenz der anderen Basis


mehrere Stellen knnen zu einer Ziffer zusammengefasst werden oder eine Stelle kann durch Folge mehrerer Ziffern ersetzt werden Beispiel: Hexadezimalsystem

24 = 16 ==> 4 Dualstellen 1 Hexadezimalstelle Unmittelbare Umwandlung zum/vom Dualsystem Beispiel: Wandlung von 00110100,110101002 ins Hexadezimalsystem = ( 3 4 , D 4 )16 Besser lesbar als Dual-Darstellung derselben Zahl Breite Anwendung in der DV
Angabe von Arbeitsspeicher-Adressen Inhalte von Maschinenwrtern Operanden fr Bitfeld-Operationen C-Notation: Beispiel 0xFFFF

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

3 Kodierung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

3.1 Kodierung von Informationen


Shannon: Das grundlegende Problem der Kommunikation besteht darin, an einer Stelle genau oder angenhert eine Nachricht wiederzugeben, die an einer anderen Stelle ausgewhlt worden ist. Ziel: sinnvolle Darstellung zu bertragender (speichernder) Information Kodierungsarten: Quellkodierung (Schicht 6 und 7) Kanalkodierung (Schicht 2 und 4) Leitungskodierung (Schicht 1) Kodierung der ursprnglichen Nachricht z.B. ASCII-Code (Text), TIFF (Bilder), PCM (Sprache), MPEG (Videos), ... Darstellung der zu bertragenden Daten in Codewrtern, die den Eigenschaften des bertragungskanals angepasst sind (u.a. Redundanz). Sicherung gegen bertragungsfehler durch fehlererkennende bzw. -korrigierende Physikalische Darstellung von Digitalsignalen Codes 22

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3.1 Beispiel Quellcodierung: PCM


Pulscodemodulation (PCM)
Umwandlung analoge in digitale Signale (Sprachbertragung) gleichmige Abtastung des Analogsignals Abtasttheorem (Nyquist):

Beispiel (Vereinfachung: Quantisierung mit 3 Bit)


Intervallnummer Ursprungssignal rekonstruiertes Signal Binr -code 111 110 Abtastfehler 101 100 T 000 001 010 011 Abtastzeitpunkte Zeit

+4
Quantisierungsbereich

+3 +2 +1 -1 -2 -3 -4

Abtastrate: min. 2 x Grenzfrequenz des Ursprungssignals Grenzfrequenz 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
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

1 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1
erzeugter Pulscode

Einfhrung in die Technische Informatik

23

3.1 Kodierungen von Zahlen und Zeichen


Codes oder Kodierungen sind Abbildungen c: AB oder c: A*B* zwischen Zeichenvorrten A und B oder Wrtern ber Zeichenvorrten Die Bildmenge { b B I b=c(a), a A } unter c, d.h. die Menge aller Codewrter von c, heit ebenfalls Code Ausgangszeichen sind Klarzeichen, Zielelemente Codezeichen/Codewrter Eine Kodierung erlaubt fr dieselbe betrachtete Information den bergang von Zeichen und Wrtern eines gegebenen Reprsentationssystems zu solchen eines neuen Reprsentationssystems Zur Informationsdarstellung in Rechnersystemen werden fast ausschlielich Binr-Kodierungen (Binr-Codes) von Alphabeten verwendet, d.h. der Form c: A {0,1}*, wobei A ein vorgegebenes Alphabet ist Ziele:
Reprsentationssysteme zur Speicherung, Verarbeitung und bertragung von Informationen Effizienz bei Kodierung, Speicherung und Verarbeitung Sicherung gegen Verflschung (Fehlererkennnung/-korrektur) Geheimhaltung von Informationen (Verschlsselung)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

3.2 Block-Codes
Ein Code c: ABn, dessen Codewrter alle die gleiche Lnge n haben, heit (n-stelliger) Block-Code Die Anzahl der mglichen Codewrter eines Blockcodes c: ABn betrgt IBIn (IBI = Anzahl Zeichen in B) Ein n-stelliger Block-Code ist dicht, wenn alle b Bn Codewrter unter c darstellen (c surjektiv) Binre Block-Codes c: A {0,1}n sind fr Rechensysteme besonders geeignet, da die Codewrter n-Bit-Maschinenwrtern entsprechen Ist IAI=m, d.h. A besteht aus m Zeichen, so bentigt man fr einen binren Block-Code c: A {0,1}n mindestens n = log2m Stellen (x bedeutet kleinste ganze Zahl x)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

3.3 BCD-Kodierung
Binrdarstellung der 10 Dezimalziffern (z.B. Tastatur-Eingabe) Zur Kodierung der 10 Ziffern werden log210 = 4 Bit bentigt, d.h. Tetraden ==> Tetradenkodierung 6 der 16 mglichen Kodierungen stellen keine gltigen Dezimalziffern dar (Pseudotetraden), BCD-Code nicht dicht Kodierung der Dezimalziffern durch Dual-quivalent: BCD (Binary Coded Decimal)-Kodierung Beispiel: Dezimalzahl 812710
als BCD-Zahl: als Dualzahl: 1000 0001 0010 0111BCD 0001 1111 1011 11112

Vorteil: Zahlen leicht zu lesen Nachteile:


nicht-optimale Speicherplatz-Nutzung Probleme bei Ausfhrung arithmetischer Operationen
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

3.4 Codebaum
Jeder Binr-Code kann graphisch durch einen binren Codebaum dargestellt werden, indem jeder Stelle im Codewort eine Schicht im Baum und jedem Binrwert ein linker und ein rechter Unterbaum zugeordnet werden Beispiel (Codebaum des BCD-Codes)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

3.5 Gewichtete Codes


Ein binrer Block-Code c: A {0,1}n heit gewichtet, wenn Stellen der Codewrter Gewichte Wi zugeordnet: Wert der dargestellten Zahl z aus n z = bi Wi (bi: der Zahl z zugeordnete Koeffizienten) i= 0 Andernfalls heit der Code Anordnungscode (ungewichtet) Beispiele: gewichtete BCD-Codes

Wi

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

3.5 gewichtete BCD-Codes: Eigenschaften


Aiken-Code
Pseudotetraden liegen in der Mitte selbst-komplementierend (Vertauschen 0-1 ergibt Komplement) monoton wachsend Rundungserkennung (> 5, < 5) am vordersten Bit bertrag stimmt mit Dezimal-bertrag berein

2-aus-5-Code
bis auf 0 monoton wachsend fehlererkennend Einsatz: Strichcode (5 Striche, 3 schmal 2 breit) (Postleitzahlenkod.)

1-aus-10-Ring-Code

LS Rechnerarchitektur

monoton wachsend sehr bersichtlich groer Aufwand Einsatz: Anzeigen, numerische Tastaturen Einfhrung in die Technische Informatik 29

Prof. Dr. Ulrich Brning

3.6 Gray-Kodierung
Aufeinanderfolgende Zahlen so durch Bits codiert, dass sich stets nur ein Bit ndert (sogen. einschrittige Kodierung) Vorteile fr A/D-Wandlung und fehleranfllige mechanische Abtaster Stellen besitzen keine feste Stellenwertigkeit (ungewichtet) Code-Tabelle:

Ausfhrung arithmetischer Operationen schwierig


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

3.7 Codes variierender Lnge


Code c: AB* mit Codewrtern verschiedener Lngen heit variabel langer Code oder Code variierender Lnge Beispiel: Impulswahlverfahren beim Telefon c: {0,,9} {O,L}*
Ziffer
1 2 3 4 5 6 7 8 9 0

Code
LO LLO LLLO LLLLO LLLLLO LLLLLLO LLLLLLLO LLLLLLLLO LLLLLLLLLO LLLLLLLLLLO

Vorteil: Hufige Zeichen aus A durch kurze Codewrter darstellbar Problem: Trennen der Codewrter voneinander ist schwieriger Codes nur sinnvoll, wenn sie eindeutig decodierbar sind, d.h. jede Folge von Zeichen aus B kann eindeutig in eine Folge von gltigen Codewrtern zerlegt werden
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

3.8 Fano-Bedingung
wichtig: sofort decodierbare Codes, d.h. Zeichenfolgen aus Codeworten knnen von vorne beginnend eindeutig Wort fr Wort decodiert werden, ohne nachfolgende Zeichen zu beachten Codes sind sofort dekodierbar, wenn Fano-Bedingung erfllt: Kein Codewort ist Prfix (Anfangsstck) eines anderen Codeworts
bedeutet: zu codierende Zeichen treten im Codebaum nur als Bltter auf Codes mit erfllter Fano-Bedingung heien auch prfixfrei Jeder Blockcode der Lnge n erfllt Fano-Bedingung automatisch: Zur Dekodierung jeweils Blcke 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 decodierbar Zu jedem eindeutigen Code existiert ein sofort decodierbarer Code,der nicht "lnger" ist
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

4 Komprimierende Codes

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

4 Komprimierende Codes
Ziele komprimierender Codes
Lngenreduktion der kodierten Information durch Kompression Kostenersparnis

Anwendung: Speicherung und bertragung von Informationen hier behandelt: Verlustfreie Kodierungen, die vollstndige korrekte Dekodierung ermglichen (z.B. fr Text, Programme, Daten, ) Varianten
Lauflngenkodierung (Run Length Encoding) Wrterbuch-Kompression Huffman-Codierung Arithmetische Kodierung Einfhrung in die Technische Informatik 34

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

4.1 Lauflngenkodierung
(engl.: Run Length Encoding, RLE) Viele Daten enthalten Lufe, d.h. Folgen identischer Zeichen Idee: Folge identischer Zeichen durch (Anzahl, Zeichen) kodieren Problem:
Unterscheidung der Anzahlangabe von Daten gleicher Reprsentierung RLE kodiert Lufe beliebiger Zeichen typischerweise durch

(Zeichen, Marker, Anzahl) => sinnvoll nur bei Anzahl > 3 Marker in Daten kodiert durch (Marker, Marker)

Beispiel: Marker: #
Daten AAABBBBBBBCDDEEEEEEEEEEEF#34777777 kodiert: AAAB#7CDDE#11F##347#6 (komprimiert)

Vereinfachung in Sonderfllen mglich z.B. bei 7-Bit-Zeichen ==> MSB-Bit als Markierung des Zhlers Anwendungs-Spezialfall: Null-Unterdrckung
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

4.2 Wrterbuch-Kompression (Lempel-Ziv)


Wrterbuch mit Tupeln (Phrase, Codewort) wird schrittweise erzeugt
Phrase: Folgen von Eingabezeichen erzeugte Codewrter enthalten Verweise in das Wrterbuch

Vorteile
adaptiv (selbstanpassend) optimal, wenn Tabelle beliebig gro und Eingabe unendlich lang

Problem: Datenstruktur fr das Wrterbuch


Tabelle, Baum, Hash-Funktion

Verfahren:
LZ77 (Lempel, Ziv, 1977), neuere Varianten pkzip, gzip LZ78 (Lempel, Ziv, 1978), Baum statt Tabelle als Basis LZW (Lempel, Ziv, Welch 1984), komplexeres Tabellenverfahren, Basis von compress http://goethe.ira.uka.de/seminare/redundanz/vortrag05/
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

4.2 Lempel-Ziv
Beispiel:
Zeichenfolge AAABAABAABAAABB ...... Wrterbuch und erzeugter Code: Eintrag# 1 2 3 Phrase A AA B Codewort (0,A) (1,A) (0,B)

4 AAB (2,B)

5 AABA (4,A)

6 AABB (4,B)

... ... (...)

LZW (entwickelt bei Unisys)


sehr schnell, sowohl bei Kompression wie Dekompression auf 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 fr S/W od. Graustufen oder Bilder mit groen Flchen gleicher Farbe V42bis: Modem Standard Postscript Level 2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

4.3 Informationsgehalt (Entropie)


Was ist Information? (<== Informationstheorie) Definition: Der mittlere Informationsgehalt (Entropie) eines Zeichens N N wird definiert durch 1

i =1

p log p = p log
i a i i =1 i

mit

N - Anzahl der verschiedenen Zeichen pi - Hufigkeit des Zeichens i (i=1,...,N) a - Basis (fr Binrdarstellung/Bits = 2) Anschaulich:

Die Entropie gibt an, wie berrascht wir sind, welches Zeichen als nchstes kommt
Beispiel 1: Gegeben: 4 Zeichen, alle N=4 Zeichen gleich hufig (pi = 0,25 i) Entropie Beispiel 2: Gegeben: 4 Zeichen, 1. Zeichen hat Hufigkeit p1=1, p2 = p3 = p4 =0 Entropie
1log 1 + lim 3* p log
2 p 0 a

0,25 log 4 = log 4 = 2[bit ]


es existiert keine bessere Codierung als mit 2 Bits/Zeichen
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur
i =1 2 2

1 = 0+0 = 0 p

Entropie = 0 [bit]

Einfhrung in die Technische Informatik

38

4.3 Informationsgehalt (2)


Die Entropie (Basis 2) gibt an, wie viele Bits man mindestens zur Codierung bentigt. Gute Annherung an das theoretische Minimum (fr mittlere Codewortlnge)
Aufbau eines binren Baums zu codierende Zeichen als Bltter des Baumes

Beispiel: Codierung der DNA-Bausteine

A Adenin p(A) = 0,5 A(0,5) C Cytosin p(C) = 0,3 G Gyanin p(G) = 0,15 C(0,3) 0 T Thymin p(T) = 0,05 Entropie 1,65 Bit Codierung mit weniger G(0,15) als (im Mittel) 2 Bit pro Zeichen mglich Mittlere Codewortlnge w =

(1,0) 1 (0,5) 0 1 (0,2) 1 T(0,05)

piwi
i= 1

(wi := Codewortlnge des Wortes i)

Fr Beispiel: w = 0,5 + 0,6 + 0,45 + 0,15 = 1,7 Bits


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

4.4 Huffman-Code (1)


prfix-freier Code Bedingung: Hufigkeit des Auftretens aller Zeichen ist bekannt Arbeitsweise: hufiger auftretende Zeichen werden krzer codiert als seltenere
1. Liste alle Zeichen zusammen mit ihrer Hufigkeit auf 2. Whle die zwei Knoten mit den geringsten Hufigkeiten 3. Mache sie zu Blttern eines binren Teilbaumes, wobei die Hufigkeiten fr beide Knoten addiert werden 4. Fge den Teilbaum statt der Knoten wieder in die Liste ein 5. Wiederhole Schritte 2 bis 4, bis nur ein Baum vorhanden 6. 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

4.4 Huffman-Code Beispiel 1


A = { a, b, c, d, e, f } mit Gegebene relativen Hufigkeiten: (0.1, 0.15, 0.25, 0.05, 0.2, 0.25)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

41

4.4 Huffman-Code Beispiel 1 (2)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

42

4.4 Huffman-Code Beispiel 1 (3)

Entropie = 2,42 Bestimmung der mittleren Codewortlnge:


Zeichen: a b c d e f Rel. Hufigkeit: 0.1 0.15 0.25 0.05 0.2 0.25 Lnge [Bits]: 4 3 2 4 2 2 ==> mittlere Codewortlnge = 0.4 + 0.45 + 0.5 + 0.2 + 0.4 + 0.5 = 2.45 Bits

Bei Verwendung eines Blockcodes wren [log2(6)] = 3 Bits ntig


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

43

4.4 Huffman-Code - Beispiel 2

Buchstaben-Hufigkeit (DE u. UK) s. www.wortspass.de/statb/


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

44

4.4 Hufigkeit von Buchstaben/-folgen


Codes (wie HuffmanCode) nicht unbedingt auf einzelne Zeichen beschrnkt abhngig von der Anwendung- kann es sinnvoller sein, direkt ganze Zeichenketten zu kodieren Beispiel: die englische Sprache.
Letters E T O A N I R S H D L C F U M P Y W G B V K X J Q Z 13,05 9,02 8,21 7,81 7,28 6,77 6,64 6,46 5,85 4,11 3,60 2,93 2,88 2,77 2,62 2,15 1,51 1,49 1,39 1,28 1,00 0,42 0,30 0,23 0,14 0,09 TH IN ER RE AN HE AR EN TI TE AT ON HA OU IT ES ST OR NT HI EA VE CO DE RA RO D igram s 3,16 1,54 1,33 1,30 1,08 1,08 1,02 1,02 1,02 0,98 0,88 0,84 0,84 0,72 0,71 0,69 0,68 0,68 0,67 0,66 0,64 0,64 0,59 0,55 0,55 0,55 THE IN G AND IO N ENT FOR T IO ERE HER ATE VER TER THA ATI HAT ERS H IS RES ILL ARE CON NCE A LL EVE IT H TED T rigram s 4,72 1,42 1,13 1,00 0,98 0,76 0,75 0,69 0,68 0,66 0,63 0,62 0,62 0,59 0,55 0,54 0,52 0,50 0,47 0,46 0,45 0,43 0,44 0,44 0,44 0,44

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

45

4.5 Codierung von Zeichenfolgen


Weitere Verkleinerung der mittleren Codewortlnge durch Codierung von Folgen von Zeichen mglich Beispiel: Fax-Komprimierung CCITT T4
Scannen einer Seite Zeilen aus 1728 schwarzen u. weien Punkten (Pixeln) (bei 3,85 oder 7,7 Zeilen/mm (fein)) In jeder Bildzeile Lnge von schwarzen und weien Pixeln bestimmt (Lauflnge) Zahlenfolge nach Huffman codiert

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

46

4.5 Arithmetische Codierung


Eigenschaften:
erreicht gleich optimale Codierung wie die Huffman-Codierung Unterschied zu Huffman: gesamter Datenstrom hat zugeordnete Wahrscheinlichkeit, die sich aus Wahrscheinlichkeiten der enthaltenen Zeichen zusammensetzt Kodierung eines Zeichens erfolgt unter Bercksichtigung aller vorherigen Zeichen Daten werden als Intervall reeller Zahlen zwischen 0 und 1 kodiert Jeder Wert innerhalb des Intervalls als Codewort verwendbar minimale Lnge des Codes bestimmt durch zugeordnete Wahrscheinlichkeit

Nachteil: Strom nur als Ganzes decodierbar

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

47

4.5 Arithmetische Kodierung: Beispiel


Zu kodieren: ACAB mit p(A) = 0.5, p(B) = 0.2, p(C) = 0.3
pA = 0.5
0 0.5

pB = 0.2
0.7

pC = 0.3
1

pAA = 0.25
0

pAB= 0.1 pAC = 0.15


0.25 0.35 0.5

pBA

pBB pBC
0.6 0.64 0.7

pCA

pCB
0.85 0.91

pCC
1

pACA = 0.075
0.35 0.425

pACB = 0.03
0.455

pACC = 0.045
0.5

pACAA = 0.0375
0.35

pACAB = 0.015
0.3875 0.4025

pACAC = 0.0225
0.425

ACAB kodierbar durch jede Binrzahl aus Intervall [0.3875, 0.4025), gerundet auf - log2(p(ACAB)) = 6.06 d.h. 7 Bits, z.B. 0.0110010
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

48

5 Zeichenkodierung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

49

5 Zeichenkodierung
Darstellung von Buchstaben, Sonderzeichen etc. zur Textverarbeitung, -Speicherung und bertragung erfordert andere Kodierung als bei Zahlen Fr 26 Buchstaben sind mindestens log2 26 = 5 Bit zur Kodierung erforderlich Heute gebruchlich zur Text-Darstellung: 7 bis 8 Bit Bekannteste Kodierung: ASCII
(American Standard Code for Information Interchange) 7 Bit-Kodierung 128 mgliche Zeichen:

2 mal 26 Buchstaben 10 Ziffern 32 Kommunikationssteuer- und Interpunktionszeichen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

50

5.1 ASCII-Code
ASCII-Code ist dichter 7 Bit Blockcode

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

51

5.2 8 Bit-Kodierung
Problem bei ASCII: keine deutschen Umlaute /nationale Besonderheiten 2 Mglichkeiten
nationale Variante der ASCII-7-Bit Kodierung

z.B. ISO-7-Bit oder DIN 66003 (Deutsche Variante mit Umlauten) zustzliche 128 Zeichen fr nationale Besonderheiten u. Sonderzeichen Beispiele: PC8 (MSDOS) ISO 8859 (UNIX, WINDOWS)

Erweiterung auf 8 Bit Kodierung

8-tes Bit (Byte-Orientierung!) auch zur Fehlererkennung nutzbar


7 Bit-Kodierung Fehlererkennung
8 Bit mit gerader Paritt

ungerade?: =1

Parittsschaltung

ungerade?: =1 1: Bitfehler

8 Bit mit gerader Paritt


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

0: kein Bitfehler

Einfhrung in die Technische Informatik

52

5.3 ISO-8859-1
Vorschlge zur Erweiterung der ursprnglich auf die USA beschrnkten ASCII-Norm auf 8 Bits: ISO-NORM 8859-1
umfasst alle Sonderzeichen westeuropischer Sprachen

deutsche Umlaute franzsiche Akzente skandinavische Buchstaben wie spanische Satzzeichen wie

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

53

5.4 Unicode
bis weit in 80-er Jahre:
firmenspezifische und nationale, nicht miteinander kompatible, 7- und 8-Bit Zeichenkodierungen Chinesiche, japanische, koreanische, arabische, thailndische, bengalische, hebrische und viele andere Schriftzeichen berhaupt nicht oder nur ber komplizierte Kodierungssequenzen variabler Lnge kodiert

==> Weltweit genormte Kodierung aller Zeichen notwendig fr einfachen Datenaustausch Unicode:
Konsortium aus Hard- und Software-Firmen (Apple, IBM, MS, ...,Software AG) begann Ende 80-er mit Entwicklung bisherige nationale, internationale, firmenspez. Zeichenkodierungen abgelst durch Unicode bergang nur langsam (Kompatibilitt zu bisherigen Kodierungen)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

54

5.4 Unicode Entwurfsprinzipien


Unicode Zeichenkodierungen haben smtlich 16 Bit Lnge
Speicherbedarf fr Text wird verdoppelt

Gesamter Code-Umfang von 16 Bits fr Zeichenkodierung


bis zu 65536 verschiedene Zeichen kodierbar Unicode-Version 3.0.1 vom 17.8.2000 belegt ca. 50 000 Kodierungen http://www.unicode.org

Unicode codiert Zeichen, nicht Zeichen-Darstellungen


Die Darstellung A, A, A haben alle dieselbe Kodierung U+0041 allgemein: U+xxxx (xxxx: hexadezimale Darstellung der Kodierung) Unicode kodiert einfachen (nicht formatierten) Text, d.h. keine expliziten Kodierungen fr Schriftgre und Farbe

Unicode-Zeichen in logischer Reihenfolge gespeichert:


Sprachen in lateinischen Buchstaben von links nach rechts im Hebrischen und Arabischen von rechts nach links

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

55

5.4 Unicode Entwurfsprinzipien (2)


Gleiche Zeichen werden gleichgesetzt
Fr Zeichen verschiedener Sprachen, die in der gleichen Schrift vorkommen, wird nur eine Kodierung gewhlt Beispiel: Chinesisch-japanisch-koreanische Schriftzeichen (CJK)

dynamische Erstellung zusammengesetzter Zeichen


kombinierte Zeichen ohne eigene Zeichendarstellung, Zusatzzeichen modifizieren die vor ihnen stehenden Grundzeichen Beispiele: U U+0055 U+0308 Zusammengesetzte Zeichen hufig mit eigenem Zeichencode

hat Kodierung U+00DC

fr 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 garantiert


Zeichenkodierungen ISO-8859-1 bis ISO-8859-9, CJK-Kodierungen und firmenspezifischen Zeichenkodierungen
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

56

5.4 Unicode-Zeichen
Unicode-System in Zeichenbereiche (Scripts) aufgeteilt, die bestimmte Schriftkultur oder Satz von Sonderzeichen widerspiegeln ASCII im Bereich U+0000 bis U+007F C0 Controls and Basic Latin Weitere Beispiele
U+0080 bis U+00FF enthlt C1 Controls and Latin-1 Supplement U+0370 bis U+03FF Griechisch

Zeichenbereiche unterschiedlich gro


ASCII: 128 Zeichen CJK-Block: Tausende von Zeichen

Verschiedene Kodierungen des Zeichensatzes (nach ISO 10646)


UTF-16: Kanonische Speicherung jedes Zeichens in 2 Bytes UTF-8: Zeichen verschieden lang in 1, 2 oder 3 Bytes kodiert

erlaubt kompaktere Darstellungen U+0000 bis U+007F entspricht genau dem ASCII-Code

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

57

5.4 Unicode: Speicherplatz


Textdateien verdoppeln bei Umwandlung von 8-bit Kodierungen zur Unicode-Darstellung ihre Gre Bemerkung: Bessere Kompression von Unicode-Dateien wegen hherer Redundanz Beispiel:
Wandlung einer ISO-8859-1-Datei in entsprechende Unicode-Datei

Redundanz erhht sich ==> erreichbare Kompressionsrate hher

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

58

5.5 Andere Vorschlge: Multicode


Multicode
sieht vor, auf der Basis der 7-Bit-ASCII-Zeichen (hnlich der Norm ISO 8859) eine Zeichenmenge von jeweils 256 Zeichen fr die unterschiedlichen Sprachen zur Verfgung zu stellen ausreichend fr alle westlich orientierten Sprachen nicht ausreichend fr fernstliche 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

59

6 Fehlererkennung
Paritt CRC Hamming-Code

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

60

6.1 Fehlererkennung: Paritt


Zur Fehlererkennung bei bertragung oder Speicherung
Sender: = Schreiboperation Empfnger: = Leseoperation

Z.B. 7 Bit-Kodierung auf eine redundante 8 Bit-Kodierung erweitert


8-tes Bit durch XOR-Schaltung erzeugt: Parittsbit genau dann = 1, wenn an Eingngen (7 Bit) ungerade Zahl von Einsen erzeugte Kodierung hat immer gerade Zahl von Einsen (even parity)

Bei Verflschung in
nur einem Bit: ==> Zahl der Einsen nicht mehr gerade ==> Fehler gerader Anzahl von Bits: Fehler nicht erkennbar

Alternativ: auch Parittsbit fr ungerade Zahl von Einsen (odd parity)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

61

6.1 Fehlererkennung: Paritt


Parity Bit: Zhlt Anzahl der 1en, z.B.
Sender: Empfnger: Empfnger(2): 10 111 001 10 101 001 10 001 001 PB: 1 PB: 0 PB: 1 1-Bit Fehler erkennbar 2-Bit Fehler nicht erkennbar Korrekturen nicht mglich!

Variante: Lngs- und Querparitt


Verbesserung Parity Bit-Verfahren durch weitere Prfbits. Dazu mehrere Blcke gruppiert und gemeinsam behandelt Beispiel: Sender: 1011 1 Empfnger: 1011 0010 1 0110 1100 0 1100 0110 0 0110 0011 0011 Ein fehlerhaftes Bit identifizier- und korrigierbar

1 1 0 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

62

6.2 Fehlererkennung mit zyklischen Codes


Problem: Erkennung von Mehrbitfehlern
einfache Prfbits i.a. nicht geeignet Gerade Mehrbitfehler hufig in der Datenkommunikation (Modem, Telefonleitung, Fehlersicherung von Dateien)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

63

6.2 Fehlererkennung mit zyklischen Codes


Linearer Code (aus Theorie algebraischer Felder)
Wird gebildet aus den Elementen eines Galois-Feldes (:= endlicher Krper, bei q Elementen: GF(q)) Alle Codeworte haben die Lnge 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 Feldelement Bedeutung: lineare Codes sind aufgrund ihrer strengen mathematischen Struktur hervorragend fr schnelle und zuverlssige Codierung bzw. Decodierung geeignet!

Linearer Code zyklisch


wenn 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

64

6.2 Fehlererkennung mit zyklischen Codes


Idee: CRC: Cyclic Redundancy Checksum
n-Bit-Folge (cn-1,cn-2,,c1,c0) mit ci {0,1} als Koeffizienten eines Polynoms P(x) = ci
0i x n-1

, x {0,1}, betrachtet

Beispiel: 1 1 0 0 1 0 1 entspricht Polynom P(x) = x6+x5+x2+1 Sender und Empfnger vereinbaren Generatorpolynom Gk
k-1 k (x)=x + 0

ci xi

Sender interpretiert einen Datenblock als Polynom und ergnzt 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 angehngte Nullen erweitert wurde, durch Gk(x) Empfnger erhlt bei korrekter bertragung nach der Division durch Gk(x) den Rest 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

65

6.2 Rechenregeln
Polynom-Terme unterschiedlichen Grades voneinander unabhngig ==> (mit x, ci {0,1}) alle Operationen mod(2) Wahrheitstafeln: a, b {0,1} a b a b axb a b
aus (2n +1) = 1 mod(2), n N und (2n) = 0 mod(2) Damit: a b (Exklusiv Oder) a x b (Und) 0 0 0 1 1 0 1 1 0 1 1 0 0 0 0 1 -0 -1

Polynome gleichen Grades immer subtrahierbar


Ergebnis ist Polynom geringeren Grades wegen mod(2) brauchen Zahlenber/-unterlufe nicht betrachtet werden ==> bei Addition / Subtraktion gengt bitweises Exklusiv Oder Beispiel: 10000 11111 11111 10000 1111 = 1111
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

66

6.2 Fehlererkennung mit zyklischen Codes


B e is p ie l:
z u b e rtra g e n : 1 0 1 1 1 0 0 1 G e n e ra to rp o ly n o m : 1 0 1 1 0 0 1 1 1 1 0 0 x
4

x +

1 0 0 1 | 0 0 0 0 : 1 0 0 1 1 = 1 0 1 0 0 1 1 1 1 0 0 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

Sender

C R C

: 1 0 0 1

1 0 1 1 0 0 1 1

1 1 0 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

1 0 0 1 | 1 0 0 1 : 1 0 0 1 1 = 1 0 1 0 0 1 1 1 1 0 0 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 rtra g is t k o rre k t

Empfnger

Einfhrung in die Technische Informatik

67

6.2 Fehlererkennung mit zyklischen Codes


10111001| 1001
A Empfnger: 00101001| 0001 : 10011 = 00101110 10011 11110 10011 11010 10011 10010 10011 11 bertragungsfehler
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Fehlermuster Fehlermuster

A B

Einfhrung in die Technische Informatik

68

6.2 Fehlererkennung mit zyklischen Codes


B

Empfnger: 00111011|0001 : 10011 = 00111111 10011 11101 10011 11100 10011 11110 10011 11010 10011 10011 10011 0 bertragungsfehler nicht erkannt!
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

69

6.2 Fehlererkennung mit zyklischen Codes


Gebruchliche 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 Prfung Sehr schnell, erkennt gut auch Mehrbitfehler Fehlererkennung:

alle Einzelbitfehler, Doppelbitfehler, Dreibitfehler alle Fehlermuster mit ungerader Bitfehleranzahl alle Fehlerbschel mit 16 oder weniger Bits 99,997% aller 17-Bit-Fehlerbschel 99,998% aller Fehlerbschel mit Lnge 18 Bit Restfehlerrate < 0,5* 10-5 der ursprnglichen Blockfehlerrate

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

70

6.3 Fehlerkorrigierende Codes


Fehlerkorrektur
Generell: Einbau von Redundanzen:

Lnge der bertragung: Nachrichtenlnge k Prfbits (k = n - m)

n Bit m (<n) Bit

(2n mgliche Binrfolgen) (2m zulssige Codewrter)

Lege um jede Nachricht eine Sphre von Codewrtern

Hammingabstand (H.-Distanz) d:
Anzahl der Bitpositionen, an denen sich zwei Wrter eines Alphabets mindestens unterscheiden ( d Einzelbit-Fehler, um ein Wort in ein anderes zu berfhren) Berechnung: Bilde Exclusives Oder, Zhle Einsen in Resultat Beispiel: 1001101 0011101 = 1010000 ==> d = 2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

71

6.3 Fehlerkorrigierende Codes (2)


Fr Code mit Hammingabstand d zwischen je zwei Codewrtern ==> d t + 1 Code erkennt t-Bit-Fehler
(t Bitfehler knnen kein Codewort in anderes berfhren)

d 2 t + 1 Code korrigiert t-Bit-Fehler

(legale Codewrter so weit voneinander entfernt, dass selbst bei t Bitfehlern Original-Codewort immer noch nher als jedes andere ==> eindeutig erkennbar)

Beispiel: Code mit nur 4 Codewrtern


1) 00000 00000 2) 00000 11111 3) 11111 00000 4) 11111 11111 ==> Hamming-Distanz 5 ==> korrigiert Doppelbitfehler Wenn durch 2-Bit-Fehler ankommendes Codewort = 00000 00111 ==> muss Wort 2) gewesen sein Aber: wenn 3-Bit-Fehler mglich (00000 00111 knnte aus Wort 2) entstanden sein) ==> Codewort nicht eindeutig identifizierbar
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

72

6.4 Hamming-Code
Ziel:
Verwendung mehrerer Prfbits, die (berschneidend) jeweils mehrere Bits prfen. Durch Kombination der Prfbits Fehler identifizieren und korrigieren

Hamming-Code "minimaler" Code dieser Kategorie. Idee:


Eindeutige Darstellung jeder natrlichen Zahl durch Summe von 2erPotenzen In einem Codewort w = z1, . . . , zn Prfbits genau an den k Positionen, deren Index 2er-Potenz an restlichen m = n-k Positionen Datenbits Jedes Prfbit Parittsbit fr alle Stellen, deren Darstellung gerade die 2er-Potenz der Position des Prfbits enthlt
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

73

6.4 Hamming-Code (2)


Beispiel: ASCII Codewort
2 0 1 1 1 1 1 1 3 1 1 1 1 1 1 1 4 5 6 7 8 9 10 11 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 1 1 3=1+2 5=1+4 6=2+4 7=1+2+4 9=1+8 10 = 2 + 8 11 = 1 + 2 + 8 Bit-Nr. 1 H 100 1000 0 a 110 0001 1 m 110 1101 1 m 110 1101 1 i 110 1001 0 n 110 1110 0 g 110 0111 0 Prfbit 1 : Datenbits 3, 5, 7, 9, 11 Prfbit 2 : Datenbits 3, 6, 7, 10, 11 Prfbit 4 : Datenbits 5, 6, 7 Prfbit 8 : Datenbits 9, 10, 11

Empfnger:
berprft Parittsbits addiert ggf. Indizes der fehlerhaften Prfstellen Index des fehlerhaften Bits 1-Bit-Fehler eindeutig identifiziert und korrigiert
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

74

6.4 Hamming-Code
Schwchen:
Mehrbitfehler in der Regel falsch korrigiert 2-Bit-Fehler werden nicht korrigiert (oder falsch korrigiert!) 3-Bit-Fehler werden nicht erkannt ...

z.B. Flle:
a) Bit 4 und Bit 11 invertiert

Prfbits 1, 2, 4, 8 falsch Bit 15 soll korrigiert werden, existiert nicht Prfbits 2, 4 falsch Bit 6 wird flschlicherweise als inkorrekt erkannt alle Prfbits korrekt kein Fehler wird erkannt

b) Bit 2 und Bit 4 invertiert


c) Bits 1, 8, 9 invertiert

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

75

6.4 Anzahl Bits fr verschiedene Wortlngen


Ein-Bit-Fehlerkorrektur: 2k m+k+1 (m Datenbits, k Prfbits) ==> minimal notwendige Anzahl Prfbits
m Datenbits 1 2 4 8 16 32 64 k Prfbits 2 3 3 4 5 6 7 Gesamtzahl m+k m+2 m+3 m+3 m+4 m+5 m+6 m+7

Fr Erkennung von Doppelbit-Fehlern: je 1 Prfbit mehr (k+1) ==> ECC (Error Checking and Correction) Chipkill (IBM): Multibit ECC, bis 4 Bit, sogar ganze DRAM-Chips
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

76

6.5 Kodierung: Fazit


Reprsentationssysteme 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 Verflschung (Fehlererkennnung/-korrektur)


Parittsbit(s), CRC, Hamming-Code

Geheimhaltung von Informationen (Verschlsselung)


Hier nicht behandelt

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

77

H Rechnerarithmetik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

1 Einordnung
Ebene 6 Ebene 5 Ebene 4 Ebene 3 Ebene 2 Ebene 1 Ebene 0
Problemorientierte Sprache Assemblersprache Betriebssystem ISA (Instruction Set Architecture) Mikroarchitektur Digitale Logik Physik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 bersicht

Zahlendarstellung Binre Addition Binre Subtraktion Binre Multiplikation Binre Division Fest- und Fliekommadarstellung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2 Zahlendarstellung 2.1 Positive ganze Zahlen


Positionale Zahlendarstellung
Ziffern Position der Ziffern gewichtet ihren Wert

Dezimalsystem
Beispiel:
4711 = (4,7,1,1)10 = 4103 + 7102 + 1101 + 1100

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}

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Positive ganze Zahlen (2)


Dualsystem, Binrsystem
Beispiel:
10112 = (1,0,1,1)2 = 123 + 022 + 121 + 120

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}

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.1 Positive ganze Zahlen (3)


Allgemein
Darstellung natrlicher Zahlen durch Zahlensystem zu einer beliebigen
Basis b1 (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 fr Rechnerarithmetik



b=2 b=8 b = 10 b = 16 Dualsystem Oktalsystem zi {0,1,2,3,4,5,6,7} Dezimalsystem Hexadezimalsystem zi {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

2.2 Konvertierung der Darstellung


Umwandlung von einer Zahlendarstellung in die andere
Basis des Ziel-Zahlensystems als Divisor Reste bilden die Ziffern der Darstellung Beispiel:1910 x2
19 2 = 9 92=4 42=2 22=1 12=0 Rest 1 Rest 1 Rest 0 Rest 0 Rest 1 most significant digit least significant digit

x = (1,0,0,1,1)2

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung 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 Wort Doppelwort = 1 Byte = 16 Bit / 32 Bit (Word) = 32 Bit / 64 Bit (Double Word)

Vierfachwort= 64 Bit / 128 Bit (Quad Word)

Wortbreite hngt von Prozessorarchitektur ab

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 Binre Addition
Schriftliche Addition
Verfahren wie beim Dezimalsystem
10011 +1001

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

3 Binre Addition
Schriftliche Addition
Verfahren wie beim Dezimalsystem
10011 +1001 1 bertrag 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

10

3 Binre Addition
Schriftliche Addition
Verfahren wie beim Dezimalsystem
10011 +1001 11 bertrag 00

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

11

3 Binre Addition
Schriftliche Addition
Verfahren wie beim Dezimalsystem
10011 Kontrolle: +1001 19 + 9 = 28 11 bertrag 11100 bertrag wird auch Carry genannt

Feste Registerbreite und Addition, z.B. vier Bit


1011 Kontrolle: +1001 11 + 9 = 20 = 16 + 4 1 11 bertrag 0100 letzter bertrag gehrt zum Ergebnis

kann aber nicht mehr dargestellt werden Einfhrung in die Technische Informatik LS Rechnerarchitektur
Prof. Dr. Ulrich Brning

12

3.1 Halbaddierer
Addition in Spalte s (sum)
zwei Eingnge: erste Ziffer von jeder Zahl zwei Ausgnge: erste Ziffer des Ergebnisses (s), Carry (c) Wahrheitstabelle: a b s c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Schaltung:
a b + c s
c = a b s = a b + a b = a b Blockschaltbild

a b HA

c s

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

13

3.2 Volladdierer
Addition in anderen Spalten
drei Eingnge: je eine Ziffer der Summanden und Carry von vorheriger
Ziffer

zwei Ausgnge: Summenziffer und Carry Schaltung: Wahrheitstabelle:


a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 cin 0 1 0 1 0 1 0 1 s cout 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1
Aufbau mit Halbaddierern

a b cin

c HA s c HA s cout s

realer Aufbau als zweistufiges Schaltnetz (geringere Gatterlaufzeiten) Blockschaltbild

cin
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

a b

FA

cout s
14

Einfhrung in die Technische Informatik

3.3 Paralleles Addierwerk


Schaltnetz zur Addition n-Bit langer Summanden
an-1 bn-1 a2 b2 a1 b1 a0 b0 cin

FA c cout sn-1

... c

FA c s2

FA c s1

FA

s0

lange Gatterlaufzeit bis Endergebnis stabil


Gatterlaufzeit: t = 2n t

Ripple Carry Adder (RCA)


* FA: Full Adder (Volladdierer)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

15

3.4 Serielles Addierwerk


Synchrones Schaltwerk zur Addition n-Bit langer Summanden
Clk

an-1 bn-1

a1 a0 b1 b0 FA

s c

sn-1
D Q

s1 s0 cout

Schieberegister fr Summanden und Ergebnis je eine Stelle pro Takt wird addiert (Ergebnis nach n Takten) Carry-Flip-Flop muss initialisiert werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

16

3.5 Carry-Look-Ahead-Addierer
Beschleunigung der Addition
Vermeidung des sequentiellen Durchlaufs der bertrge Idee: parallele Berechnung aller Stellenbertrge fr jede Stelle i

Es gilt fr Stelle i
ci+1 = ai bi + (ai + bi) ci = Gi + Pi ci mit
Gi = ai bi Pi = ai + bi gibt an, ob Stelle i Carry generiert (Generate) gibt an, ob Stelle i Carry weitergeben muss (Propagate), falls vorherige Stelle Carry generiert oder weitergibt

Schaltfunktionen fr bertrge
c1 = 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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

17

3.5 Carry-Look-Ahead-Addierer (2)


Berechnung der bertrge mit maximal 2 Gatterlaufzeiten mglich
max. Anzahl der Gattereingnge hngt von der Breite des Addierers ab

Kaskadierung mglich durch Ausgabe von P und G des Gesamtblocks


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

18

3.6 Carry-Select-Addierer
Beschleunigung der Addition
Idee: nicht auf das Carry des niederwertigen Blocks warten, sondern
beide Ergebnisse berechnen und spter selektieren

Multiplexer selektiert Endergebnis

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

19

3.7 Carry-Save-Addierer
Mehr als zwei Summanden
bertrge aus ersten Addition werden in der nchsten Addition
bercksichtigt (keine Weitergabe der bertrge in der laufenden Addition)

Beispiel: 4-Bit CSA fr vier Summanden


a3 b3 c3 a2 b2 c2 a1 b1 c1 a0 b0 c0

FA c s
d3

FA c s
d2

FA c s
d1

FA c s
d0

FA c s

FA c s

FA c s

HA c s

Standardaddierer

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

20

4 Binre Subtraktion
Subtrahierer kann hnlich wie Addierer entwickelt werden
Verwendung von Addierern zur Subtraktion
Idee: a b = a + (-b)

4.1 Darstellung negativer ganzer Zahlen


Vorzeichen und Betrag
ein Bit reprsentiert Vorzeichen andere Bits reprsentieren Betrag der Zahl Beispiel:
010012 = 9 110012 = -9

Nachteil: Vorzeichen muss fr Berechnungen ausgewertet werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

21

4.2 Einerkomplement-Darstellung
Berechnung des Einerkomplements einer Zahl N bei n Ziffern
C= 2n N - 1 bei n Ziffern/Bits Komplement C entspricht dem Wert N

Darstellung positiver ganzer Zahlen


hherwertigste Ziffer zn-1 = 0 andere Ziffern unbeschrnkt Wert: (zn1,...,z1,z0 )2 = zi 2i
i

Darstellung negativer ganzer Zahlen


hherwertigste Ziffer zn-1 = 1 andere Ziffern unbeschrnkt Wert:

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

22

4.2 Einerkomplement-Darstellung (2)


Beispiel: Darstellungslnge n=4
10002 = -24 + 1 + 8 11112 = -24 + 1 + 15
= -7 kleinste negative Zahl =0 grte (negative) Zahl

Nachteil
Null hat zwei unterschiedliche Darstellungen (0000 und 1111 bei Lnge 4)

Vorteil der Einerkomplement-Darstellung


einfache Umwandlung von positiver zu negativer Zahl und umgekehrt
jede Ziffer wird invertiert: zi' = 1 - zi Beispiel: aus 10002 wird 01112 (aus 7 wird 7)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

23

4.2 Einerkomplement-Darstellung (3)


Addition
Einsatz von leicht modifizierten Standardaddierern fr Zahlen in
Einerkomplement-Darstellung

Carry-out muss zum Ergebnis addiert werden


ohne berlauf kommt Carry-out nur bei Addition von ein oder zwei negativen Zahlen vor X + (-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

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

24

4.2 Einerkomplement-Darstellung (4)


Additionsschaltwerk fr Einerkomplement
an-1 bn-1 a2 b2 a1 b1 a0 b0

FA c cout HA c sn-1

... c

FA c

FA c

HA

... c

HA c s2

HA c s1

HA

s0

Rckfhren und Addieren des Carry-out-Signals


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

25

4.2 Einerkomplement-Darstellung (5)


Einerkomplement heute kaum mehr im Einsatz
doppelte Darstellung der Null Verwendung modifizierter Standardaddierer
je ein Schaltwerk fr rein positive Zahlen und Zahlen im Einerkomplement erforderlich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

26

4.3 Zweierkomplement-Darstellung
Berechnung des Zweierkomplements einer Zahl N bei n Ziffern
C = 2n - N bei n Ziffern/Bits Komplement C entspricht dem Wert N

Darstellung positiver ganzer Zahlen


hherwertigste Ziffer zn-1 = 0 andere Ziffern unbeschrnkt Wert: (zn1,...,z1,z0 )2 = zi 2i
i

Darstellung negativer ganzer Zahlen


hherwertigste Ziffer zn-1 = 1 andere Ziffern unbeschrnkt Wert: (zn1,...,z1,z0 )2 = 2n + zi 2i
i

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

27

4.3 Zweierkomplement-Darstellung (2)


Beispiel: Darstellungslnge n=4
10002 = -24 + 8 11112 = -24 + 15
= -8 kleinste negative Zahl = -1 grte negative Zahl

Vorteil der Zweierkomplement-Darstellung


eindeutige Darstellung der Null (0000 bei Lnge n=4) einfache Umwandlung von positiver zu negativer Zahl und umgekehrt
jede Ziffer wird invertiert: zi' = 2 1 - zi anschlieend 1 auf niederwertigste Stelle addieren (Zweierkomplement ist um eins grer als Einerkomplement) Beispiel: aus 10012 wird 01102 und dann 01112 (aus 7 wird 7)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

28

4.3 Zweierkomplement-Darstellung (3)


Nachteil
fr kleinste negative Zahl ist das Zweierkomplement nicht mehr darstellbar
(1000)2 = -8 wird zu (1000)2 = 8 (?) 8 bereits auerhalb des Darstellungsbereichs (berlauf)

Addition
Einsatz von Standardaddierern fr Zahlen im Zweierkomplement

Subtraktion
vorherige Komplementbildung eines Summanden erfordert
Invertierung der Ziffern Addition von 1 kann durch gesetzten Carry-Eingang erzielt werden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

29

4.4 Subtraktion im Zweierkomplement


Addier- und Subtrahierwerk
a3 b3 a2 b2 a1 b1 a0 b0

cout s3

Standardaddierer s2 s1 s0

cin

ADD, SUB

beim Subtrahieren:
Invertieren der b-Eingnge durch XOR-Gatter Addieren von 1 durch gesetztes Carry-in

berlauferkennung: cout cin


bei Subtraktion ist gesetztes Carry-out der Normalfall

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

30

4.5 Zahlenraum der Zweierkomplement-Darstellung


Zahlenraum fr n-stellige Register
Beispiel: n=4
1111 1110 1101 1100 1011 1010 1001 1000 0111 0000 0001 0010 0011 0100 0101 0110 Binrdarstellung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

31

4.5 Zahlenraum der Zweierkomplement-Darstellung


Zahlenraum fr n-stellige Register
Beispiel: n=4
1111 15 1110 14 1101 13 0000 0 0001 1 Binrdarstellung 0010 2 3 0011 positiver Wert

1100 12 1011 11 9 7

4 0100 5 0101

10 1010

1001

8 1000

6 0110

0111

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

32

4.5 Zahlenraum der Zweierkomplement-Darstellung


Zahlenraum fr n-stellige Register
Beispiel: n=4
1111 15 1110 14 1 2 1101 13 3 1100 12 4 5 11 6 1011 7 10 1010 9 1001 0000 0 0 0001 1 0010 1 2 2 0011 3 3 4 4 0100 5 8 8 1000 7 7 6 5 0101 Binrdarstellung positiver Wert Wert im Zweierkomplement

6 0110

0111

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

33

5 Binre Multiplikation
Schriftliche Multiplikation Vorzeichenlose Multiplikation Multiplikation fr 2er-Komplement

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

34

5 Binre Multiplikation
Schriftliche Multiplikation auf Binrzahlen (rein positive Zahlen)
0011 x 1010

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

35

5 Binre Multiplikation
Schriftliche Multiplikation auf Binrzahlen (rein positive Zahlen)
0011 x 1010 0011 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

36

5 Binre Multiplikation
Schriftliche Multiplikation auf Binrzahlen (rein positive Zahlen)
0011 x 1010 0011 0000 1 0

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

37

5 Binre Multiplikation
Schriftliche Multiplikation auf Binrzahlen (rein positive Zahlen)
0011 x 1010 0011 0000 0011 + 0000 00011110 1 0 1 0 Kontrolle: 3 x 10 = 30 111102 = 30

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

38

5 Binre Multiplikation
Schriftliche Multiplikation auf Binrzahlen (rein positive Zahlen)
0011 x 1010 0011 0000 0011 + 0000 00011110 1 0 1 0 Kontrolle: 3 x 10 = 30 111102 = 30

bertragung auf den Rechner


Realisierung in Hardware: Addierer und Schieberegister Realisierung in Software: Addition und Bittest/Schieberegister
einige Prozessoren besitzen keine Multiplikationshardware (RISC)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

39

5.1 Vorzeichenlose Multiplikation


Alternative A: serielles Schaltwerk zur Multiplikation
an-1 ... n a1 n a0 bn-1 ... shift right b add clear p p1 b1 b0

n-Bit-Addierer n

Steuerwerk shift right p p0

cout

p2n-1 ... pn+1 pn pn-1 ...

Lsche p (clear p) n-mal:


ermittle b0 addiere a auf (p2n-1,...pn+1, pn) oder nicht, je nach b0 (add) verschiebe p einschlielich cout der vorherigen Addition (shift right p) (shift right b)
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

40

5.1 Vorzeichenlose Multiplikation (2)


Alternative B: Array-Multiplizierer
Schaltwerk fr das schriftliche Multiplikationsschema Beispiel: n = 4
a3 a2 a1 a0 x a3b1 a3b2 + p7 a3b3 p6 a2b3 p5 a2b2 a1b3 p4 b3 a3b0 a2b1 a1b2 a0b3 p3 b2 a2b0 a1b1 a0b2 0 p2 b1 a1b0 a0b1 0 0 p1 b0 a0b0 0 0 0 p0
UND-Verknpfung

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

41

5.1 Vorzeichenlose Multiplikation (3)


Alternative B: Array-Multiplizierer
Schaltwerk fr n = 4
sin bi cout ai FA sout b2 b3 p7 p6 p5 p4 p3 p2 p1 p0 ai bi cin a3 a2 a1 a0 b0 b1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

42

5.1 Vorzeichenlose Multiplikation (4)


Alternative C: Alternative B und Wallace-Baum von CS-Addierern
Einsatz von Carry-Save-Addierer fr die einzelnen Zeilen baumfrmige statt sequentielle Anordnung der CSA Beispiel: n = 8
z3 z2 z1 z4 z5 z6 z7 z8 CSA CSA CSA CSA CSA CSA RCA
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

z8 z7 z6 z5 z4 z3 z2 z1 CSA CSA CSA CSA RCA


a3 b3 c3 a2 b2 c2 a1 b1 c1 a0 b0 c0

CSA CSA

Wallace-Baum

FA c s
d3

FA c s
d2

FA c s
d1

FA c s
d0

CSA-Kette

zi = a * bi
Vorteil: geringere Gatterlaufzeit

FA c s

FA c s

FA c s

HA c s

Standardaddierer

Einfhrung in die Technische Informatik

43

5.1 Vorzeichenlose Multiplikation (5)


Alternative D: zweistufiges Schaltnetz fr Multiplizierer
z.B. als PROM/ROM

Schnellste Variante Extrem aufwndig


22n 2n Bits notwendig (Tabelle mit 22n Eintrgen, je 2n Bit breit)

bergang zu kleineren Blockmultiplizierer (Radixmultiplizierer)


Blockmultiplizierer fr k-Bit als ROM-Implementierung blockweises Multipliziereren Addieren der Blcke mit CSA

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

44

5.2 Multiplikation fr Zweierkomplement-Darstellung


n-Bit-breites Ergebnis bei Multiplikation auch fr Zweierkomplement
korrekt
Beispiel: 2 x 3= 6 (bei n=4)
1110 x 0011 0000 0000 1110 + 1110 00101010 0 0 1 1

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

45

5.2 Multiplikation fr Zweierkomplement-Darstellung


n-Bit-breites Ergebnis bei Multiplikation auch fr Zweierkomplement
korrekt
Beispiel: 2 x 3= 6 (bei n=4)
1110 x 0011 0000 0000 1110 + 1110 00101010 0 0 1 1 10102 = -6

Problem: berlauf Ergebnis passt meist nicht in n Bits


2n-Bit-breites Ergebnis ist nicht korrekt
001010102 = 42

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

46

5.2 Multiplikation fr Zweierkomplement (2)


Alternative A: Erweiterung der Faktoren auf 2n-Bit
Vorzeichenerweiterung
z.B. aus 1110 wird 11111110, aus 0011 wird 00000011

Nachteil
2n-Bit-breiter Addierer 2n statt n Runden/Additionen (bei seriellem Addierer)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

47

5.2 Multiplikation fr Zweierkomplement (3)


Alternative B: Addition eines Korrekturterms
statt 22n a b a (-b) = a (2n - b) = 2n a (a b) statt 22n a b (-a) b = (2n - a) b = 2n b (a b) (-a) (-b) = (2n - a) (2n - b) = 22n - 2n a - 2n b + (a b)

statt a b

Korrekturterm fr a (-b): Korrekturterm fr (-a) b: Korrekturterm fr (-a) (-b) :

22n - 2n a = 2n (2n - a) 22n - 2n b = 2n (2n - b) 2n a + 2n b - 22n

Nachteil: Zusatzaufwand

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

48

5.2 Multiplikation fr Zweierkomplement (4)


Alternative C: getrennte Behandlung des Vorzeichens
Umwandlung der Faktoren in positive Zahlen Berechnung des Ergebnisvorzeichens Anpassen des Ergebnisses

Nachteil: Zusatzaufwand

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

49

5.2 Multiplikation fr Zweierkomplement (5)


Alternative D: Verfahren nach Booth
Idee: a x 0111 = a x 1000 a x 0001
gilt auch fr skalierte Bitfolge, z.B. a x 011100 = a x 100000 a x 000100 Folge von 1-Bits lsst sich durch eine Addition und eine Subtraktion multiplizieren

Algorithmus nach Booth


betrachte alle Bits bi und gleichzeitig Bit bi-1 (b-1 wird als 0 definiert) (bi, bi-1)2 = 012 (bi, bi-1)2 = 102 (bi, bi-1)2 = 002 addiere a x 2i (Beginn einer 1-Folge) subtrahiere a x 2i (Ende einer 1-Folge) oder tue nichts (bi, bi-1)2 = 112

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

50

5.2 Multiplikation fr Zweierkomplement (6)


Alternative D: Verfahren nach Booth
Subtraktion durch Addition des Zweierkomplements gltige Ergebnisse auch fr negative Zahlen (Zweierkomplement) n-Bit breiter Addierer ausreichend durch geschicktes Schieben
Multiplikation mit 2i entspricht Schiebeoperation um i Stellen Schiebeoperation mit Vorzeichenpropagierung (Vorzeichen wird verdoppelt)

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

51

5.2 Multiplikation fr Zweierkomplement (7)


Alternative D: Verfahren nach Booth
Beispiel: 2 x 3 = 6 (bei n = 4)
1110 x 00110 00000000 - 1110 Start 00110

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

52

5.2 Multiplikation fr Zweierkomplement (7)


Alternative D: Verfahren nach Booth
Beispiel: 2 x 3 = 6 (bei n = 4)
1110 x 00110 00000000 - 1110 00100000 00010000 Start 00110 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

53

5.2 Multiplikation fr Zweierkomplement (7)


Alternative D: Verfahren nach Booth
Beispiel: 2 x 3 = 6 (bei n = 4)
1110 x 00110 00000000 - 1110 00100000 00010000 00001000 Start 00110 Shift 0011 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

54

5.2 Multiplikation fr Zweierkomplement (7)


Alternative D: Verfahren nach Booth
Beispiel: 2 x 3 = 6 (bei n = 4)
1110 x 00110 00000000 - 1110 00100000 00010000 00001000 + 1110 11101000 11110100 Start 00110 Shift 0011 Shift 0011 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

55

5.2 Multiplikation fr Zweierkomplement (7)


Alternative D: Verfahren nach Booth
Beispiel: 2 x 3 = 6 (bei n = 4)
1110 x 00110 00000000 - 1110 00100000 00010000 00001000 + 1110 11101000 11110100 11111010 111110102 = -6 Start 00110 Shift 0011 Shift 0011 Shift 0011 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

56

5.2 Multiplikation fr Zweierkomplement (8)


Alternative D: Verfahren nach Booth
Beispiel: 3 x -2 = 6 (bei n = 4)
0011 x 11100 00000000 00000000 Start 11100 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

57

5.2 Multiplikation fr Zweierkomplement (8)


Alternative D: Verfahren nach Booth
Beispiel: 3 x -2 = 6 (bei n = 4)
0011 x 11100 00000000 00000000 - 0011 11010000 11101000 Start 11100 Shift 1110 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

58

5.2 Multiplikation fr Zweierkomplement (8)


Alternative D: Verfahren nach Booth
Beispiel: 3 x -2 = 6 (bei n = 4)
0011 x 11100 00000000 00000000 - 0011 11010000 11101000 11110100 Start 11100 Shift 1110 Shift 1110 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

59

5.2 Multiplikation fr Zweierkomplement (8)


Alternative D: Verfahren nach Booth
Beispiel: 3 x -2 = 6 (bei n = 4)
0011 x 11100 00000000 00000000 - 0011 11010000 11101000 11110100 11111010 111110102 = -6 Start 11100 Shift 1110 Shift 1110 Shift 1110 Shift

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

60

6 Binre Division
Schriftliche Division Restoring Division Non-Restoring Division Division in modernen Prozessorarchitekturen

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

61

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 =

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

62

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 1 - 1001 0011

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

63

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 10 - 1001 00111 - 1001 1110 Unterlauf / negatives Ergebnis

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

64

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 10 - 1001 00111 - 1001 1110 Unterlauf / negatives Ergebnis + 1001 Korrektur 0111

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

65

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 101 - 1001 00111 - 1001 1110 + 1001 01111 - 1001 0110

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

66

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 1011 - 1001 00111 - 1001 1110 + 1001 01111 - 1001 01101 - 1001 0100

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

67

6 Binre Division
Papier- und Bleistift-Version adaptiert
Beispiel: 103 / 9 = ?
01100111 / 1001 = 1011 - 1001 00111 Quotient - 1001 1110 + 1001 01111 - 1001 103 / 9 = 11 Rest 4 01101 Rest - 1001 0100

Kontrolle :

Verfahren auch Restoring-Division genannt, da durch Korrektur


ursprnglicher Dividend wiederhergestellt wird

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

68

6 Binre Division (2)


Mathematisch
Dividend / Divisor = Quotient + Rest / Divisor
oder Dividend = Quotient x Divisor + Rest

hufig verlangt: Rest hat gleiches Vorzeichen wie Dividend berlauf mglich, wenn Quotient nicht so breit wie Dividend

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

69

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 0 qi = 0 und Korrektur falls a b < 0

Nachholen signifikanter Ziffern zum Zwischenergebnis durch


Schiebeoperation

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

70

6.1 Restoring Division (2)


Serielles Dividierwerk fr vorzeichenlose Zahlen
bn-1 ... n cout b1 n b0 add/sub load q q1 Steuerwerk shift left q q0
q=a/b

n-Bit-Addierer/ Subtrahierer n

q2n-1 ... qn+1 qn qn-1 ...

insert_q0

Lade q: obere Hlfte = 0, untere Hlfte = a (load q) n-mal:


schiebe q nach links (shift left q) subtrahiere b von obere Hlfte q (sub): negativ: q0 = 0 und addiere b zurck (add) positiv: q0 = 1

Ergebnis: obere Hlfte q = Rest, untere Hlfte q = Quotient


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

71

6.1 Restoring Division (3)


Vorzeichenbehaftete Division mit Zweierkomplement-Darstellung
Verfahren im Prinzip identisch jedoch:
unterschiedliche Erkennung von Unterlufen Propagierung des Vorzeichens in oberer Hlfte von q beim Laden

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

72

6.2 Non-Restoring Division


Restoring Division
Divisor wird subtrahiert falls Unterlauf (Ergebnis negativ) Divisor wird wieder addiert im nchsten Durchlauf wird die Hlfte des Divisor subtrahiert
(Linksshift des Dividenden vor der Subtraktion, entspricht *= 21)

Idee fr Non-Restoring Division


bei Unterlauf wird stattdessen Hlfte des Divisors addiert Ersparnisse einer Addition bzw. Subtraktion

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

73

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 Quotientenbits Pentium-Bug von 1994

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

74

7 BCD-Arithmetik
BCD-Code
4-Bit Darstellung von Dezimalzahlen im Rechner
Darstellung 0000 0001 0010 0011 0100 0101 0110 0111 Wert 0 1 2 3 4 5 6 7 Darstellung 1000 1001 1010 1011 1100 1101 1110 1111 Wert 8 9 verbotene Codes

Zahlendarstellung mit mehreren 4-Bit breiten Ziffern, z.B.


0001 0011 1001 entspricht der Dezimalzahl 139

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

75

7 BCD-Arithmetik
Vorteil
leichtes Umwandeln von Dezimalzahlen in BCD-codierte Zahlen

Rechnen mit BCD-codierten Zahlen


spezielle Rechenwerke Untersttzung in gngigen Prozessoren
zumindest fr Addition und Subtraktion

Nachteil
oft nicht alle Rechenoperationen in Hardware untersttzt Rechenoperation in Software ineffizient Verschwendung von Speicherplatz

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

76

8 Festkomma-Zahlendarstellung
Feste Kommaposition bei der Darstellung von Zahlen
Beispiel: n = 4, Komma an Position k = 2
Registerinhalt 0110 bedeutet 01,102 bedeutet 1,5

allgemeine Wertberechnung (fr positive Zahlen):


(znk 1,...,z1,z0 ,z 1,...,z k )2 = zi 2i

negative Zahlen analog

Rechenoperationen
Addition und Subtraktion unverndert Multiplikation
Ergebnis hat 2k Nachkommastellen

Division
Einfgen des Ergebniskommas sobald erste Nachkommastelle des Dividenden berhrt wird

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

77

8 Festkomma-Zahlendarstellung
Darstellungsbereich
Fr n=8, k=4
0 = 00000000 1 = 00010000 10 = 10100000 0,5 = 00001000 0,625 = 00001010 0,0625 = 00000001 15,9375 = 11111111
Nachkomma-Auflsung Vorkomma-Auflsung

Idee
Kommaposition variabel Zusatzaufwand fr die Positionskodierung D.h. geringere Auflsung, aber grerer Darstellungsbereich

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

78

9 Fliekomma-Zahlendarstellung
Darstellung groer und kleiner Zahlen mit gleichem Verfahren
Idee
Darstellung einer Anzahl von Ziffern (Mantisse) plus Darstellung der Position des Kommas (Fliekomma, Gleitkomma) Beispiele
12345, k = 2 : 12345, k = 5 : 12345, k = 4 : 123,45 0,12345 123.450.000

Beispiel: wissenschaftliche Notation des Taschenrechners


1,2345 x 104 entspricht 12.345 Exponent zur Basis 10 gibt Position des Kommas an

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

79

9 Fliekomma-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 heit normalisiert, wenn gilt: 1 m < b Beispiel fr b = 10:
12.345 wird dargestellt als 1,2345 x 104 Wert der Mantisse zwischen 1 und 10

Beispiel fr b = 2:
3,625 wird dargestellt als 1,11012 x 21 Wert der Mantisse zwischen 1 und 2
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

80

9.1 Binre Darstellung von Fliekommazahlen


Freiheitsgrade bei der Darstellung
Gesamtlnge der Darstellung Lnge der Exponentendarstellung (Lnge 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
hher als der tatschliche Wert (Bias) e = eDarst - B

Beispiel: Bias B = 63, Exponent e = 8 Darstellung eDarst = 55 Vorteil: durchgngiger positiver Nummernraum fr die Charakteristik

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

81

9.2 IEEE 754 Darstellung


Standard zur Vereinheitlichung der unterschiedlichen Darstellungen Aufbau einer IEEE 754 Fliekommazahl
s e m Mantisse (Lnge M) Exponent (Lnge E) Vorzeichen
allgemeine Wertberechnung: x = (-1)s x 1,m x 2e-B erste Ziffer (immer 1) wird nicht in Mantisse gespeichert Bias B hngt von der Lnge der Exponentendarstellung E ab:
B = 2E-1 - 1

gltige Charakteristiken: 0 < e < 2E - 1


(Werte 0 und 2E - 1 sind reserviert)

http://steve.hollasch.net/cgindex/coding/ieeefloat.html
Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

82

9.2 IEEE 754 Darstellung


Spezielle Werte
Null / Zero
Vorzeichen s, e = 0 , m = 0 (positive und negative Null)

Unendlich / Infinity
symbolische Darstellung fr unendlich groe Zahl Vorzeichen s, e = 2E - 1, m = 0 (positiv und negativ Unendlich)

NaN / Not a number


Vorzeichen s, e = 2E - 1, m 0

denormalisierte Zahlen (kleiner als kleinste normalisierte Zahl)


Vorzeichen s, e = 0, m 0 Wertberechnung: (-1)s x 0, m x 21-B

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

83

9.2 IEEE 754 Darstellung


Formatdefinitionen
Single Precision Gesamtlnge (N) Vorzeichen Mantissen (M) Exponent (E) Bias (B) xmin(norm.) xmin(denorm.) xmax 32 Bit 1 Bit 23 Bit 8 Bit 127 2-126 10-38 2-149 10-45 (2 - 2-23) x 2127 1038 Double Precision 64 Bit 1 Bit 52 Bit 11 Bit 1023 2-1022 10-308 2-1074 10-324 (2 - 2-52) x 21023 10308 Quad Precision 128 Bit 1 Bit 112 Bit 15 Bit 16383 2-16383 10-4932 2-16492 10-4965 (2 - 2-112) x 216383 104932

zustzliches Format: Extended Precision zwischen Double und Quad


(herstellerabhngig definierbar)

Vgl. zu Festkommadarstellung bei z.B. 32bit


Prof. Dr. Ulrich Brning
LS Rechnerarchitektur

Einfhrung in die Technische Informatik

84

9.2 IEEE 754 Darstellung


Manche Architekturen haben
herstellerspezifisches Format
Grorechner wie S/390 von IBM
IEEE 754 S/390 M 24bit E 7bit

VAX Cray-Supercomputer (einige)

M 23bit

E 8bit

Nicht alle dezimal runden


Zahlen darstellbar

12,45

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

85

9.3 Rechenoperationen
Beispiel IEEE 754 Darstellung Addition/Subtraktion
denormalisiere Zahl mit kleinerem Exponent
d.h. Exponenten auf gleichen Wert bringen

addiere oder subtrahiere Mantissen normalisiere Mantisse berechne Vorzeichen des Ergebnisses

Multiplikation/Division

multipliziere/dividiere Mantissen addiere/subtrahiere Exponenten normalisiere Mantisse berechne Vorzeichen des Ergebnisses

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

86

5.2 Multiplikation nach Booth (Beispiel)


Beispiel: 10 x -13 = -130 (bei n = 5)
01010 x 10011 a b 01010 x 100110 p 0000000000 b-1mit 0 hinzufgen, um letzten 10 bergang betrachten zu knnen Resultat p mit 10 bit initialisieren von b 100110 die bits b0 und b-1 betrachten 10 -> subtrahiere a x 2i (Ende einer 1-Folge) 2K von a -> 10110 danach nchste Op Position nach links erster Schritt fertig von b 100110 die bits b1 und b0 betrachten 11 -> nichts tun und Op Position nach links

0000000000 1111110110 1111110110 1111110110 ____00000_ 1111110110

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

5.2 Multiplikation nach Booth (Beispiel)


Beispiel: 10 x -13 = -130 (bei n = 5)
1111110110 ___01010__ 1 0000011110 0000011110 __00000___ 0000011110 0000011110 110110____ 1101111110 01 -> addiere a x 2i (Beginn einer 1-Folge) danach nchste Op Position nach links Schritt fertig 00 -> tue nichts danach nchste Op Position nach links Schritt fertig 10 -> subtrahiere a x 2i (Ende einer 1-Folge) Ergebnis fertig -130 dezimal

Prof. Dr. Ulrich Brning


LS Rechnerarchitektur

Einfhrung in die Technische Informatik

Vorlesung Einfhrung in die Technische Informatik

Seite 1

Vorlesung Einfhrung in die Technische Informatik

Seite 2

Rechnerarchitektur
Sequentielle Rechner - von-Neumann-Architektur Das grundlegende Organisationskonzept der meisten Computer, die gegenwrtig benutzt und auf dem Markt angeboten werden, ist das etwas 50 Jahre alte Konzept von von-Neumann, Burks, und Goldstine.
Burks, A>W., Goldstine, H.H., von Neumann, J., Preliminary Discussion of the Logical Design of an Electronic Computing Instrument, in: Taub, A.H. (ed.): Collected Works of John von Neumann, vol. 5, Mac Millan, New York, 1963, pp 34-79. Definition :

Rechnerarchitektur

Rechnerarchitektur [Giloi 93] Eine Rechnerarchitektur ist bestimmt durch ein Operationsprinzip fr die Hardware und die Struktur ihres Aufbaus aus den einzelnen Hardware-Betriebsmitteln. Operationsprinzip Das Operationsprinzip definiert das funktionelle Verhalten der Architektur durch Festlegung einer Informationsstruktur und eine Kontrollstruktur. (Hardware) - Struktur Die Struktur einer Rechnerarchitektur ist gegeben durch Art und Anzahl der Hardware-Betriebsmittel sowie die sie verbindenden Kommunikationseinrichtungen.

Definition :

Hauptgrund fr die Langlebigkeit des Konzepts ist die einzigartige Verbindung von Einfachheit und Flexibilitt. Das folgende Blockschaltbild erlutert das Grundkonzept, wobei der Einfachheit halber angenommen wird, da alle Datentransporte ber eine gemeinsame Verbindungseinrichtung (Bus) stattfinden.

Definition :

CPU
Befehlsprozessor Datenprozessor I/O-Prozessor

Befehle

Daten

Daten

Verbindungseinrichtung (Bus)

Befehle/Daten

- Kontrollstruktur : Die Kontrollstruktur einer Rechnerarchitektur wird durch Spezifikation der Algorithmen fr die Interpretation und Transformation der Informationskomponenten der Maschine bestimmt. - Informationsstruktur : Die Informationsstruktur einer Rechnerarchitektur wird durch die Typen der Informationskomponenten in der Maschine bestimmt, der Reprsentation dieser Komponenten und der auf sie anwendbaren Operationen. Die Informationsstruktur lt sich als Menge von abstrakten Datentypen spezifizieren. - Hardware-Betriebsmittel : Hardware-Betriebsmittel einer Rechnerarchitektur sind Prozessoren, Speicher, Verbindungseinrichtungen und Peripherie. - Kommunikationseinrichtungen : Kommunikationseinrichtungen sind die Verbindungseinrichtungen, wie z.B.: Busse, Kanle, VNs ; und die Protokolle, die die Kommunikationsregeln zwischen den Hardware-Betriebsmittel festlegen. Neben der Struktur ist das Operationsprinzip einer Rechnerarchitektur die wichtigste Festlegung des funktionellen Verhaltens der Architektur. Um das Operationsprinzip der vonNeumann Architektur angeben zu knnen, mssen wir die Informationsstruktur und die Kontrollstruktur betrachten. Grundstzlich ist die kleinste identifizierbare Informationseinheit in einem Rechner der boolesche Vektor der Lnge n (n 1), wobei hufig 8 bit zusammengefat die kleinste adressierbare Einheit, das Byte, darstellen. In der von-Neumann-Maschine knnen diese booleschen Vektoren die folgenden Informationstypen reprsentieren: - Befehle (Anweisungen an die Hardware) - Daten (Zahlen oder Zeichen) - Adressen von Speicherzellen Die von-Neumann-Maschine kann einem Speicherzelleninhalt nicht ansehen, was er reprsentiert. Die Interpretation eines solchen Maschinenwortes erfolgt auf grund des Zustands, indem sich die Maschine zum Zeitpunkt der Interpretation befindet. Die aus dem Speicher geholte Information wird abwechselnd als Befehl oder als Datum interpretiert, wobei beim Start eines Programms mit der Befehlsinterpretation begonnen wird.

Speicher

Auf der Ebene der Rechnerstruktur fat man i.a. den Befehlsprozessor und den Datenprozessor zu einer Einheit zusammen, die zentrale Recheneinheit (central processing unit CPU) genannt wird. Die von-Neumann-Architektur kann als die Rechnerorganisation des minimalen Hardwareaufands bezeichnet werden, bestehend aus folgenden Einheiten: - CPU: sie interpretiert die Befehle des Programms und fhrt sie aus. - Speicher: er enthlt das Maschinenprogramm und die dazugehrigen Daten. - I/O-Prozessor: er stellt die Verbindung mit der Auenwelt her und verwendet dazu die peripheren Ein/Ausgabegerte. - Datenwege: sie dienen dem Informationaustausch zwischen den Komponenten und enthalten sowohl Datenpfade, als auch Adre- und Kontrollpfade zur Steuerung des Systems. Das ist die einfachste Form der physikalischen Struktur der von-Neumann-Architektur.

Vorlesung Einfhrung in die Technische Informatik

Seite 3

Vorlesung Einfhrung in die Technische Informatik

Seite 4

Rechnerarchitektur
Ablauf der Befehlsausfhrung
Programmanfang Program Counter PC

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 einer elementaren Operation des Rechners. Alle Anweisungen aus hheren Programmiersprachen mssen auf Maschinenbefehle abgebildet werden (->Compiler). Ein Maschinenbefehl besteht aus einem Bitmuster, das unmittelbar vom Prozessor interpretiert werden kann. Ein Teil des Bitmusters beschreibt die gewnschte Operation (Operationscode), ein anderer Teil die Operandenadresse(n), also die Adresse(n) der Speicherelemente, die durch die Operation verknpft werden sollen. Bei den Maschinenbefehlen unterscheidet man zwei grundlegende Typen: Maschinenbefehle mit fester Lnge Maschinenbefehle mit variabler Lnge
nchsten Befehl aus dem Speicher holen

ersten Befehl aus Speicher holen

Befehl in das Befehlsregister bringen

Ausfhrung eventueller Adrenderungen und ggf. Auswertung weiterer Angaben im Befehl

evtl. Operanden aus dem Speicher holen

Umsetzen des Operationscodes in Steueranweisungen

Bei den Maschinenbefehlen mit fester Lnge ist der Operandenteil ebenfalls fest und somit sind nur Adressierungsverfahren mglich, deren Operandenadresse in das Befehlsformat hineinpassen.

PC+1 PC:=BRA

Operation ausfhren, Befehlszhler um 1 erhhen oder Sprungadresse einsetzen

OPC
Operation Code

OPA
Operand Addresses

z.B. 32-bit

Programmende? Ja

Nein

Maschinenbefehle mit variable Lnge nutzen je nach Adressierungsart unterschiedliche Befehlslngen, wobei die folgenden Worte die zustzlichen Operandenadresse enthalten.

OPC Ende OPC


EA ADR ext. fields

z.B. 16-bit und n x 16-bit


effective Address

Die abstrakte von-Neumann-Maschine (der I/O-Prozessor wird nicht bercksichtigt) besteht aus dem Befehls-und Datenprozessor und aus dem Speicher. Alle Speicherzellen (Hauptspeicher und Register) stellen zusammen das Zustandsregister der Maschine dar. Die abstrakte von-Neumann-Maschine ist also nichts anderes als ein endlicher Automat (FSM), dessen Zustnde durch den jeweiligen Speicherinhalt gegeben sind, wobei mit jedem Zustandsbergang immer nur der Inhalt von genau einer Speicherzelle verndert werden kann. sequentielle Befehlsabarbeitung mit einem Datum Dieses Prinzip der maximalen Flexibilitt fhrt zu einem sehr hohen Transport von Maschinenworten zwischen Speicher und CPU, der sich leistungsmindernd auswirkt. Er wird vonNeumann-Flaschenhals (von-Neumann-bottleneck) genannt.

Operation Code

Operand Addresses

Vorlesung Einfhrung in die Technische Informatik

Seite 5

Vorlesung Einfhrung in die Technische Informatik

Seite 6

Rechnerarchitektur
Maschinentypen Ist im Befehlsformat kein Operandenfeld fr die Adressierung vorgesehen, so nennt man diese Architektur - 0-Adre-Maschine oder Stack-Maschine Die Befehle beziehen sich immer implizit auf spezielle Register, in diesem Fall auf den topof-stack. Ist im Befehlsformat ein Operandenfeld fr die Adressierung vorgesehen, so kann man neben dem impliziten Register einen Speicheroperanden referenzieren. Monadischen Operationen werden auf das implizite Register, den Akkumulator, angewendet. Dyadischen Operationen verknpfen den Inhalt des Akkumulators mit dem Inhalt der durch die Operandenadresse referenzierten Speicherzelle. Diese Architektur heit - Ein-Adre-Maschine oder Akkumulator-Maschine Die von-Neumann-Architektur ist eine solche Ein-Adre-Maschine.
ADR ext. fields

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, SpeicherSpeicher-Transporte als Speichern. Transport mit Sofortoperanden dient zum Initialisieren von Register- oder Speicherinhalten. Arithmetische Befehle; sie dienen dazu, Operanden gem den vom Prozessor untersttzten Zahlen/Datentypen zu manipulieren (Betragszahlen, ganze Zahlen, Gleitkommazahlen, Bytes; Addition, Subtraktion, Multiplikation, Division, Invertierung usw.). Vergleichsbefehle; hier werden zwei Operanden gem einer Ordnungsrelation und/oder der Bitmustergleichheit miteinander verglichen. Das Ergebnis wird als Anzeige im Statuswort des Prozessors abgelegt (Anzeigen <, >, =). Sprungsbefehle; der unbedingte Sprung berschreibt den Befehlszhler immer mit einem angegebenen Operanden, der bedingte nur, wenn die Anzeigen im Statuswort des Prozessors einer als Sofortoperand angegebenen Maske entsprechen. Wichtig ist weiter der Unterprogrammsprung, der an die angegebene Programmadresse verzweigt, den alten Befehlszhlerstand und die Rcksprungadresse aber vorher rettet (in ein angegebenes Register,oder auf den Stack). Unter Umstnden gibt es auch spezielle Schleifenbefehle, z. B. "dekrementiere und springe wenn grer 0". Bitmuster-Befehle; sie dienen dazu, Operanden gem einer Bitmusteroperation zu manipulieren (Bitmuster - UND/ODER/XOR/NEGIEREN, Schieben). Bit-Befehle; Transportbefehle zwischen einem Anzeigebit des Statusworts und Bitstellen in Registern oder Speicher (Bit testen, Bit schreiben) bzw. von Sofortoperand zu Bitstelle (Bit setzen, Bit lschen). E/A-Befehle; Transportbefehle zwischen E/A-Steuerung und Registern, bzw. Speicher. Spezialbefehle; sie beeinflussen die Betriebsart des Prozessors durch Laden spezieller Register (z. B. Basisadreregister), dienen der Unterbrechungsbehandlung und stehen i. d. R. nur privilegierten Programmen (z. B. dem Betriebssystem) zur Verfgung.

z.B. 16-bit und n x 16-bit


effective Address

OPC
Operation Code

EA

Operand Addresses

Sind im Befehlsformat zwei Operandenfelder fr die Adressierung vorgesehen, so kann man bei dyadischen Operationen direkt zwei durch den Befehl referenzierten Speicherzellen verknpfen. Diese Architektur heit - Zwei-Adre-Maschine
Operandenfelder ADR ext. fields

OPC Beispiele
Befehl:

EA1

EA2

Destination Source

ADD D0,D1

Befehl:

ADD D0,(A0)

Befehl:

ADD (A1),(A0)

addiert die zwei Register D0 und D1 das Resultat wird in D0 abgelegt. D0 ist damit berschrieben

addiert das Register D0 mit dem Inhalt der Speicherzelle, wo A0 hinzeigt das Resultat wird in D0 abgelegt. D0 ist damit berschrieben

addiert den Inhalt der Speicherzelle (A1) mit dem Inhalt der Speicherzelle, wo A0 hinzeigt das Resultat wird in der Speicherzelle (A1) abgelegt. Die Speicherzelle (A1) ist damit berschrieben

Rn <- Rn + Rx

Rn <- Rn + Mem(A0)

Mem(A1) <- Mem(A1) + Mem(A0)

Die Drei-Adre-Maschine kann drei Operanden pro Befehl referenzieren. wird aber zumeist nur als Register-Register-Maschine mit festem Befehlsformat realisiert (->RISC).

Vorlesung Einfhrung in die Technische Informatik

Seite 7

Vorlesung Einfhrung in die Technische Informatik

Seite 8

Rechnerarchitektur
Adressierungstechniken immediate; Sofortoperand; im Befehl steht nicht die Speicheradresse des Orts das Operanden, sondern der Operand selbst. Mit Sofortoperanden knnen Konstanten in eine Berechnung eingebracht werden. short immediate; Kurzer Sofortoperand; der im Befehl stehende Sofortoperand besitzt besonders kurze Bitlnge (z. B. 4 oder 8 Bit), hiermit knnen gut die hufigen Konstanten 0, 1 eingebracht werden. register direct; Register direkt; der Operand steht in dem angegebenen Register. Speicher direkt; der Operand steht in der per Adresse angegebenen Speicherzelle. Die Adresse steht direkt im Adreteil des Befehlswortes. register indirect; Register indirekt; im angegebenen Register findet sich die Speicheradresse des Operanden. Speicher indirekt; in der per Adresse angegebenen Speicherzelle steht die Speicheradresse des Operanden. register indirect with displacement; ... mit Distanz; zur Operandenadresse wird eine im Befehl stehende Konstante hinzuaddiert. register indirect with index; ... indiziert; zur Operandenadresse wird der Inhalt eines zustzlich angegebenen Indexregisters hinzuaddiert. ... Basisregister relativ; zur Operandenadresse wird der Inhalt eines besonderen Registers (des Basisregisters), das nicht ausdrcklich im Befehl genannt wird, dazuaddiert. program counter indirect;... Befehlszhler relativ; zur Operandenadresse wird der momentane Inhalt des Befehlszhlers hinzuaddiert. Register indirekt mit Postinkrement; (An)+; nach dem Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 erhht. Register indirekt mit Prdekrement; -(An); vor dem Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 vermindert, dann wird der Inhalt als Adresse des Operanden ausgewertet. Mit den letzten beiden Adressierungsarten knnen gut die Stackoperationen "Push" und "Pop" realisiert werden (->Stack).

Rechnerarchitektur
Adressierungstechniken des MC 68000 The addressing modes of a CPU determine the way in which a processor can reference an operand held in one of its registers or in memory. For each operand, the addressing mode specifies how the processor is to locate or calculate the actual address of the operand. This actual address is called the effective address EA.
EA-field 6-bit

8 Datenregister und 8 Adreregister adressierbar

3-bit

3-bit

Nr. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

EA-Modus 000 001 010 011 100 101 110 111 111 111 111 111 111 111 111

EA-Reg. Reg.-Nr. Reg.-Nr. Reg.-Nr. Reg.-Nr. Reg.-Nr. Reg.-Nr. Reg.-Nr. 000 001 010 011 100 101 110 111

Adressierungsart Datenregister direkt Adressierregister direkt Adressierregister indirekt (ARI) ARI mit Postinkrement ARI mit Predekrement ARI mit Adressdistanz ARI mit Adressdistanz und Index Absolut kurz Absolut lang PC relativ mit Adressdistanz Konstante, Statusregister (nicht verwendet) (nicht verwendet) (nicht verwendet)

Mnemonik Dn An (An) (An)+ -(An) d16(An) d8(An,Rx) $XXXX d16(PC) *, SR, CCR
16-bit

$XXXXXXXX 32-bit

PC rel. mit Adressdistanz u. Index d8(PC,Rx)

bersicht der Adressierungsarten

Die groe Anzahl der Adressierungsmodi ist typisch fr die Generation der ersten Mikroprozessoren, die mehr oder weniger nach dem Vorbild der PDP11 entworfen wurden. Ihre Komplexitt und die teilweise damit verbundene lange Ausfhrungszeit eines Befehls fhrte zu der Entwicklung der -> Load/Store-Architekturen.

Vorlesung Einfhrung in die Technische Informatik

Seite 9

Vorlesung Einfhrung in die Technische Informatik

Seite 10

Rechnerarchitektur
Adressierungsart "Register direkt". Die Operandenadresse ist ein Register (Datenregister, Adreregister, Statusregister). Beispiel:
Befehl
15

Rechnerarchitektur

MOVE.x
12 11 6 5 0

Operad Size EA2 EA1

Generation: Assembler syntax: Mode: Register: Data register: Number of extension words:

EA = Dn Dn 000 n Dn 0

31 Operand

00xx

.B .W .L

8 bit 16 bit 32 bit


Generation: Assembler syntax: Mode: Register: Address register: Number of extension words: EA = An An 001 n An 0 31 Operand 0

MOVE DO,D3 gleichbedeutend mit: MOVE.W DO,D3


EA2 Befehl Datenlnge
Adresse (Ziel)

EA1
Adresse (Quelle)

Operanden
Generation: Assembler syntax: Mode: Register: Address register: EA = (An) (An) 010 n An

Schematische Darstellung: vor Ausfhrung des Befehls:


Prozessor Programmspeicher
15 8 7 0

31 Memory address

nach Ausfhrung des Befehls:


Prozessor

Programmspeicher
15 8 7 0

31 Memory address: Number of extension words: Operand 0

DO D3

12345678 87654321

8004 8006

36

00

DO 12345678 D3 87654321

DO D3

12345678 12345678

8004 8006

36

00

nchster Befehl

nchster Befehl

Generation: Datenspeicher
15 8 7 0

Datenspeicher
15 8 7 0

Assembler syntax: Mode: Register: Address register:

EA = (An) An = An + Size (An)+ 011 n An

31 Memory address

PC

00008004

PC

00008006

Operand length (1,2, or 4)

+
31 0 Operand 0

Memory address: Number of extension words:

Vorlesung Einfhrung in die Technische Informatik

Seite 11

Vorlesung Einfhrung in die Technische Informatik

Seite 12

Rechnerarchitektur
Registermodell Programmiermodell mit demn im User-Mode ansprechbaren Registern. Im SupervisorMode sind weitere Register vorhanden, die nur mit privilegierten Befehlen bearbeitet werden knnen. Statusregister des MC68000

Rechnerarchitektur

Statusregister (SR) System-Byte D0 D1 D2 D3 D4 D5 D6 D7 31 16 15 0 A0 A1 A2 A3 A4 A5 A6 A7 A7 0 PC 15 SYSTEM BYTE Supervisor Mode 8 7 CCR 0 SR Statusregister Programmzhler Anwender-Byte (CCR)

31

16 15

0 15 14

Acht DatenRegister TraceBetriebsart SupervisorBit

13 12

11

10

8 7 6 5

I2 I1 I0
Extend (Erweiterung) Negativ

X N Z V C

Interrupt-Maske Bedingungscodes (Condition Codes) Zero (Null) berlauf (Overflow) Carry (bertrag) davon ein Stackpointer

Acht AdressRegister

31

USER STACK POINTER SUPERVISOR STACK POINTER 24 23

Supervisor and User Byte of status register System- und Anwender-Byte im Statusregister

USER BYTE

User Mode

Das CPU 32 Manual, das die gesamten Befehle und Adressierungsarten des MC68000 Prozessors enthlt, findet man im "Netz" unter folgender URL: http://mufasa.informatik.uni-mannheim.de/lsra/tools/bsvc/bsvc.html .

Vorlesung Einfhrung in die Technische Informatik

Seite 13

Vorlesung Einfhrung in die Technische Informatik

Seite 14

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 (the big 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. Big Endian Bytes
Base Address : 800 800 B0 804 B4 B0 = Byte 0 etc. 805 B5 801 B1 806 B6 802 B2 807 B7 803 B3 804 B4 800 B0 805 B5 801 B1 806 B6 802 B2 807 B7 2.Fetch 803 B3

Rechnerarchitektur
Memory Alignment Die Ausrichtung von Datenobjekten auf Speicheradressen nennt man Alignment. Die Adressierung von Datenobjekten im Speicher erfogt i.A. auf der Basis der kleinsten Einheit, meistens dem Byte. Grere Datentypen knnten damit an jeder mglichen Byteadresse beginnen. Ist die Datenbreite des Speichers z.B. 32 bit, so knnte ein long word Operand, der auf einer ungeraden Byteadresse beginnt (-----01)2 zu mehreren Speicherzugriffen fhren, bei denen nur Teile des Operanden geholt werden knnen. Architekturen, die solche Zugriffe untersttzen, haben keine Restriktionen auf die Anordnung der Datenobjekte im Speicher (unrestricted data alignment). Der Nachteil ist, das die Anzahl der erforderlichen Hauptspeicherzugriffe erhht wird. Address of Longword = 801 800
804 LLL0 LHH0 = Longword 0, High Word, High Byte LHL0 = Longword 0, High Word, Low Byte LLH0 = Longword 0, Low Word, High Byte LLL0 = Longword 0, Low Word, Low Byte etc. WH1 807 WL3 WH3

Little Endian

Longwords (32 bit)


801 802 803 LHH0 LHL0 LLH0 805 806 807 1.Fetch

Words (16 bit)


800 WH0 804 WH2 805 WL2 801 WL0 806 WH3 802 WH1 807 WL3 803 WL1 804 WL2 800 WL0 805 WH2 801 WH0 806 802 WL1 803

WHo = Word 0, High Byte WLo = Word 0, Low Byte etc.

Longwords (32 bit)


800 LHH0 804 LHH1 805 LHL1 801 LHL0 806 LLH1 802 LLH0 807 LLL1 803 LLL0 804 LLL1 800 LLL0 805 LLH1 801 LLH0 806 LHL1 802 LHL0 807 LHH1 803 LHH0

Will man diesen Nachteil vermeiden, so mu man bestimmte Restriktionen fr die Anordnung der Datenobjekte im Speicher einfhren. Dieses Alignment ist aus Leistungsgrnden und zur Vereinfachung der Hardware des Speicherports sehr wichtig. Damit verbietet man eine Anordnung des Longwords wie im obigen Beispiel. Eine solche Anordnung der Datenobjekte im Speicher nennt man dann missaligned. Versucht man auf ein lngeres Datenobjekt mit einer missaligned Adresse zuzugreifen (was die Hardware nicht kann!!), so wird eine Ausnahmebehandlung (Exception) ausgelst, der sogenannte Missaliged Trap (->Trap). Die 68xxx -Prozessorfamilie hat je nach Implementierung unterschiedliche Alignments, wobei zumindest die Instruktionen immer auf 16-bit Kanten beginnen mssen. Der 68000 Simulator erwartet auch fr die Daten ein 16-bit Alignment. Die meisten Architekturen benutzen als minimales Alignment die Wortbreite ihrer Register. Die Assemblerdirektive fr das Erzwingen eines Alignments lautet: .align 2 Hierbeit stellt 2 die Anzahl der Bytes fr das Memory Alignment dar.

LHH0 = Longword 0, High Word, High Byte LHL0 = Longword 0, High Word, Low Byte LLH0 = Longword 0, Low Word, High Byte LLL0 = Longword 0, Low Word, Low Byte etc.

When operating within one machine, the byte sex is normally unnoticable. Byte order is a problem when exchanging data among machines with different orderings. A special protocol is required to type tag all data types larger than bytes. These tags allow the rearrangement of the byte order for the machine. This can be performed at the sending or the receiving side (-> XDR Protocol).

Vorlesung Einfhrung in die Technische Informatik

Seite 15

Vorlesung Einfhrung in die Technische Informatik

Seite 16

Befehlsliste und Effekte auf CCR


Mnemonic Operation Assembler Syntax Conditioncodes X N Z V O ABCD Addition dezimal mit Erweiterungsbit ADD Addiere binr ABCD Dy, Dx ABCD-(Ay), -Ax ADD.s<ea>,Dn ADD.sDn,<ea> ADDA ADDI ADDQ ADDX Addiere Adresse Addiere direkt Addiere schnell Addiere mit Erweiterungsbit Logisches UND ADD.s<ea>,An ADDI.s#<data>,<ea> ADDQ.s#<data>,<ea> ADDX.s Dy, Dx ADDX.s -(Ay), -(Ax) AND AND.s <ea>, Dn AND.s Dn, <ea> ANDI ASL,ASR UND direkt Arithmetische Verschiebung nach links, nach rechts Bedingter Sprung Prfe ein Bit und ndere es Prfe ein Bit und setze es auf 0 Unbedingter Sprung Prfe ein Bit und setze es ANDI.s#<data>,<ea> ASd.s Dx, D AS.d # <data>, Dy ASd.s <ea> Bcc <label> BCHG Dn, <ea> BCHG # <data>, <ea> BCLR Dn, <ea> BCLR # <data>, <ea> BRA <label> BSET Dn, <ea> BSET # <data>, <ea> * JMP JSR EXT * * * * * 0 0 * * DIVS DIVU EOR * EORI * * 0 0 * * * * * * * * * * * * * * * CLR CMP CMPA CMPI CMPM CHK * * * * * BTST * U * U * BSR

Befehlsliste und Effekte auf CCR (Fortsetzung)


Mnemonic Operation Assembler Syntax Conditioncodes X N Z V O Sprung zum Unterprogramm Prfe ein Bit BSR <label> -

BTST Dn, <ea> BTST # <data>, <ea>

Prfe Register auf Grenzen Setze Operand auf 0 Vergleiche Vergleiche Adresse Vergleiche direkt Vergleiche Speicher

CHK <ea>,An CLR.x <ea> CMP.s <ea>, Dn CMPA.s <ea>, An CMPI.s# <data>,<ea> CMPM.s (Ay)+, (Ax)+

U U U

0 1 0 0 * * * * * * * * * * * * * * * * -

DBcc-><-

Prfe Bedingung, DBcc Dn, <label> vermindere und springe Division m. Vorzeichen DIVS <ea>, Dn Division o. Vorzeichen Logisches exclusiv ODER Exclusives ODER direkt DIVU <ea>, Dn EOR.s Dn, <ea> EORI.s# <data>,<ea>

* * * *

- * - * *

* 0 0 0 0 0

Bcc BCHG BCLR BRA BSET

EXG

Datentausch zwischen Register Vorzeichenerweiterung Springe Springe zum Unterprogramm

EXG Rx, Ry EXT.s Dn JMP <ea> JSR <ea>

* -

* -

0 0 -

Vorlesung Einfhrung in die Technische Informatik

Seite 17

Vorlesung Einfhrung in die Technische Informatik

Seite 18

Befehlsliste und Effekte auf CCR (Fortsetzung)


Mnemonic LEA LINK LSL,LSR Operation Assembler Syntax Conditioncodes X N Z V O Lade die effektive LEA <ea>, An Adresse Verbinde und weise zu LINK An, <Verschiebung> Logische Verschiebung nach links nach rechts Transportiere Daten Code-Bits LSd.s Dx, Dy LSd.s# <data>, Dy LSd.s <ea> MOVE.s<ea>, <ea> MOVE <ea>, CCR MOVE <ea>, SR * * * * * * * * 0 0 * * * * OR MOVE SR, <ea> MOVE USP, An MOVE An, USP MOVEA.s <ea>, An MOVE.s <Registerliste>, <ea> MOVEM.s <ea>, <Registerliste> MOVEP Dx, d (Ay) MOVEP d(Ay), Dx MOVEQ#<data>, Dn ORI PEA RESET NEG NEGX NOP NOT * * * MULS MULU NBCD

Befehlsliste und Effekte auf CCR (Fortsetzung)


Mnemonic Operation Multiplikation mit Vorzeichen Multiplikation ohne Vorzeichen Negiere dezimal mit Erweiterung Negiere Negiere mit Erweiterung Keine Operation Assembler Syntax MULS <ea>, Dn MULU <ea>, Dn NBCD <ea> NEG.s <ea> NEGX.s <ea> NOP Conditioncodes X N Z V O * * * * * * * 0 0 0 0 U * * * * * * *

0 *

U * * * * * * * * *

MOVE

Transportiere zum MOVE zum CCR Bedingungsspeicher MOVE zum SR MOVE vom SR MOVE USP MOVEA Transportiere zum Statusregister Transportiere vom Statusregister Transportiere den Anwender-Stackpointer

Logisches Komplement NOT.s <ea> Logisches ODER OR.s <ea> OR Dn, <ea> Logisches ODER direkt Eintragen der Normieren externer Einheiten Ringverschiebung nach links nach rechts Ringverschiebung mit Erweiterungsbit nach links, nach rechts Springe zurck von Ausnahme ORI.s# <data>, <ea> PEA <ea> RESET ROd.s Dx, Dy ROd.s# <data>, Dy ROd.s <ea> ROXd.s Dx, Dy ROXd.s# <data>, D< ROXd.s <ea> RTE

0 0

* *

* *

0 0 -

Transportiere die Adresse Transportiere MOVEM (see note) mehrere Register

ROL,ROR ROXL, ROXR RTE * * 0 0

0 *

0 *

MOVEP

Transportiere periphere Daten Transportiere schnell

MOVEQ

Vorlesung Einfhrung in die Technische Informatik

Seite 19

Vorlesung Einfhrung in die Technische Informatik

Seite 20

Befehlsliste und Effekte auf CCR (Fortsetzung)


Mnemonic RTR Operation Springe zurck und ersetze Bedingungscodes Zurck vom Untersubtrahiere dezimal mit Erweiterungsbit Setze in Abhngigkeit der Bedingung Lade das Statusregister und halte an Subtrahiere binr Subtrahiere Adresse Subtrahiere direkt Subtrahiere schnell Subtrahiere mit Erweiterungsbit Vertauschte Registerhlften Teste und setze Operand fangen fangen bei berlauf Teste einen Operanden lsen Assembler Syntax RTR Conditioncodes X N Z V O * * * * *

Rechnerarchitektur
Bedingte Sprnge; 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)

RTS SBCD Scc STOP SUB SUBA SUBI SUBQ SUBX SWAP TAS TRAP TRAPV TST UNLK

RTS SBDC Dy, Dx SBCD -(Ay), -(Ax) Scc <ea> STOP # <data> SUB.s <ea>, Dn SUB.s Dn, <ea> SUBA.s <ea>, An SUBI.s# <data>, <ea>

* * *

The new sequence of instructions may be at higher or lower memory addresses relative to the branch instruction. The displacement is added as signed int to the PC.
Label:

U * * * * * * * * * * * * * * * -

U * * * * * *
PC++ Branch Successor pair of instructions

SUB BNE
CC false (0)

generation of condition code branch on condition code CC true (1)

branch back Loop CC ? CC true (1)

CC false (0)

Label:

branch forward Branch Target PC + d

* * * CC CS EQ GE GT HI LE LS LT MI NE PL VC VS carry clear carry set equal (to zero) greater or equal greater than high less or equal low or same less than minus not equal (to zero) plus overflow clear overflow set 0100 0101 0111 1100 1110 0010 1111 0011 1101 1011 0110 1010 1000 1001 C C Z NV+NV NVZ+NV Z CZ Z+NV+NV C+Z NV+NV N Z N V V

SUBQ.s# <data>, <ea> * SUBX.s Dy, Dx SUBX.s -(Ay), -(Ax) SWAP Dn TAS <ea> TRAP#<vector> TRAPV TST.s <ea> UNLK An * -

0 0 0 0 -

0 0 -

The branch condition table presents the abreviations of the conditions and their coding

Vorlesung Einfhrung in die Technische Informatik

Seite 21

Vorlesung Einfhrung in die Technische Informatik

Seite 22

Rechnerarchitektur

Rechnerarchitektur
Unterprogramme; Subroutines

(-> DBcc Instruction im CPU32 User Manual) Dont branch on condition !!!
REPEAT (body of loop) UNTIL (condition is true)

The subroutine is a sequence of instructions which is treated as a separate program module within a larger program. The subroutine can be "called" or executed one or more times as the program executes. Generally, the subroutines associated with a programm accomplish specific 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 executed and control is then returned to the next instruction in sequence following the call to the subroutine. The instruction BSR and JSR cause a transfer of control to the beginning address of a subroutine. In the Branch to Subroutine statement BSR <label> the <label> operand causes the assembler to calculate the displacement between the BSR instruction and the instruction identified by <label>. The instruction RTR and RTS finishes the subroutine and return to the instruction following the "call".
Instruction

The DBcc instruction can cause a loop to be terminated when either the specified condition CC 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 }

Syntax

Operation 1.(SP)<-(SP)-4;((SP))<-(PC) 2.(PC)<-(PC)+<disp> 1.(SP)<-(SP)-4;((SP))<-(PC) 2.(PC)<-(EA) 1.(CCR)<-((SP))7:0;(SP)<-(SP)+2 2.(PC)<-((SP));(SP)<-(SP)+4 (PC)<-((SP));(SP)<-(SP)+4

Comments <disp> is 8-bit or 16-bit signed integer <EA> is a control addressing type (CCR) = (SR) 7:0

Branch to subroutine BSR<disp>

Jump to subroutine

JSR<EA>

Label:

branch back Loop

DBcc
pair of instructions

CC ? true

false

SUB DBcc
CC true (0) or Dn == -1 PC++ Branch Successor

generation of condition code decrement and branch on condition code CC false (1) and Dn != -1 PC + d PC++

Dn - 1

Return and restore Condition codes Return from subroutine

RTR

RTS

Dn = -1 ? true

false

PC + d Save PC++

subroutine

BSR

Restore PC++

return

Vorlesung Einfhrung in die Technische Informatik

Seite 23

Vorlesung Einfhrung in die Technische Informatik

Seite 24

Rechnerarchitektur
Stack Ein Stack ist ein wichtiges Hilfsmittel, das die Verarbeitung von Unterprogrammen und Unterbrechungen (Interrupts) ermglicht. Man kann einen Stack entweder direkt in Hardware auf dem Prozessorchip realisieren oder mit Hilfe eines Stackpointers in den Hauptspeicher abbilden. Die erste Methode ist zwar schneller, erfordert aber mehr Chipflche als ein einziges Register. Ein weiterer Vorteil der Stackpointer-Methode besteht darin, da die Speichertiefe des Stacks durch zustzlichen Hauptspeicher beliebig vergrert werden kann. Ein Stack arbeitet nach dem LIFO-Prinzip (Last In First Out). Dabei sind nur zwei Operationen erlaubt: PUSH und POP. Mit der PUSH-Operation wird ein Datenwort auf den Stack gelegt und mit der POP-Operation wird es wieder zurckgeholt. Whrend des Zugriffs auf den Hauptspeicher wird der Stackpointer als Adresse (Zeiger) benutzt. Auerdem wird der Stackpointer durch die Ablaufsteuerung so verndert, da ein Zugriff nach dem LIFO-Prinzip erfolgt. Es gibt zwei Mglichkeiten, den Stackpointer zu verndern: 1. vor der PUSH-Operation und nach der POP-Operation 2. nach der PUSH-Operation und vor der POP-Operation. Stack Growing into Lower Memory
000000 (free) (SP) -> Top to lower address

Rechnerarchitektur
Stack Betrachten wir den Fall, das der Stack zu den niedrigen Adressen hin wchst, so hat die PUSH-Operation folgende Auswirkung: Stack Operation PUSH
for Stack growing to lower addresses before PUSH 000000 to lower address after PUSH 000000 (free) (SP) = 0ffe -> (SP) = 1000 -> base address fffffe to higher address MOVE.W D0, -(SP) 12AE base address fffffe (D0) = 345C to higher address 345C 12AE to lower address

Stack Growing into Higher Memory


000000 base address to lower address

Bottom

base address

Die Organisation des Stacks ist prozessorspezifisch. Meist beginnt er am Ende des Hauptspeichers und "wchst" nach niedrigeren Adressen. Fr diesen Fall beginnt das Programm am Anfang des Hauptspeichers. An das Programm schliet sich der Datenbereich an. Der Stack darf niemals so gro werden, da er den Daten- oder sogar Programmbereich berschreibt (Stack-Overflow). Wenn durch einen Programmierfehler (zu viele Unterprogrammaufrufe ohne entsprechende Returns from Subroutine) der Stack berluft, mu das Betriebssystem das betreffende Programm abbrechen. Stack Placement in Memory
to higher address base address (SP) -> (free) Data 000000 Program .data .text fffffe (free) to higher address Stack .stack

Bottom (SP) ->

Top (free)

fffffe

to higher address

fffffe

PUSH (value to stack): (SP) <- (SP) - k then ((SP)) <- Operand POP (value from stack): Operand <- ((SP)) then (SP) <- (SP) + k

PUSH (value to stack): ((SP)) <- Operand then (SP) <- (SP) + k POP (value from stack): (SP) <- (SP) - k then Operand <- ((SP))

to lower address

Beachten Sie, da die Darstellung des Speichers mit niedrigen und hheren Adressen auch vertauscht dargestellt werden kann!

Vorlesung Einfhrung in die Technische Informatik

Seite 25

Vorlesung Einfhrung in die Technische Informatik

Seite 26

Rechnerarchitektur
Beispielprogramm: Vektoraddition ORG LEA BRA VECA VECB LENGTH RVEC DC.W DC.W DC.W DS.W ORG START CLR.L MOVE.W LEA LEA LEA BSR BREAK SR_ADD SUB.W BMI MOVE.W MOVE.W ADD.W MOVE.W BRA RTS $0 $4000,SP START 1,2,3,4,5,6 1,2,3,4,5,6 6 6 $2000 D0 (LENGTH),D0 VECA,A0 VECB,A1 RVEC,A2 SR_ADD #1,D0 EXIT (A0)+,D1 (A1)+,D2 D1,D2 D2,(A2)+ SR_ADD Argument Passing

Rechnerarchitektur

init stack pointer first vector (6 words) second vector (6 words) length of one vector reserve memory for result start at location 2000 Hex clear D0 load LENGTH value load base address of first vector load base address of second vector load base address of result vector branch to SR end of program decrement counter if negative, exit SR load first operand to D1 load second operand to D2 add operands store result next loop return from SR

The information needed by the subroutine is defined in terms of parameters which allow the subroutine to handle general cases rather than operate on specific values. Each subroutine call allows different values to be supplied as input parameters and output parameter passed back as results. There are different methodes to transfer the parameters, depending of the memory used to supply values. register stack parameter areas in-line Register transfer When only a small number of arguments are to be transferred, they can be passed directly between the main program and the subroutine in the processor registers. Data structures such as 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 outside the subroutine. Call-by-reference passes only a pointer to the data or the data structure, thus giving the subroutine complete access to the data structure. The data values may be changed by the subroutine. This parameter passing is restricted to only a small number of arguments which have to fit into the registers of the processor. The advantage of this kind of is argument passing is a very fast call, because there is no main memory access required for saving and loading of parameters. Stack transfer A stack can be used to pass arguments by having the calling routine push values or addresses on the stack before the call. Popping the arguments in the subroutine give access to the values 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 addressing of the values by the subroutine.
MOVE.W MOVE.W BSR ... MOVE.W MOVE.W ADD.W ... VAL1,-(SP) VAL2,-(SP) SUBR D1,-4(SP) D2,-6(SP) D1,D2 ;MOVE OF VAL1 TO D1 ;PUSH FIRST VALUE TO STACK ;PUSH SECOND VALUE TO STACK ;STACK increases to lower memory

EXIT

SUBR

Vorlesung Einfhrung in die Technische Informatik

Seite 27

Vorlesung Einfhrung in die Technische Informatik

Seite 28

Rechnerarchitektur

Rechnerarchitektur
Subroutine Usage and Argument passing

Parameter areas When large numbers of parameters are to be passed, a parameter area in memory can be used. The area contains values and/or addresses that are accessed by the subroutine. The same area could be used by several subroutines requiring different parameters as long as the area is large enough to hold the maximum number of arguments. In-line coding This 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 DC.W 1 ... SUBR MOVEA.L MOVE.W SUBR ; DEFINE CONSTANT IN CODE AREA (SP),A0 (A0)+,D1 ; GET PC INTO A0 ; GET ARGUMENT FROM CODE AREA

;; Program operation creating a stack frame ;; ________________________________________ ORG LEA $1000 $6000,SP ; ; SET ORIGIN INITIALISATION OF STACK

;; Calling Program N M EQU EQU ADD.L MOVE.L PEA JSR ADD.L MOVE.L MOVE.L BREAK ARG X DC.L DS.B $01234567 200 8 8 #-N,SP ARG,-(SP) X SUBR #8,SP (SP)+,D1 (SP)+,D2 ; ; ; ; ; ; ; ; ; ; ; ARGUMENT TO PASS TABLE WHOSE ADDRESS IS PASSED 8 BYTES INPUT 8 BYTES OUTPUT OUPUT AREA OF STACK INPUT ARGUMENT INPUT ADDRESS JUMP SUBROUTINE SKIP OVER INPUTS ON STACK READ INPUTS

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 except as defined by its linkage to the calling program. For example, a subroutine should not change the values in any registers, unless a register is used to return a result. In some programs this is accomplished by pushing the contents of the registers used by the subroutine on the stack upon entry to the subroutine. The values are restored before returning to the calling program. The return address is automatically saved and restored by the JSR and RTS instructions. The use of the system stack to save and restore the return address and the contents of registers used within the subroutine assures that the details of the subroutine operation are transparent to the calling program. If a subroutine itself makes a subroutine call, the use of the stack for temporary storage of register contents by each subroutine and for each return address allows such nesting of subroutine calls without difficulty. This concept of using the stack to store data temporarily during subroutine execution can be extended by defining a stack frame. The stack frame is a block of memory in the stack that is used for return addresses, input parameters, output parameters, and local variables. It is the area of the stack accessed by a subroutine during its execution. Local variables are those values used during the subroutine execution 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 addresses can be accessed by a subroutine using the stack frame technique. If the subroutine is called before it is completely finished, the values in the stack frame will not be destroyed.

;; Subroutine SUBR LINK MOVE.L MOVE.L A1,#-M LOCAL1,-4(A1) LOCAL2,-8(A1) ; ; ; ; ; OUTPUT1,16(A1) A1 $98765432 $87654321 'ABCD' ; ; ; ; ; SAVE OLD FRAME POINTER, MOVE NEW FP TO A1 SAVE LOCAL VARIABLES ON STACK CHANGE LOCAL VARIABLE GET X put in some code here PUSH AN OUTPUT RESTORE RETURN LOCAL VARIABLES OUTPUT VALUE

ADD.L #1,-4(A1) MOVEA.L 8(A1),A2 * MOVE.L UNLK RTS LOCAL1 DC.L LOCAL2 DC.L OUTPUT1 DC.L END

Vorlesung Einfhrung in die Technische Informatik

Seite 29

Vorlesung Einfhrung in die Technische Informatik

Seite 30

Rechnerarchitektur
Processor Operating Modes
0

Rechnerarchitektur

Exception + Reset + Trap + Interrupt + Error

User Mode

Supervisor Mode more privileges

SP SP SP SP
ARG X ARG

Ret PC X ARG

Supervisor Program sets status to user

Output Area

Output Area

Output Area

Output Area

privileged Instructions cannot be executed ! => Exception USP A7


Stack Pointer

all Instructions can be executed ! MOVE to SR SSP A7 also access to USP ! MOVE USP
T SR S I0 I1 I2

(free)

SP FFFF (a) before first Instr. (b) after ADD.L (c) after MOVE.L (d) after PEA (e) after JSR T SR (free) SP
Local Area

I0 I1 I2

CCR R/W

Read only

R/W by special operations to SR

-4(A1) FP FP=(A1)
Old FP Ret PC X ARG

Displacment Addressing within Subroutine

SP

Ret PC X ARG

no modification of Trace bit Supervisor bit Interrupt Mask


SP
X ARG

(free) SP

16(A1)
Output Area

MOVE to SR ANDI to SR ORI to SR ... Special System Instructions RESET STOP RTE

Output Area

Output Area

Output Area

(f) after LINK

(g) after UNLINK

(h) after RTS

(i) after ADD.L #8

Vorlesung Einfhrung in die Technische Informatik

Seite 31

Vorlesung Einfhrung in die Technische Informatik

Seite 32

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 Exception Processing Sequence
user program supervisor program TRAP Handler Trap Instruction which causes exception
Save SR internally Set S=1, T=1 determine Vector No. (cause of TRAP) Push PC++ -> SSP Push SR -> SSP PC <- (Vector base + Vector) Jump to handler

Rechnerarchitektur
Interrupts Interrupts are externally generated requests for exception processing. They allow external devices to interupt the processor execution at any time of the program execution (asynchronously). The control flow of the processor is switched to the interrupt-handling routine, named interrupt service routine (ISR). There are mechanisms to disable the immediate response 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 concerning their importance for service; can be implemented by hardware or software. Interrupt Processing Sequence
Device Processor user program supervisor program
Save SR internally Set S=1, T=1 determine Vector No. (which device) Push PC++ -> SSP Push SR -> SSP PC <- (Vector base + Vector) Jump to ISR

return

Save User State

event
Restore User State

IRQ

RTE

Restore PC++ Save User State

TRAPs
Program TRAPs
Vectors

ISR
Restore User State $080-$0BC $028-$02C $018 $014 $01C Instruction to CALL service from Operating System Opcodes 1010 ; 1111 (FP-Emulation) wrong array reference abort program overflow detection

TRAP Instruction
normal execution Unimplemeted Instructions normal execution

RTE

Restore PC++

CHK Instruction
range check

DIV_ Instruction division by zero TRAP V Instruction


exec. when V=1

Error TRAPs
Privilege Violation tried to execute priv. Instr. Illegal Instruction Address Error $028-$02C Bus Error Opcodes 1010 ; 1111 (FP-Emulation)

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

Vorlesung Einfhrung in die Technische Informatik

Seite 33

Vorlesung Einfhrung in die Technische Informatik

Seite 34

Rechnerarchitektur
Hardware Structure of IRQ-Signaling Memory Management

Rechnerarchitektur

1. Schutzfunktion => Zugriffsrechte Eine Mglichkeit den Speicher zu organisieren - R/W Memory - ROM

Device event SR DATA IRQ

Processor

CPU

I/D R/W

ROM

to InstructionProcessor

R/W

RAM

CR

MaskR

Beim Multi-processing oder Multi-user Systemen reicht die oben genannte Mglichkeit, den Speicher zu organisieren, nicht aus. 2. Erweiterung des begrenzten physikalischen Hauptspeichers Interrupt Priority Logic
IRQ3
4-Levels

In den gngigen Architekturen wird mit 32 Bit adressiert. Daraus folgt die Gre des virtuellen Adressraums mit 232

IRQ2

Virtuelle Adresse

Physikalische Adresse phys. Mem.


upper bound > virtual address + base of .text

IRQ1 4000 IRQ0 1000 0

pid = 1 .data 1 .data 1


access trap physical addr.

.text 1

.text 1 .text 2

10000 9600 3600

pid = 2 3000 .data 2

1000

......

400 0

.text 2

......

.data 2

0 Memory fragmentation

Vorlesung Einfhrung in die Technische Informatik

Seite 35

Vorlesung Einfhrung in die Technische Informatik

Seite 36

Rechnerarchitektur
Virtueller Speicher / Paging Logischer und physikalischer Adressraum werden in Seiten fester Gre unterteilt, meist 4 KByte. Logische Pages werden in einer Pagetable auf physikalische Pageframes abgebildet, dabei ist der logische Adressraum im allgemeinen wesentlich grer als der physikalisch vorhandene Speicher. Nur ein Teil der Pages ist tatschlich im Hauptspeicher, alle anderen sind auf einen Sekundrspeicher (Platte) ausgelagert. - Programme knnen grer als der Hauptspeicher sein - Programme knnen an beliebige logische Adressen geladen werden, unabhngig von der Aufteilung des physikalischen Speichers - einfache Verwaltung in Hardware durch feste Gre der Seiten - fr jede Seite knnen Zugriffsrechte (read/write, User/Supervisor) festgelegt und bei Zugriffen berprft werden - durch den virtuellen Speicher wird ein kostengnstiger groer und hinreichend schneller Hauptspeicher vorgetuscht (hnlich Cache) Die Pagetable enthlt fr jeden Eintrag einen Vermerk, ob die Seite im Hauptspeicher vorhanden ist (P-Bit / present). Ausgelagerte Pages mssen bei einer Referenz in den Hauptspeicher geladen werden, ggf. wird dabei eine andere Page verdrngt. Modifizierte Seiten (M-Bit / modify) mssen dabei auf den Sekundrspeicher zurckgeschrieben werden. Dazu wird ein weiteres Bit eingefhrt, 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 gebildet 0: not referenced, not modified 1: not referenced, modified 2: referenced, not modified 3: referenced, modified es wird eine beliebige Seite aus der niedrigsten nichtleeren Klasse entfernt - FIFO die lteste Seite wird entfernt (mglicherweise die am hufigsten benutzte) - Second-Chance / Clock wie FIFO, wurde der lteste Eintrag benutzt, wird zuerst das R-Bit gelscht und die nchste Seite untersucht, erst wenn alle Seiten erfolglos getestet wurden, wird der lteste Eintrag tatschlich entfernt - least recently used - LRU die am lngsten nicht genutzte Seite wird entfernt, erfordert Alterungsmechnismus Virtueller Speicher / Paging

Rechnerarchitektur

Bei modernen 32 Bit Prozessoren und einer Seitengre von z.B. 4 KByte wird die Pagetable sehr gro, z.B. 4 MByte bei 32 Bit Pagetable Eintrgen. Da meist nicht alle Eintrge einer Tabelle wirklich genutzt werden, wird eine mehrstufige Umsetzung eingefhrt. Zum Beispiel referenzieren die obersten Adressbits eine Tabelle ehrend die mittleren Bits den Eintrag in dieser Tabelle selektieren. - einzelne Tabellen werden kleiner und in der zweiten Stufe werden nur wenige Tabellen bentig - die Tabellen der zweiten Ebene knnen selbst ausgelagert werden Pagetables knnen aufgrund ihrer Gre nur im Hauptspeicher gehalten werden. Zum Beschleunigen der Adressumsetzung, insbesondere bei mehrstufigen Tabellen, wird ein Cache verwendet. Dieser Translation Lookaside Buffer (TLB) enthlt die zuletzt erfolgten Adressumsetzungen. Er ist meist vollassoziativ ausgefhrt und enthlt z.B. 64 Eintrge. Neuerdings wird auch noch ein setassoziativer L2-Cache davorgeschaltet. Pagetables sind prinzipiell cachable, allerdings werden die Eintrge wegen ihrer relative seltenen Benutzung (im Vergleich zu normalen Daten) schnell aus dem allgemeinen Cache verdrngt.

Vorlesung Einfhrung in die Technische Informatik

Seite 37

Vorlesung Einfhrung in die Technische Informatik

Seite 38

Rechnerarchitektur
Memory Hierarchy
Definition : A memory hierarchy is the result of an optimization process with respect to technological and economic constrains. The implementation of the memory hierarchy consists of multiple levels, which are differing in size and speed. It is used for storing the working set of the process in execution as near as possible to the execution unit.

Rechnerarchitektur

Registers can be grouped in a wide variety of ways: evaluation stack register file multiple register window register banks

The memory hierarchy consists of the following levels: registers primary caches local memory secondary caches main memory
speed faster on chip denser larger size cost more expensive

off chip

The mechanisms for the data movement between levels may be explicit (for registers, by means of load instructions) or implicit (for caches, by means of memory addressing).

Example: Overlapping Register Windows (SPARC-Processor) The desire to optimize the frequent function calls and returns led to the structure of overlapping register windows. The save and restore of local variables to and from the procedure stack is avoided, if the calling procedure can get an empty set of registers at the procedure entry point. The passing of parameter to the procedure can be performed by overlapping of the actual with the new window. For global variables a number of global registers can be reserved and accessed from all procedure levels. This structure optimize the procedure call mechanism of high level languages, and optimizing compiler can allocate many variables and parameters directly into registers.

register file
135

procedure A
R31A R24A R23A R16A R15A R8A parameter local variables R31B parameter R24B R23B R16B R15B R8B parameter local variables

overlapping registers between A and B

parameter

CPU Chip

CPU
2-5ns 5-10ns
Register Files 1st-Llevel Cache External Processor Interface

128 127 120 119 112

local variables parameter local variables

procedure B

overlapping registers between B and C

procedure C
R31C R24C R23C R16C R15C parameter local variables parameter 24 window registers

parameter

10-30ns 60-200ns 2-10ms

2nd-Level Cache Main Memory Disk Storage


31

parameter
24 23 16 15 8 7

R8C

local variables parameter global variables R7A global R0A variables R7B global R0B variables R7C global R0C variables 8 global registers

Tapes

Registers are the fastest storage elements within a processor. Hence, they are used to keep values locally on-chip, and to supply operands to the execution unit(s) and store the results for further processing. The read-write cycle time of registers must be equal to the cycle time of 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.

Due to the fixed size of the instruction word the register select fields have the same width (5 bits) as in the register file structure. The large RF requires more address bits and therefore the addressing is done relatively to the window pointer. (more details in -> Rechnerarchitektur 1)

Vorlesung Einfhrung in die Technische Informatik

Seite 39

Vorlesung Einfhrung in die Technische Informatik

Seite 40

Rechnerarchitektur

Rechnerarchitektur

Caches are the next level of the memory hierarchy. They are small high speed memories employed 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 data objects are referenced from near the current reference. Programs also exhibit locality in time where objects located in a small region will be referenced again within a short periode. Instructions are stored in sequence, and data objects normally being stored in the order of their use. The following figure is an idealized space/time diagram of address references, representing the actual working set w in the time interval .

Cache memory design aims to make the slow, large main memory appear to the processor as 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:


Tm ( 1 - H ) Tm + H miss ratio = 1- H 1 Tc 1 (1-H) +H Tc Tm

Gcache

hit ratio Tm = tacc of main memory

(1-

Tm Tc

Tc = tacc of cache memory H = hit ratio [0, ...1]

Address Space Data


5

w ( T, T +

4 3

example for Tm 5 Tc
0 0.5 1

Data

2 1

Instruction

The hit ratio of the cache (in %) is the ratio of accesses that find a valid entry (hit) to accesses that failed to find a valid entry (miss). The miss ratio is 100% minus hit ratio.
T T+

time

The access time to a cache should be significantly shorter than that to the main memory. Onchip 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, the control signal protocol, and the access time of the external memory chips used.

Caches are transparent to the software. Usually, no explicit control of cache entries is possible. Data is allocated automatically by cache control in the cache, when a load instruction references the main memory.

Vorlesung Einfhrung in die Technische Informatik

Seite 41

Vorlesung Einfhrung in die Technische Informatik

Seite 42

Rechnerarchitektur

Rechnerarchitektur
Schichtenmodell der Interpretationsebenen

One of the most important features of the cache organization is the mapping principle. Three different strategies can be distinguished, but the range of caches - from directly mapped to set associative to fully associative - can be viewed as a continuum of levels of set associativity. (more details in -> Rechnerarchitektur 1) Cache Mapping
m+n+x+z m Bits Tag 0 z Bits

HLL Hhere Programmiersprache

HLL-Compiler
n Bits Index x Bits

Word Byte select select

IML Zwischensprache
Compiler Backend

2 page size 2m

ith

index i

Address
index m n Tag Mem

m mem block

ith

cache block

blocks of cache size

entries ith cache size = hit

2n

ASL Assemblersprache
Assembler

Software
Main Memory Cache Hardware Structure (Address Path Only)

CML konventionelle Maschinensprache


CML-Interpreter

Hardware
MPL Mikroprogrammsprache
MikroProgramm Interpreter

Directly Mapped Cache The main memory is the lowest level in the semiconductor memory hierarchy. Normally all data objects must be present in this memory for processing by the CPU. In the case of a demand-paging memory, they are fetched from the disk storage to the memory pages on demand before processing is started. Its organization and performance are extremely important for the systems execution speed. Due to the cost-performance ratio mostly all main memory implementation uses DRAMs. The simplest form of memory organization is the word-wide memory, matching the bus width of the external processor interface. High-performance processors need more memory bandwidth than a simple one-word memory can provide. The access and cycle times of highly integrated dynamic RAMs are not keeping up with the clock speed of the CPUs. Therefore, special architectures and organizations must be used to speed-up the main memory system. (more details in -> Rechnerarchitektur 1)

NPL Nanoprogrammsprache
NanoProgramm Interpreter

Funktionseinheiten des Prozessors

HW-Kontrollvektor

Auf die Ebenen der Mikroprogrammierung und Nanoprogrammierung wird heute in Hochleistungsprozessoren meist verzichtet, um die Interpretation und Ausfhrung der Befehle schnell zu machen. Daraus ergibt sich, da die Befehle einfach sein sollten, um den HWKontrollvektor durch einfache Schaltnetzfunktionen aus der Instruktion ableiten zu knnen. Die Nachbildung der komplexen Befehle durch eine Sequenz einfacher Befehle wird in den Backendteil des Compilers verschoben.

Vorlesung Rechnerarchitektur

Seite 19

Operationsprinzip - Pipeline

Unter dem Operationsprinzip versteht man das funktionelle Verhalten der Architektur, welches auf der zugrunde liegenden Informations- und Kontrollstruktur basiert.

Verarbeitung von mehreren Datenelementen mit nur einer Instruktion

Pipeline - Prinzip

parallele V.E. (P.Es)

Vektorrechner

Feldrechner (array of processing elements)

Pipeline - Prinzip

Beispiel : Automobilfertigung Bestandteile eines sehr einfachen Autos : Karosserie Lack Fahrgestell Motor Rder

Vorlesung Rechnerarchitektur

Seite 20

Operationsprinzip - Pipeline

Beispiel : Automobilfertigung

Welche Mglichkeiten des Zusammenfgens (Assembly) gibt es ?

Flieband (PIPELINE)

Workgroup

Worauf mu man achten ? Abhngigkeiten !

Flieband
Blech Lack Fahrgestell Motor Rder

Karosserie assembly

Lackiererei

Fahrgestelleinbau

Motoreinbau

Rder montieren

41

Produktion von verschiedenen Modellen : 3 Farben R(ot), G(rn) B(lau) Auftrag 2 Motoren N(ormal), F R I(njection) M N 2 Karosserien L(imousine), K K K(ombi)

Vorlesung Rechnerarchitektur

Seite 21

Operationsprinzip - Pipeline

Pipeline des Fertigungsvorgangs

20 min K 10 min Lb 20 min


Optimierung der Stufe : Lackierung

La

F 10 min

M 10 min

R 10 min

L1 L2 10 min 10 min

Stufen - Zeit - Diagramm der Pipeline

stage

Auftrag 41

K
41 42 43

L1

L2

R
1:5

41 42 43 41 42 43 41 42 43 41 42 43 41 42 43

2:4 3:3 3:3 3:3 3:3 2:4 1:5

time

ppt

Vorlesung Rechnerarchitektur

Seite 22

Pipeline - Register

Unter einem Register verstehen wir eine Hardwarestruktur die ein- oder mehrere Bits speichern kann. Register sind (normalerweise) D-Flip Flops (siehe PI2). D-FF D Q Register

32 clk

32

Wichtige Kenndaten eines Registers: Clock-to-output Zeit (tco): Zeit zwischen Taktflanke und dem Zeitpunkt an dem eine nderung des Eingangs am Ausgang sichtbar ist. Setup Zeit (tsu): Zeit vor der Taktflanke in der der Eingangswert schon stabil sein muss (sich nicht mehr ndern darf; Grund-> Digitale Schaltungstechnik, Stichwort: metastabile Zustnde) Hold Zeit (th): Zeit nach der Taktflanke an der sich der Eingangswert noch nicht ndern darf (Grund wieder wie tsu).
cycle time

tcyc Clock D

Q th tsu tco
Ausgang gueltig mit neuen Daten

Daten sollten am Eingang stabil sein

Vorlesung Rechnerarchitektur

Seite 23

Pipelining

The performance gain achieved by pipelining is accomplished by partitioning an operation F into multiple suboperations f1 to fk and overlapping the execution of the suboperations of multiple operations F1 to Fn in successive stages of the pipeline [Ram77]

Assumptions for Pipelining 1 2 3 the operation F can be partitioned all suboperations fi require approximately the same amount of time there are several operations F the execution of which can be overlapped

Technology requirement for Pipelining 4 the execution time of the suboperations is long compared with the register delay time

Linear Pipeline with k Stages


stage instr.
& operands

F
result(s)

f1

f2

f3

fk

[RAM77] Ramamoorthy, C.V., Pipeline Architecture, in: Computing Surveys, Vol.9, No. 1, 1977, pp. 61102.

Vorlesung Rechnerarchitektur

Seite 24

Pipelined Operation Time

tp ( n, k) = k + (n-1)
time to fill the pipeline time pipeline phases start-up or fill

for this example:

tp (10,5) = 5 + (10 - 1) = 14

time to process n-1 operations stages 1 2 3 4 5

processing

drain

Durchsatz Throughput
TP ( n, k) = number of operations tp (n,k) = n k + (n-1) operations time unit

Gewinn Gain
S ( n, k) = scalar execution time = pipelined execution time n k k + (n-1) lim S k n

Effizienz Efficiency
E ( n, k) = 1 k S ( n, k) = k n k = ( k + (n-1))

initiation rate, latency


n k + (n-1)

Pipeline Interrupts data dependencies control-flow dependencies resource dependencies

Vorlesung Rechnerarchitektur

Seite 25

Assumptions for Pipelining

the operation F can be partitioned


F
time tf

F
time tf / 2
1 2 1

time tf

f1
time tf / 2

f2
time tf / 2

F
time tf

all suboperations fi require approximately the same amount of time


Version 1 f1 f1 << f2 f3 << f2 time t2 /3 f2 a f2 f2 b f2 c f3

f1

f2

f3 f2

f1 Version 2

f2

f3

f2

Vorlesung Rechnerarchitektur

Seite 26

Assumptions for Pipelining there are several operations F the execution of which can be overlapped

If there is a discontinuous stream of operations F owing to a conflict, bubbles are inserted into 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 nonpredicted path.

the execution time of the suboperations is long compared with the register delay time

Item 4 is a technological requirement for the utilization of a pipeline. Assuming a partitioning of the operation F into three suboperations f1, f2, f3, and also no pipelining, the operation F can be executed in the time:

t (F) = tf1 + tf2 + tf3

Introduction of registers
stage 1 stage 2 stage 3
Clock

Di

tf1

tsu

tco

Di
input

tf2

tsu

tco

Do
output

tf3

tsu

tco

t (F) = ( max (tfi) + tco + tsu )


tcyc

3=3
k stages

max (tfi) + 3

( tco + tsu )

register delay time

tcyc = max (tfi) + tco + tsu

fcyc = 1 / tcyc

The registers are introduced behind each function of the suboperation and this creates the pipeline stages. Placing the register at the output (not at the input!!!) makes suboperation stages compatible with the definition of state machines, which are used to control the pipeline.

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 - anti-dependency - output dependency read after write RAW write after read WAR write after write WAW

Basically, the only real dependencies in a program are the data flow dependencies, which define the logical sequence of operations transforming a set of input values to a set of output values (see also Data Flow Architectures). Changing the order of instructions must consider these 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 second instruction i+1 are needed in the earlier stages and have not yet been computed by the later stages of instruction i. The hazardous condition arises if the dependend instructions are closer together than the number of stages among which the conflicting condition arises.

definition

relation

use

destination ( i ) = source ( i + 1 )
X <- A + B Y <- X + C instruction i instruction i+1

stage issue i issue i+1 read execute write read A,B i time i+1 read X,C i X:= A op B i+1 Y:= X op C i write X i+1 write Y

RF read

ALU

RF write

read 2 read ports

execute

write 1 write port

ppt

To avoid the hazard, the two instructions must be separated in time within the pipeline. This can be accomplished by inserting bubbles (NOPs) into the pipeline (simply speaken: by waiting for i to complete) or building a special hardware (hardware interlock), which inserts NOPs automatically.

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-order completion. The write back phase of instruction i+1 may be earlier than the read phase of instruction 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 preserve the semantics of the program and take care of such data dependencies. source ( i ) = destination ( i + 1 )
X <- Y + B Y <- A + C instruction i instruction i+1

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 of instruction i+1 because of a longer pipeline for the division. This reverses the sequence of writes i and i+1 and is called out-of-order completion.

destination ( i ) = destination ( i + 1 )
Y <- A / B Y <- C + D instruction i instruction i+1

FU2

i+1 stage issue i issue i+1


FU2

C op D

read A,B FU1 i i+1 read C,D i 1. A op B i 2. A op B i 3. A op B

time

i+1 write Y i write Y

FU1 RF read RF write

read
execute write

execute

write

read

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 back from the previous instruction reads an old value of X and thus destroys the semantic of the two sequential instructions. The sequential execution model (von Neumann architecture) assumes that the previous instruction is completed before the execution advances to the next instruction.
2 read ports 1 write port

RF read

ALU

RF write

pipeline distance stage read issue i i read A,B i X:= A op B i write X execute write time

issue i issue NOP issue NOP

read A,B i i X:= A op B w1 NOP w2 w1 NOP i write X NOP w2 NOP w1 NOP w2 NOP

issue i issue NOP issue NOP issue i+1

read A,B i i X:= A op B w1 NOP w2 w1 NOP i write X NOP NOP w1 NOP i+1 read X,C w2 w2 NOP i+1 Y:= X op C i+1 write Y

The conflicting stages are RF read and the RF write, which have a distance of 3 pipeline stages. Reading the correct value for X from the register file requires the insertion of 2 NOPs in between the two conflicting instructions. This delays the instruction i+1 by 2 clocks which then removes the RAW-hazard. The compiler (or programmer) is responsible for detecting the hazard and and inserting NOP into the instruction stream. The 2 bubbles in the pipeline can be utilized by other usefull instructions independent from i and i+1 (see instruction scheduling).

Vorlesung Rechnerarchitektur

Seite 30

Data Flow Dependencies


Hardware Interlock A hardware mechanism for detecting and avoiding the RAW-Hazard is the interlock hardware. The RAW-Hazard condition is detected by comparing the source fields of instruction i+1 (and i+2) with the destination field of instruction i, until i is written back to the register file and thus the instruction is completely executed.

stage issue i issue i+1 read execute write read A,B i time i+1 read X,C i X:= A op B i+1 Y:= X op C i write X i+1 write Y

RF read

ALU

RF write

read

execute

write

stage instruction time fetch i i+1 i+2 i+2 i+2 i+3 decode i i+1 i+1 i+1 i+2

issue point read

instruction execute

issue check for i+1 write

i read A,B i X:= A op B i i+1 read X,C i+1 Y:= X op C i+1 write Y bubbles in the pipeline write X

A B delay point for conflict

The hardware interlock detects the RAW-Hazard and delays the issue of instruction i+1 until the write back of instruction i is completed. The hardware mechanism doesnt need additional NOPs in the instruction stream. The bubbles are inserted by the hardware. Nevertheless the produced bubbles can be avoided by scheduling useful and independent instructions in between i and i+1 (see also instruction scheduling).

Vorlesung Rechnerarchitektur

Seite 31

Data Forwarding
Data forwarding Data forwarding is a hardware structure, which helps to reduce the number of bubbles in the pipeline. As can be seen in the stage time diagram, the result of a calulation in the execute stage is ready just behind the ALU register. Using this value for the next source operand instead of waiting after the write back stage and then reading it again from the RF, can save the two bubbles.
forwarding control

2 data forwarding path

(S1) RF read (S2) ALU (R) RF write

load data path forwarding data mux data from cache/memory

stage instruction time fetch i i+1 decode i i+1

issue point read

instruction execute write data forwarding

i read A,B i+1 read X,C

i X:= A op B i+1 Y:= X op C

write X i+1 write Y

A issue check for i+1 no bubble in the pipeline

The forwarding data path takes the result from the output of the execute stage and send it directly to the input of the ALU. There a data forwarding multiplexer is switch to the forwarding 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 definition and 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.

Vorlesung Rechnerarchitektur

Seite 32

Control Flow Dependencies

The use of pipelining causes difficulties with respect to control-flow dependencies. Every change of control flow potentially interrupts the smooth execution of a pipeline and may produce 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 performance significantly. There are two causes of bubbles. The first one is a data dependency in the pipeline itself, the branch condition being evaluated a pipeline stage later than needed by the instruction fetch stage to determine the correct instruction path. The second one is the latency for accessing the instruction and the new destination for the instruction stream.

Pipeline Utilization U = n n+m = 1 1+ m n n number of useful instructions m number of no operations (bubbles)

m=b

(1-p) Nb + b q No

no ops caused by branches

b number of branches p probability of correct guesses Nb penalty for wrong guess q frequency of other causes (jump) No penalty for other causes

no ops caused by the latency of branch target fetches

U =

1 b 1+ n (1-p) b Nb + 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

Branch architectures The design of control flow and especially conditional branches in ISAs is very complex. The design space is large and advantages and disadvantages of various branch architectures are difficult to analyze. The following discussion of branches shows only a small area of the design space. For further reading please refer to: Sima et al., Advanced Computer Architectures, A Design Space Approach

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 and have a closer look to the internals of the instruction fetch unit. Definition : Branch successor: The next sequential instruction after a (conditional) branch is named the branch successor or fall-through instruction.

In this case, it is assumed the branch is not taken. The operation of fetching the next instruction in the instruction stream requires to add the distance from the actual instruction to the next instruction to the value of the actual program counter (PC). Definition : Branch target: The instruction to be executed after a branch is taken is called a branch target.

The operation required to take the branch is to add the branch offset from the instruction word 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 instruction execution of the branch target is called a delay slot. Depending on the pipeline the number of delay slots b may vary between 0 and k-1. In the following stage-time diagram we assume that the instruction fetch can immediately continue when the branch direction is defined by the selection of the condition code, which is forwarded to the instruction fetch stage.

stage fetch time i-1 cmp branch cc i delay slot 1 delay slot 2 delay slot 3 correct next instructions

forwarding of cmpare result (condition codes) forwarding of CC selection decode i-1 i i-1 i i-1 i read execute write

i-1 i

branch successor or 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 register Rx. Using Rx as destination allows multiple cmp-instructions to be overlapped. The corresponding 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 forwarding path of cc selection instructs the IF stage to switch the control flow to the new direction.

cmp R1,R2 -> CC bcc CC, offset

calculate all reasonable bits and store to condition code register change the control flow depending on the selection of CC bits calculate next PC

cmp R1,R2 -> R4 cmp R6,R7 -> R5 bcc R4, offset bcc R5, offset

forwarding path of cc selection cc RF read RF write

IF

DEC

ALU

forwarding data path for CC

branch predecessor branch delay slot branch successor i+2 i+3

i-1

i i+1

t t+1

branch target

numbering is used to identify the instructions in the flow of processor code

The calculation of the branch PC might be performed in the ALU, but is typically shifted to earlier stages with an additional adder. The PC is held in the IF-stage and not stored in the RF!

Vorlesung Rechnerarchitektur

Seite 36

Forwarding of the Condition Code

forwarding path of cc selection cc RF read RF write

IF

DEC

ALU

forwarding data path for CC

cmp branch delay slot

stage fetch time i-1 i i+1 i+2 i+3

decode i-1 i i+1 i+2 i+3

read

forwarding of cmp data (CC) forwarding of cc execute write

correct next instructions

i-1 i i+1 i+2 i+3

i-1 i i+1 i+2 i+3

i-1 i i+1 i+2 i+3

Vorlesung Rechnerarchitektur

Seite 37

Control Flow Dependencies


Fast Compare

simple tests for equal, unequal, <0, <=0, >0, >=0, =0

fast compare logic

0 CC

IF

DEC

RF read

ALU

RF write

forwarding of fast cmp data stage fetch time i-1 i i+1 i+2

decode i-1 i i+1 i+2

read

execute

write

cmp branch delay slot

delay slot correct next instructions

i-1 i i+1 i+2

i-1 i i+1 i+2

i-1 i i+1 i+2

Vorlesung Rechnerarchitektur

Seite 38

Delayed Branch

Idea: Reducing the branch penalty by allowing <d> useful instructions to be executed before the control transfer takes place. 67% of all branches of a program are taken (loops!). Therefore, it is wise to use the prediction "branch taken".
cc=true ready fetch i i+1 t t+1 decode i i+1 t t+1 read execute write

stage time branch instruction delay slot instr. target instruction target +1 instr.

i i+1 t t+1

i i+1 t t+1

i i+1 t t+1 control transfer delay slot in the pipeline

(a) branch taken

stage time branch instruction delay slot instr. target instruction target +1 instr. successor instr. fetch i i+1 t t+1 i+2 decode i i+1 t t+1 i+2 read execute

CC=false ready write forwarding of CC i i+1 t t+1 i+2

i i+1 t t+1 i+2

i i+1 t t+1 i+2 control transfer

(b) branch not taken

bubbles in the pipeline

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;

Vorlesung Rechnerarchitektur

Seite 39

Delayed Branch with Squashing

31 bcc static branch prediction bit branch offset anullment bit

forwarding of CC to control flow

4-stages fetch instructions time i branch i+1 delay slot t target t+1 target + 1 target + 2 t+2

decode & read i i+1 t t+1 t+2

branch taken execute

write

i i+1 t t+1 t+2 i i+1 t t+1 t+2

forwarding of CC to control flow

4-stages fetch instructions time i branch i+1 delay slot t target i+2 successor+ 2 successor+ 3 i+3

decode & read i i+1 t i+2 i+3

branch NOT taken execute write

i i+1 t i+2 i+3 i i+1 t i+2 i+3

annulled delay and target instructions (a=1)

If the anullment bit is asserted, the delay slot instruction will be anulled, when the branch decision was predicted falsely. This enables the compiler to schedule instructions from before and after the branch instruction into the delay slot. 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 program executes. The static-branch prediction utilizes compile time knowledge about the behaviour of a branch. The compiler can try to optimize the ordering of instructions for the correct 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 =1 branch successor branch target

Static branch =0 prediction bit

branch not taken

branch taken

branch backward

branch with static prediction

Vorlesung Rechnerarchitektur

Seite 41

Static Branch Prediction

The hardware resources required for static branch prediction are a forwarding path for the prediction bit, and a logic for changing the instruction fetch strategy in the IF stage. This prediction bit supplied by the output of the instruction decode stage decides which path is followed. The prediction bit allows execution of instructions from the branch target or from the successor path directly after the delay slot instruction.

IF

DEC

RF read

ALU

RF write

Static branch prediction bit

branch
=1 =0

delay slot

branch successor

branch target

The static branch prediction is controlled by the programmer/compiler (e.g. prediction bit within the branch instruction). For example, the GCC will try to use static branch prediction if available from the architecture and optimizations are turned on. If the programmer wants to retain control, GCC provides 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 the function f().

Vorlesung Rechnerarchitektur

Seite 42

Profiled Branch Prediction


The profiled branch prediction is a special case of static prediction. The guess of the branch direction is based on a test run of the program. This profile information on branch behaviour is used to insert a static branch prediction bit into the branch instruction that has a 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 executes. No initial dynamic information exists before the program starts executing. The dynamic information is normally associated with a specific branch. The association can be realized by using the instruction address of the branch as the unique identifier of the branch. The dynamic prediction depends on the past behaviour of this branch and is stored in a table addressed by the branch instruction address. A unique addressing would need the whole address as an index, usually 32 bit in length. This length prohibits direct use of this address as an index to the state table.

simple branch predictor using only one history bit


X_Y : = f (a, X_Y) new state old state input a current branch behaviour X prediction bit Y history bits

low order of branch address n /a

a XY 00 01 /a a

predictor state memory

/a

a 10

11 a /a

1 prediction bit to/from instruction sequencer a current branch behaviour X

n history bits Y

predictor state machine X Y

a current branch behaviour taken a not taken /a X prediction bit take 1 take not 0 Y history bit last branch taken 1 last branch not taken 0

Vorlesung Rechnerarchitektur

Seite 44

Dynamic Branch Prediction

Integration of Dynamic Branch predictor into the pipeline

branch address

dynamic branch predictor

a X a X RF read RF write CC

IF

DEC

ALU

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 "instruction window".
prefetch PC fetch PC
prefetch PC top buffer length fetch PC bottom

memory fetch DEC stage


instruction buffer hit condition

<= top & hit

>= bottom

bottom <= fetch PC <= top

Branch Target Buffer Optimize instruction fetch in case of a correctly predicted branch

low order bits of branch address n

m high order bits of branch address = hit

predictor state memory

branch address tag field

branch PC memory

branch target instructions t

t+3 t+2 t+1

1 prediction bit to/from instruction sequencer current branch behavior

n history bits branch PC to IF stage to DEC stage

predictor state machine

hiding Nb

hiding No

Vorlesung Rechnerarchitektur

Seite 55

Vorlesung Rechnerarchitektur

Seite 56

Caches

Caches

Caches are the next level of the memory hierarchy. They are small high speed memories employed 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 data objects are referenced from near the current reference. Programs also exhibit locality in time where objects located in a small region will be referenced again within a short periode. Instructions are stored in sequence, and data objects normally being stored in the order of their use. The following figure is an idealized space/time diagram of address references, representing the actual working set w in the time interval .

Cache memory design aims to make the slow, large main memory appear to the processor as 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:

Gcache

Tm ( 1 - H ) Tm + H Tc

= (1-H)

1 +H Tc Tm

miss ratio
Address Space Data

hit ratio 1 Tm = tacc of main memory

G w ( T, T +

1- H

(1-

Tc Tm

Tc = tacc of cache memory H = hit ratio [0, ...1]

Data

5 4 3 2 1

example for Gcache (H=1) =


H

Tm Tc

5 1

Instruction
0 0.5 0.9 1

T+

time

The hit ratio of the cache (in %) is the ratio of accesses that find a valid entry (hit) to accesses that 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. Onchip 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 protocol, and the access time of the external memory chips used.

Caches are transparent to the software. Usually, no explicit control of cache entries is possible. Data is allocated automatically by cache control in the cache, when a load instruction references the main memory. Some processors feature explicit control over the caching of data. Four types of user mode instructions can improve hit rate significantly (cache bypassing on stores, cache preloading, forced dirty-line flush, line allocation without line fill).

Vorlesung Rechnerarchitektur

Seite 57

Vorlesung Rechnerarchitektur

Seite 58

Cache Terms

Cache Organizations

Cache block size: Cache block size is the size of the addressable unit within a cache, which is at the same time the 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 term is 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. the tag field and the control field. Cache frame: The cache frame refers to the addressable unit within a cache which can be populated with data. It defines the empty cache memory space, where a cache line can be placed.

Five important features of the cache, with their various possible implementations are: mapping organization addressing management placement
direct, set associative, fully associative cache block size, entry format, split cache, unified cache logically indexed, physically indexed, logically indexed/physically tagged consistency protocol, control bits, cache update policy random, filo, least recently used

One of the most important features is the mapping principle. Three different strategies can be distinguished, but the range of caches - from directly mapped to set associative to fully associative - can be viewed as a continuum of levels of set associativity.

Cache Mapping
m+n+x+z-1 m Bits Tag n Bits Index x Bits 0 z Bits

Word Byte select select

H [%]
1 0.9 0.8

fully associative
16 - 32 KB L1 Cache H > 0.9 2 page size
n

ith

index i

Address
tag m n Tag Mem index

0.5

directly mapped
0.2

2m blocks of cache size

mem block

ith

cache block

2n entries ith cache size

hit

Main Memory
0 1 2 4 8 16 32 64

Cache

Hardware Structure (Address Path Only)

log2 of Cache size [KB]

hit ratio versus cache size

Directly Mapped Cache

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 part of one way of the set-associative cache memory. Bedauerlicherweise gibt es keinen Begriff fr den jeweiligen Teil des set-associative cache Speichers. Somit wird set auch hufig als die Bezeichnung fr diesen Teil des Speichers verwendet.

Vorlesung Rechnerarchitektur

Seite 59

Vorlesung Rechnerarchitektur

Seite 60

Cache Mapping

Cache Mapping

index n m+n+x+z-1 m+1 Bits Tag tag set 0 2n-1 entries


mem block

index n-1 word select x


set mux word mux word mux

from tag compare

from tag compare

set 1 set 0

set 0/1

n-1 Bits Index

x Bits

0 z Bits

Word Byte select select

word select
set mux word mux

word select

Address
m+1 tag index n-1 Tag Mem 1

2 page size

n-1

th

index i

ith

cache block

directly mapped
set 0

set associative

fully associative

2m+1 blocks of cache size

set 1 ith

cache size

Tag Mem 0 = = set 1

or
hit

cache block

Data Paths of Differently Mapped Caches

Main Memory

Cache

Hardware Structure (Address Path Only)

Cache Organization
2-way Set Associative Cache 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

m+n+x+z-1 m+n Bits Tag x Bits

0 z Bits

Word Byte select select

Address
m+n 2n entries 2m+n main memory blocks
mem block

MESI Tag 2n-1 = Tag 3 Tag = 2 Tag = 1 Tag = 0 =

cache size

Entry format
pid physical logical

modified exclusive shared invalid placement word 0 word 1 word 2 word 3

or or
hit

tag field

control field

data field

Main Memory

Cache

Hardware Structure (Address Path Only)

Fully Associative Cache

Vorlesung Rechnerarchitektur

Seite 61

Vorlesung Rechnerarchitektur

Seite 62

Cache Line Fetch Order


Always fetch required word first. This keeps the memory access latency to a minimum.

Cache Consistency

access sequence: interleaved mode (INTEL mode )

The use of caches in shared-memory multiprocessor systems gives rise to the problem of cache consistency. Inconsistent states may occur, when two processors keep a copy of the same memory cell in their caches, and one processor modifies the cache contents or the main memory 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 is updated and the same value is written to the main memory. The cache is said to be writtenthrough. Nevertheless, this write must inform all other caches of the new value at this address. While the active bus master (CPU or DMA) is placing its write address on to the address bus, all other caches in the other CPUs must check this address against their cache entries so as to invalidate or update the cache line. The WB strategy is more efficient, because the main memory is not updated for each store instruction. The modified data is stored in the cache data field only, the line being marked as modified in the cache control field. The write to the main memory is performed only on request, and then whole cache lines are written back (WB). This memory update strategy is called write back or copy back and allows the cache to hold newer values than the main memory. Information must be available in the cache line, which keeps track of the state of a cache entry. The MESI states and MESI consistency protocol are widely used and are therefore given here as an example of cache consistency protocols. Four possible states of a cache line are used by the MESI protocol: - Modified: one or more data items of the cache line are written by a store operation, the modified or dirty bit being set - Exclusive unmodified: the cache line belongs to this CPU only, the contents is not modified - Shared unmodified: the cache line is stored in more than one cache and can be read by all CPUs. A store to this address must invalidate all other copies and update the main memory

0. Adr. 0 8 10 18

1. Adr. 8 0 18 10

2. Adr. 10 18 0 8

3. Adr. 18 10 8 0 mod ++ mod - mod ++ mod - byte offsets for 64bit words

Mem_Adr

0 10

8 18

1. read of Mem 0,8 8,0 2. read of Mem 10,18 18,10

EN_L

EN_H fast multiplexing with TS driver or multiplexer

CPU BUS

see also: DRAM Burst mode for further explanations - interleaved mode - sequential mode - programmable burst length

- Invalid: the cache entry is invalid; this is the initial state of a cache line that does not contain any valid data.

Vorlesung Rechnerarchitektur

Seite 63

Vorlesung Rechnerarchitektur

Seite 64

Cache Consistency
The states of the cache consistency control bits and the transitions between them are illustrated in two figures, the first one showing all transitions of the cache of a bus master CPU, and the 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 is in the process of performing active bus transactions. Processors of a shared-memory multiprocessor system are called bus slaves if these processors can not currently access the bus for active bus transactions. They have to listen passively (snooping) for the active transactions of the bus master.

Cache Addressing Modes

The logically addressed cache is indexed by the logical (or virtual) address of the process currently running on the CPU. The address translation need not be performed for the cache access, 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 physical addresses is possible.
address valid

Cache Consistency State Transitions for Bus Master CPU I


Invalid
Write Miss Write Miss[1] Exclusive Read Miss Write Hit [2] Exclusive Read Miss [3] Shared Read Miss [3] Shared Read Miss

S
Shared Unmodified
Read Hit / Shared Read miss logical address

MMU ATC

physical address

data valid

address valid

data valid

data CACHE

logical address

MMU ATC TLB physical address

CACHE

data

Read Hit, Write Hit

Shared Read Miss [3]

logically addressed

physically addressed

M
Modified Exclusive

Exclusive Read Miss [3] Write Hit

E
Exclusive Unmodified
Read Hit / Exclusive Read miss

[1] = Read with intent to modify [2] = Invalidation Bus Transaction [3] = Address tag miss = Snoop response

The physically addressed cache is able to snoop and need not be invalidated on a process switch, because it represents a storage with a one-to-one mapping of addresses to main memory cells. The address translation from logical to physical address must be performed in advance. This normally slows down the cache access to two clock cycles, the address translation and the cache access.
address valid

State Transitions for Snooping CPU (Slave) I


Invalid
Snoop Hit on Write [4] or on Read w.i.t.m. [4] Snoop Hit on Write or on Read w.i.t.m. or on Invalidation

MMU ATC

physical address
access valid

S
Shared Unmodified
Snoop Hit on Read Snoop Hit on Read logical address CACHE

Address Compare physical address data


data valid

Snoop Hit on Read [4} Snoop Hit on Write or on Read w.i.t.m.

logically addressed/physically tagged

M
Modified Exclusive

E
Exclusive Unmodified

[4] = Copy back of modified data

The logically indexed/physically tagged cache scheme avoids both disadvantages by storing the high-order part of the physical address in the cache line as additional tag information. 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.

Vorlesung Rechnerarchitektur

Seite 65

Vorlesung Rechnerarchitektur

Seite 66

Cache Consistency
Cache Consistency State Transitions for Bus Master CPU
Shared Read Miss Exclusive Read Miss Write Miss[1]

Cache Placement

Cache Consistency State Transitions for BusSlave CPU (Snooping)

I
Write Miss

S
Snoop Hit on Read w.i.t.m. or Write [4] Exclusive Read Miss [3] Shared Read Miss [3] Read Hit / Shared read miss

Snoop Hit on Read w.i.t.m. or Write

S
Snoop Hit on Read Snoop Hit on Read

directly mapped cache single entry no choice set 0 set

Write Hit [2]

Snoop Hit on Read [4} Snoop Hit on Read w.i.t.m. or Write

Read Hit, Write Hit

Shared Read Miss [3]

M
Prozessor 0

Exclusive Read Miss [3] Write Hit

E
Read Hit / Exclusive read miss

M
Prozessor 1

set/fully associative

L1 Cache
i Tag Data M E S I i Tag Data

L1 Cache
M E S I

random replacement fifo replacement circular fifo pointer/per index nod (number of sets)

random FF first in - first out per cache line set count = n count t (read cache)

least recently used LRU

HitM

Hit

HitM

Hit

am lngsten zurckliegender Zugriff eines Eintrags ... der Eintrag wird berschrieben ... Algorithmus

Snoop Response

BG0 BG1 Main Memory Arbiter


0 4 8 C Snoop Response m LD R1 <- ($A004) ADD R1, #1, R1 ST R1 -> ($A004) i MESI I E;S M Hit 0 0 1 1 HitM 0 1 0 1

BR1 BR0

Symbols for Animation

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 dedicated instruction cache and a dedicated data cache exist. Split caches are very often found as L1 caches of processors (Internal Havard Architecture). A processor having a dedicated instruction memory and a dedicated data memory is called Havard Architecture.

Processor

L1 I-cache

L1 D-cache

Unified L2 Cache to memory Inclusive/Exclusive Caches Inclusive: Data is held in L1 and L2 on fetch; if evicted in L1, remains in L2; fast access later on; effectively cache size is lost Exlucise: Data is only fetcher into L1; if evicted from L1 it is written to L2; effective cache size 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 instructions exactly as they are found in main memory but rather in a decoded form, and possibly a sequential entry of trace cache corresponds to an instruction stream across a branch.

Vorlesung Rechnerarchitektur

Seite 86

Vorlesung Rechnerarchitektur

Seite 87

Memory Management
Ziele des Memory Management Schutzfunktion => Zugriffsrechte Speicherverwaltung fr Prozesse Erweiterung des begrenzten physikalischen Hauptspeichers Eine sehr einfache Mglichkeit den Speicher zu organisieren ist die Aufteilung in einen Festwertspeicher (Read-Only-Memory) fr das Programm und in einen Schreib-Lese-Speicher fr die Daten. - R/W Memory - ROM - kann nicht berschrieben werden Eine solche feste Aufteilung ist nur fr single tasking-Anwendungen sinnvoll, wie sie z.B. in eingebetteten Systemen mit Mikrocontrollern verwendet werden.
3000 CPU
Instr./Data Read/Write RAM
R/W

Memory Management
Memory Segmentation
Virtuelle Adresse MMU
zur Laufzeit

Physikalische Adresse pid = 1 phys. Mem.


from processor

pid = 1 4000 .data 1 1000 0 .text 1 .text 1 .text 2 11000 10000 9600 3600 .data 2 1000 .data 1

upper bound > access rights

virtual address

base of segment base of segment .data .text. +

R/W I/D S/U

address access trap =

physical addr
to memory

pid = 2

ROM

Literature: Andrew S. Tanenbaum, "Structured Computer Organization", 4th edition, Prentice-Hall, p. 403ff.

......

400 0

......

.data 2 .text 2

protection violation trap

Memory fragmentation 0

Address Space

Beim Multi-processing oder Multi-tasking Systemen reicht die oben genannte Mglichkeit, den Speicher zu organisieren, nicht aus. Es existieren viele Prozesse, die quasi gleichzeitig bearbeitet werden mssen. Probleme: - Verlagern von Objekten im Speicher - relocation - Schutz von Objekten im Speicher - protection Lsung: Einfhrung eines logischen Adreraumes pro Proze und einer Abbildung der logischen Adrerume auf den physikalischen Adreraum (Hauptspeicher), die Adreumsetzung address translation => viele Prozesse konkurrieren um den physikalischen Speicher! => um ausgefhrt zu werden, mssen alle Segmente (.text / .data / .bss) in den Speicher geladen werden Segmentierung ist die Aufteilung des logischen Adreraumes in kontinuierliche Bereiche unterschiedlicher Gre zur Speicherung von z.B. Instruktionen (.text) oder Daten (.data) oder Stack-Daten (.bss), etc. Jedes Segment kann jetzt mit Zugriffsrechten geschtzt werden.

Um einen Proze ausfhren zu knnen, mssen alle Segmente des Prozesses im Hauptspeicher sein. - Der Platz ist bereits durch andere Prozesse belegt => Es mssen so viele Segmente anderer (ruhender) Prozesse aus dem Speicher auf die Platte ausgelagert werden, wie der neue auszufhrende Prozess Platz bentigt. Randbedingung durch die Segmentierung: es mu ein fortlaufender Speicherbereich sein! Swapping: Aus- und Einlagerung ganzer Prozesegmente (Cache flush!) - Es ist zwar noch Platz vorhanden, aber die Lcken reichen nicht fr die bentigten neuen Segmente aus. Wiederholtes Aus- und Einlagern fhrt zu einer Fragmentierung des Speichers -Memory fragmentation => Es mssen Segmente verschoben werden, d.h. im Speicher kopiert werden, um Lkken zu schlieen (Cache flush!). In den gngigen Architekturen wird mit n=32 oder 64 Bit adressiert. Daraus folgt die Gre des virtuellen Adressraums mit 2n Byte (232= 4 GByte; 264= 16 ExaByte= 16.77 Millionen TBytes) - Der Hauptspeicherplatz reicht von seiner Gre nicht fr den neuen Proze aus => der Hauptspeicher wird durch das Konzept des Virtuellen Speichers durch die Einbeziehung des Sekundrspeichers (Platte) erweitert.

Vorlesung Rechnerarchitektur

Seite 88

Vorlesung Rechnerarchitektur

Seite 89

Memory Management

Memory Management
Virtueller Speicher / Paging

Literatur: Hwang, Kai; Advanced Computer Architecture, Mc Graw Hill, 1993. Stone, Harold S.; High Performance Computer Architecture, Addison Wesley, 1993 Giloi: Rechnerarchitektur Tannenbaum, Andrew S.: Modern Operating Systems, Prentice-Hall, 1992. Intel: i860XP Microprocessor Programmers Reference Manual Motorola: PowerPC 601 RISC Microprocessor Users Manual Grundlagen Die Memory Managment Unit (MMU) ist eine Hardwareeinheit, die die Betriebssoftware eines Rechners bei der Verwaltung des Hauptspeichers fr die verschiedenen auszufhrenden Prozesse untersttzt. - 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 virtual addresses (VA) and form the virtual address space (VAS). When address translation is enabled, the MMU maps instructions and data virtual addresses into physical addresses before referencing memory. Address translation maps a set of vitual addresses V uniquely to a set of physical addresses M. Virtual memory systems attempt to make optimum use of main memory, while using an auxiliary memory (disk) for backup. VM tries to keep active items in the main memory and as items became inactive, migrate them back to the lower speed disk. If the management algorithms are successful, the performance will tend to be close to the performance of the higher-speed main memory and the cost of the system tend to be close to the cost per bit of the lower-speed memory (optimization of the memory hierarchy between main memory and disk). Most virtual memory systems use a technique called paging. Here, the physical address space is divided up into equallly sized units called page frames. A page is a collection a data that occupies a page frame, when that data is present in memory. The pages and the page frames 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 between access control and number of translations.

Logischer und physikalischer Adressraum werden in Seiten fester Gre unterteilt, meist 4 oder 8KByte. Logische Pages werden in einer Pagetable auf physikalische Pageframes abgebildet, dabei ist der logische Adressraum im allgemeinen wesentlich grer als der physikalisch vorhandene Speicher. Nur ein Teil der Pages ist tatschlich im Hauptspeicher, alle anderen sind auf einen Sekundrspeicher (Platte) ausgelagert. - Programme knnen grer als der Hauptspeicher sein - Programme knnen an beliebige physikalischen Adressen geladen werden, unabhngig von der Aufteilung des physikalischen Speichers - einfache Verwaltung in Hardware durch feste Gre der Seiten - fr jede Seite knnen Zugriffsrechte (read/write, User/Supervisor) festgelegt und bei Zugriffen berprft werden - durch den virtuellen Speicher wird ein kostengnstiger groer und hinreichend schneller Hauptspeicher vorgetuscht (hnlich Cache) Die Pagetable enthlt fr jeden Eintrag einen Vermerk, ob die Seite im Hauptspeicher vorhanden ist (P-Bit / present). Ausgelagerte Pages mssen bei einer Referenz in den Hauptspeicher geladen werden, ggf. wird dabei eine andere Page verdrngt. Modifizierte Seiten (M-Bit / modify) mssen dabei auf den Sekundrspeicher zurckgeschrieben werden. Dazu wird ein weiteres Bit eingefhrt, das bei einem Zugriff auf die Seite gesetzt wird (R-Bit / referenced)

Die Abbildung des virtuellen Adressraums auf den physikalischen erfolgt beim paging durch die Festlegung von Zuordnungspaaren (VA-PA). Hierbei werden die n (n=12 fuer 4K oder 13 fuer 8KB) niederwertigen bits der Adresse von der VA zur PA durchgereicht und nicht uebersetzt

Vorlesung Rechnerarchitektur

Seite 90

Vorlesung Rechnerarchitektur

Seite 91

Memory Management
Virtueller Speicher / Paging Replacement-Strategien : - not recently used - NRU mithilfe der Bits R und M werden vier Klassen von Pages gebildet 0: not referenced, not modified 1: not referenced, modified (empty class in single processor systems!) 2: referenced, not modified 3: referenced, modified es wird eine beliebige Seite aus der niedrigsten nichtleeren Klasse entfernt - FIFO die lteste Seite wird entfernt (mglicherweise die am hufigsten benutzte) - Second-Chance / Clock wie FIFO, wurde der lteste Eintrag benutzt, wird zuerst das R-Bit gelscht und die nchste Seite untersucht, erst wenn alle Seiten erfolglos getestet wurden, wird der lteste Eintrag tatschlich entfernt - least recently used - LRU die am lngsten nicht genutzte Seite wird entfernt, erfordert Alterungsmechnismus Verfahren zur Adretransformation
Address Translation

Page Address Translation

Segment Address Translation

Block Address Translation

.............. direct mapping inverted mapping wie PAT one level mapping

one level

multi level

associative PT

inverted PT

base-bound checking

PAT: Es wird eine Abbildung von VA nach PA vorgenommen, wobei eine feste Page Size vorausgesetzt wird. Der Offset innerhalb einer Page ist damit eine feste Anzahl von bits (last significant bit (LSB)) aus der VA, die direkt in die PA bernommen werden. Der Offset wird also nicht verndert ! Die Abbildung der hherwertigen Adrebits erfolgt nach den oben genannten Mapping-Verfahren. BAT: Provides a way to map ranges of VA larger than a single page into contiguous area of physical 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

Vorlesung Rechnerarchitektur

Seite 92

Vorlesung Rechnerarchitektur

Seite 93

Memory Management
Direct Page Table For all used VA-Frames exist one PT-Entry which maps VA to PA. There are much more entries required as physical memory is available.
direkt PT PAS
page frame VA Page Table Index

Memory Management
Einstufiges Paging
31 dir_base 000000000000 0

12
VAS
31

20
VA high

12
VA Offset

VA

PT
virtual page virtual page virtual page PA page frame page frame PA high Cntrl

220 Entries Page Table Index

used

20
PA

31 PA high

12 Inverted Page Table For all PA exist one PT-Entry. Indexing with the VA doesnt work any more!!! To find the right mapping entry a search with the VA as key must be performed by linear search or by associative match. Used for large virtual address space VAS, e.g. 264 and to keep the PT small.
VAS inv PT PAS
page frame

Die virtuelle Adresse VA wird in einem Schritt in eine physikalische Adresse PA umgesetzt. Dazu wird ein hherwertiger 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 hherwertigen Teil der PA. Der niederwertige Teil der Adresse mit z.B. 12 bit wird als Seiten-Offste direkt zur physikalischen Adresse durchgereicht. Diese einstufige Abbildung kann nur fr kleine Teile der VA high verwendet werden (Tabellengre 4 MB bei 32 bit entries)

VA high

virtual page virtual page virtual page search match VAhigh PA

page frame page frame

......

......

Vorlesung Rechnerarchitektur

Seite 94

Vorlesung Rechnerarchitektur

Seite 95

Memory Management
Mehrstufiges Paging i860XP

Memory Management

Linear Address

31 22 12 0 Directory Table Offset 31 0

A virtual address refers indirectly to a physical address by specifying a page table through a directory page, a page within that table, and an offset within that page.
12 0 Physical memory

486TM CPU 31 0 CR0 CR2 CR2 CR3 dir_base Control registers

10 31

10

{}
20

Address 31

Format of a Virtual Address


22 21 DIR PAGE 12 11 OFFSET 0

{}
20

base

{}
20

30
base

Page table

Page directory
10 10 10 + 2
2 bit byte sel

Bei 32 Bit Prozessoren und einer Seitengre von z.B. 4 KByte wird die Pagetable sehr gro, z.B. 4 MByte bei 32 Bit Pagetable Eintrgen. Da meist nicht alle Eintrge einer Tabelle wirklich genutzt werden, wird eine mehrstufige Umsetzung eingefhrt. Zum Beispiel referenzieren die obersten Adressbits eine Tabelle, whrend die mittleren Bits den Eintrag in dieser Tabelle selektieren. - es ist mglich, in der page dir Eintrge als nicht benutzt zu kennzeichnen - damit werden in der zweiten Stufe weniger Tabellen bentig - die Tabellen der zweiten Ebene knnen selbst ausgelagert werden Pagetables knnen aufgrund ihrer Gre nur im Hauptspeicher gehalten werden. Pagetables sind prinzipiell cachable, allerdings werden die Eintrge wegen ihrer relativ seltenen Benutzung (im Vergleich zu normalen Daten) schnell aus dem allgemeinen Cache verdrngt.
dirbase register

Page directory 1023 1023

Page table 1023


Page table entry

Page frame 4kBytes

DIR entry

physical address word

two-level Page Address Translation

Linear Address 31 0

TLB (32 entries)

Physical Memory

A page table is simply an array of 32-bit page specifiers. A page table is itself a page (1024 entries with 4 bytes = 4kBytes). Two levels of tables are used to address a page frame in main memory. 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.

Page directory

Page table

Zum Beschleunigen der Adressumsetzung, insbesondere bei mehrstufigen Tabellen, wird ein Cache verwendet. Dieser Translation Lookaside Buffer (TLB) oder auch Address Translation Cache (ATC) enthlt die zuletzt erfolgten Adressumsetzungen. Er ist meist vollassoziativ ausgefhrt und enthlt z.B. 64 Eintrge. Neuerdings wird auch noch ein setassoziativer L2-Cache davorgeschaltet.

Vorlesung Rechnerarchitektur

Seite 96

Vorlesung Rechnerarchitektur

Seite 97

Memory Management
i860XP 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 present in main memory. An access to this page generates a trap to the operating system, which has to fetch the page from disk, set the P bit to 1 and restart the instruction. Hashing

Memory Management

Literatur: Sedgewick, Robert, Algorithmen, Addison-Wesley, 1991, pp.273-287

Hashing ist ein Verfahren zum Suchen von Datenstzen in Tabellen Kompromi zwischen Zeit- und Platzbedarf Hashing erfolgt in zwei Schritten: 1. Berechnung der Hash-Funktion Transformiert den Suchschlssel (key, hier die VA) in einen Tabellenindex. Dabei wird der Index wesentlich krzer als der Suchschlssel und damit die erforderliche Tabelle kleiner. Im Idealfall sollten sich die keys mglichst gleichmig ber die Indices verteilen. - Problem: Mehrdeutigkeit der Abbildung 2. Auflsung der Kollisionen, die durch die Mehrdeutigkeit entstehen. a) durch anschlieendes lineares Suchen b) durch erneutes Hashing
VAhigh 7 6 5 4 VAhigh 3 2 1 0

Format of a Page Table Entry (i860XP)


31 PAGE Frame Address 12 11 9 7 5 3 0

C W AVAIL XX D A D T U W P

Available for system programmers use (Reserved) Dirty Accessed Cache Disable Write-through User Writable Present

Definition :

Page The virtual address space is divided up into equal sized units called pages. [Tanenbaum] Eine Page (im Kontext der MMU) entsteht durch die Unterteilung des virtuellen und physikalischen Speichers in gleich groe Teile. Page frame Ist der Speicherbereich im Hauptspeicher, in den genau eine Page hineinpat.

VA high

n
HashFkt.
z.B.

simple Hash Function


3 2 1 Hash-Index 0

linear Search
2n/2 0 0

Definition :

n/2

inverted PT
Entry

Index

2n/2-1

Entry

VA

PA

Cntrl

Vorlesung Rechnerarchitektur

Seite 98

Vorlesung Rechnerarchitektur

Seite 99

Memory Management
LRU-Verfahren Als Beispiel fr einen Algorithmus, der das LRU-Verfahren realisiert, sei ein Verfahren betrachtet, das in einigen Modellen der IBM/370-Familie angewandt wurde. Sei CAM (Content Addressable Memory) ein Assoziativspeicher mit k Zellen, z.B. der Cache. Zustzlich dazu wird eine (k x k)-Matrix AM mit boolschen Speicherelementen angelegt. Jeder der entries des CAM ist genau eine Zeile und eine Spalte dieser Matrix zugeordnet. Wird nun ein entry vom CAM aufgesucht, so wird zuerst in die zugehrige Zeile der boolschen Matrix der Einsvektor e(k) und danach in die zugehrige Spalte der Nullvektor n(k) eingeschrieben (e(k) ist ein Vektor mit k Einsen; n(k) ist ein Vektor mit k Nullen). Dies wird bei jedem neuen Zugriff auf das CAM wiederholt. Sind nacheinander in beliebiger Reihenfolge alle k Zellen angesprochen worden, so enthlt die Zeile, die zu der am lngsten nicht angesprochenen Zelle von CAM gehrt, als einzige den Nullvektor n(k).
AM0 AMi
0

Memory Management
LRU-Verfahren: Beispiel Es wird ein CAM mit 8 entries angenommen. Das kann ein vollassoziativer Cache mit 8 entries sein oder auch ein Set eines Caches mit 8 ways sein. Die Initialisierung der Alterungsmatrix erfolgt mit 0. Als Beispiel fr die Vernderung der Werte in AM soll die folgende Zugriffsreihenfolge betrachtet werden. Zugriffsreihenfolge: 0, 1, 3, 4, 7, 6, 2, 5, 3, 2, 0, 4
0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 2 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 1 0 0 3 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 1 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 5 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 6 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 7 1 0 0 0 0 0 0 0 0 10 1 2 3 0 0 1 1 1 1 0 1 0 1 1 x 0 0 x 0 0 0 0 x 0 0 0 0 x 0 0 0 0 x 0 0 0 0 x 0 0 0 0 x 0 0 0 0 6 0 1 0 1 0 x 0 1 0 1 0 x 0 x 1 0 2 0 x 0 1 1 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 x 0 0 0 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 x 0 0 0 x 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 0 x 1 1 0 1 1 0 4 1 1 0 0 0 0 0 0 0 5 1 1 0 0 0 0 0 0 0 6 1 1 0 0 0 0 0 0 0 7 1 1 0 0 0 0 0 0 0 30 0 1 x 0 1 x 0 x 0 x 0 x 0 x 0 2 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 x 1 0 4 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 x 1 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 2 1 1 0 1 0 0 0 0 0 3 0 1 0 1 0 1 0 0 0 0 0 4 1 1 0 1 0 0 0 0 0 5 1 1 0 1 0 0 0 0 0 6 1 1 0 1 0 0 0 0 0 7 1 1 0 1 0 0 0 0 0 40 0 1 x 0 1 1 x 0 x x x 5 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 x 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 5 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 1 1 0 3 0 0 0 0 1 0 4 0 1 0 1 0 0 1 1 0 6 1 1 0 1 1 0 0 0 0 7 1 1 0 1 1 0 0 0 0

0 1 2 3 4 5 6 7

x x x

AMk-1
1 k 1 ... ......... 1 0 i 0

AM0
cache entry

0 0 1 1 0 ...

Encoder

i k cache entries k-1

AMi

AMk-1
CAM

0 0

k-1 i

k x k-Matix

OR

7 0 1 2 3 4 5 6 7 3 0 1 2 3 4 5 6 7

Sei i der Index der als erste angesprochenen Zelle von CAM, und sei AM die (k x k)-Alterungsmatrix. Dann ist nach dem Ansprechen der Zelle i AMi = n(k), whrend alle Elemente von AMi eins sind bis auf das Element (AMi)i, das null ist (da zunchst e(k) in die Zeile AMi und dann in die Spalte AMi eingeschrieben wird). Dabei bezeichnen wir die Zeilen einer Speichermatrix durch einen hochgestellten Index und die Spalten durch einen tiefgestellten Index. Bei jeder Referenz einer anderen Zelle von CAM wird durch das Einschreiben von e(k) in die entsprechende Zeile und nachfolgend durch das Einschreiben von n(k) in die entsprechende Spalte von AM eine der Einsen in AMi durch Null ersetzt und eine andere Zeile mit Einsen angefllt (bis auf das Element auf der Hauptdiagonale, das null bleibt). Damit werden nach und nach alle Elemente von AMi durch Null ersetzt, falls die Zelle i zwischenzeitlich nicht mehr angesprochen wird. Da aber nach k Schritten nur in einer der k Zellen alle Einsen durch Nullen berschrieben sein knnen, mssen alle anderen Zeilen von AM noch mindestens eine Eins enthalten. Damit indiziert die Zeile von AM, die nur Nullen enthlt, die LRU-Zelle (entry) des Assoziativspeichers. [ Giloi, Rechnerarchitektur, Springer, 1993, pp. 130]

Der Start erfolgt mit allen Eintrgen als gleichalt markiert. Der erste Eintrag in Zeile und Spalte 0 lt den Eintrag 0 altern. Es sind danach nur noch die mit x markierten Eintrge zum Ersetzen zu verwenden. Sind alle Eintrge einmal referenziert, so bleibt in jedem weiteren Zugriffsschritt immer nur ein Eintrag als der lteste markiert stehen. [Tannenbaum, Modern Operating Systems, Prentice Hall, 1992, pp.111-112]

ppt

Vorlesung Rechnerarchitektur

Seite 100

Vorlesung Rechnerarchitektur

Seite 101

Main Memory
Some definitions ...
.... mode : page mode : Betriebsart in der auf alle bits in dieser Page (RA) wesentlich schneller zugegriffen werden kann. (12-25ns tCAC) Zum Zugriff wird eine neue CA und CAS bentigt. 1 Mbit x 1 bit
10 10 10

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:
CA
C_Dec 1024 bit page

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 the same time at all locations Caution : simplified view

RA

R_Dec

32 bit Word => 4 MByte

- clock jitter - clock skew - clock network delay bandwidth :


Term derived from ET. HFT, means the available frequency space f for a transmission channel

31
Mem base

22 21
RA

12 11
CA

21 0
byte sel

burst mode :

Holt 2n Werte aus dem Speicher ohne eine neue CA. CAS mu aber geschaltet werden, um den internen Zhler zu inkrementieren.

f1

f2

f=f2-f1
unit [MHz]

memory modell :

latency in clocks L -B- B - B 6 - 2 - 2 - 2

used in TI as: possible number of data, which can be carried through an interface, eg. bus, memory. unit [MBytes/s]

transfer rate :
tRAC tCAC Number of Data items, which are moved in one second. unit [MBytes/s]