71
Andreas Polze 1 Programmiertechnik 1 Unit 2: Rechnerarchitektur

Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 1

Programmiertechnik1

Unit2:Rechnerarchitektur

Page 2: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 2

Ablauf

• Aussagenlogik• Schaltnetze,Schaltwerke• Register• vonNeumannRechner• CPU,ALU,CU• Instruktionsverarbeitung• OpCodeFormate,RTL• Instruktionsarten• Ein- undAusgabe

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 3: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 3

Aussagenlogik

• Aussagenlogik– TeilderLogik,indemEigenschaftenvonAussagenuntersuchtwerden,die

durchVerknüpfungandererAussagenentstehen– Aussagenwerdennichtinhaltlichuntersuchtà Prädikat– JedeAussagehateinenWahrheitswert

• PrinzipderZweiwertigkeit:– JedeAussagehatentwederdenWert„wahr“oderdenWert„falsch“

• SatzvomausgeschlossenemDritten(tertiumnondatur):– JedeAussageistentwederwahroderfalsch

• SatzvomausgeschlossenenWiderspruch:– KeineAussageistzugleichwahrundfalsch

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 4: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 4

Aussagenlogik(contd.)

• PrinzipderExtensionalität:– DerWahrheitswerteinerAussagenverknüpfunghängtausschließlichvonden

WahrheitswertenihrerBestandteileab.

• Zuordnung:– WahreAussageàW,1,H– FalscheAussageà F,0,L

• MehrwertigeLogikensindmöglich,jedochschlechtrealisierbar– Bsp:open-collector-Ausgangà hochohmig– ZustandsänderungenkönnenalseigenerZustandaufgefasstwerden– „unbestimmt“-ZustandinderFehlerdiagnose– Fuzzy-Logik

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 5: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 5

BoolescheAlgebra

• GehtzuruckaufGeorgeBoole(18141864)

SeiB={0,1}(oder{T,F})

• BoolescheFunktionenf:Bn→Bmmitm,n≥1ordnenjedemnTupelvonZahlenausBeindeutigeinmTupelzu.

• EchteBoolescheFunktionhatm=1.JedemnTupelvonZahlenausBwirdeindeutigeinWahrheitswertausBzugeordnet.

• Operatoren:∧,∨,¬(oderauch*,+,,oderAND,OR,NOT)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 6: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 6

EinstelligeBoolescheFunktionen

z=f(0) z=f(1) Notation AlternativeBezeichnung

Identität 0 1 z=x

Negation 1 0 z=¬x=x Not,nicht,Komplement

Einsfunktion 1 1 z=1(x)

Nullfunktion 0 0 z=0(x)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 7: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 7

ZweistelligeboolescheFunktionen

Bezeichnung

z=f(x,y)

Notation AlternativeBezeichnungx=0y=0

x=1y=0

x=0y=1

x=1y=1

Einsfunktion 1 1 1 1 z=1(x,y)

Nullfunktion 0 0 0 0 z=0(x,y)

Und 0 0 0 1 z=x⋀y=x⋅y=xy and,Konjunktion

Oder 0 1 1 1 z=x⋁y=x+y or,Disjunktion

Antivalenz 0 1 1 0 z=x⊕y xor,Exklusiv-Oder

Äquivalenz 1 0 0 1 z=x≡y

Implikation 1 0 1 1 z=xày

Nicht-Und 1 1 1 0 z=x⋀y nand

Nicht-Oder 1 0 0 0 z=x⋁y nor

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 8: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 8

BoolescheAlgebra

• Problem:GibteseineMengeW vonFunktionen,mitdenenalleanderenFunktionendargestelltwerdenkönnen?– W = {⋁, ¬ }– W = {⋀, ¬ }– W = {nand}– W = {nor}– W = {Einsfunktion,⊕,⋀}

• DieMengenW heißenlogischvollständig

• DeMorganscheRegel:– ¬(x⋀ y)=¬x⋁ ¬y– ¬(x⋁ y)=¬x⋀ ¬y

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 9: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 9

BoolescheAlgebra

• Assoziativgesetze– (x⋁ y)⋁ z=x⋁ (y⋁ z)=x⋁ y⋁ z– (x⋀ y)⋀ z=x⋀ (y⋀ z)=x⋀ y⋀ z– (x⊕ y)⊕ z=x⊕ (y⊕ z)=x⊕ y⊕ z

• Kommutativgesetze– x⋁ y=y⋁ x– x⋀ y=y⋀ x– x⊕ y=y⊕ x

• Distributivgesetze– x⋀ (y⋁ z)=(x⋀ y)⋁ (x⋀ z)– x⋁ (y⋀ z)=(x⋁ y)⋀ (x⋁ z)– x⋀ (y⊕ z)=(x⋀ y)⊕ (x⋀ z)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 10: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 10

