Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
AndreasPolze 1
Programmiertechnik1
Unit2:Rechnerarchitektur
AndreasPolze 2
Ablauf
• Aussagenlogik• Schaltnetze,Schaltwerke• Register• vonNeumannRechner• CPU,ALU,CU• Instruktionsverarbeitung• OpCodeFormate,RTL• Instruktionsarten• Ein- undAusgabe
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
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
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
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
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
AndreasPolze 10
Schaltungslogik
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 11
TransistorenfürdigitaleSchaltungen
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 12
Schaltnetze
• GatterimplementierenboolescheFunktionen
• Signalewerdendurchelektr.Spannungendargestellt
• ZusammensetzungvonGatternheißenLogikschaltungen
• EinSchaltnetzisteineZusammensetzungvonLogikschaltungenohneSpeicherverhalten
Unit2:Rechnerarchitektur,Programmiertechnik1
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“
AndreasPolze 14
BinäreSignale,Taktsteuerung
• AbstraktionvonSignalübergängen:Takt
• BetrachtennurnochRechtecksignale
• UmschalttaktistverschiedenvonAbtasttakt
• Realisierung:getaktetesFlip-Flop
• SynchroneSchaltungen
Unit2:Rechnerarchitektur,Programmiertechnik1
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
AndreasPolze 16
ZustandsbehafteteundzustandsloseSchaltungen
• InzustandslosenSchaltungenhängtdasAusgangssignalausschließlichvomEingangssignalab
• InzustandsbehaftetenSchaltungengehtVorgeschichte(Zustand)indasAusgangssignalein
• à Automatenmodell
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 17
Register
• SpeicherfürlogischzusammengehörendeBitswerdenzuRegisternzusammengefasst
• RegisterbestehenausunverbundenenFlip-Flops
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
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
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
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
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
AndreasPolze 25
Multiplikationsarray
• Das„PapierundBleistift“-Verfahrenwirdnachempfunden– ProduktistdieSummevonTeilprodukten– HoherAufwandistnachteilig,füreinen-Bit-Multiplikationwerden
n2 Zellenbenötigt
Unit2:Rechnerarchitektur,Programmiertechnik1
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
AndreasPolze 27
VonderSchaltungzurVerarbeitung
• KönnennunDatendarstellen,speichern,logischundarithmetischmanipulieren
• Aber:– KomplexereAlgorithmenlassensichnurschwer„verdrahten“– FlexibilitätderAbarbeitung?
• ZumAufbaueinesProzessorsfehlennoch:– DasLesen/DekodierenvonInstruktionen– MechanismenzurKontrolledesProgrammablaufs– Sprünge(Schleifen,Wiederholungen)
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
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
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
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
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
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
AndreasPolze 36
EineeinfacheALU
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
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
AndreasPolze 41
4-BitALU
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
AndreasPolze 44
SteuerungdesRechenwerkes
• SchwarzeBusse:Datensignale– Informationen,die
verarbeitetwerden• GraueBusse:
Steuersignale– Bestimmen,wie
Informationenverarbeitetwerden
• SteuersignalekönnenwiederzuDatenwortenzusammengefasstwerden
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 45
Registersatz
• DieCPUbesitzttypischerweisemehrereRegister,derenVerwendungszwecknichtvonvornhereinfestgelegtist– Allzweckregister(generalpurposeregister)– KönnenvomProgrammiererfreiverwendetwerden
• BestimmteCPU-RegistersindaufgewisseAufgabenspezialisiert– Spezialregister(specialpurposeregister)
• AnzahlundVerwendbarkeitvonRegisternsindwesentlichesArchitekturmerkmal
• GesamtheitderfürdenProgrammierernutzbarenRegisternenntmanRegistersatz.
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 46
Steuerwerk
• DasSteuerwerk(controlunit)koordiniertRechenwerk,Ein-undAusgabeeinheitsowieSpeichersystem– SendetSteuersignaleanandereEinheiten– ErfasstStatusallerfunktionalenEinheiten
• WesentlicheFunktionen:– Sequencing:GenerierenvonSteuersignalenzurAbarbeitungder
InstruktionenausdemBefehlssatzderCPU– SteuerungundÜberwachungvonZugriffenaufdenSpeicherunddas
Ein- undAusgabesystem
Unit2:Rechnerarchitektur,Programmiertechnik1
AndreasPolze 47
InteraktionmitSpeicher
• SpeicherdientdemAblegenvonInformationen– Daten,Programmen,Ergebnissen– HardwarekannTypderDatennichterkennen– InterpretationderDatenerfolgtdurchzugreifendeEinheit
• ZugriffaufSpeichererfordertAdresssignal• Steuersignalgibtan,obgelesenodergeschriebenwerdensoll
• VerschiedeneSpeicherarten:– Schreiben+Lesen:RAM– randomaccessmemory– NurLesen:ROM– readonlymemory
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
AndreasPolze 51
Einfache1-BusCPU
• SichtbareundunsichtbareRegister
Unit2:Rechnerarchitektur,Programmiertechnik1
PC
IR
InstructionDecoder
MAR
MDR
R0
Rn
Y
Z
ALU
Speicher-schnittstelle
ALUSteuer-leitungen
...
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
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
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
...
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
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
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
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
AndreasPolze 59
Adressierungsarten
• Absolut(direct):– Adresse(Speicherstelle)desOperandenistexplizitalsTeilder
Instruktiongegeben
• Unmittelbar(immediate):– OperandistTeilderInstruktion
• Indirekt:– EffektiveAdressedesOperandenistineinemRegisterodereiner
Speicherstellegegeben,derenAdresseinderInstruktionerscheint
• Indiziert(indexed):– EffektiveAdressedesOperandenwirdgeneriertdurchAddiereneiner
KonstantenzueinemRegisterinhalt
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
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
AndreasPolze 64
SimulationeinerStackmaschine
Programm:pushApush#5subpushBpush#4addmulpopAhalt
©2004byTeresaW.
Carrigan.
Unit2:Rechnerarchitektur,Programmiertechnik1
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
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
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
AndreasPolze 68
Systemeinheiten- SingleBus
CPU Memory VideoController
KeyboardController
FloppyController
DiskController
System bus
Monitor Keyboard Floppydrive
Diskdrive
Unit2:Rechnerarchitektur,Programmiertechnik1
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
AndreasPolze 70
Betriebssystem
• BildetdieSchnittstellezwischenderHardwareunddenAnwendungsprogrammen– ProgrammierungaufHardware-Ebeneistschwierig– ProblemderPortabilität
• BetriebssystembietetdemProgrammierereineabstrakteHardware– Processorà Prozess– Hauptspeicherà virtuellerSpeicher– Festplatteà Dateisystem,Dateien,Verzeichnisse
• BetriebssystemverwaltetHardware-RessourcenUnit2:Rechnerarchitektur,Programmiertechnik1
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