• Keine Ergebnisse gefunden

Rechner = Hierarchie von virtuellen Maschinen

N/A
N/A
Protected

Academic year: 2022

Aktie "Rechner = Hierarchie von virtuellen Maschinen"

Copied!
61
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

IV.2 Rechnerstrukturen

IV.2 Rechnerstrukturen

IV.2 Rechnerstrukturen

(2)

Was ist ein Rechner ?

Processor

Cache

Memory - I/O Bus

Main Memory

I/O Controller

Disk Disk

I/O Controller

I/O Controller Graphics Network

interrupts

Register-Transfer-Ebene Layout Ebene

Anwendungsebene Transistor-Ebene

(3)

Rechner = Hierarchie von virtuellen Maschinen

High Level Language Program

Assembly Language Program

Machine Language Program

Control Signal Spec Compiler

Assembler

Machine Interpretation

Logische Sicht Logische Sicht I/O system

Instr. Set Proc.

Compiler

Operating System Application

Digital Design Circuit Design

Instruction Set Architecture

Realit Realitäätt

(4)

Hierarchie virtueller Rechner: Illustration

High Level Language Program

Assembly Language Program

Machine Language Program

Control Signal Spec Compiler

Assembler

Machine Interpretation

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2)

1001 0000 0000 0000 0010 0000 1111 1001 0000 0100 0000 0010 0001 0000 0001 0000 0000 0000 0010 0001 0000 0001 0000 0100 0000 0010 0000 1111

... Interpretation auf der Hardware

(5)

Im Mittelpunkt steht die Maschinensprache

..., die unterste Ebene, auf der der Benutzer mit dem Rechner reden kann !

instruction set software

hardware

(6)

Virtueller Rechner

z Jede Ebene (mit Ausnahme der untersten) ist ein "virtueller Rechner" Mi, der durch eine Sprache Li definiert ist.

z Programme der Sprache Li+1werden

~ in Programme der Sprache Lj (ji) übersetztübersetzt oder

~ durch ein Programm der Sprache Lj (ji) interpretiert.interpretiert

z Die virtuelle Maschine Mi gaukelt dem Benutzer vor, seine in Li

geschriebenen Programme würden direkt auf Hardware ausgeführt.

(7)

IV.2.1 Prinzipieller Aufbau eines Rechners

Bestandteile:

z Prozessor (CPU) z Hauptspeicher z Externe Speicher

z Eingabegeräte (Tastatur, Maus) z Ausgabegeräte (Bildschirm,

Drucker, Plotter) z Busse

Processor

Cache

Memory - I/O Bus

Main Memory

I/O Controller

Disk Disk

I/O Controller

I/O Controller Graphics Network

interrupts

(8)

John von Neumann (1903 - 1957)

Der Aufbau der modernen Rechner geht auf den Mathematiker John von Neumann zurück.

Das von Neumann Prinzip beruht auf folgenden 5 Punkten

• voll-elektronischer Rechner

• binäre Darstellung der Daten

• Benutzung einer arithmetischen Einheit

• Benutzung eines Steuerwerkes

• Interner Daten- und Programmspeicher

1903 geboren in Budapest Studium in Budapest und Zürich

1933-1957 am Institute for Advanced Studies, Princeton 1945 mitverantwortlich für den Bau der ENIAC

(9)

Der Arbeitsspeicher

z ... erlaubt Daten (Programme +

"übliche" Daten) abzuspeichern z ... besteht aus n Speicherzellen

(n ≤ 2Adressbusbreite) z Eine SpeicherzelleSpeicherzelle

~ speichert eine Information

bestehend aus k Bit. Der Wert k wird Wortbreite

Wortbreite des Speichersdes Speichers genannt (k=8,16,32,64)

~ wird über eine Adresse (≈

Hausnummer) aus dem Bereich [0..n-1] angesprochen

~ ist kleinste adressierbare Einheit des Speichers

Processor

Cache

Memory - I/O Bus

Main Memory

I/O Controller

Disk Disk

I/O Controller

I/O Controller Graphics Network

interrupts

Kerngr

Kerngröössenssen

• Anzahl der Speicherzellen

• Wortbreite des Speichers

• Zugriffszeit

(10)

Der Prozessor

besteht in der einfachsten Form aus zz SteuerwerkSteuerwerk (Control Unit)

~ holt durch Setzen geeigneter Signale den nächsten

Maschinenbefehl aus dem Hauptspeicher in ein Register