Schaltungslogik

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 11: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 11

TransistorenfürdigitaleSchaltungen

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 12: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 12

Schaltnetze

• GatterimplementierenboolescheFunktionen

• Signalewerdendurchelektr.Spannungendargestellt

• ZusammensetzungvonGatternheißenLogikschaltungen

• EinSchaltnetzisteineZusammensetzungvonLogikschaltungenohneSpeicherverhalten

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 13: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 13

Schaltwerke

• EinSchaltwerkzeigtSpeicherverhaltenà esbesitzteinenZustand

• DurchEingangssignaleändertsichderZustandderSchaltung

• DaseinfachsteSpeicherelementspeichertZustände0/1à dasFlip-Flop

Unit2:Rechnerarchitektur,Programmiertechnik1

S R Uneu

1 1 Ualt

0 1 0

1 0 1

0 0 „verboten“

Page 14: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 14

BinäreSignale,Taktsteuerung

• AbstraktionvonSignalübergängen:Takt

• BetrachtennurnochRechtecksignale

• UmschalttaktistverschiedenvonAbtasttakt

• Realisierung:getaktetesFlip-Flop

• SynchroneSchaltungen

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 15: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 15

D-Flip-Flop

• Problem:– VerboteneZuständesindunerwünscht– EinBitsollmiteinerLeitunggesteuertwerdenàD-Flip-Flop(D=Delay)

– MitfallenderTaktflankeanTwirdderanDanliegendeDatenwert(0oder1)übernommen

Unit2:Rechnerarchitektur,Programmiertechnik1

D T Qneu

x 0 Qalt

1 1 1

0 1 0

Page 16: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 16

ZustandsbehafteteundzustandsloseSchaltungen

• InzustandslosenSchaltungenhängtdasAusgangssignalausschließlichvomEingangssignalab

• InzustandsbehaftetenSchaltungengehtVorgeschichte(Zustand)indasAusgangssignalein

• à Automatenmodell

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 17: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 17

Register

• SpeicherfürlogischzusammengehörendeBitswerdenzuRegisternzusammengefasst

• RegisterbestehenausunverbundenenFlip-Flops

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 18: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 18

Schieberegister

• MitjedemTaktwirddasDatenwortumeineStelleverschobenundindas„freigewordene“BitderWertdesEingangsbitsdin geschrieben

– t=t0,din =1: D=0000– t=t0+1,din =1: D=0001– t=t0 +2,din =0: D=0011– t=t0 +3,din =1: D=0110– t=t0 +4,din =1: D=1101

• Beidin =0entsprichtdasSchiebeninRichtungMSB(MostSignificantBit)einerMultiplikationmit2,dasSchiebeninRichtungLSB(LeastSignificantBit)entsprichteinerDivisiondurch2

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 19: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 19

ArbeitsspeicherAbstraktesModell:

• LineareListevonSpeicherzellen,aufdieunterAngabeeinerAdressezugegriffenwerdenkann

Halbleiterspeicher:

• enthältMillionenvonFlip-FlopsaufeinemChip

Zugangssignal

• wirdausdemWert,deraufdenAdressleitungenanliegt,dekodiert.

Typisch:

• m=64(Datenwortezu64bit)• n=28(Eskönnen228 =Worte

=2GBadressiertwerden)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 20: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 20

Addition

• DieAdditionzweierBinärzahlenkanndurchlogischeVerknüpfungenrealisiertwerden

• à Halbaddierer(Half-Adder)

• Berechnungvonx+y=z+Übertrag(carry)• ÜbertragzurnächsthöherenStelle

Unit2:Rechnerarchitektur,Programmiertechnik1

c = x ∧ yq = x ⊕ y

x y c q

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

Page 21: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 21

Volladdierer

• ZurvollständigenAdditioneinerStellezweiermehrstelligerDualzahlenmussnochderÜbertragcin vondervorherigenStelleberücksichtigtwerden.

Unit2:Rechnerarchitektur,Programmiertechnik1

x y cin q cout

0 0 0 0 0

0 1 0 1 0

1 0 0 1 0

1 1 0 0 1

0 0 1 1 0

0 1 1 0 1

1 0 1 0 1

1 1 1 1 1

Page 22: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 22

n-bit-Addierer• DurchZusammenschaltenmehrererVolladdierer

könnenDatenwortebeliebigerBreiteaddiertwerden

• DatenwerdendabeialsZahlenimZweierkomplementaufgefasst

– VorzeichenbehafteteDualzahlen

• DasCarry-BitmussimmerzurnächsthöherenStufeweitergereichtwerden

– „ripplecarryadder“– „Einschwingen“allerStufenmussabgewartet

werdenbevorErgebnisgültigist.

• LogischunabhängigeTeilederAddierformelkönnenparallelberechnetwerden

– à schnellerAddierer

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 23: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 23

Akkumulation

• AdditionmehrererZahlenmitzusammengeschalteterAddierketteundRegister(Akkumulator)

• FortgesetzteAdditionbeliebigvielerZahlenmöglich

• AkkumulatorsammeltErgebnissevorherigerAdditionen

Programm:

1)AClöschen(AC:=0)2)AddierexzumInhaltvonAC(AC:=AC+x)3)Wennnichtfertig,weitermit2)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 24: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 24

Multiplikation

• „PapierundBleistift“-Methode• AuchmitBinärzahlenmöglich

Unit2:Rechnerarchitektur,Programmiertechnik1

10 * 12 = 12010_20 ______ 120

10 * 12 = 12020

___ 10 _____ 120

1010 * 1100 = 1200000

00001010

1010_____ 01111 000 = 64 + 32 + 16 + 8 = 120

Page 25: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 25

Multiplikationsarray

• Das„PapierundBleistift“-Verfahrenwirdnachempfunden– ProduktistdieSummevonTeilprodukten– HoherAufwandistnachteilig,füreinen-Bit-Multiplikationwerden

n2 Zellenbenötigt

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 26: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 26

MultiplikationmitSchieberegister

• Faktoreninfundg• a=0,c=0• Wenng0 ==1wirdfzua

addiert(Initialisierung)• DasDoppelregisteragwirdum

eineStellenachrechtsgeschoben,leastsignificantbit(LSB)vomErgebnisstehtdanningn-1

• Sogehtesn-1malweiter• ErgebnisderMultiplikation

stehtamEndeinag• c==1zeigtÜberlaufan

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 27: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 27

VonderSchaltungzurVerarbeitung

• KönnennunDatendarstellen,speichern,logischundarithmetischmanipulieren

• Aber:– KomplexereAlgorithmenlassensichnurschwer„verdrahten“– FlexibilitätderAbarbeitung?

• ZumAufbaueinesProzessorsfehlennoch:– DasLesen/DekodierenvonInstruktionen– MechanismenzurKontrolledesProgrammablaufs– Sprünge(Schleifen,Wiederholungen)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 28: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 28

InformationsverarbeitungimComputer

• InformationsverarbeitungbestehtausdreiSchritten:– Datengewinnungund–eingabe– VerarbeitungundSpeicherung– Datenausgabe

• DieseStufenspiegelnsichinallenGerätenzurInformations-verarbeitungwider– Eingabe:Tastatur,Maus,Sensor,Kartenleser,Festplatte– Ausgabe:Bildschirm,Drucker,Aktuator,Festplatte

Unit2:Rechnerarchitektur,Programmiertechnik1

Dateneingabe VerarbeitungundSpeicherung Datenausgabe

Page 29: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 29

Bus

• DerBusisteineVerbindungseinheitzwischenverschiedenen,logischgetrenntenFunktionseinheiten– Vieladrig(nbitkönnengleichzeitigübertragenwerden)– Steuersignale+Datensignale,Busvergabesteuerung

Unit2:Rechnerarchitektur,Programmiertechnik1

E/A-Geräte

ZentraleVerarbeitungs-

einheit(ZVE,CPU)

HauptspeicherSteuer-leitungen

Steuer-leitungen

Datenbus

Adressbus

Page 30: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 30

Von-Neumann-Rechner(storedprogramcomputer)

JohnvonNeumann(JánosNeumannMargittai,1903-1957)– UngarischerMathematiker– VeröffentlichteerstmalsdienachihmbenanntenPrinzipiendesRechnerentwurfs(1945)– Manhattan-project:EntwurfEDVAC– ElectronicDiscreteVariableAutomaticComputer(1943)– JohnPresperEckertundJohnWilliamMauchly,ArchitektenENIAC/EDVAC(1944),nichtgewürdigt

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 31: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 31

PrinzipiendesVon-Neumann-Rechners

• Rechnerbestehtaus– Speicher,Rechenwerk,Steuerwerk,Ein- undAusgabegeräten– ZentraleVerarbeitungseinheitarbeitettaktgesteuert– BinäreCodierungallerSignale

• SpeicherinhaltewerdenüberihreAdresseangesprochen– RechnerverarbeitetProgramme,dieinterngespeichertwerden