~ analysiert durch Setzen geeigneter Signale (Statusleitungen) das gelesene Wort und

~ führt durch Setzen geeigneter Signale (Steuerleitungen) den gelesenen Maschinenbefehl aus

zz RecheneinheitRecheneinheit (Arithmetic Logic Unit - ALU, Datenpfad)

~ führt die Teilschritte (Vergleiche, Addition, ...) gemäß der gesetzten Signale aus

zz RegisterbankRegisterbank (Registerfile)

~ Speicherelemente, sogenannte RegisterRegister, auf die das Rechenwerk und das Steuerwerk parallel sehr schnell zugreifen kann.

Processor

Cache

Memory - I/O Bus

Main Memory

I/O Controller

Disk Disk

I/O Controller

I/O Controller Graphics Network

interrupts

(11)

Prinzipielle Arbeitsweise eines Prozessors

Fetch

Fetch--DecodeDecode--ExcecuteExcecute--ZyklusZyklus Fetch

Fetch

hole den nächsten Maschinensprachebefehl aus dem Arbeitsspeicher und speichere ihn im

Befehlsregister IR ab. Die benötigte Adresse steht im Befehlszähler PC.

Decode Decode

analysiere den Befehl und lade die benötigten Daten.

Execute Execute

Führe den Befehl aus und speichere das Ergebnis ab.

(12)

IV.2.2 Charakteristika von Prozessoren

zz Interne DatendarstellungInterne Datendarstellung Dazu gehören

~Zahl der Bits, die zur Darstellung von Zahlen benutzt werden

~implementierte Zahlendarstellung

~Breite der Register (heute 32 oder 64 bit)

~Adressierung von Bytes innerhalb der Register (Endian Typ) zz BefehlssatzarchitekturBefehlssatzarchitektur

~Zahl und Art der Befehle

~Adressierungsarten (s. IV.2.3)

~Betriebsmodi

zz FunktionseinheitenFunktionseinheiten

~Zahl und Art von Funktionseinheiten zur Ausführung von Befehlen z Parallelitätsgrad

~Maximale Zahl gleichzeitig ausführbarer Befehle.

z Taktrate

~Zahl der Zustandsübergänge pro Sekunde (i.a. ≠ Zahl der bearbeiteten Befehle pro Sekunde!) heute > 3 GHz

(13)

CISC oder RISC?

Man unterscheidet heute zwischen sogenannten

C C omplete I I nstruction S S et C C omputer (CISC)

R R educed I I nstruction S S et C C omputer (RISC)

Sehr großer Befehlssatz, viele Befehle und Adressierungsarten (s.

IV.2.3). Dadurch recht kurze Programme aber sehr unterschiedliche Bearbeitungszeit pro Befehl und niedriger Durchsatz von Befehlen.

Magerer Befehlssatz, nur das Notwendigste. Sehr geringe

Bearbeitungszeit pro Befehl und hoher Durchsatz von Befehlen, aber längere Programme.

Beispiele: 80x86, VAX, IBM370, 68xxx,...

Beispiele: SPARC, HPPA, Alpha, PowerPC,...

(14)

IV.2.3 Maschinenbefehle und Maschinensprache

Wir wollen nun versuchen, nach und nach den Befehlssatz IS einer einfachen Maschine, und damit deren Sprache aus Notwendigkeiten heraus zu entwickeln.

Beobachtung 1: Arithmetik wird stets über 2 Operanden ausgeführt und liefert ein Resultat. Es scheint natürlich, den Befehlen gleichwertig 3 Operanden zu geben, einen für das Resultat und 2 für die

Operanden. Für ganze Zahlen wäre dies

ADD $d,$s,$t MUL $d,$s,$t SUB $d,$s,$t DIV $d,$s,$t

Wenn man unterschiedliche Zahlen und Zahlenformate hat, braucht man diese Befehle auch für jedes Zahlenformat, etwa

ADDU $d,$s,$t ... für unsigned Numbers oder

ADDD $d,$s,$t ... für doppelt genaue Gleitkommazahlen

(15)

Wirkung der Befehle

Wir definieren die Wirkung der Befehle, indem wir uns die Register als ein Array

REG[] mit dem Bereich 0, #Register-1, den Speicher als ein Array

MEM[] mit dem Bereich 0, #Speicherzellen -1

und einen Programmzähler als Variable pc vorstellen.