• ProgrammbefehleundDatenwerdenimgemeinsamenHauptspeichergespeichert– Programmewerdensequentiellabgearbeitet– DersequentielleProgrammflusskanndurch(bedingteoder

unbedingte)Sprüngeverändertwerden– JedetheoretischmöglichBerechnungistberechenbar(imRahmender

KapazitätdesRechners)Unit2:Rechnerarchitektur,Programmiertechnik1

Page 32: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 32

von-NeumannArchitekturversusHardvard-Architektur

Unit2:Rechnerarchitektur,Programmiertechnik1

ZentraleVerarbeitungs-

einheit(ZVE,CPU)

Daten- undProgramm-speicher

Steuer-leitungen

Datenbus

Adressbus

Programm-speicher

ZentraleVerarbeitungs-

einheit(ZVE,CPU)

DatenspeicherSteuer-leitungen

Steuer-leitungen

Datenbus

Adressbus

von-Neumann-Architektur

Harvard-Architektur

Page 33: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 33

ZentraleVerarbeitungseinheit

• Herzjedesvon-Neumann-Rechners– ZVE– ZentraleVerarbeitungseinheit– CPU– centralprocessingunit

• HäufigalsIC(integratedcircuit)realisiert– Mikroprozessor– MultiCore/ManyCoreCPU

• BekannteProzessorfamilien:– Intelx86/x64(8086,80286,80386,Pentium,Xeon,Nehalem)(16/32/64bit)– MC680x0vonMotorola(16/32bit)– PowerPC(IBM,Motorola)(32/64bit)– ARM(Acorn,AdvancedRISCMachines)(32bit)– Sparc,HPPA-RISC,MIPS,Alpha,Itanium(32/64bit)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 34: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 34

ZentraleVerabeitungseinheit(contd.)

• InformationsverarbeitungfindetinderCPUstatt

• CPUbestehtausSteuerwerkundRechenwerk– mehrereRechenwerke– Pipelining,superskalareCPU– MehrereSteuerwerke– MultiCore,hyperthreading

• NebenderCPUkannesweitereProzessorengeben– Koprozessoren:80387– Gleitkomma-Koprozessor– GraphicalProcessingUnits(GPU)– Crypto-Prozessoren,Java-Koprozessoren(IBM)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 35: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 35

ALUundRechenwerk

• ALU=arithmeticlogicunit(arithmetisch/logischeEinheit)

• AufgabendesRechenwerks– AusführenarithmetischerOperationen:

Addition,Subtraktion,Inkrementierung,Dekrementierung,BildenvonZahlenkomplementen

– AusführenlogischerOperationen:bitweiseNegation,Disjunktion,Konjunktion,Antivalenz,etc.

– AusführenvonVergleichsoperationen– AusführenvonSchiebeoperationen– AuchALSU– arithmetic/logic/shiftingunit

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 36: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 36

EineeinfacheALU

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 37: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 37

ALU– Parameterschaltung(1)

• ParameterschaltungkannalleeinstelligenBinärfunktionenfürydurchverschiedeneEingangssignaleaundbdarstellen

Unit2:Rechnerarchitektur,Programmiertechnik1

a b Ψab(Y)

0 0 0

0 1 y

1 0 y

1 1 1

Page 38: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 38

ALU– Parameterschaltung(2)

• ErweiterteParameterschaltungfür2tenEingang– DurchHinzunahmederOR-FunktionwirddieALUlogischvollständig

Unit2:Rechnerarchitektur,Programmiertechnik1

a b d ξabd(x,y)

0 0 0 x∨ y

0 1 0 x∨ y

1 0 0 x

1 1 0 x

- - 1 x

Page 39: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 39

ALU– Parameterschaltung(3)

• Steuerleitungdlegtfest,obarithmetischeoderlogischeOperationenausgeführtwerdensollen.– d==0à keineWeitergabedesÜbertragszwischenALU-Zellen– d==0à logischeOp.,d==1à arithmetischeOp.

Unit2:Rechnerarchitektur,Programmiertechnik1

d Χd(cin)

0 0

1 cin

Page 40: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 40

FunktionenderALUa b c d Ψab(Y) ξabd(x,y) Ergebnisfabcd(x,y) Bezeichnung

LogischeFunktionenfabcd(x,y)=Ψab(y)⊕ ξabd(x,y)

0 0 - 0 0 x∨ y x∨ y Disjunktion

0 1 - 0 y x∨ y x∧ y Nicht-Und

1 0 - 0 y x x⊕ y –

1 1 - 0 1 x x Einerkomplement

ArithmetischeFunktionenfabcd(x,y)=Ψab(y)+ξabd(x,y)+c0 0 0 1 0 x x Identität(Transfer)

0 0 1 1 0 x x+1 Inkrement

0 1 0 1 y x x+y Addition

0 1 1 1 y x x+y+1 AdditionmitÜbertrag