Ein Programm ist stets eine Folge Prog[] von 0 bis Programmlänge -1

Prog[pc] Wirkung

ADD $d,$s,$t REG[d]=REG[s]+REG[t], pc=pc+1 MUL $d,$s,St REG[d]=REG[s]+REG[t], pc=pc+1 SUB $d,$s,$t REG[d]=REG[s]-REG[t], pc=pc+1 DIV $d,$s,$t REG[d]=REG[s]/REG[t], pc=pc+1

(16)

0 1

2

2 x a x a

a + +

Beispiel:

Programm

a

0

x

a

1

a

2

. . .

Registerfile

REG[0]

REG[1]

REG[2]

REG[3]

REG[4]

MUL $4,$0,$3;

ADD $4,$4,$2;

MUL $4,$4,$0;

ADD $4,$4,$1;

*

a2*x

(17)

0 1

2

2 x a x a

a + +

Ablauf für

Programm

a

0

x

a

1

a

2

a2*x

+

a2*x + a1

. . .

Registerfile

REG[0]

REG[1]

REG[2]

REG[3]

REG[4]

MUL $4,$0,$3;

ADD $4,$4,$2;

MUL $4,$4,$0;

ADD $4,$4,$1;

(18)

0 1

2

2 x a x a

a + +

Ablauf für

Programm

a

0

x

a

1

a

2

a2*x + a1

*

(a2*x + a1)*x

. . .

Registerfile

REG[0]

REG[1]

REG[2]

REG[3]

REG[4]

MUL $4,$0,$3;

ADD $4,$4,$2;

MUL $4,$4,$0;

ADD $4,$4,$1;

(19)

0 1

2

2 x a x a

a + +

Ablauf für

Programm

a

0

x

a

1

a

2

a2*x2+ a1x

+

a2*x2 + a1x + a0

. . .

Registerfile

REG[0]

REG[1]

REG[2]

REG[3]

REG[4]

MUL $4,$0,$3;

ADD $4,$4,$2;

MUL $4,$4,$0;

ADD $4,$4,$1;

(20)

Verzweigungen und Sprünge

Wir können nun zwar rechnen, das war‘s aber auch!:

Aufgabe:

Aufgabe: Schreibe ein Programm, das in einem beliebigen

Zustand der Register REG[0] = 5 setzt, wenn REG[1] kleiner ist als REG[2], sonst REG[0] = -5.

Dieses Programm existiert nicht, weil wir keine Fallunterscheidung machen können. Befehle werden stets nacheinander abgearbeitet.

Auf Benutzung eines Programmzählers hätte man bisher auch verzichten können und Programme von

Prog[0] bis Prog[Programmlänge -1]

einfach der Reihe nach abarbeiten können.

Wie kann man die Reihenfolge der Abarbeitung von Befehlen beeinflussen?

(21)

Verzweigungen und Sprünge ff

Wir führen Befehle zur eigentlichen Kontrolle des Programmablaufs ein:

Verzweigungen (Branches) und Sprünge (Jumps).

Prog[pc] Wirkung

JMP t pc=pc+t+1

BEQZ $s,t pc=pc+1, falls REG[s] != 0 pc=pc+t+1, falls REG[s] == 0 BNEQZ $s,t pc=pc+1, falls REG[s] == 0 pc=pc+t+1, falls REG[s] != 0

(22)

Set Condition Befehle

Man erkennt, dass diese Verzweigungsbefehle nur ausreichen, um = oder ≠ zu entscheiden, und danach zu verzweigen. Um auch andere Bedingungen prüfen zu können, erweitern wir die WüRC0 noch um Vergleichsbefehle SXX $i,$j,$k (Set Condition XX):

Prog[pc] Wirkung

SLT $d,$s,$t REG[d]=(REG[s]<REG[t]), pc=pc+1 SLE $d,$s,St REG[d]=(REG[s]<=REG[t]), pc=pc+1 SEQ $d,$s,$t REG[d]=(REG[s]==REG[t]), pc=pc+1 SGE $d,$s,$t REG[d]=(REG[s]>=REG[t]), pc=pc+1 SGT $d,$s,$t REG[d]=(REG[s]>REG[t]), pc=pc+1

(23)

Load/Store Befehle

Bisher können wir mit den Befehlen nur Register ansprechen, aber keine Plätze im Hauptspeicher. Dies ist bei RISC Prozessoren in der Tat auch so. Sie sehen für die Kommunikation mit dem Speicher

Transportbefehle (LOAD,STORE) vor:

Prog[pc] Wirkung

LD $d,l($s) REG[d]=MEM[l+REG[s]], pc=pc+1 ST $s,l($d) MEM[l+REG[d]]= REG[s], pc=pc+1

Man erkennt bei diesen Befehlen noch eine weitere Besonderheit:

die Adresse des Quell (Load) bzw. Ziel (Store) Operanden wird indirekt, durch den Inhalt eines Registers plus ein Displacement.

Man spricht hier auch von indirekter Adressierung im Gegensatz zur bisher benutzten direkten Adressierung.

CISC Maschinen sehen indirekte Adressierung bei jedem Operanden vor, bei dem es Sinn macht (auch bei Arithmetik…)

(24)

Adressierungsarten

Neben der indirekten Adressierung kann es auch Sinn machen,

unmittelbar im Befehl den Wert des Operanden anzugeben. Dies findet man bei RISC Maschinen meist für den zweiten Quelloperanden. Bei CISC Maschinen für jeden Operanden bei dem es Sinn macht:

Prog[pc] Wirkung

ADDI $d,$s,k REG[d]=REG[s]+k, pc=pc+1 SUBI $d,$s,k REG[d]=REG[s]-k, pc=pc+1

Man spricht hier auch von unmittelbarer Adressierung oder immediate Adressierung.

Indirekte Adressierung braucht man unbedingt, wenn die Adressen der anzusprechenden Speicherzellen nicht zum Zeitpunkt der Übersetzung bekannt sind oder sogar von der Eingabe abhängen.

(25)

Beispiel:

Wir illustrieren, wie man ein schon bekanntes Programmstück in Maschinensprache umsetzen könnte:

while (a>0) { int t = a;

a = b - a;

b = t;

}

….

Bindungen Bindungen::

a an MEM[REG[2]+4]

b an MEM[REG[2]+8]

t an REG[3]

LD $4,4($2) -- Lade a

SGTI $5,$4,0 -- REG[5] = (a>0)?

BEQZ $5,

ADDI $3,$4,0 -- initialisiere t LD $5,8($2) -- Lade b

SUB $5,$5,$4

ST $5,4($2) -- Sichere a ST $3,8($2) -- Sichere b

6

JMP -9 -- Rücksprung

(26)

Weitere Befehle

Wir haben noch nicht alle Befehlsarten behandelt, und wollen es dazu auch hier bei einer kurzen Erwähnung belassen. Man findet meist noch Befehle zu folgenden Zwecken:

¾ Unterstützung von Unterprogrammen (Funktionen)

~ Aufruf mit retten der Rückkehradresse (JAL $d,j)

~ Rücksprung an die aufrufende Stelle (RET $s)

¾ Behandlung von Unterbrechungen (ENI, DEI)

¾ Ändern des Betriebsmodus

¾ Aufruf von Systemroutinen (TRAP j)

(27)

IV.2.4 Befehlsverarbeitung

Reale Prozessoren sind sehr komplexe Schaltwerke (s. IV.2.5) mit mehr als 107 Komponenten, die die Befehle mit hohem Durchsatz gemäß dem Ablauf des Programmes verarbeiten. Um hohen

Durchsatz zu erhalten, werden mehrere Befehle parallel verarbeitet:

• mehrere Befehle in jeder Bearbeitungsphase (fetch, decode execute), Superscalare Prozessoren

• in jeder Bearbeitungsphase ein anderer Befehl, Pipelining, Fließbandverarbeitung

Diese Strukturen sind zu komplex, um in dieser Vorlesung deren Arbeitsweise und die Probleme, die dabei entstehen erklären zu können. Um aber eine Vorstellung davon zu gewinnen, wie man Befehle durch Schaltwerke bearbeiten kann, wollen wir ein sehr einfaches Beispiel einer Befehlsverarbeitung anschauen:

(28)

Beispiel: Eine 1- Zyklus Maschine

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle Addierer

Multiplexer Steuerleitungen der Übersicht

wegen nicht eingezeichnet

(29)

Erläuterungen

Wir haben hier nur die wichtigsten Komponenten und Leitungen eingezeichnet. Steuerleitungen haben wir der Übersicht wegen

weggelassen. Sie steuern im wesentlichen Multiplexerbausteine, die als „Signalweichen“ dienen (s. IV.2.5):

0 1

a b

s

y