1 0 0 1 y x x- y Subtraktion(1erKompl)

1 0 1 1 y x x– y+1 Subtraktion(2erKompl)

1 1 0 1 1 x x- 1 Dekrement

1 1 1 1 1 x x Identität(Transfer)Unit2:Rechnerarchitektur,Programmiertechnik1

Page 41: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 41

4-BitALU

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 42: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 42

Statuswort• Vergleichsoperationenwerdenmit

HilfedesStatusregisters(flagregister)realisiert

• FlaggenspiegelnErgebnisderletztenOperationwider

• TypischeFlaggen:– Carry:einearithmetischeOperation

hatÜberlauferzeugt– Zero:Ergebnisbestehtnuraus

Nullen– Negative:ErgebnisistnegativeZahl– Overflow:beieiner2er-

Komplement-BerechnungtratÜberlaufauf

• ProzessorStatusWord(PSW)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 43: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 43

Vergleichsoperationen

• VergleicherfolgtdurchAusführungeinerSubtraktion• ErgebnisistausFlaggenablesbar

Unit2:Rechnerarchitektur,Programmiertechnik1

Relation VorzeichenloseZahl 2erKomplement-Zahl

x=y Z=1 Z=1

x≠y Z=0 Z=0

x≥y C=1 N=V

x<y C=0 N≠V

x>y C=1undZ=0 N=VundZ=0

x≤y C=0oderZ=1 N≠VoderZ=1

Page 44: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 44

SteuerungdesRechenwerkes

• SchwarzeBusse:Datensignale– Informationen,die

verarbeitetwerden• GraueBusse:

Steuersignale– Bestimmen,wie

Informationenverarbeitetwerden

• SteuersignalekönnenwiederzuDatenwortenzusammengefasstwerden

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 45: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 45

Registersatz

• DieCPUbesitzttypischerweisemehrereRegister,derenVerwendungszwecknichtvonvornhereinfestgelegtist– Allzweckregister(generalpurposeregister)– KönnenvomProgrammiererfreiverwendetwerden

• BestimmteCPU-RegistersindaufgewisseAufgabenspezialisiert– Spezialregister(specialpurposeregister)

• AnzahlundVerwendbarkeitvonRegisternsindwesentlichesArchitekturmerkmal

• GesamtheitderfürdenProgrammierernutzbarenRegisternenntmanRegistersatz.

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 46: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 46

Steuerwerk

• DasSteuerwerk(controlunit)koordiniertRechenwerk,Ein-undAusgabeeinheitsowieSpeichersystem– SendetSteuersignaleanandereEinheiten– ErfasstStatusallerfunktionalenEinheiten

• WesentlicheFunktionen:– Sequencing:GenerierenvonSteuersignalenzurAbarbeitungder

InstruktionenausdemBefehlssatzderCPU– SteuerungundÜberwachungvonZugriffenaufdenSpeicherunddas

Ein- undAusgabesystem

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 47: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 47

InteraktionmitSpeicher

• SpeicherdientdemAblegenvonInformationen– Daten,Programmen,Ergebnissen– HardwarekannTypderDatennichterkennen– InterpretationderDatenerfolgtdurchzugreifendeEinheit

• ZugriffaufSpeichererfordertAdresssignal• Steuersignalgibtan,obgelesenodergeschriebenwerdensoll

• VerschiedeneSpeicherarten:– Schreiben+Lesen:RAM– randomaccessmemory– NurLesen:ROM– readonlymemory

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 48: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 48

InteraktionmitSpeicher(contd.)

• CPUbenutztSpezialregisterfürKommunikationmitSpeicher

– MAR–memoryaddressregister(Speicheradressierungsregister,SAR)• EnthältdieAdresseeinerSpeicherzelle

– MDR–memorydataregister(Speicherdatenregister,SDR)• EnthältdenWert,derindenSpeichergeschriebenwerdensolloderderausdemSpeichergelesenwurde

– PC– programcounter(Befehlszähler,BZ;auchIP– instructionpointer)• EnthältdieAdressederSpeicherzelle,inderdernächsteauszuführendebefehlsteht

– IR– instructionregister(Befehlsregister,BR)• SpeichertdengeradeausgeführtenBefehl

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 49: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 49

LesenundSchreibenvonSpeicher

• Lesen:– LadeAdressenachMAR– SetzeR/Wauf„Lesen“– WartebisR-RDY=1

(waitformemoryfunctioncomplete– WMFC)

– ÜbernehmeDatenausMDR

• Schreiben:– LadeAdressenachMAR– LadeDatennachMDR– SetzeR/Wauf„Schreiben“– SetzeW-RDY:=1– WartebisR-RDY=1

(waitformemoryfunctioncomplete– WMFC)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 50: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 50

Ein- undAusgabe

• Ein- undAusgabeanGerätefunktioniertanalogSpeicherzugriffen• EinGerätwirddurcheineAdresseausgewählt– ausSichtderCPUspricht

manvonPorts– I/Oports

• EinaufeinenPortgeschriebenerodervondortgelesenerWertwirdinbestimmtenRegisternzwischengespeichert

• MancheArchitekturenunterscheidennichtzwischenSpeicherundGerätenà GerätehabenspezielleAdressbereiche(– memory-mappedI/O

• AndereArchitekturenbenutzenspezielleSteuerleitungenfürEin- undAusgabe

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 51: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 51

Einfache1-BusCPU

• SichtbareundunsichtbareRegister

Unit2:Rechnerarchitektur,Programmiertechnik1

PC

IR

InstructionDecoder

MAR

MDR

R0

Rn

Y

Z

ALU

Speicher-schnittstelle

ALUSteuer-leitungen

...

Page 52: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 52

Instruktionsabarbeitung

• Fetch/Decode/Execute– Zyklus– Befehlholen,dekodieren,ausführen

• DasinderFetch-PhasegeleseneDatenwortwirdalsBefehlinterpretiertundinIRgespeichert

– LadePCinMAR– LeseBefehlausSpeicherundspeichereihninIR– DekodiereBefehlundinkrementierePC

• LadeOperandenadressenachMAR• LeseOperandenausSpeicher

– FühreOperationaus• LadeErgebnisadressenachMAR• SchreibeErgebnis

Unit2:Rechnerarchitektur,Programmiertechnik1

Fetch Decode Execute

Page 53: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 53

FetchundExecute

• Beispiel:„AddieredenInhaltderSpeicherstelleloczumRegisterR1“– locistexplizitimAdressteilderOperationgegeben(absoluteAdressierung)

• Fetch:– T0:MARß PC– T1:MDRßM[MAR],WMFC ;WartenaufSpeicher,SignalMFC– T2:IRßMDR ;Dekodiere– T3:PCß PC+1

• Execute:– T0:MARß Ad(IR) ;AdressedesOperandenimIR– T1:MDRßM[MAR],WMFC ;WartenaufSpeicher,SignalMFC– T2:YßMDR– T3:Zß Y+R1– T4:R1ß Z

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 54: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 54

Steuersignale

• Beispiel:unbedingterrelativerSprung– PCout;MARin;read;clearY;

Setcarry-intoALU;AddtoZ– Zout;PCin;WMFC– MDRout;IRin– PCout;Yin– Adr(IR)out;AddtoZ– Zout;PCin;End

• Sprungoperationbenötigt6nichtüber-lappendeTakte

Unit2:Rechnerarchitektur,Programmiertechnik1

PC

IR

InstructionDecoder

MAR

MDR

R0

Rn

Y

Z

ALU

Speicher-schnittstelle

ALUSteuer-leitungen

...

Page 55: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 55

GewinnungvonSteuersignalen

• InAbhängigkeitvomOpCodeundProzessorstatus(N,C,V,Z-Flaggen)müssenSteuersignaleerzeugtwerden

• ZählererzeugtZeitintervallefürBefehlsabarbeitungbasierendaufCPU-Takt

• UnterschiedlichlangeInstruktionen(Abarbeitungsdauer)

– Endà ZurücksetzendesZählers

• WartenaufSpeicherbeiSchreibenundLesen:

– RUN-Signal;Zählerläuftnur,wennRUN=1

– MFC-SignalsetztRUNß 1

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 56: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 56

Festverdrahtetevs.mikroprogrammierteCPU

• AusdemWertinIRmüssenSteuersignalegewonnenwerden,umdieBefehlsabarbeitungzusteuern

• FürjedenBefehleineSequenzvonSteuersignalennötig• FestverdrahteteCPU(schnell):

– SteuersignalewerdendurchkombinatorischeSchaltungenerzeugt– ProgrammableLogicArrays(PLA)

• MikroprogrammierteCPU(flexibel):– BenutzenschnellenSpeicherumdieSteuersignalefürjedeInstruktioninder

CPUzuspeichern(ControlWords)– µPC(microprogramcounter)umSteuerwortesequentiellzulesen– µPCwirdvomCPU-Taktinkrementiert– µPCkanninAbhängigkeitvonIR,statusflags, conditioncodesundbitsimIR

geändertwerden– Sprüngeimµ-Befehlssatz

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 57: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 57

Befehlssatz

• PrinzipiellerAufbau– Op-Code-Feld– FeldfürAdressierungsart– FeldfürDarstellungderOperandenoderAdressen

• UnterscheidungvonBefehlssätzennachAnzahlderAdressen– Kein-Adress-Maschine(Stack-Maschine)

• BeideOperandenunddasZielbefindensichaufdemStack,keinOperandenfeld

– Ein-Adress-Maschine• EinOperandinInstruktion,zweiterOperandundZielinAkkumulator

(ausgezeichnetesRegister)

– Zwei-Adress-Maschine• BeideOperandensindTeilderInstruktion,einOperandistgleichzeitigZieloderZiel

istimplizitderAkkumulator

– Drei-Adress-Maschine• BeideOperandenunddasZielsindBestandteilderInstruktion

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 58: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 58

Befehlssatz(contd.)

• MitzunehmenderAnzahlwirdderBefehlssatzflexibleraberauchgrößer

• ManchmalsindfürbestimmteOperandennichtalleAdressierungsartenmöglichà 1,5-Adress-Maschine

Unit2:Rechnerarchitektur,Programmiertechnik1

OpCode

Kein-Adress-Maschine (Stack-Maschine)

OpCode

Ein-Adress-Maschine

Adr.-Art Operand

OpCode

Zwei-Adress-Maschine

OpCode

Drei-Adress-Maschine

Adr.-Art Operand Adr.-Art Operand

Adr.-Art Operand Adr.-Art Operand Adr.-Art Operand

Page 59: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 59

Adressierungsarten

• Absolut(direct):– Adresse(Speicherstelle)desOperandenistexplizitalsTeilder

Instruktiongegeben

• Unmittelbar(immediate):– OperandistTeilderInstruktion

• Indirekt:– EffektiveAdressedesOperandenistineinemRegisterodereiner

Speicherstellegegeben,derenAdresseinderInstruktionerscheint

• Indiziert(indexed):– EffektiveAdressedesOperandenwirdgeneriertdurchAddiereneiner

KonstantenzueinemRegisterinhalt

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 60: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 60

TypenvonInstruktionen

EintypischerBefehlssatzenthältfolgendeInstruktionen:• Transfer-Operationen

– LadeneinesRegisterinhaltsaufSpeicher,WertaufStacklegen

• ArithmetischeOperationen– InkrementiereneinesRegisterinhalts,AddierenderbeidenoberstenWerteaufdem

Stack

• LogischeOperationen– BildedasKomplementdesAkkumulatorinhalts,bildedieUND-Verknüpfungderbeiden

oberstenWerteaufdemStack

• OperationenzurProgrammsteuerung– SpringebeiZ=1nachAdresseadr,HalteProgrammausführungan,

RufeUnterprogramm

• Ein- undAusgabe-Operationen– GebeAkkumulatorinhaltanPortprtaus

ZahlderInstruktionenvariiertzwischenArchitekturen

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 61: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 61

Maschinenbefehle

• ProgrammebestehenausInstruktionen,diederProzessorversteht– Maschinenbefehle

• ProzessorführtBefehleunmittelbaraus– Programmiermodell

• SymbolischeAbkürzungenfürdieBitmusterderBefehle– Mnemonics

• SpezielleProgrammeübersetzenMnemonicsinMaschinencode– Assembler

• ProgrammezumÜbersetzenvonHochsprachen(C,Pascal,Prolog,etc.)generierenoftdirektMaschinencode– Compiler– BeiCompilernliegtkeine1-zu-1-Abbildungvon(Hochsprach-)Befehlenauf

Maschinencodevor

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 62: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 62

Maschinenbefehle(contd.)

• AdressierungsartwirddurchMnemonicangegebenoderimplizitdurchOperandenfestgelegt

• TypischeMnemonics:– mov x,y oderld x,y (move,load)– add, sub, and, or, mul, div, usw.(add,subtract,...)

• DieReihenfolgevonQuelleundZielistvomAssemblerabhängig– mov ax, 30H AXß 3016 imIntel80286-Assembler– moveq #17, D0 17à D0imMotorola86020-Assembler

• Klammern(),[]oder@zeigenindirekteAdressierungan– mov ax, [bx] Intel80286– ld a, (hl) Z80– moveb @R1, 0x17 PDP-11

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 63: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 63

BeispielStackmachine

• Speicherwirdnichtalsfreiadressierbarangesehen,sondernalsStapel(stack),aufderenobersteElementezugegriffenwerdenkann

• DasobersteElementwirdalsTOS(topofstack)bezeichnet,darunterliegendealsTOS-1,usw.– Einoperandenbefehle:TOSß opTOS– Zweioperandenbefehle:TOSß TOSopTOS-1

• Stackmanipulation:– dup: VerdoppeltdasobersteElement– swap: VertauschtTOSundTOS-1– rot: VertauschtTOS,TOS-1undTOS-2zyklisch– drop: EntferntdasobersteElementvomStack

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 64: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 64

SimulationeinerStackmaschine

Programm:pushApush#5subpushBpush#4addmulpopAhalt

©2004byTeresaW.

Carrigan.

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 65: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 65

EinPDP-11Assembler-Beispiel

Tag Data

13 bits 16 bits

0

2

4

6

direct-mapped cache

A03C

05D9

10D7

main memory contents

LOOP Add (R1)+, R0

Dec R2

BNE LOOP

16 bits operands/instructions

after pass 1 after pass 2 after pass 3

054E

R0 <- 0

R1 <- 054E

R3 <- 3

initial:

005E BNE

LOOP starts at 02EC

005D Add

005D Dec

02EC = 0000 0010 1110 1100

4D5 cache linetag

054E = 0000 0101 0100 1110

(Add)

(Operand)

(Dec - overwrites Op in line 6)02EE = 0000 0010 1110 1110

005E BNE

005D Add

005D Dec

005E BNE

00AA 10D7

005D Add

005D Dec

Unit2:Rechnerarchitektur,Programmiertechnik1

Cache:Schneller Speicherzwischen CPUund Hauptspeicher

Cacheinhalt

PDP-11Assembler-Programm

R2 <- 3

0000 0010 1110 1100

Page 66: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 66

GeräteundSchnittstellen

• EinGerät(Device)ausSichtderCPUisteineSteuerungseinheitfürdieDatenein- undausgabe

• Beispiele– Grafikcontroller– Disk-Controller– SerielleSchnittstelle– SCSI-Controller

• GerätesindüberSchnittstellenmitderCPUverbunden– AGP(advancedgraphicport)– (E)ISA-Bus((extended) industrystandardarchitecture)– PCI(peripheralcomponentinterconnect)

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 67: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 67

Interrupts(Unterbrechungen)

• AufbestimmteEreignisse(RückmeldungenvonGeräten)sollschnellreagiertwerden

• Möglichkeiten:– ImCodewirddasEreignisständigabgefragtà Polling

• HöhererAufwandfürSoftware• KeineHardware-Unterstützungnötig

– DieHardwareerkenntdasEreignisà Interrupt• WenigerAufwandfürSoftware• HöhererAufwandfürHardware

• InterruptswerdenaufHardware-Ebeneangemeldet– DerAufrufeinerInterruptbehandlung(ISR)entsprichteinemasynchronen

Unterprogrammaufruf• Grundzyklusändertsichzu

– Fetch– Decode– Execute– Interrupthandling

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 68: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 68

Systemeinheiten- SingleBus

CPU Memory VideoController

KeyboardController

FloppyController

DiskController

System bus

Monitor Keyboard Floppydrive

Diskdrive

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 69: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 69

Systemeinheiten– MultipleBuses

Videocontroller

Networkcontroller

IDEdiskcontroller

USBinterface

keyboard mouse

CPU PCIbridge/memorycontroller

MemoryCache

SCSIcontroller

SCSIdisk

SCSIdisk

SCSIdisk

PCI bus

USB bus

SCSI bus

Memory bus

Unit2:Rechnerarchitektur,Programmiertechnik1

Page 70: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 70

Betriebssystem

• BildetdieSchnittstellezwischenderHardwareunddenAnwendungsprogrammen– ProgrammierungaufHardware-Ebeneistschwierig– ProblemderPortabilität

• BetriebssystembietetdemProgrammierereineabstrakteHardware– Processorà Prozess– Hauptspeicherà virtuellerSpeicher– Festplatteà Dateisystem,Dateien,Verzeichnisse

• BetriebssystemverwaltetHardware-RessourcenUnit2:Rechnerarchitektur,Programmiertechnik1

Page 71: Programmiertechnik 1 · Programm-speicher Zentrale Verarbeitungs-einheit (ZVE, CPU) Steuer-Datenspeicher leitungen Steuer-leitungen Datenbus Adressbus von-Neumann-Architektur Harvard-Architektur

AndreasPolze 71

Zusammenfassung

• Aussagenlogik,BoolescheLogik• Schaltnetze,Schaltwerke• Register,Speicher• Akkumulator,Arithmetisch-LogischeEinheit(ALU)• AufbauMaschinenbefehl,0,1,2,3-Adress-Befehle• Befehlsabarbeitung,Fetch/Decode/Execute-Zyklus• MnemonicsfürBefehle,Assembler

à schwerhandhabbar

WollenunsmitportablenHochsprachenbeschäftigen...

Unit2:Rechnerarchitektur,Programmiertechnik1