In Java: y = (s)? b: a;

:= a, wenn s = 0 b, wenn s = 1 Datenleitungen

Steuerleitung

(30)

Bearbeitung eines Arithmetikbefehls

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle

(31)

Bearbeitung eines Verzweigungsbefehls

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle

(32)

Bearbeitung eines STORE-Befehls

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle

(33)

Bearbeitung eines LOAD-Befehls

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle

(34)

Bearbeitung eines Sprunges

P C

IMEM 1

+

A L U

!=0

REG ra1 ra2 wa

wp

rp1

rp2

Sign

ext. DMEM

Kontrolle

(35)

IV.2.5 Schaltwerke

Bei modernen MOS MOS (Metal Oxide Semiconductor) Technologien spielen Transistoren als spannungs- gesteuerte Schalter eine herausragende Rolle bei der Entwicklung von Elementarbausteinen.

Das Spiel ist, naiv gesehen, recht einfach:

Interpretiere Spannungen U(x) zwischen x und dem Bezugspol V

SS

als Werte aus B

U(x) ~ V

SS

(=0V) interpretiere als 0

U(x) ~ V

DD

interpretiere als 1

Dabei liegt an V

SS

die Spannung von 0V zu sich selbst,

am Versorgungspol V

DD

je nach Technologie 1..5V.

(36)

MOS FETs als Schalter

Feldeffekttransistoren

Feldeffekttransistoren (FETs) werden nun so

hergestellt, daß sie als spannungsgesteuerte Schalter gegen V

SS

bzw. V

DD

arbeiten:

Wir unterscheiden zwei Typen, deren Schalterverhalten wir betrachten wollen:

n- n -Kanal Transistor: Kanal Transistor: Verhalten Verhalten

U(g)~0

Schaltbild

U(g)~1

d drain gate g

s source

V

SS

(37)

p- p -Kanal Transistor Kanal Transistor

Verhalten

U(g)~0 U(g)~1

Schaltbild

s source gate g

d drain V

DD

n-Kanal und p-Kanal Transistor verhalten sich als Schalter

komplementär zueinander.

(38)

Der CMOS Inverter

Wir können nun auf Basis solcher Schalter leicht

Funktionen auf {0,1} implementieren. Die wohl einfachste nichttriviale Funktion ist die Negation. Sie wird durch

folgende Schaltung, den CMOS Inverter (complementary) realisiert:

x y

Verhalten

U(x)~1 U(x)~0

Gatespannungen sind 0

n-Kanal sperrt, p-Kanal leitet -> y verbunden mit VDD also 1

Gatespannungen sind 1

p-Kanal sperrt, n-Kanal leitet -> y verbunden mit VSS also 0

(39)

CMOS Inverter ff

Diese einfache Schaltung berechnet also die Funktion:

0 i(1)

1 i(0)

} 1 , 0 { }

1 , 0 { : i

=

= und

mit

a

D.h. die Negation Negation, faßt man 0,1 als falsch, wahr auf.

Wir benutzen fortan als Symbol für diese Schaltung, das

Schaltzeichen:

(40)

Einfache Verknüpfungen

Beim Inverter berechneten wir die Inversion durch Schalten einer leitenden Verbindung zwischen Ausgang und V

DD

bzw. V

SS.

Dies muß stets komplementär, d.h. unter gegenseitigem Ausschluß geschehen! (Kurzschluß) Betrachte nun folgende Schaltung:

(n-Kanal Serienschaltung)

Offensichtlich entsteht eine Verbindung mit V

SS

dann und nur dann, wenn beide Schalter leitend sind, d.h. wenn

a=1 und und b=1

y b

a

(41)

Einfache Verknüpfungen -- ff

Betrachten wir nun eine Parallelschaltung zweier n-Kanal Transistoren gegen V

SS:

y a b

Offensichtlich entsteht eine Verbindung mit V

SS

dann und nur dann, wenn mindestens einer der beiden Schalter

leitend ist, d.h. wenn a=1 oder oder b=1

Interpretieren wir nun x=1 einfach als x bzw. „x ist wahr“

und x=0 einfach als nicht x bzw. „x ist falsch“, dann gilt:

(42)

NAND und NOR Verknüpfung ff

Parallelschaltung gegen V

SS

: nicht y a oder b nicht y a oder b ⇔ Serienschaltung gegen V

SS

: nicht y a und b nicht y a und b

Analog erhalten wir für p-Kanal Transistor Schaltungen gegen V

DD:

y b

a

y b

a

y=1 a=0 ⇔ und und b=0

y=1 a=0 oder ⇔ oder b=0

Parallelschaltung: y nicht(a und b) y nicht(a und b)

Serienschaltung: y nicht (a oder b) y nicht (a oder b)

(43)

EInfache Verknüpfungen ff

y b a

Demnach liefert folgende Schaltung:

y nicht(a und b) y nicht(a und b)

nicht y a und b nicht y a und b

(p-Kanal Parallelschaltung)

(n-Kanal Serienschaltung) b

a 0 0

1 1 0

1 1 1

0 y b a

Die leitenden Verbindungen bestehen unter gegenseitigem Ausschluss.

Die Verschaltungen im n-Kanal, p-

Kanal Teil sind dual zueinander

(Serien <-> Parallel)

(44)

NAND und NOR Verknüpfung

Die Schaltung berechnet also die Funktion nand nand

Analog überlegt man sich, daß die Schaltung

nand b a

0 1 0 1 1 1 1 0

} 1 , 0 { }

1 , 0 { } 1 , 0 { :

nand × a

Mit nand(a,b) = nicht (a und b) Schaltsymbol

y b a

die Funktion nor nor berechnet mit nor(a,b) = nicht (a oder b)

nor b a

0 1 0 1 0 1 0 0

Schaltsymbol

&

(DIN)

(DIN)

1

(45)

Realisierung eines Multiplexers

Auf der Basis dieser Bausteine, auch Gatter (gates) genannt, kann man alle Funktionen von {0,1}n{0,1}m realisieren.

Wir demonstrieren dies hier nur an einem Beispiel, das wir schon kennen:

0 1

a b

s

y

y = 1, wenn (s = 0 und a = 1) oder (s = 1 und b = 1)

in Formeln

y = (!s)&a | s&b

Mit den deMorgan Regeln gilt Regeln von deMorgan

!(a & b) = !a | !b;

!(a | b) = !a & !b

y = !!( (!s)&a | s&b)

= !( !((!s)&a) & !(s&b) )

(46)

Realisierung eines Multiplexers

0 1

a b

s

y

y = !( !((!s)&a) & !(s&b) )

NAND NAND

NAND

s !s

b !(s&b)

a

!((!s)&a)

!( !((!s)&a) & !(s&b) )

(47)

Bistabile Schaltungen

Wenn man über einfache Logikgatter verfügt, kann man auch Speicherglieder bauen, und darauf aufbauend

schliesslich ganze Schaltwerke Idee:

Idee: konstruiere bistabile Schaltungen aus Gattern Beispiel:

Beispiel: Analysiere folgende Schaltung Es ist:

x = nicht (b und y) y = nicht (a und x) a

b

x

y

Also y = nicht (a und nicht(b und y))

(48)

Bistabile Schaltungen

Falldiskussion:

Falldiskussion:

a b

x

y

y = nicht (a und nicht(b und y))

h h ä ä lt y lt y a=b=1: y = nicht (1 und nicht(1 und y)) y = nicht (1 und nicht(y)) y = nicht (nicht(y)) = y

y = nicht (0 und nicht(0 und y)) y = nicht (0)

a=0, b=1: y = nicht (0 und nicht(1 und y)) y = nicht (0) = 1 setzen setzen r r ü ü cksetzen cksetzen a=1, b=0: y = nicht (1 und nicht(0)) y = nicht (1 und 1) y = nicht (1) y = nicht (1 und nicht(0 und y)) = 0

a=b=0: = 1 unbenutzt unbenutzt

(49)

Basis R/S FlipFlop

Wir nennen diese Schaltung auch Basis R/S Basis R/S FlipFlop, weil FlipFlop sie einen Haltezustand (a=b=1) hat, in dem sie jeden Wert y über die Rückkopplung halten kann, sowie eine Rücksetz ((a,b)=(1,0)) und eine Setzkombination ((a,b)=(0,1))

allerdings noch keine Taktkontrolle hat.

Die Zustandsänderung wird durch Legen eines der Eingänge auf den Wert 0 erreicht. Da der Wert 0 die Änderung bewirkt, nennt man solche Eingänge auch low active und überstreicht ihren Namen bzw. hängt ein Z an: RZ oder R

Das Überstreichen ist als Kurzschreibweise für die Negation zu sehen. Die Aktivität die mit dem Eingangsnamen

verbunden wird, findet statt, wenn der Ausdruck wahr ist, d.h.

Rücksetzen findet statt wenn RZ=Nicht(R) wahr, also R=0

ist.

(50)

Basis R/S FlipFlop ff

Damit ergibt sich folgende Benennung der Anschlüsse:

SZ oder RZ oder

QZ oder Q

R S

Q

Folgende Tabelle gibt das Verhalten wieder: Sie gibt für die benutzten Eingangskombinationen (RZ,SZ)<>(0,0) den

Folgezustand Q‘ von Q an:

RZ SZ Q QZ Q’ QZ’

1 1 Q QZ Q QZ

0 1 Q QZ 0 1

1 0 Q QZ 1 0

(51)

R/S FlipFlop ff

Aufgabe:

Aufgabe: Steuere das Basis RS FlipFlop durch einen Taktzustand

L L ö ö sung: sung: Wir verknüpfen einfach den Takt mit den Kontrolleitungen RZ und SZ:

S clk

R

R Q

Q S

Analyse:

Analyse: Für clk=0 werden SZ, RZ auf nicht(0)=1

gezwungen

(52)

R/S FlipFlop ff

S

R Q

Q

S clk

R

1 1 0

1

Schaltsymbol:

S

Q clk

R

Analyse:

Analyse: Für clk=0 werden SZ, RZ auf nicht(0)=1 gezwungen. ⇒ Haltezustand

Für clk= 1 werden SZ(RZ) auf nicht(1 und S)=nicht(S)

(nicht(1 und R)=nicht(R)) abgebildet.

Man kann also nur in der 1 Phase setzen oder r

Man kann also nur in der 1 Phase setzen oder r ü ü cksetzen. cksetzen.

(53)

Master/Slave Latch

Häufig macht die Gefahr, daß sich R,S in der 1 Phase des Taktes clk ändern könnte, (dann ist ja R,S

transparent mit Q,QZ verbunden) den Entwurf

schwierig. Man möchte daher die Zeit, in der sich R,S nicht ändern darf, so kurz wie möglich halten. Dies

erreicht man, indem man den Übernahmezeitpunkt eng um die 1/0 Flanke des Taktes clk, wie in folgender

Schaltung, legt:

1 0

S

Q clk

R

S

Q clk

R

(54)

Master/Slave Latch: Timing

Verdeutlichung des Übernahmeverhaltens am Zeitdiagramm:

clk S,R Q(Master)

Q(Slave)

t

s

t

h

t

d

(55)

Ausblick

Mit diesen Bausteinen kann man nun komplexe Schaltwerke aufbauen, die aus in der Grössenordnung 107 (!) Gattern und Latches bestehen.

Solch hochkomplexe Systeme kann man natürlich nicht manuell und unsystematisch aufbauen. Generell gilt

¾ Realisiere Funktionen durch Gatterschaltungen

¾ Realisiere Register und kritische Speicherplätze durch Master Slave Latches

¾ Benutze zur Konstruktion Hardwarebeschreibungssprachen (Hardware Description Languages, HDL) und übersetze sie in Schaltungen, so wie man Programme in Maschinenprogramme transformiert.

(56)

IV.2.6 Speicherorganisation

Die Speicherhierarchie

Betriebs- system

Hardware

Registers

Memory

Instr./Operands 1-8 bytesprogram

Blocks cache cntl8-128 bytes

Upper Level

Lower Level faster

Larger Cache

Disk

Pages OS512-4K bytes

Tape

Files user/operator

Mbytes

(57)

Festplatte (engl. Harddisc)

z Eine FestplatteFestplattebesteht aus

~ mehreren Platten (4-8)

~ mehreren Lese / Schreibköpfen (6-16) z Eine PlattePlattebesteht aus

konzentrischen Spuren z Eine SpurSpur besteht aus

Sektoren

z Ein SektorSektorist die kleinste beschreibbare Einheit z Ein ZylinderZylinder besteht aus

übereinanderliegenden Spuren

Platters

Track

Sector

Sector Track

Cylinder Head Platter

Rotationsgeschwindigkeit

Rotationsgeschwindigkeit: 3.600 rpm bis 10.800 rpm (rrounds pperminute)m Sektorgr

Sektorgrößößee: 512 byte bis 2 kbyte Schreibdichte

Schreibdichte: 50.000 bis 100.000 bits/cm Spurendichte

Spurendichte:800 bis 2.000 Spuren/cm

(58)

Festplatte ff

(59)

Ausführung eines Festplattenzugriffs

z Bewege die Köpfe zu dem richtigen Zylinder (∅ Dauer: 6-10 msec) z Warte bis der gesuchte Sektor zum Kopf rotiert (∅ Dauer: 0.5⋅rpm-1) z Übertrage den Inhalt des Sektors (Transferrate: 5-20 Mbyte/sec)

Beispielrechnungen bei

Beispielrechnungen bei SektorgrSektorgröössesse 512 Byte512 Byte

11 msec 25 µsec

5 msec 6 msec

10800 rpm, 20 Mb/sec

6 msec 6 msec 6 msec 10 msec 10 msec 10 msec 10 msec

Positionierungzeit

14 msec 25 µsec

8 msec 7200 rpm, 20 Mb/sec

17 msec 25 µsec

11 msec 5400 rpm, 20 Mb/sec

22 msec 25 µsec

16 msec 3600 rpm, 20 Mb/sec

15 msec 102 µsec

5 msec 10800 rpm, 5 Mb/sec

18 msec 102 µsec

8 msec 7200 rpm, 5 Mb/sec

21 msec 102 µsec

11 msec 5400 rpm, 5 Mb/sec

26 msec 102 µsec

16 msec 3600 rpm, 5 Mb/sec

Gesamtzugriffszeit Transferzeit

Latenzzeit

vernachlässigbar

(60)

CD-ROM / DVD

1,4 Mbyte/sec

4,7 GByte 0,65 microns 0,74 microns 0,40 microns

120 mm

DVD

650 MByte Kapazität

einfache Übertragungs- geschwindigkeit

Wellenlänge des Lasers Spur-Abstand

Grösse der Gruben Scheiben-Durchmesser

10 Mbyte/sec 150

KByte/sec 0,78 microns 1,60 microns 0,80 microns

120 mm

Festplatte CD-ROM

(61)

Ausblick

Die Einbindung von Caches erledigt die Hardware, ein

Cachecontroller. Wir können in dieser Vorlesung nicht näher darauf eingehen.

Ein/Ausgabegeräte werden seitens des Prozessors über

Controllerbausteine angesprochen, die, wie der Cachecontroller am Speicherbus des Prozessores hängen.

Diese Bausteine lösen im Prozessor Unterbrechungen der

normalen Befehlsverarbeitung aus und führen zur Ausführung von Systemroutinen. Sie können sogar den Prozessor anhalten.

Sie kooperieren wie die Cache Controller mit dem Hauptspeicher, und können mit ihm Daten austauschen.

Die wesentlichen Funktionen werden von Programmen oder Unterprogrammen übernommen, die zu einem priviligierten Programmpaket gehören, das stets im Rechner läuft, das

Betriebssystem. Daher werden wir die weiteren Aspekte von Festplatten, Ein/Ausgabe und Netzwerk in diesem

Zusammenhang betrachten.

Referenzen

ÄHNLICHE DOKUMENTE

Es wäre gut, wenn Sie am Klausurtag bereits um 9.40 Uhr am Hörsaal sind, damit die Klausur pünktlih um 9.45 Uhr

Fülle die freien Felder mit den richtigen Termen aus, wie im Beispiel vorgegeben.. Hinweis: Es kommen

Fülle die freien Felder mit den richtigen Termen aus, wie im Beispiel vorgegeben.. Hinweis: Es kommen

Eine Ableitung eines Ausdrucks C , bzw. ., ~ B n oder sie gehen durch ein- malige Anwendung einer der Grundregeln von K aus vorhergehenden Gliedern der Folge hervor.. Eine

Könnten wir die Typen für alle Variablen-Vorkommen raten, ließe sich mithilfe der Regeln überprüfen, dass unsere Wahl korrekt war :-). Wie raten wir die Typen der Variablen ???.. , x

Gábor Dénes Főiskola (GDF), Magyar ILIAS Közösség Egyesület (MIKE), Nemzeti Közszolgálati Egyetem Katonai Műszaki Doktori Iskola (NKE KMDI).. Blended learning az

Elnök: Imecs Mária Szekció titkár: Fellner Tamás.

• IDE-Festplatten-Controller am PCI-Bus für bis zu vier IDE-Laufwerke (z.. für den Prozessor) Die markierten Komponenten und Steckverbinder müssen nicht auf der