Einführung in die Computertechnik - Ruhr

Werbung
Einführung in die Computertechnik
Eine Einführung in Strukturprinzipien von Computern
aus hardwarenaher Sicht
H. Jacob
Fakultät für Elektrotechnik und Informationstechnik
WS 05/06
Für die Mehrzahl der Anwender sind Computer Werkzeuge, die als Mittel zum Zweck
zu funktionieren haben. Diese Anwender machen sich wenig Gedanken über die
inneren Eigenschaften der Computer, die erst die Gesamtleistung ermöglichen.
Für diejenigen, die besondere Leistungen von Computern verlangen, z. B. auf dem
Gebiet der Zuverlässigkeit und Sicherheit, ist das kritische Verständnis aller
Merkmale des inneren Aufbaus wichtig, also der Software und der Hardware.
Diese Vorlesung soll an konkreten aktuellen gerätetechnischen Beispielen zeigen,
welche strukturellen Merkmale die Leistungen von modernen Computern im Bereich
der Personal Computer und der Workstations maßgeblich bestimmen. Dazu gehört
auch ihre physikalische Einbindung in Netze.
Das eine oder andere Beispiel wird durch die rasante Entwicklung unwichtig werden.
Die bewährten Verfahren werden bleiben.
Dieses Skript ist ausschließlich zur internen Verwendung für Studierende der Ruhruniversität
Bochum bestimmt. Weiterverbreitung und Publikation, auch auszugsweise, sind untersagt.
Bezüglich der Rechte Dritter wird keine Haftung übernommen.
Computertechnik
Jacob
Inhaltsverzeichnis
Inhaltsverzeichnis
1
2
Entwicklung der Computertechnik
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1
3
8
12
35
46
51
52
54
54
Grundsätzliche Merkmale von Computern
59
2.1
2.2
2.3
2.4
2.5
59
61
63
66
2.6
2.7
2.8
2.9
2.10
3
Die befehlsgesteuerte Arbeitsweise eines Computers
Befehle in der Assemblerform
Das Maschinenprogramm
Merkmale des Programmablaufs
Der Grundzyklus der Programmablaufsteuerung und
die Reaktion auf äußere Ereignisse
Maßnahmen zur Verkürzung der Programmlaufzeit
Die Strukturierung des Datenverkehrs
Der Einfluss der Anwendung auf die Aufteilung in
grundsätzliche Einheiten
Elementare Datenübertragungsvorgänge
Programmsteuernde Ereignismeldungen
73
75
81
83
84
88
Stand der Computertechnik
94
3.1
3.2
3.3
3.4
3.5
94
94
98
101
3.6
3.9
3.9
4
Die Herstellung der Waferscheiben
Die Herstellung der Chips bzw. der gebrauchsfertigen ICs
Beispiele für aktuelle Bauformen (packages)
Ausgewählte Grundlagen der Elektrotechnik
Ausgewählte Grundlagen der Halbleitertechnnik
Das Funktionselement Transistor
Gefertigte MOS-Transistoren
Schaltungsbeispiel: SRAM-Speicherzelle
Die minimale auflösbare Strukturbreite
Die Entwicklung der Mikroprozessoren und Speicher-ICs
Computerklassen
Computer in industriell produzierenden Anlagen
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Eingebettete Mikrocontroller
Computergestützte Automatisierungssysteme
für mittlere und kleine Anlagen
PCs, Workstations und Server
Supercomputer
Maße für Computerleistung
104
106
109
111
Physikalische und logische Merkmale von lokalen Computernetzen
113
4.1
4.2
113
4.3
4.4
4.5
4.7
Strukturalternativen von lokalen Computernetzen
Systemtechnische Merkmale am Beispiel der ersten
Ethernet-Varianten
Token-basierte LANs
Typische Twisted Pair Verkabelung
Aufbau der Switches (Router)
Fastethernet-Controller
Computertechnik
i
116
125
130
131
133
Jacob
Inhaltsverzeichnis
5
6
7
8
9
Merkmale von PC-Motherboards
137
5.1
5.2
5.3
137
141
146
Das prinzipielle Aufbaukonzept von PC-Motherboards
Die zentrale Takterzeugung und -verteilung
Das Chipsatz-Konzept
Der Datenverkehr von/zu den Prozessoren
157
6.1
6.2
6.3
6.4
6.5
6.6
Das Konzept des Front Side Bus
Das Cache-Konzept
Basisverfahren für Caches
Setadressierte Verfahren
Die hierarchische Cache-Struktur
Mehrwege-Caches
157
163
165
167
171
175
Hauptspeicher und Speichermodul-Schnittstelle
177
7.1
7.2
7.3
7.4
7.5
7.6
7.7
177
183
185
187
195
201
Strukturprinzipien von DRAM-Speicher-ICs
Nicht-synchrone DRAMs (EDO-DRAMs)
Statische RAM-Speicher (SRAMs)
Synchrone DRAMs (SDRAMs)
Speichermodule für synchrone DRAMs (DDR1, DDR2)
Dual Channel Konfiguration
Die Umsetzung der FSB-Adresse bei der
Speichermodul-Adressierung
202
I/O-Datenverkehr: PCI-Varianten, Interrupt-Controller
204
8.1
8.2
8.3
8.4
8.5
204
211
214
215
221
PCI-Bus 2.0
PCI-Express
PCI-X
Das Programmable-Interrupt-Controller Konzept (PIC)
Das Advanced Programmable Interrupt Controller-Konzept
Der gerätespezifische Datenverkehr von/zu den Peripherie-Einheiten
9.1
9.2
9.3
Peripherie-Einheiten mit geringen Datenraten und
gerätespezifischen Schnittstellen
Das Konzept des Universal Serial Bus
Festplatten und Festplatten-Controller
Computertechnik
iii
223
223
226
240
Jacob
Inhaltsverzeichnis
Computertechnik
iiii
Jacob
Die Herstellung der Wafer-Scheiben
1 Entwicklung der Halbleitertechnik
Dass leistungsfähige Computer heute als preisgünstige Massenprodukte von jedermann erworben und persönlich für (mehr oder weniger) sinnvolle Zwecke eingesetzt
werden können, ist im Wesentlichen den Fortschritten der Halbleiter-Technik zu
verdanken. Sie führten dazu, dass man heute Schaltungen für sehr leistungsfähige
Computer als preisgünstige Massenprodukte fertigen kann.
Man kann die Erzeugung von integrierten Schaltungen (integrated circuits, ICs) in
folgende Herstellungsphasen einteilen:
• die Herstellung der Wafer-Scheiben,
• die Herstellung der Schaltungen in der Oberfläche der Wafer-Scheibe,
• die Herstellung der Chips und der gebrauchsfähigen ICs.
1.1 Die Herstellung der Wafer-Scheiben
Quellen mit anschaulichem Überblick zu den Verfahren, die hier nur exemplarisch behandelt werden.
http://www.unileoben.ac.at/~phywww/HLWSt-VO/Si-Herstellung1.ppt
http://www.siltronic.com/internet/webcache/en_US/Products/Poster_2004.pdf
Der Rohling für die Erzeugung der Waferscheiben ist ein in zylindrischer Form
gezüchteter Siliziumkörper höchster Reinheit (Bild 1.1).
Bild 1.1: Herstellung eines Silizium-Einkristalls mit dem Zonenzieh-Verfahren
Der zylindrische Rohling wird in einzelne Scheiben zersägt (Bild 1.2).
Anschließend werden die Oberflächen der Waferscheiben (verkürzt Wafer) geläppt,
d.h. die Oberflächen werden mit in Fett gelösten Schmiermitteln geglättet (Bild 1.3).
Die verbleibende Oberflächenrauhigkeit wird noch durch eine abschließende Politur
vermindert.
Computertechnik
1
Jacob
Die Herstellung der Wafer-Scheiben
Bild 1.2: Herstellung der Wafer durch Sägen
Bild 1.3: Glätten der Wafer-Oberflächen durch Läppen
Die Läuferscheiben mit den Wafern sind in einen inneren und einen äußeren Kranz verzahnt.
Dreht sich z.B. der äußere Kranz, dann dreht er die Läuferscheiben gegen den inneren
Kranz und die Läuferscheiben drehen sich mit einer zykloiden Bewegung zwischen der
unteren und der oberen Scheibe. Das Glätten der Oberflächen entsteht durch die im
Schleifmittel gebundenen Körner. Das flüssige Schleifmittel wird zwischen die obere und
untere Scheibe und die Läuferscheiben eingebracht und fließt mit dem Abrieb ab.
Die Schaltungen werden durch gezielte Diffusions- und Abscheideprozesse in die
Grenzschicht an der Oberfläche des Wafers eingeprägt. Hierzu wird der Wafer
matrixartig in gleich große Elementarflächen eingeteilt, die alle die gleiche Schaltung
enthalten (Bild 1.4, Quelle: Intel).
Computertechnik
2
Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Bild 1.4: Matrix-Struktur eines Wafers
1.2 Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Im Folgenden wird der Fertigungsverlauf beispielhaft vorgestellt (Quelle: Payton Technology,
ein Unternehmen der Kingston-Gruppe, die zu den Marktführern bei der Herstellung von
Memory-Modulen gehört).
Man zerteilt den Wafer in die Einzel-Schaltungen = Die (sprich dai) oder Chip: der
Vorgang wird dicing genannt).
Jede Einzel-Schaltung wird auf einem Kontaktträger (lead frame) befestigt: der
Vorgang wird die attach genannt ( Bild 1.5).
Der Kontakt zwischen je einem Anschlusspunkt (pad) am Rand der Schaltung und
je einem Anschlusspunkt einer Leiterbahn (lead) wird durch die Verschweißung der
beiden Enden eines Golddrahtes auf den beiden zu verbindenden Pads hergestellt:
der Vorgang wird wire bond genannt (Bild 1.6).
Dann erfolgt die Verkapselung entweder mit einer fließenden Kunststoff-Masse oder
durch Einpassen in Keramik-Layer. Beim Vergießen in Kunststoff wird der Kontaktträger mit dem „gebondeten Die“ in eine Hohl-Form gelegt, die mit Hilfe eines Spritzdruck-Verfahrens mit dem fließenden Stoff ausgefüllt wird, der danach härtet. Das
Öffnen der Formstöcke gibt die verkapselten Schaltungen frei. Der Vorgang wird
molding genannt (Bild 1.7).
Mit dem technologischen Fortschritt werden, je nach Anwendung, neue IC-Gehäuse
(packages) erfunden. Bei dem beispielhaften Herstellungsprozess handelt es sich
um die Herstellung von Speicher-ICs, z.B. mit dem Gehäusetyp TSOP bzw. SSOP
(thin bzw. shrink small outline package). Das sind Bauformen, die eine Nachbehandlung der Kontakte erfordern: man muss von den Kontakten die Haltestege entfernen
(tie bar cut), man muss sie verzinnen oder vergolden (plating) und sie kappen
und in eine geeignete Form biegen (trim and form).
Integrierte Schaltungen mit hohen Anforderungen an die Lebensdauer werden
besonders behandelt. Man unterwirft sie einem Hitzestress (burn in, Bild 1.8), der
Schwachstellen offenbaren soll. Der Hitzestress verändert die Kristallstruktur, was an
den Schwachstellen Funktionsfehler entstehen lässt, die im folgenden Test erkannt
werden. Die fehlerhaften ICs werden entfernt (screening = aussieben). Es ist eine
Erfahrungstatsache, dass so behandelte ICs sehr wenige Frühausfälle zeigen. Man
spricht auch vom Beschleunigen der Frühausfälle durch das Burn-in.
Computertechnik
3
Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Danach folgen noch Schritte zur Markierung zwecks Identifikation, stichprobenartiger
visueller Inspektion, Feuchtigkeitsentzug und Verpackung.
Bild 1.5: Entnahme der Elementarplättchen aus dem fertig geschnittenen Wafer und
drei beispielhafte Kontaktträger (lead frames)
Computertechnik
4
Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Bild 1.6: Die Herstellung der Verbindungen zwischen den Pads der Schaltung auf
dem Die und den Pads auf den Leiterbahnen des Kontaktträgers (bonden)
Computertechnik
5
Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Bild 1.7: Das Eingießen des Kontakträgers mit dem gebondeten Die in eine
schützende aushärtende Masse (molding)
Computertechnik
6
Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
Bild 1.8: Das Offenbaren „schwacher“ ICs durch Wärmestress (burn in)
Computertechnik
7
Jacob
Beispiele für aktuelle Bauformen (packages)
1.3 Beispiele für aktuelle Bauformen (packages)
Speicher-ICs sind charakteristische ICs der Computertechnik. Eingesetzt werden sie
auf Speichermodulen mit genormtem Layout-Merkmalen und genormter elektrischer
Schnittstelle. Um diese in portablen Geräten einsetzen zu können, versucht man, die
Speicher-ICs bzw. die Speicher-Module möglichst platzsparend und leicht zu bauen.
Aktuelle Speicher-Module sind vom Typ DDR. Sie werden z. Zt. vom Typ DDR2 abgelöst. Was die Bezeichnungen funktional bedeuten, wird noch im Einzelnen erklärt.
Hier geht es um die Bauformen (Gehäuse) dieser Typen (Bild 1.9, Quelle: Kingston)
Bild 1.9: Beispiel für Dual In Line Memory Module (DIMM) mit ihren charakteristischen Speicher-ICs:
Wird der elektrische Kontakt der inneren Schaltung über Leiterbahnen (leads) nach
außen hergestellt (wie z.B. bei der TSOP-Bauform), dann wird das „Gerippe der
Leiterbahnen“ als Kontaktträger (leadframe) vorgefertigt (Bild 1.10, Quelle: Mitsui).
Das geschieht durch mechanisches Stanzen oder chemisches Ätzen. Die
Leadframes werden mit Hilfe von Stegen zu Bändern aneinandergereiht, die beim
geeigneten Fertigungsschritt des IC-Fertigungsprozesses entfernt werden.
Bild 1.10: Beispielhafte Muster von Leadframe-Bändern
links: Dual-In-Line mit Durchsteck-Pins, rechts Quad-Flat-Pack (typisch für Microcontroller)
Computertechnik
8
Jacob
Beispiele für aktuelle Bauformen (packages)
In miniaturisierten Schaltungen wird heute überwiegend die Surface Mounted
Technologie verwendet, d.h. die Pins der Leiterbahnen, die aus dem IC-Körper
herausragen, werden so gebogen und chemisch vorbereitet, dass sie „platt“ auf der
Oberfläche verlötet werden können (Bild 1.11, Quelle: Spansion).
Bild 1.11: Vergleich eines PLCC-Gehäuses (plastic lead chip carrier) mit J-Pins und
eines TSOP1-Gehäuses mit Gull-Wing-Pins (beim TSOP2-Gehäuse sind die PinReihen entlang der langen Seiten des Rechtecks angeordnet; man erkennt deutlich
die flachere Bauweise des TSOP-Gehäuses)
Eine Gegenüberstellung der TSOP-Verkapselung mit der FBGA-Verkapselung (finepitch ball grid array) zeigt die Eigenschaften der neuen Technologie (Bild 1.12).
Bild 1.12: Vergleich der TSOP- mit der FBGA-Bauweise
Die Leiterbahnen sind in der FBGA-Technologie auf die Oberseite einer SubstratPlatte gedruckt. Jede Leiterbahn führt von einem Pad am Rand des Dies zu einem
Bohrloch (via). Auf die Innenfläche des Bohrlochs ist elektrisch leitendes Material
aufgebracht, so dass ein leitender Kontakt zur Lochöffnung an der Unterseite
entsteht. Dort befindet sich eine Kugel aus leitendem Material (ball), die den Kontakt
dieser Leiterbahn nach außen herstellt.
Ein schematischer Schnitt soll das deutlich machen (Bild 1.13, Quelle: Spansion).
Computertechnik
9
Jacob
Beispiele für aktuelle Bauformen (packages)
Bild 1.13: Schematischer Schnitt durch das FBGA-Gehäuse eines ICs mit einem Die
bzw. 2 Dies (stacked dies, Multi-Die-Struktur)
Die Beispiele bezogen sich bisher vor allem auf die Speichertechnologie. Zum
Vergleich soll noch die Bauform von beispielhaften Mikroprozessoren gezeigt
werden. Ein markantes Gehäuse-Merkmal: die Pins, die den Kontakt des ProzessorChips nach außen herstellen, sind als bandartiges Gittermuster am Rand des
Substrats angeordnet (PGA, pin grid array)
Bild 1.14: Pin-Grid-Array-Struktur beispielhafter Mikroprozessoren
Computertechnik
10
Jacob
Beispiele für aktuelle Bauformen (packages)
Der Sockel auf dem Motherboard bildet das Gegenstück zu den Steckerpins des
Prozessors. Jedem Stift entspricht dort eine Bohrung, in der sich Federkontakte an
den Stift pressen und so die elektrische Leitung ermöglichen.
Eine Alternative ist die Land-Grid-Array-Struktur (LGA), bei der auf der Unterseite
Pads anstatt Pins dazu dienen, den Kontakt des Prozessors nach außen zu
ermöglichen. Dann muss der Sockel ein entsprechendes Gitter von Federkontakten
bereitstellen.
Bild 1.15: Land-Grid-Array-Struktur (FC-LGA4 package von Intel: beispielsweise Pentium
Extreme Edition)
Vom logischen zum realen Schaltungsentwurf für den Chip
Die Erzeugung von gebrauchsfähigen integrierten Schaltungen setzt voraus, dass
leistungsfähige Schaltungen auf dem Chip realisiert werden. Und dieser setzt einen
logischen Schaltungsentwurf voraus.
Der Schaltungsentwurf (electronic design) verschaltet elektronische Standardelemente (Transistoren, Widerstände, Kondensatoren, Induktivitäten, Dioden usw.)
so, dass eine anwendungsgerechte Gesamtschaltung entsteht. Jedem logischen
Element entspricht auf einem Die (Chip) ein planares Strukturelement, welches das
logische Element realisiert. Die planaren Strukturelemente werden durch
Leiterbahnen zur Gesamtschaltung verschaltet: ein sehr komplexes Problem, je mehr
planare Strukturelemente auf der Chipfläche untergebracht werden müssen.
Das Strukturelement, das am häufigsten vorkommt, ist der Transistor. Je mehr Platz
seine planare Struktur braucht, umso weniger Transistoren kann man auf dem Chip
unterbringen. Die Anzahl der Transistoren, die man pro Fläche unterbringen kann,
heißt Transistordichte oder Integrationsgrad. Je größer er werden kann, umso
besser ist der Leistungsstand der Verfahren, die ihn erzeugen.
Computertechnik
11
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Wenn man nun durch intensive Forschung den Platzbedarf der planaren Struktur
eines Transistors verringert und die Transistoren dann entsprechend dicht anordnen
kann, bekommt man ein anderes Problem: auch die Leiterbahnen rücken enger
zusammen. Auch da gibt es Grenzen, d.h. man kann die Bahnen nicht beliebig eng
anordnen bzw. schmal machen. Wenn man beim Herstellungsprozess nicht
garantieren kann, dass keine leitenden „Brücken“ entstehen oder zu dünne
Leitenbahnen Risse enthalten, dann hat man nichts gewonnen.
Die Größe, die die Grenze pauschal definiert, ist die minimale auflösbare Strukturbreite.
Die Transistordichte und die minimale auflösbare Strukturbreite sind die Größen, an
denen man die Fortschritte der Halbleitertechnik mit konkreten Zahlen beschreiben
kann. Um ihren Sinn von Grund auf zu verstehen, müssen zuerst einige physikalische Grundlagen der Realisierung von Transistoren verständlich gemacht werden.
1.4 Ausgewählte Grundlagen der Elektrotechnik
Die schlüssige Erklärung der elektrischen Eigenschaften von Stoffen und deren
technische Nutzung sind nur auf der Basis komplexer Theorien möglich. Diese sollen
in diesem Kontext nur qualitativ und auf den Kontext bezogen angesprochen werden
Grundsätzliches Modell zur Erklärung von Elektrizität
Der Autor dieses Textes (und wahrscheinlich viele andere) kam zum ersten Mal mit
dem Phänomen Elektrizität in „Berührung“, als frisch gewaschene Haare sich nach
dem Kämmen sträubten bzw. sich die Haare aufrichteten, wenn der Kamm knapp
über den Haaren gehalten wurde.
Es ist die erste Erfahrung mit einem fundamentalen Phänomen der Elektrizität:
Erst durch Ladungstrennung in ein Paar von elektrisch entgegengesetzt geladenen
Gegenständen (Teilen) entsteht eine (auf Elektrizität beruhende) Wirkung. Wird die
Ladungstrennung aufgehoben, entsteht wieder ein (elektrisch) neutrales Ganzes
ohne diese Wirkungen.
Experimentell stellt man also fest, dass Kamm und Haare elektrisch entgegengesetzt
geladen sind und dass entgegengesetzt geladene Teile sich anziehen (Aufrichten der
Haare, wenn man den Kamm knapp darüber hält) bzw. gleich geladene Teile sich
abstoßen (Haare sträuben sich bzw. gehen auf Abstand).
Die physikalische Theorie gibt sich nun nicht mit einer pauschalen Zustandsbeschreibung zufrieden, sondern erklärt die elektrischen Phänomene als elementare
Vorgänge in Atomen. Aus diesem Blickwinkel lautet die obige Feststellung:
Erst durch die Ladungstrennung in Paare von elektrisch entgegengesetzt geladenen
elementaren Teilchen entsteht eine (auf Elektrizität beruhende) Wirkung.
Grundlage ist die Theorie der atomaren Struktur der Materie. Das Atommodell
beschreibt, welche elementaren Teilchen es gibt und welchen elektrischen
Ladungszustand sie haben.
Computertechnik
12
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Bild 1.16: Schematisches Atommodell mit Atomkern und umgebenden Elektronen auf
ihren Bahnen (Bohrsches Atommodell)
Jedes Atom jedes Elementes besteht aus einer gleich großen Anzahl von
Elektronen mit negativer Ladung und Protonen im Atomkern mit entgegen
gesetzter, d.h. positiver Ladung. Dazu kommt eine bestimmte Anzahl von elektrisch
neutralen Teilchen, den Neutronen.
Ladungstrennung bedeutet in diesem Modell, dass ein Elektron das Atom verlässt
und ein Ladungspaar mit entgegen gesetzter Ladung entsteht: ein negatives
Elektron und ein positiver Atomrumpf.
Elektrostatische Auf- und Entladungen
Mit Hilfe dieser elementaren Ladungstrennung wird das Kamm-Haar-Phänomen
schlüssig erklärbar: die Reibung des Kamms an den Haaren erzeugt so viel Energie,
dass sich Elektronen der Atome an den Haar-Oberflächen lösen und sich auf den
Zahnoberflächen des Kamms sammeln.
Der Kamm hat mehr Elektronen, als seinem neutralen Ladungszustand entspricht.
Sein Ladungszustand ist negativ bzw. er ist negativ geladen. Die Haare haben
einzeln weniger Elektronen, als ihrem neutralen Zustand entspricht. Ihr
Ladungszustand ist positiv bzw. sie sind positiv geladen.
Die Tatsache, dass die Ladungen sich statisch auf den Gegenständen Kamm und
Haare sammeln und nicht durch Abfluss bzw. Zufluss von Elektronen wieder neutral
werden, liegt daran, dass Kamm bzw. Haare aus elektrisch nicht leitendem Material
sind. Das Phänomen der (elektrischen) Aufladung entsteht durch Reibung von
Gegenständen aus elektrisch nicht leitendem, also isolierendem Material.
Andere Szenarien, die auf dem gleichen Phänomen beruhen, sind für die Elektronik
wichtiger (Bild 1.17, entnommen aus http://www.db0bel.de/ESD-Grundlagen.pdf ).
Bild 1.17: Typische Spannungen durch elektrostatische Aufladung bei Reibung
Computertechnik
13
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Sobald man mit Schuhen über einen Boden läuft, die beide nicht leitend sind,
entsteht Aufladung durch Ladungstrennung. Bei der Trennung wird (Reibungs)Arbeit
aufgewendet, die in der Gesamtheit der getrennten Ladungspaare steckt.
Die Fähigkeit, Arbeit zu verrichten, wird als Energie bezeichnet. Sie ist gleich der
Arbeit, die in den oder die Ladungsträger gesteckt wurde - im vorliegenden Fall, die
beim Trennen der Elektronen aufgebracht wurde.
Dabei entsteht Spannung, wie man sieht, können recht große Spannungen
entstehen. Die Größe der Spannung, die bei der Reibungstrennung entsteht, darf
man nicht mit der Größe der Gefährlichkeit gleich setzen, wie man das gewöhnt ist.
Maßgeblich für die Gefährlichkeit ist die Arbeit, die man in alle getrennten Elektronen
gesteckt hat. Nur diese Energie kann man beim Entladen wieder gewinnen. Die
Arbeit, die durch die Reibungstrennung hinein gesteckt wird, ist so gering, dass sie
für den Menschen ungefährlich ist, wenn sie beim Entladen frei wird.
Vorgang der Entladung: Die durch die Reibung entstandenen Ladungen können sich von
den Schuhen aus im gut leitenden Körper verteilen. Sobald man mit einem Körperteil in
die Nähe eines Leiters kommt, entsteht zwischen der Oberfläche des Leiters und der
Körperfläche, die ihr am nächsten ist, eine Wechselwirkung.
Angenommen, der Körper ist negativ aufgeladen. Die negativen Ladungen auf der
Hautoberfläche bewirken bei der Annäherung an den Leiter, dass an der Leiteroberfläche
Elektronen verdrängt werden und in den Leiter wandern, während an der Oberfläche
positive Atomrümpfe zurück bleiben. Je näher man dem Leiter mit dem Köperteil kommt,
umso mehr Elektronen sammeln sich (aus der Gesamtheit der Aufladung des Körpers) in
der Körperoberfläche, die dem Leiter am nächsten ist. Entsprechend viele positive
Atomrümpfe bilden sich auf der Gegenseite im Leiter. Dieser Vorgang wird Influenz
genannt. Spätestens bei der Berührung kommt es zum Ladungsausgleich. Dass der
Ladungsausgleich bei geringem Abstand sogar durch einen überspringenden Funken
eintritt, ist nicht selten.
Der Ladungsausgleich macht sich als ein unangenehmes, aber ungefährliches
Impulsgefühl bemerkbar, z.B. wenn man nach dem Laufen über einen Teppichboden
eine Türklinke anfasst. Für Elektronik kann sie aber „tödlich“ sein, weil sie
„empfindliche“ Halbleiterstrukturen in ICs zerstören kann. Ein dadurch bedingter
Totalausfall ist ärgerlich, aber schnell bemerkt. Heimtückischer sind Ausfälle, die nur
Schaltungsteile betreffen und erst nach mühsamen Tests offenbar werden.
Das Alles sind Gründe, warum z.B. folgender Hinweis gegeben wird (Bild 1.18).
Bild 1.18: Beispielhafter Hinweis in einem Intel-Handbuch zur Vorbeugung gegen
statische Entladung
Computertechnik
14
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Der Elektronenfluss bei der statischen Entladung ist ein Beispiel für eine „Quelle
eines Stromflusses“. Die Energie, die man in die Trennung der Ladungspaare
gesteckt hat, wird beim kurzzeitigen Stromfluss der Entladung zurück gewonnen. Mit
dem Abbau der Energie bricht natürlich auch die Fähigkeit zum Stromfluss
zusammen. Genau das will man bei echten Stromquellen nicht.
Bevor technisch wichtige Stromquellen zur Sprache kommen, sollen einige
Grundlagen zum Spannungsbegriff geklärt werden.
Elektrisches Potential, elektrische Spannung, elektrisches Feld
Am vorangegangenen Beispiel wurde die grundsätzliche Bedeutung des Vorgangs
deutlich, wenn man Elektronen von Atomen trennt. Es entsteht dann eine
Wechselwirkung. Denn beide Ladungsträger ziehen sich an.
Wenn man Kraft aufwendet, um einen Gegenstand entlang eines Weges
fortzubewegen, verrichtet man Arbeit. Messbar wird die Arbeit auf der Grundlage der
physikalischen Definition der Arbeit.
Wenn Kraft und Weg gleich gerichtet sind und die Kraft konstant ist, gilt
Arbeit = Kraft . Weg
bzw.
∆W = F . ∆s
Wenn die Kraft sich auf dem Weg ändert, dann gilt:
∆W = IF . ds
Eine typische Situation, in der Arbeit verrichtet wird, ist das Erklettern eines Bergs, z.B. mit
einem Fahrrad. Die aufgebrachte Kraft dient der Überwindung der Erdanziehungskraft und
der Weg ist die Höhe, die man gewinnt. Die Erdanziehungskraft kann im Bereich der Kontur
der Erdkruste als unabhängig vom Weg angesehen werden. Nimmt man das Niveau des
Meeresspiegels als Ausgangspunkt der Höhenmessung, dann verrichtet man bis zum
Erreichen eines Gipfelpunktes Arbeit, die man beim Herabfahren wieder gewinnt, wenn man
zum Ausgangsniveau zurückkommt.
Bild 1.19: Äquipotentialflächen im Falle von Massen- bzw. Ladungsanziehung
Computertechnik
15
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Die Fähigkeit, die bis zum Erreichen der Höhe aufgebrachte Arbeit wieder zu
gewinnen, nennt man Energie, im beschriebenen Fall: potentielle Energie.
Man kann sich die Oberfläche einer Kugel denken, deren Mittelpunkt im Erdmittelpunkt liegt und die die Höhe h bezogen auf die (ebenso gedachte) MeeresniveauKugel hat. Die Kugel schneidet aus der Erdoberfläche eine Höhenlinie. Auf dieser
Höhenlinie bzw. auf der gesamten Kugeloberfläche gewinnt und verliert man keine
potentielle Energie.
Man nennt die Flächen deshalb Äquipotentialflächen (Bild 1.19). In diesem Sinne
sind die Höhenlinien Äquipotentiallinien.
Eine Karte mit den Höhenlinien beschreibt zweidimensional die Verteilung der potentiellen
Energie in einem bestimmten Geo-Raumausschnitt. Üblicherweise gibt man die Höhenlinien
für ganz bestimmte diskrete Werte an, z.B. als Vielfache von 100 m. Aber man kann die
Werte auch dichter wählen. Im Prinzip veranschaulicht die Karte (mit frei gewählter
Genauigkeit) die Zuordnung eines eindeutigen skalaren Werts zu jedem zweidimensionalen
Punkt. Man nennt diese Zuordnung skalares Feld.
Die Verteilung der potentiellen Energie ist ein skalares Feld, das auch als
Potentialfunktion bezeichnet wird.
Wie man aus der Praxis weiß, ist die Kraft, die man beim Aufsteigen aufwenden
muss, dann am größten, wenn man der Falllinie entgegen läuft. Die Falllinie aber
steht senkrecht auf der Höhenlinie.
Man kann also aus dem skalaren Potentialfeld die maximalen Abtriebskräfte ableiten
(Bild 1.20, entliehen von http://www.physik.fu-berlin.de/~brewer/vm_elpot.html).
Bild 1.20: Die Richtung der Kräfte entlang der Falllinien
In jedem Raumpunkt gibt es eine Richtung, die das größte Gefälle hat. Die Senkrechten auf die Höhenlinien ergeben die Richtung der Falllinien. Mathematisch erhält
man die Richtung und den Wert des „Gefälles“, wenn man die Potentialfunktion in x-,
y- und z-Richtung im Oberflächenpunkt differenziert (man sagt auch: ihren Gradienten in dem Punkt bildet).
Bestimmt man den Kraftvektor für jeden Raumpunkt, dann erhält man das
Vektorfeld der maximalen Abtriebskräfte entlang der Oberflächenkontur der Erde.
Das, was hier über das Potentialfunktion und das Vektorfeld der Kräfte im Falle der
Massenanziehung gesagt wurde, lässt sich analog auf den Fall der elektrischen
Anziehung übertragen. Als Beispiel dient zuerst die Anziehung von zwei
entgegengesetzt geladenen Punktladungen im leeren Raum.
Computertechnik
16
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Sobald man ein Elektron aus dem Bereich der atomaren Kräfte entfernt hat und die
Ladungen weit genug entfernt sind, kann man den positiven Atomrumpf und das
Elektron als Punktladungen ansehen. Allgemein gültiger ist der Fall, dass man das
Elektron mit der Elementarladung q0 von einem Gegenstand mit der Ladung q1
entfernt, der bei genügendem Abstand als punktförmig angenommen werden kann.
Entgegen gesetzte Ladungen ziehen sich an, gleichsinnige stoßen sich ab. Im
Folgenden soll es nur um die Beträge der Kräfte gehen, nicht um deren Vorzeichen.
Das Gesetz, dem die Größe der Kraft folgt, ist eines der ersten, das im
Zusammenhang mit der Erklärung von Elektrizität entdeckt wurde (Coulomb). Der
Betrag der Kraft (in radialer Richtung) folgt folgender Proportionalität:
mit r = Abstand der Ladungen.
Das bedeutet im vorliegenden Fall:
mit q0 = Elementarladung.
F ~ Q1 . Q2 / r 2
F ~ q0 . q1 / r2 ,
Hat man also die Ladungen bis zum Abstand r voneinander entfernt, dann gilt für die
aufgebrachte Arbeit:
∆W = IF . dr ~ I q0 . q1 / r2 . dr
Man bezieht die Arbeit auf die bewegte Elementarladung q0:
∆W / q0 = ~ I q1 / r2 . dr
Jede Bewegung der Elementarladung aus einer Kugeloberfläche mit dem Radius r1
über einen radialen Abstand ∆r in die Kugeloberfläche mit dem Radius r2 = r1 + ∆r
erfordert die gleiche ladungsbezogenen Arbeit ∆W /q0. Für jede Kugeloberfläche im
Abstand r gilt sinngemäß das Gleiche wie für die Kugeloberfläche der potentiellen
Energie im Massenanziehungsfall der Erde. Bei der Bewegung des Elektrons auf
dieser Fläche wird weder Arbeit nötig noch wird Energie frei.
Die Analogie legt auch gleiche Begriffe nahe: analog zur Bezeichnung potentielle
Energie wird die aufgebrachte ladungsbezogenen Arbeit, die als Fähigkeit zur
Verfügung steht, dieselbe Arbeit frei zu setzen, als elektrisches Potential
bezeichnet.
Die Potentialfunktion, die für das Erdprofil definiert wird, ist nicht geschlossen darstellbar. Die Komplexität erfordert - in dieser oder jener Form - tabellarische Zuordnungen. Im Falle der beiden Punktladungen kann man von der Radialsymmetrie der
Potentialfunktion ausgehen. Sie ist nur vom Abstand r abhängig.
Differenziert man die Funktion nach der Variablen r, dann erhält man den radial
gerichteten Kraftvektor. Das so bestimmbare Feld der Kraftvektoren ist
radialsymmetrisch. In Fällen mit komplexeren Potentialfunktionen ist es nicht so
einfach und man muss die dreidimensionalen Gradienten bilden.
Computertechnik
17
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Da das Feld der Kraftvektoren auf der Wirkung von elektrischen Ladungen beruht,
wird es elektrisches Feld genannt. Man definiert die elektrische Feldstärke als
Kraft, die auf die Elementarladung bezogen wird:
Elektrische Feldstärke = Kraft / Elementarladung
bzw.
E = F / q0
wenn man die Beziehung der Beträge auswerten möchte,
bzw.
E = F / q0
wenn man die Vektorbeziehung auswerten möchte (Vektoren werden hier durch
Unterstrich gekennzeichnet). Es wird elektrostatisches Feld genannt, wenn sich die
Feldstärke nicht mit der Zeit ändert.
Die Feldstärke- und die Kraftvektoren in einem elektrischen Feld haben die gleiche
Richtung und unterscheiden sich nur durch einen Faktor in den Beträgen.
Soweit die Analogie zum Fall der potentiellen Energie, die den Einstieg in die Begriffe
der elektrischen Felder erleichtern sollte.
Nun gibt es nicht nur den Fall einer Punktladung, sondern Gegenstände beliebiger
Form mit beliebiger Ladungsverteilung. Jeden Gegenstand umgibt ein skalares
Potentialfeld, dem man durch Differenzierung ein vektorielles Kraftfeld bzw. ein
elektrisches Feld zuordnen kann. Alle Aussagen, die für den Beispielfall gemacht
wurden, gelten auch allgemein für diese Gegenstände.
Im Falle der potentiellen Energie auf der Erdoberfläche muss man für die
Bestimmung der Potentialfunktion an jedem Oberflächenpunkt die Höhe über dem
Meeresspiegel messen. Die Wahl des Meeresspiegels als Null-Niveau ist zwar
sinnvoll, aber aus prinzipieller Sicht willkürlich. Man könnte auch eine andere
Referenz bei der Differenzbildung wählen. Und was misst man im Falle des
elektrischen Felds?
Man misst auch eine Differenz, und zwar misst man die Potentialdifferenz zwischen
zwei Punkten als die Spannung U zwischen den beiden Punkten.
Oder mit anderen Worten:
Das Maß für die Arbeit bei der Bewegung einer Elementarladung zwischen zwei
Punkten eines elektrischen Felds ist die Spannung zwischen den beiden
Punkten.
∆W / q0 = U
Aus
folgt
∆W = IF . ds
∆W / q0 = IF/q0 . ds = IE . ds
Damit ist die Beziehung zwischen der Spannung und der elektrischen Feldstärke:
IE . ds = U
Mit Worten: Das Wegintegral der elektrischen Feldstärke ist gleich der
Spannung zwischen den Endpunkten des Wegs.
Computertechnik
18
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Bezugspotential
Es ist ein Referenz-Potential (Bezugspotential) festzulegen, auf das man alle
Spannungen bezieht. Der Meeresspiegel ist das Null-Niveau bezogen auf das Feld
der potentiellen Energie. In Analogie dazu bezeichnet man das Bezugspotential
manchmal auch als Null-Potential.
Dabei muss man berücksichtigen, dass jeder Gegenstand ein elektrisches Umfeld
hat, das seine Funktion beeinflussen kann, wenn es entsprechend empfindlich ist.
Die Wirkung des elektrischen Felds, das den Gegenstand umgibt und unabhängig
von ihm wirkt, kann man als Spannung zwischen einem beliebigen Punkt im
Gegenstand und einem beliebigen Punkt auf der Erdoberfläche messen. Nimmt man
eine elektrische Schaltung als Gegenstand, dann wird als Messpunkt in der
Schaltung der Bezugspunkt der erzeugten (Nutz-)Spannungen gewählt. (Bild 1.21).
Bild 1.21: Erzeugung einer Störspannung durch ein elektrisches Feld
Die Störspannung kann Stromkreise (rot) erzeugen, die sich den nützlichen Stromkreisen
(grün) überlagern und deren richtige Funktion beeinträchtigen können.
Wenn man die Störspannung durch einen guten elektrischen Leiter kurzschließt und
damit unwirksam macht, wird auch die Störwirkung vernachlässigbar. Aus diesen
praktischen Gründen bindet man das Bezugspotential einer Funktionseinheit
meistens an das Potential der Erdoberfläche (Erdpotential).
Das Potential der Erdoberfläche ist kein absolutes Null-Potential: denn insgesamt ist die
Erde negativ geladen. Das ist aber für den Betrieb von elektronischen Schaltungen unerheblich. Dafür ist auch unerheblich, dass es ein relativ starkes elektrisches Gleichfeld
zwischen der Ionosphäre in 60-80 km Höhe und der Erdoberfläche gibt, auf dessen
Schwankungen aber entsprechend disponierte Menschen empfindlich reagieren können.
Zwischen Ionosphäre und Erdoberfläche existiert eine elektrische Gleichspannung von
200 - 300 kV. Das elektrische Gleichfeld verändert sich mit den Jahreszeiten, mit dem
Wettergeschehen und mit dem Ort. Die elektrische Feldstärke beträgt im Schönwetterfeld
über dem flachen Land 135 V/m, bei Gewittern (verursacht durch die starke Ladungstrennung in Wolken) bis zu 10000-20000 V/m.
Die Feldlinien des elektrischen Gleichfeldes verlaufen senkrecht zur Erdoberfläche. Die
Äquipotentialflächen verlaufen parallel zur Erdoberfläche. Häuser, Bäume usw. bilden
zusammen mit der Erdoberfläche eine Äquipotentialfläche. Über den Spitzen dieser
Objekte kommt es zu hohen Feldstärken.
Kondensator
Für die Erklärung der Definitionen zum elektrischen Feld wurde das Feld einer positiven Punktladung genommen. Ein gutes Beispiel für die Anwendung der Feldgrößen
ist das klassische Element zur Speicherung von Ladungen: der Kondensator.
Computertechnik
19
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Bei einem Plattenkondensator stehen zwei gleich große Leiterplatten sich parallel auf
kurzem Anstand gegenüber. Zwischen den Platten befindet sich entweder Luft oder Materie
mit besonderen (dielektrischen) Eigenschaften.
Bei einem Wickelkondensator werden zwei leitende Folien durch eine dünne (dielektrische)
Trennschicht voneinander isoliert und zu einer Rolle aufgewickelt. Abgewickelt stehen sich
auch hier zwei „Platten“ auf gleichem, geringem Abstand gegenüber.
Wenn man nun eine Spannung U an die beiden Platten legt, lädt sich die Platte am
positiven Pol der Spannungsquelle positiv auf, die Platte am negativen Pol negativ.
Dabei fließen Elektronen von der sich positiv aufladenden Platte ab und die gleiche
Anzahl Elektronen fließen zu der sich negativ aufladenden hin. Das Ende der Aufladung ist erreicht, wenn die Spannung zwischen den Platten gleich der angelegten
Spannung ist.
Der aufgeladene Kondensator hat die Ladung Q = N . q0 aufgenommen. Im Folgenden interessiert zunächst dieser aufgeladene Zustand.
Ändert man die Spannung U und misst die aufgenommene Ladung Q, stellt man
folgende Proportionalität fest:
Q~U
bzw.
Q=C.U
Der Proportionalitätsfaktor ist eine Konstante, die den Zuwachs an Ladungseinheiten
pro Spannungseinheit (Amperesekunden pro Volt, As/V) festlegt. Sie wird Kapazität
des Kondensators genannt. Ihre Einheit 1 As/V heißt Farad.
Untersucht man nun, von welchen Größen die Kapazität abhängt, dann stellt man
wieder durch Messung der Ladung folgende Proportionalität fest:
Q ~ (Fläche/Abstand) . U
Zu der Abhängigkeit von geometrischen Größen kommt aber noch eine Abhängigkeit
von der Materie zwischen den Platten. Man betrachtet den Fall, bei dem keine
Materie (Vakuum) zwischen den Platten liegt, als Bezugsfall bzw. die dabei erzeugte
Ladung als Bezugsladung. Für diesen Fall legt man eine Konstante fest, so dass
folgende Gleichung gilt:
Q = ε0 (Fläche/Abstand) . U
Die Konstante ε0 heißt Dielektrizitätskonstante des leeren Raums. Sie ist eine der
Naturkonstanten, die (noch) nicht weiter erklärbar sind.
Irgendwelche Materie zwischen den Platten erzeugt entweder die gleiche oder eine
größere Ladung bei sonst gleichen Bedingungen. Das Verhältnis
Qmit Materie / QVakuum = εr
legt einen von der Materie abhängigen Faktor fest, den man durch Messung
bestimmt und bei der Berechnung der Ladung für den Fall mit dieser Materie
einsetzen kann (relative Dielektrizitätskonstante):
Q = ε0 . εr . (Fläche/Abstand) . U
Mit ε0 . εr = ε wird die (im konkreten Fall wirksame) absolute Dielektrizitätskonstante
definiert, so dass gilt:
Q = ε . (Fläche/Abstand) . U
Computertechnik
20
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Was hier für den Kondensator entwickelt wurde, verbirgt eine grundsätzliche
Eigenschaft des elektrischen Felds, um die es im Folgenden gehen soll.
Vertiefung für Interessierte, kein Prüfungsstoff
Elektrische Feldstärke und die Ladungsverteilung beim Kondensator
Die elektrische Feldstärke wird definiert als die Kraft, die im leeren Raum auf eine einzige
Elementarladung wirkt, bezogen auf (also geteilt durch) die Elementarladung. Was
bedeutet es nun, wenn an einem Raumpunkt eine bestimmte Feldstärke herrscht, dort aber
mehrere freie Ladungen möglich sind?
Am Feld in einem Plattenkondensator kann man das Problem beispielhaft deutlich machen.
Die Eigenschaften dieses Felds sollen zuerst bestimmt werden.
Bei der Bestimmung der Feldgrößen des Kondensators kann man messtechnisch und/oder
analytisch vorgehen. Veranschaulicht man das Ergebnis, dann gibt man meistens nur die
Feldlinien der elektrischen Feldstärke an. Sie verbinden die Raumpunkte mit
Feldstärkevektoren gleichen Betrags.
Da die Äquipotentialflächen und die Feldlinien senkrecht aufeinander stehen, kann man
sich die Form der Äquipotentialflächen gut dazu ergänzen.
Bestimmt man die elektrische Feldstärke für einen
Plattenkondensator, dann ergibt sich, dass die Feldstärkevektoren im Innern senkrecht zu den Plattenoberflächen stehen
und in jedem Raumpunkt den gleichen Betrag haben, Das
bedeutet, dass die Feldlinien geradlinig von Platte zu Platte
verlaufen.
Außerhalb der Platten nimmt der Betrag der Feldstärke
schnell ab, je weiter entfernt die Messpunkte liegen. Die
Feldlinien verlaufen dort bogenförmig
Die Feldstärke im Innern lässt sich unter diesen Umständen
aus der Spannung und dem Abstand der Platten einfach bestimmen:
IE . ds = E . Abstand = U
bzw.
E = U / Abstand.
Das bedeutet, dass man für den Kondensator einen Zusammenhang zwischen seiner
Feldstärke im Innern und der gesamten aufgenommenen Ladung herstellen kann:
Q / Fläche = ε . U / Abstand
bzw.
Q / Fläche = ε . E
bzw.
D=ε.E
Die elektrische Feldstärke im Innern legt die Ladungsdichte D in den Platten des
Kondensators fest.
Das gilt nun nicht nur für den Kondensator als Ganzes. Vielmehr man kann das auch für die
Raumpunkte im Innern feststellen.
Computertechnik
21
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Elektrische Feldstärke und Ladungsverteilung an einem Raumpunkt
An jedem inneren Raumpunkt des Kondensators ist mit der Feldstärke auch die Kraft auf
ein einzelnes Elektron bekannt. Angenommen, man positioniert an dem Raumpunkt ein
Metallplättchen von punktartiger Flächengröße, das parallel zu den Platten des
Plattenkondensators steht. In dem Metallplättchen gibt es mehr als eine bewegliche Ladung
in Form von freien Elektronen. Wie wirkt sich die elektrische Feldstärke auf diese aus?
Die Feldstärke sorgt im metallischen Elementarplättchen für eine Trennung von Ladungen
in Elektronen und positiv zurückbleibende Atomrümpfe so, dass die Elektronen auf die
Oberfläche wandern, die der positiv geladenen Platte gegenüber liegt, und auf der anderen
Oberfläche die positiven Atomrümpfe zurückbleiben, die der negativen Platte gegenüber
liegt.
Es kommt also zu einer Verschiebung von Ladung. Die Menge der Ladung dQ, die sich
auf dem Probe-Elementarplättchen pro Oberfläche dFläche bildet, also die am Raumpunkt
mögliche Ladungsdichte, wird durch die elektrische Feldstärke festgelegt:
mögliche Ladungsdichte am Raumpunkt = dQ / dFläche = ε E
Die elektrische Feldstärke legt die an einem Raumpunkt mögliche Ladungs-dichte
fest.
Bezieht man nun die verschiebende Bewegung der Ladungen bei der Ladungstrennung mit
in die Betrachtung ein, dann ergibt sich eine ortsfeste Ausrichtungsbewegung von
Elektronen gegen die Richtung des Feldstärkevektors bzw. ein Fluss von positiven
Ladungen in Richtung des Vektors der elektrischen Feldstärke.
Man definiert die Ladungsdichte deshalb als Vektor in Richtung des elektrischen
Feldstärkevektors und nennt ihn den Vektor der Dichte des Verschiebungsflusses oder
Verschiebungsdichte.
D=ε.E
Die Ladung Q in einer Fläche ergibt sich durch Integration der Ladungsdichte über der
geschlossenen Fläche:
Q = ID . dA
über geschlossene Fläche
In jeder nicht kompressiblen Strömung ist die Teilchendichte überall gleich. Der Begriff
Verschiebungsfluss greift in diesem Sinne das Bild einer Strömung auf.
Die Ladungsdichte ist in jedem Querschnitt senkrecht zur Richtung der Strömung gleich,
d.h.: Die Ladungsdichte auf der sich positiv aufladenden Platte geht am Rand über in die
gleich große Verschiebungsdichte des Verschiebungsflusses, die durchgehend gilt bis zum
Übergang in die Ladungsdichte auf der sich negativ aufladenden Platte des Kondensators.
Das kann man mit Hilfe der Aufladung des Probe-Elementarplättchens auch durch
Messung bestätigen.
Auf der Strecke des Verschiebungsflusses kann leerer Raum oder nicht leitendes Material
liegen, in dem ortsfeste Ladungen voneinander getrennt (verschoben) werden können.
Diese ortsbegrenzte Verschiebebewegung nennt man auch Polarisieren der
(dielektrischen) Materie.
Computertechnik
22
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Verschiebungsstrom
Bisher wurde das elektrostatische Feld des Kondensators untersucht, das im aufgeladenen
Zustand vorliegt. Daraus kann man den Fall des sich (langsam) ändernden Felds
entwickeln. Wenn eine (über der Zeit) konstante Änderung der Spannung vorliegt, gilt
folgender Zusammenhang:
∆Q / ∆t = C . ∆U / ∆t
Wenn die Änderung selbst zeitabhängig ist, muss man zu den Differentialquotienten
übergehen:
dq / dt = C . du / dt
Diese Gleichung bestimmt den Strom von bzw. zum Kondensator:
dq / dt = i = C . du / dt
Beim Kondensator fließt Strom nur bei Änderung der Spannung.
Konstante Spannung bedeutet kein Strom!
Strom bedeutet eine zeitliche Änderung der Ladungsdichte an den Platten des Kondensators, die mit einer zeitlichen Änderung des elektrischen Felds verbunden ist:
dq / dt /Fläche Kondensatorplatte
= Strom i / Fläche Kondensatorplatte
= Stromdichte Kondensatorplatte = ε . dE /dt
Wie im elektrostatischen Fall kann man die Stromdichte an einem Raumpunkt im
Kondensatorzwischenraum bestimmen:
dq / dt /Fläche Raumpunkt
= Strom i / Fläche Raumpunkt
= Stromdichte Raumpunkt = ε . dE /dt
bzw. in Vektorform:
J = ε . dE /dt
Die Stromdichte J im Raumpunkt wird die Dichte des Verschiebungsstroms durch den
Raumpunkt genannt.
Der Verschiebungsstrom selbst ist das Integral der Stromdichte über der Fläche des
Querschnitts, in dem er „fließt“.
Der Verschiebungsstrom bedeutet keinen Fluss von Ladungsträgern entlang eines
Strompfads. Er ist ein Quasistrom, der die raumübergreifende Wirkung durch das Feld
zwischen den beiden Platten als Ersatzgröße angibt, die gut als Rechengröße verwendbar
ist.
Das Bild der Bewegung durch den Raum ist dabei zutreffend, weil das Feld die Kraft zur
Ladungsverschiebung (eigentlich Trennung und damit Erzeugung) durch den Raum von
einer Platte zur anderen trägt.
Der Verschiebungsstrom wird gedacht als die kontinuierliche Fortsetzung des Teilchenstroms von der einen Kondensatorplatte durch das nicht leitende Material zur Oberfläche
der gegenüber liegenden Platte, wo er wieder als Teilchenstrom fortgeführt wird.
Mit diesem Modell entstehen in Stromkreisen mit Kondensatoren durchgehende
Stromflüsse, was die Berechnung und anschauliche Deutung von solchen Stromkreisen
vereinfacht. Man spricht also nicht mehr vom Strom vom bzw. zum Kondensator, sondern
vom Strom durch den Kondensator.
Computertechnik
23
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Elektrische Quellen
Eine Quelle, die durch elektrostatische Aufladung entsteht, ist eher eine Störquelle
als eine nützliche Stromquelle. Die entsteht erst dann, wenn die Fähigkeit zum
Stromfluss nicht abbricht.
Das ist z.B. der Fall, wenn die Fähigkeit zu einem zeitlich konstanten Strom erhalten
bleibt. Das bedeutet, dass man zeitlich konstant Energie für die Ladungstrennung
aufbringt, was man an einer zeitlich konstanten Spannung misst. Das ist die
Gleichspannung einer Gleichspannungs- bzw. Gleichstromquelle.
Im (technisch wichtigsten) alternativen Fall wird die Energie zur Ladungstrennung mit
Hilfe der Drehung einer Spule in einem konstanten Magnetfeld zeitlich sinusförmig
aufgebracht. Das führt zur typischen Wechselspannung einer Wechselspannungsbzw. Wechselstromquelle, eines Generators.
Die Spannung, die unmittelbar mit der Ladungstrennung verbunden ist, heißt die
eingeprägte Spannung oder Urspannung oder Leerlauf-Spannung der
Gleichstrom- oder der Wechselstrom-Quelle.
Im täglichen Umgang mit elektrischen Quellen wird auf die zeitliche Konstanz der
Spannung wert gelegt, sei es, dass z.B. eine Batterie ihren Gleichspannungswert
konstant hält, sei es, dass das Wechselstromnetz seine Wechselspannung konstant
hält, womit man den Amplitudenwert des sinusförmigen Spannungsverlaufs meint.
Die Bezeichnungen Spannungsquelle oder Stromquelle sind dabei gleichwertig.
In der Elektronik dienen beide Ausdrücke aber zur Unterscheidung zweier
unterschiedlicher Typen von Quellen:
•
Spannungsquelle heißt eine Quelle, bei der die gelieferte Spannung
möglichst unabhängig von einem sich ändernden Strom im Stromkreis ist, der
mit der eingeprägten Spannung betrieben wird (Konstantspannungs-Quelle);
•
Stromquelle wird eine Quelle genannt, bei der der gelieferte Strom möglichst
unabhängig von sich ändernden Spannungsverhältnissen im Stromkreis ist;
d.h. die Spannung der Quelle stellt sich von selbst so ein, dass der Strom
einen gewünschten Wert behält (Konstantstrom-Quelle).
Als Ersatzbilder für Quellen gelten folgende Symbole:
Bild 1.22: Ersatzschaltbilder für Quellen
U0 bzw. U sind die eingeprägten Spannungen.
Computertechnik
24
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Batterien/Akkus als Gleichspannungsquellen
Durch den Gebrauch im Alltag ist man mit Batterien vertraut, die nicht wieder
aufladbar, also nur einmal nutzbar sind, aber auch mit solchen, die wieder aufladbar
sind und die auch als Akkumulatoren oder kurz Akkus bezeichnet werden.
Fachsprachlich unterscheidet man zwischen (nicht wieder aufladbaren Primärzellen) und
(wieder aufladbaren) Sekundärzellen.
Im Folgenden sollen der Aufbau und das Funktionsprinzip einer nicht wieder
aufladbaren Batterie an einem Fall mit vertrauten Elementen erläutert werden.
Bildquelle: http://www.chempage.de/theorie/galvanischezelle.htm
Die elementare Baueinheit ist die galvanische Zelle. Das sind zwei, durch eine
Membran getrennte Kammern mit unterschiedlichen Metallsalz-Lösungen
(Elektrolyt). Je eine Platte des Metalls ist in die Lösung seiner Kammer eingetaucht.
Bild 1.23: Schnitt durch eine galvanische Zn-Cu-Zelle
Die Membran verhindert eine Durchmischung der Salzlösungen. Sie ist aber für
geladene Teilchen durchlässig, wenn ein Ladungsungleichgewicht zwischen den
Lösungen entsteht und sich ausgleichen soll.
Man nennt die in die Halbkammern eingetauchten Körper Elektroden. Welcher
Vorgang erzeugt nun die Ladungstrennung und damit die Spannung?
Maßgeblich ist der chemische Prozess, dass sich Metallatome der Elektroden an den
Grenzflächen zerteilen und als positive Metall-Ionen in die Flüssigkeit übergehen,
während die Elektronen im metallischen Körper bleiben (Bild 1.24).
Der Zerteilungsprozess ist ein Angebot der Natur, die Energie für die Ladungstrennung daraus zu gewinnen, dass man zwei Stoffe geschickt miteinander kombiniert.
Vertiefung für Interessierte, kein Prüfungsstoff
Das führt aber nicht zu einer unbegrenzten Erzeugung immer neuer Elektronen/MetallIonen-Paare. Paare können sich auch wieder zu neutralen Atomen vereinigen, d.h. der
Zerteilungsprozess wird von einem Rekombinationsprozess begleitet.
Beide Prozesse streben einem (elektrochemischen) Gleichgewichtszustand zu, in dem es
gleich viele Zerteilungs- und Rekombinatiosvorgänge pro Zeiteinheit gibt.
Computertechnik
25
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Wenn dieser Gleichgewichtszustand erreicht ist, hat sich eine (im Mittel über der Zeit)
stabile Anzahl von Elektronen/Metall-Ionen-Paaren gebildet, die an den Grenzflächen
gesammelt sind. Sie erzeugen eine Spannung (elektrochemisches Potential).
Bild 1.24: Ladungsverteilung in einer galvanischen Zn-Cu-Zelle
Nimmt man den gesamten flüssigen Inhalt der galvanischen Zelle mitsamt den Elektroden,
dann ist dieser nach außen elektrisch neutral; denn die Bildung der Ladungspaare bedeutet
keine Hinzufügung oder Beseitigung von Ladungen, sondern nur eine Trennung. Man kann
von jedem beliebigen Punkt des Innern eine leitende Verbindung zur neutralen Erde
herstellen: es gibt keine Spannung zwischen den Endpunkten der Leitung und es wird
folglich kein Ladungsausgleich stattfinden (wenn einer nicht vorher bewusst durch Reibung
für eine elektrostatische Aufladung des evt. Kunststoff-Gehäuses gesorgt hat und so
entstandene Ladungen in das Innere gelangten).
Spannungen stellt man zwischen zwei Punkten im Innern fest, wobei die Spannung
zwischen den beiden Elektroden die wichtige ist.
Das elektrochemische Potential, das sich zwischen dem Metall und dem Elektrolyt bildet,
hängt von der Auswahl des Metalls ab. Bei Zink ergeben sich wesentlich mehr
Elektronen/Metall-Ionen-Paare als bei Kupfer.
(Ende der Vertiefung)
Auf der Zink-Elektrode befinden sich mehr Elektronen als auf der Kupfer-Elektrode.
Die Zink-Elektrode ist der negative Pol der Spannungsquelle, die Kupfer-Elektrode
ist der positive Pol.
Man misst zwischen den Polen einer Zn-Cu-Zelle ohne Stromfluss eine eingeprägte
Spannung von 1,1 Volt.
Andere Beispiele: Nickel-Cadmium-Akkus haben eine Zellen-Spannung von 1,2 Volt,
Bleiakkus (Autobatterien) haben eine von 2 Volt.
Vertiefung für Interessierte, kein Prüfungsstoff:
Diese Spannung setzt sich aus den Teilspannungen an den Elektroden zusammen. Deren
Größe wird auf der Basis einer Referenz-Elektrode definiert.
Computertechnik
26
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Nicht wieder aufladbare Primärzellen bilden die maximale Anzahl von Ladungspaaren,
sobald der Zerteilungs- und Rekombinationsprozess zum ersten Mal ins Gleichgewicht
kommen. Die getrennten Ladungsträger verteilen sich über die Elektroden-Oberfläche
(Ladungsdichte). Die flächenhafte Schicht der Ladungsträger in der Elektrode und die
flächenhafte Schicht der Ladungsträger in der Lösung liegen sich auf Abstand gegenüber.
Sie stellen sich mit ihrer Ladungsdichte und ihrem Abstand so ein, dass man insgesamt das
charakteristische elektrochemische Potential feststellt.
Wenn man die Oberflächen der Elektroden vergrößert, bleibt das gemessene Potential das
gleiche. Die größere Zahl an Paaren mit getrennten Ladungen verteilt sich mit
entsprechendem Schichtabstand über die größere Fläche, so dass das gleiche
elektrochemische Potential entsteht.
Die Zahl der Ladungspaare an der negativen Elektrode, die über die Zahl der
Ladungspaare an der positiven Elektrode hinausgeht, legt die Kapazität der Zelle fest.
Ermöglicht man einen Ladungsausgleich zwischen den Polen, indem man einen
elektrischen Leiter zwischen beide schaltet, dann können mit der Zeit nur so viele
Elektronen insgesamt fließen, wie im Überschuss enthalten sind (Bild 1.25).
Bild 1.25: Stromfluss durch einen elektrischen Widerstand zwischen den Polen einer
galvanischen Zelle
Beim Stromfluss fließen Elektronen vom negativen zum positiven Pol und neutralisieren
Kupfer-Ionen, die sich auf der Kupfer-Elektrode sammeln. Zink-Ionen sind nicht mehr
gebunden und wandern frei in die Lösung. Ionen wandern durch die Membran, um den
Gesamtausgleich zu schaffen.
Durch die Änderung der Ladungsverteilung an den Elektroden nehmen die
elektrochemischen Potentiale an den Elektroden, also die eingeprägte Spannung der
Spannungsquelle, beim Betrieb ständig ab, bis eine unbrauchbare Spannung
entstanden ist.
Das tritt in aller Regel ein, bevor die Zelle vollständig entladen ist, also der vorhandene
Ladungsüberschuss vollständig abgebaut ist.
(Ende der Vertiefung)
Computertechnik
27
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Stromstärke
Die Stromstärke ist der Fluss einer Ladungsmenge ∆Q im Zeitintervall ∆t.
I = ∆Q / ∆t
Wenn sich die Stromstärke I während der Betriebszeit t nicht ändert und dabei
insgesamt die Ladungsmenge Q geflossen ist, dann ist die Stromstärke des
konstanten Stroms
I=Q/t
Die Einheit der Stromstärke ist Ampere. Die Ladungsmenge, die bei einer
Stromstärke von 1 Ampere während einer Sekunde geflossen ist, ist die
Landungsmenge von einem Coulomb: 1 Coulomb = 1 Ampere . sec.
Man gibt die Kapazität einer Batterie als Ladungsmenge Q beispielsweise in AmpereStunden an. Ist der von der Zelle gelieferte Strom konstant über der Zeit, dann hat die Zelle
eine Betriebszeit von t = Q / I. Das ist die Zeit bis zur unbrauchbaren Spannung.
Spannungen in einem Stromkreis
Wenn man bei Stromfluss (der entlang dem Stromkreis überall dieselbe Stärke hat)
die Spannung an den beiden Polen der Spannungsquelle misst, dann stellt man fest,
dass sie kleiner ist als die eingeprägte Spannung. Bei Stromfluss entsteht also ein
Abfall der Spannung gegenüber der eingeprägten Spannung. Was ist die Ursache?
Im beispielhaften Stromkreis in Bild 1.25 kann man in Flussrichtung der Elektronen
mehrere Leiterabschnitte unterscheiden: zuerst fließen die Elektronen durch das
Zink-Elektroden-Material, dann durch ein Stück Kupferleitung, dann durch das
Widerstandsmaterial, dann wieder durch ein Stück Kupferleitung und schließlich
durch das Kupfer-Elektrodenmaterial (Bild 1.26).
Misst man die Spannung zwischen dem Endpunkt jedes Abschnitts und dem
Minuspol, so stellt man fest, dass die Spannung von Messung zu Messung immer
mehr abfällt, bis sie am Minuspol Null geworden ist. Die Differenzen der Messwerte
an den Endpunkten der Leiterabschnitte bilden die Beträge der Spannungsabfälle,
die durch jeden Leiterabschnitt verursacht werden. Dann stellt man fest:
Die Summe aller Spannungsabfälle gleich der eingeprägten Spannung.
U0 = ∆U1 + ∆U2 + ∆U3 + ∆U4 + ∆U5
∆U3=U3-U2
Kupferleitung
R
U2
U1
∆U2=U2-U1
Cu
∆U1=U1-U0
Kupferleitung
U3
U4
∆U4=U4-U3
Zn
∆U5=0-U4
+
eingeprägte Spannung U0
Bild 1.26: Spannungen im beispielhaften Stromkreis: Minus-Pol als Bezugspunkt
Computertechnik
28
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Vertiefung für Interessierte, kein Prüfungsstoff:
Dahinter verbirgt sich eine grundsätzlich gültige Bilanz.
Während im elektrostatischen Fall die Arbeit zur Trennung der Elektronen von den
Atomrümpfen nur einmal aufgebracht wird, muss sie in einer brauchbaren elektrischen
Quelle ständig aufgebracht werden. Das bedeutet, die Quelle muss pro Zeiteinheit ∆t eine
bestimmte Trennarbeit ∆W aufbringen, die als Energie der getrennten Elektronen auftritt.
Der Quotient ∆W / ∆t heißt Leistung.
Das Maß für die Energie eines einzelnen getrennten Elektrons ist die Spannung U. Wenn
man ∆N Elektronen pro Zeiteinheit ∆t trennt, dann bringt man pro Zeiteinheit die
Trennarbeit ∆W = U . ∆N . Elementarladung = U . ∆Q auf:
∆W / ∆t = U . ∆N . Elementarladung / ∆t = U ∆Q / ∆t = U . I
Die von einer Quelle gelieferte Leistung ist das Produkt aus ihrer eingeprägten Spannung
und dem gelieferten Strom.
Jede Komponente des Stromkreises, durch den der gelieferte Strom fließt, verbraucht nun
einen Teil der Leistung. Ihr Anteil muss sich aus dem Produkt aus dem Spannungsabfall,
den er verursacht, und dem Strom I ergeben.
Die Bilanz muss sein: gelieferte Leistung gleich Summe der verbrauchten Leistungen. In
allgemeiner Form lautet die Bilanz:
bzw.
bzw.
U0 . I = ∆U1 . I + ∆U2 . I + …+ ∆Un . I
U0 = ∆U1 + ∆U2 + …+ ∆Un
U0 - ∆U1 - ∆U2 - …- ∆Un = 0
Mit anderen Worten:
Die Leistungsbilanz erzwingt, dass die Summe aller Spannungen entlang dem Stromkreis
Null ist.
(Ende der Vertiefung)
Diese Tatsache formuliert man mit einer Regel, die Vereinbarungen zu den
Vorzeichen der Spannungen voraussetzt (Schleifen- oder Maschenregel, Bild 1.27).
Zählt man die angelegte Spannung von Plus nach Minus als positiv und verfolgt in
dieser Richtung den Strompfad, dann zählen die Teilspannungen, die in gleicher
Richtung wirken, als positiv, und diejenigen, die in entgegen gesetzter Richtung
wirken, zählen als negativ.
Es gilt:
Die Summe aller Spannungen entlang einer Schleife ist Null.
Computertechnik
29
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Bild 1.27: Schema für die Anwendung der Schleifenregel
Wenn die angelegte Spannung vom Plus- zum Minus-Pol den positiven Umlaufsinn festlegt,
dann muss man bei den Teilspannungen im Umlaufsinn zuerst auf den negativen Pol treffen;
denn dann sind die Teilspannungen entgegen gesetzt gerichtet..
Die eingeprägte Spannung U0 steht für die Energie jedes Elektrons, die beim
Wandern des Elektrons zum Plus-Pol abgegeben wird, wo es keine Energie mehr hat
und einen Atomrumpf neutralisiert. Man kann also mit gutem Recht behaupten, dass
die Spannung die Elektronen antreibt bzw. den Strom verursacht.
Die Frage ist nun, wie groß der Strom ist.
Dabei ist ein andere physikalische Tatsache maßgeblich; die man an allen
Komponenten des beispielhaften Stromkreises feststellt: bei jeder Komponente sind
der Strom durch die Komponente und die angelegte Spannung zueinander
proportional. Das führt zur Definition des elektrischen Widerstands als
Proportionalitätsfaktor in der Proportionalität:
U=R.I
Für jeden Spannungsabfall an einer Komponente gilt also:
∆Ui = Ri . I
Für die Summe aller Spannungsabfälle heißt das:
U0 = ∆U1 + ∆U2 +…+ ∆Un = R1 . I + R2 . I +…+ Rn . I = (R1 + R2 +…+ Rn ) . I
Für die Spannungsquelle ergibt sich ein Gesamtwiderstand, der aus der Summe der
Einzelwiderstände gebildet wird. Damit ergibt sich die Größe des Stroms.
I = U0 / (R1 + R2 +…+ Rn )
Computertechnik
30
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Die hier festgestellten physikalischen Eigenschaften stellt man in einem
symbolischen Schaltschema dar, das man Ersatzschaltbild nennt (Bild 1.28).
R
RCu
RCu
Ri
+
tatsächliche
Spannung +
zwischen den
Polen
-
eingeprägte
Spannung U0
Bild 1.28: Ersatzschaltbild mit Spannungsquelle und Innenwiderstand
Das Ersatzschaltbild einer Gleichspannungsquelle fasst alle Widerstandskomponenten innerhalb der Spannungsquelle im sog. Innenwiderstand zusammen. Alle
anderen Komponenten werden durch ihren Widerstand repräsentiert. Zusammen mit
der eingeprägten Spannung stellt man damit in anschaulicher Form alle Größen
zusammen, die die Strom- und Spannungsverhältnisse festlegen.
Der Spannungsabfall in der Quelle ist im Beispielfall:
∆Ui = Ri / (2RCu + R).
Computertechnik
31
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Netzteile als Gleichspannungsquellen
Spannungsquellen bzw. Stromversorgungen für Personal Computer werden
Netzteile genannt. Sie wandeln Wechselstrom in mehrere unterschiedliche
Gleichspannungen um (Bild 1.29).
Bild 1.29: Gleichspannungen an einem typischen Netzteilstecker
Alle Spannungen haben einen gemeinsamen Pol. Alle Spannungen beziehen sich
auf diesen gemeinsamen Pol. Er wird hier (in der englisch/amerikanischen
Nomenklatur) mit Ground bezeichnet. Das soll ausdrücken, dass er üblicherweise mit
der Erde verbunden (geerdet) ist.
Der Bezugspol der Spannungen einer Stromversorgung hat das Bezugspotential.
Durch den guten Leiter zur Erde nimmt es das Erdpotential an.
Die Erdoberfläche kann (bis auf genau bestimmbare Ausnahmefälle) als idealer
Leiter angesehen werden, in der zu jeder Zeit ein schneller und vollständiger
Ladungsausgleich stattfindet. Erdet man einen Gegenstand, dann bezieht man den
Ladungsausgleich zwischen Gegenstand und Erdoberfläche in den allgemeinen
Ladungsausgleich auf der Erdoberfläche ein.
Das nutzt man zu Schutzmaßnahmen, indem man berührbare Teile elektrisch
leitende Teile einer Funktionseinheit, die sich gefährlich aufladen könnten, über ein
Schutzleitersystem mit der Erde verbindet. Das Schutzleitersystem ist unabhängig
von den Wechselstromleitern (drei Phasen-Leiter plus Neutral-Leiter).
In den meisten elektrischen Einheiten (z.B. in Personal Computern) nutzt man das
Schutzleitersystem, um auch das Bezugspotential an das Erdpotential zu binden.
Üblicherweise wird mit der metallischen Verschraubung des Metallgehäuses auch eine
leitende Verbindung zum Bezugspol hergestellt, was die Bezeichnung Ground begründet.
Man bezeichnet elektrische Signale, deren Spannungswerte an das Erdpotential
gebunden sind, als potentialgebunden. Wenn das nicht der Fall ist, heißen sie
potentialfrei.
Die Bindung eines elektrischen Signals an das Erdpotential vermeidet man immer dann,
wenn sein Stromkreis einen Strompfad durch Verbindungen zur Erde oder sogar durch die
Erde einschließt, der Störungen hervorrufen kann. Davon später Genaueres, z.B. bei
Computernetzen.
Computertechnik
32
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Eine andere Möglichkeit, das Bezugspotential zu binden, ist die Verbindung mit
einem metallischen Leiter großer Masse, z.B. dem metallischen Gehäuse. Deshalb
bezeichnet man das Bezugspotential auch oft als Masse.
Sowohl die Bezeichnung Bezugspotential als auch die Bezeichnung Masse legen
nicht fest, dass es auch eine Verbindung zur Erde gibt. Das muss man eigentlich
zusätzlich angeben. In Schaltbildern werden deshalb auch verschiedene Symbole
verwendet.
Bezugspotential,
Masse
Erde
Schutzleiter
Schaltnetzteile
Für Personal Computer bzw. Workstations werden üblicherweise Schaltnetzteile
eingesetzt. Man unterscheidet primär und sekundär getaktete Schaltnetzteile.
Bild 1.30 zeigt das Aufbauprinzip von primär getakteten Schaltnetzteilen.
Bild 1.30: Aufbauprinzip von primär getakteten Schaltnetzteilen
Zentrales Element bei der Umsetzung der Wechselspannung in Gleichspannung ist
ein Transformator, der mit Hilfe einer magnetischen Kopplung eine zeitlich sich
ändernde Spannung einer Eingangsspule (Primärseite) in ein oder mehrere zeitlich
sich ändernde Spannungen an einer Ausgangsspule (Sekundärseite) wandelt.
Die Netzspannung wird gleichgerichtet, d.h. die negativen Spannungsanteile werden durch
Vorzeichenumkehr positiv gemacht. Danach wird ein ladungsspeicherndes Element
(Kondensator) eingesetzt, dessen Spannung proportional zu seinem Ladungszustand ist. Die
Kondensatorschaltung sorgt dafür, dass sich ein zeitlich konstanter Ladungsmittelwert bildet,
der nur wenig im Takte der angelegten Spannung schwankt. Die am Kondensator erzeugte
Spannung folgt diesem Ladungsverhalten. Diese „Fast-Gleichspannung“ wird mit Hilfe von
elektronischen Schaltern zerhackt und der Primärseite des Transformators zugeführt. Auf der
Sekundärseite erzeugt man dann wieder durch eine gleiche Funktionskette
Gleichspannungen.
Computertechnik
33
Jacob
Ausgewählte Grundlagen der Elektrotechnik
Der Zweck des Zerhackens ist die Tatsache, dass man die Ausgangsspannung zurückführen kann und so für eine Regelung einsetzen kann, dass (in einem bestimmten Arbeitsbereich) die Ausgangsspannung vom Strombedarf unabhängig wird.
Mit anderen Worten: man eliminiert die Wirkung des Innenwiderstands.
Ein sehr wichtiger Aspekt beim Aufbau von Netzteilen, die den Gleichstrom aus
Wechselstrom gewinnen, ist die Tatsache, dass es keine leitende Verbindung
zwischen dem Wechselstomnetz und den erzeugten Gleichspannungen gibt
(galvanisch getrennt) (Bild 1.31).
Bild 1.31: Die galvanische Trennung zwischen der Primär- und der Sekundärseite
eines primär getakteten Schaltnetzteils
Bei sekundär getakteten Schaltnetzteilen wird die Zerhackung der gleichgerichteten
Spannung auf der Sekundärseite des Transformators ausgeführt (Bild 1.32).
Insgesamt entsteht ein geringerer Schaltungsaufwand als für die primär getakteten.
Diese haben aber einen anderen Vorteil.
Die Frequenz der transformierten Spannung ist im einen Fall 50Hz, im anderen ist
die Frequenz 103 Mal höher.
Das ist maßgeblich für die Baugröße der Trafos. Trafos für primär getaktete Netzteile
können deutlich kleiner ausgelegt werden als die für sekundär getaktete; damit sind
auch die Netzteile insgesamt kompakter und leichter zu bauen.
Bild 1.32: Aufbauprinzip von sekundär getakteten Netzteilen
Die Zerhackung des Wechselstroms hat natürlich Rückwirkungen ins
Wechselstromnetz und muss dort kompensiert werden.
Computertechnik
34
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
1.5 Ausgewählte Grundlagen der Halbleitertechnik
Vertiefung für Interessierte, kein Prüfungsstoff
Atom- und Bändermodell
Die Phänomene der elektrischen Leitfähigkeit von elektrischen Leitern beruhen auf
atomaren Eigenschaften (Bild 1.33)
Quelle für Teile folgender Bilder: Experimental Physik I, Uni Würzburg.
Bild 1.33: Bahnen bzw. Energieniveaus im Bohr/Sommerfeld-Atommodell
Die Bahnen bzw. Energieniveaus der Elektronen werden durch die Quantenzahl
voneinander unterschieden, die aus einem Tupel von vier Werten besteht:
Bahnnummer n (entspricht der alten Schalennummer), Form der Bahn l (z.B. Ellipse),
Neigung der Bahn m und Spin s).
Jedes Elektron eines Atoms hat eine eindeutige Quantenzahl, d.h. kein anderes Elektron
des Atoms hat dieselbe. Das heißt auch, dass ein Elektron eine eindeutige Bahn bzw. ein
eindeutiges Energieniveau hat bzw. dass ein Energieniveau nur mit einem einzigen
Elektron besetzt ist.
Die Übergänge im Energiezustand eines Elektrons sind wichtig, um die Strahlung zu
erklären, was hier nicht vertieft wird. Hier geht es um die elektrische Leitfähigkeit in
Festkörpern. Man muss also das Modell auf zwei (Bild 1.34) und mehr Atome erweitern.
Bild 1.34: Aufspaltung der Energieniveaus im molekularen Verband
Computertechnik
35
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Im molekularen Verband spalten sich die Energieniveaus durch die gegenseitige
Beeinflussung der Atome auf. In einem Festkörper bündeln sich die Energieniveaus der
einzelnen Elektronen zu Energiebändern (Bild 1.35).
Bild
Bänder von Energieniveaus in Festkörpern
1.35:
Mit Hilfe des Bändermodells kann man nun die elektrischen Eigenschaften von Festkörpern
quantitativ gut beschreiben. Hier werden die Modelle nur für qualitative Aussagen
herangezogen.
Bänder können besetzt oder leer sein: das hängt vom Energiezustand der Elektronen im
Festkörper ab. Maßgeblich ist das Band mit den höchsten Energieniveaus, das noch
vollständig besetzt ist. Dieses Band wird als Valenzband bezeichnet. Das darüber liegende
Band ist das Leitungsband (Bild 1.36).
Bild
1.36: Bandmodell für die elektrische Leitung in Festkörpern
Die Bewegung von Elektronen (Träger negativer Einheitsladung) ist nur im Leitungsband
möglich. Das bedeutet, dass man einem Festkörper Energie zuführen muss, um Elektronen
auf ein Energieniveau im Leitungsband zu „heben“. Es bedeutet auch, dass das umso
schwerer ist, je größer der Abstand zwischen dem Valenzband und dem Leitungsband ist.
Das aber ist eine Stoffeigenschaft.
Bei guten elektrischen Leitern (Kupfer, Aluminium) ist der Abstand minimal oder
verschwindet und bei schlechten Leitern (Isolatoren) ist er groß. Die Abstände für die sog.
Halbleiter liegen dazwischen.
In Metallen sind die äußeren Energieniveaus des Valenzbands nicht vollständig besetzt, da
sich schon bei normalen Temperaturen genügend Elektronen im Leitungsband befinden.
Weil man kein komplett gefülltes Valenzband hat, spricht man von Überlappung der Bänder
(Bild 1.37).
Der Grund dafür liegt im Atomaufbau, bei dem die Energieniveaus der äußeren Bahnen
(Elektron in der äußeren Schale) sehr nahe an den unteren des Leitungsbandes liegen.
Computertechnik
36
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.37: Valenz- und Leitungsband in Metallen
(Ende der Vertiefung)
Elektrische Leiter
Kupfer ist ein guter elektrischer Leiter. Maßgeblich für die elektrische Leitfähigkeit ist
die Tatsache, dass Kupfer nur ein einziges Atom in der äußeren Schale besitzt, das
nur schwach an den Rest des Atoms gebunden ist. Schon sehr geringe Energie von
außen (Wärmeenergie) bewirkt, dass das Elektron sich ungebunden frei bewegen
kann und je ein Atomrumpf mit einer positiven Ladung übrig bleibt (Bild 1.38).
Bild 1.38: Atom-Modell des Kupfers: schwache Bindung zwischen Rumpf und
Elektron in äußerer Schale
Als Festkörper tritt Kupfer in kristalliner Form auf. Im Kristall sind die Atome in einer
typischen Weise angeordnet (kubisch-flächenzentrierte Struktur).
Bild 1.39: Elementare Gitterstruktur von Kupfer
Die „Clusterung“ dieser Idealstruktur beschreibt die Nahordnung in Kristalliten (Körnern) von
Kupfer-Festkörpern.
Computertechnik
37
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Durch Energiezufuhr lösen sich die Elektronen aus den Atomen (vom Valenzband).
Sie erreichen höhere Energieniveaus im Leitungsband, so dass sie durch Anlegen
einer äußeren Spannung bewegt werden können.
Ein ergänzendes Modell der Elektronenbewegung deutet die freien Elektronen als
ein Elektronengas. Die Elektronen werden in Analogie zu den Molekülen eines
Gases als frei beweglich gedacht und ihre Bewegungsenergie nimmt wie die der
Gasmoleküle mit zunehmender Temperatur zu. Dieses Modell ist zur quantitativen
Beschreibung unzureichend. Für qualitative Aussagen ist es aber hinreichend und
wird im Folgenden benutzt.
Bild 1.40: Repräsentatives Gitterelement mit einer beispielhaften Verteilung freier
Elektronen
Die freien Elektronen bewegen sich willkürlich im Gitter-Raum, und zwar umso mehr,
je höher die Temperatur ist. Durch die willkürliche Richtung der Bewegung der
Elektronen im Gitter gibt es keine „Vorzugsrichtung“ der Elektronen, also keinen
Elektronenstrom.
Dadurch, dass sich die Elektronen aus den äußeren Schalen lösen, bleiben Atomrümpfe mit
1+-Ladung zurück. Aber insgesamt ist die Zahl der negativen und der positiven Ladungen
gleich groß, d.h. es herrscht ein elektrisch neutraler Zustand.
Regeln zum elektrischen Stromfluss
Sobald man einer Stelle des Festkörpers den positiven Pol eine Spannungsquelle
legt und an eine andere Stelle den negativen Pol, erhält die Bewegung der freien
Elektronen eine gemeinsame Richtung, und zwar zum positiven Pol (Bild 1.41).
Der Fluss der Elektronen bildet den elektrischen Strom mit einer bestimmten
Stromstärke, also mit einer bestimmten Menge von elektrischen Ladungen, die pro
Zeiteinheit durch den Strompfad fließen.
Auf der Ebene der Volumenelemente mit elementarer Gitterstruktur sind die
Vorgänge mit Hilfe von theoretisch schlüssig begründeten Modellen erklärbar, die
aber nur im Grundsätzlichen messtechnisch bewiesen sind. Die messtechnische
Erfassung einzelner Vorgänge des Ladungstransports ist nicht möglich.
Makroskopischer betrachtet, kann man an den Festkörpern messbare Größen
erfassen: Spannung und Stromstärke. Die wesentliche Feststellung:
Die Stromstärke ist entlang dem Strompfad überall gleich groß, d.h. es fließen in
einer (frei gewählten) Zeiteinheit N Elektronen aus einem stromdurchflossenen
Kristallausschnitt hinein. Genau so viele fließen heraus. Das muss so sein; denn es
gibt weder „Erzeuger“ noch „Vernichter“ von Elektronen in dem Ausschnitt.
Computertechnik
38
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.41: Beispielhafter Elektronenfluss durch einen repräsentativen KupferFestkörper, verursacht durch eine äußere Spannung: Detail an einem
Volumenelement mit elementarer Gitterstruktur
Im vorliegenden Beispiel gibt es nur einen einzigen zufließenden und einen einzigen
abfließenden Strom. Gibt es mehrere zu- und abfließende Ströme an einem
elektrisch leitenden Objekt, so gilt genauso: die Bilanz über alle Ströme muss Null
ergeben, wenn es keine Erzeuger oder Vernichter von Ladungsträgern gibt. Das
formuliert man als allgemein gültige Regel, wobei das Objekt, an dem die
verschiedenen Ströme zu- und abfließen, Knoten genannt werden soll:
Die Summe aller Ströme an einem Knoten ist Null.
Zu- und abfließende Ströme gehen mit zueinander inversen Vorzeichen in die Bilanz
ein. D.h., dass zu- und abfließende Ströme sich gegenseitig aufheben.
Die ergänzende Regel, die den Zusammenhang zwischen der angelegten Spannung
U und den Teilspannungen ∆Ui herstellt, ist schon eingeführt.
Computertechnik
39
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.42: Spannungsverhältnisse in geschlossenen Strompfad-Schleifen
Die Summe der Teilspannungen ∆Ui der leitenden Teilobjekte eines Strompfads ist
gleich der eingeprägten Spannung.
Die Regel gilt also auch dann, wenn man den Strompfad durch Materie verfolgt,
wobei deren Eigenschaften der elektrischen Leitfähigkeit sich ändern können.
Computertechnik
40
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Der gleichwertige Fluss positiver Elementarladungen
Beim Stromfluss bewegen sich die negativ geladenen Elektronen vom Minus-Pol
(dem Pol mit einem Überschuss an Elektronen) zum Plus-Pol (dem Pol mit einem
Mangel an Elektronen). Die physikalische Begründung dafür liegt nun vor.
Theoretisch kann man aber auch einen anderen Standpunkt vertreten: man ersetzt
den Fluss der negativen Elektronen durch einen Fluss von positiven Ladungsträgern
in der Gegenrichtung. Positive Ladungsträger haben eine Elementarladung, die der
eines Elektrons entgegengesetzt ist. Sie tragen sozusagen einen Mangel an einer
negativen Elementarladung (Bild 1.43).
Bild 1.43: Gleichwertiger Stromfluss von positiven Ladungsträgern
Es kommt in der Zeiteinheit folgender Fluss von positiven Ladungsträgern zustande:
Wenn N negative Elementarladungen abfließen, dann ist ein gleich großer Mangel an
negativen Ladungsträgern entstanden, d.h. es sind N positive Ladungsträger hinein
geflossen, oder physikalisch exakter: es sind N Atomrümpfe mit1+ übrig geblieben.
Wenn N negative Ladungsträger hineinfließen, ist ein gleich großer Mangel am negativen Pol
entstanden, d.h. es sind N positive Ladungsträger zum negativen Pol geflossen.
Also zusammengefasst: es sind N positive Ladungsträger vom Plus-Pol zum Minus-Pol der
Spannungsquelle geflossen.
Man kann den Stromfluss auf zwei komplementäre Arten beschreiben:
entweder als Fluss von negativen Ladungsträgern oder als (dazu inversen)
Fluss von positiven Ladungsträgern.
Hat man zwei zueinander inverse, aber gleichwertige alternative Stromrichtungen,
dann muss man sich entscheiden, welche man als positiv und welche man als
negativ zählt.
In der Elektrotechnik ist es üblich, die Stromrichtung der positiven Ladungsträger als positiv zu zählen.
Computertechnik
41
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Elektrische Halbleiter
Die Phänomene der elektrischen Leitfähigkeit von Halbleitern werden (wie bei
Leitern) mit Hilfe des Atommodells erklärt.
Silizium-Atome (oder auch Germanium-Atome) haben vier Elektronen in der äußeren
Elektronenschale. Sie gehen mit anderen Atomen eine Bindung (Atombindung) ein,
indem sich Elektronenpaare bilden.
Elektronenpaare bestehen aus Elektronen, deren Quantenzahl sich nur im entgegen
gesetztem Spin unterscheidet. Im Bahnmodell ausgedrückt: die Elektronen des
Paares haben die gleiche Bahn auf der gleichen Schale, aber einen entgegen
gesetzten Spin.
Quelle für Teile der folgenden Bilder: R. Lindner, TU Darmstadt:
http://www.gris.informatik.tu-darmstadt.de/~lindner/RTII-Web/Vorlesung/rt2-kapitel3_1.pdf
Jedes einzelne Atom geht insgesamt 4 Elektronenpaar-Bindungen ein (Bild 1.44).
Bild 1.44: Räumliches und ebenes Modell der Elektronenpaar-Bildung eines SiliziumAtoms
Die Struktur-Regelmäßigkeit, die in der Nah- und der Fernordnung in einem SiliziumEinkristall gleich ist, ist mit Hilfe einer charakteristischen Elementar-Struktur der
Atome erklärbar. Ein Atom verbindet sich durch vier Elektronenpaar-Bindungen mit
vier Nachbar-Atomen (Bild 1.45).
Bild 1.45: Räumliches und ebenes Strukturmodell der vollständigen ElektronenpaarBildung eines Silizium-Atoms und seiner vier Nachbar-Atome
Eine Gruppe von 19 Atomen bildet eine Struktur, die als elementare Gitterstruktur für
die Nah- und Fernordnung im Silizium-Einkristall gilt (Diamant-Struktur, Bild 1.46).
Computertechnik
42
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.46: Elementare Gitterstruktur der Silizium-Atome eines Silizium-Einkristalls (im
Quader liegende Atome ohne Punkt); Schema des ebenen Ladungsmodells (Matrix
mit einem zusätzlichen Atom vervollständigt)
Die Elektronen sind paarweise stark gebunden und die Paare binden die
Atomrümpfe stark untereinander.
Hochreines monokristallines Silizium enthält bei normaler Zimmertemperatur
nur wenige Elektronen mit schwacher Bindung an die Atomkerne (Folgen der
Zuführung von Wärmeenergie und von Unregelmäßigkeiten in der Struktur und von
Verunreinigungen). (Bild 1.47)
Bild 1.47: Bildung eines freien Elektrons durch Zuführung von Wärmeenergie
Die Bindung eines Elektronenpaars wird überwunden und aufgelöst: der zurückbleibende
Atomrumpf hat 5+.
Es ist ein Nichtleiter mit einem sehr großen elektrischen Widerstand, d.h. eine
angelegte Spannung erzeugt einen Strom mit einer vernachlässigbaren Stromstärke.
Um die elektrische Leitfähigkeit zu erhöhen, muss man die Zahl der freien Elektronen
erhöhen. Das geschieht dadurch, dass man Atome mit fünf Atomen in der äußeren
Schale einbaut. Dann gehen vier davon eine Elektronenpaar-Bindung ein und das
fünfte bleibt ungebunden, also frei. Geeignet sind Arsen- oder Phosphor-Atome.
Computertechnik
43
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.48: Bildung von vier Elektronenpaaren und eines freien Elektrons beim Einbau
eines fünfwertigen Atoms
Das Einbringen dieser Atome geschieht entweder beim Herstellen der Siliziumschmelze oder dadurch, dass man die Wafer-Oberfläche an den gewünschten Stellen der gasförmigen Form des gewünschten Elements aussetzt. Dabei dringen
Atome in die Oberfläche ein und bauen sich in die Struktur des Substrats ein.
Der Vorgang wird Dotierung genannt. Da je ein eingebautes Atom ein Elektron
spendet, werden die Atome Donatoren genannt. Die dotierte Zone heißt n-dotiert
(n = negativ).
Der Strom der freien negativen Elementarladungen erfolgt nach den gleichen
Prinzipien wie in einem elektrischen Leiter (Bild 1.49).
Bild 1.49: Elektronenfluss in einem Kristallausschnitt von n-dotiertem Silizium
Detail in einem Volumenelement mit elementarer Gitterstruktur: 5 Donator-Atome eingebaut:
2 Elektronen fließen in der Zeiteinheit ab und werden durch 2 zufließende ersetzt.
Computertechnik
44
Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Die Dotierung ist in aller Regel so stark, dass ein sehr guter Leiter entsteht. Der
Strom im Stromkreis muss deshalb durch einen Widerstand begrenzt werden. Die
Bezeichnung Halbleiter soll die Tatsache wiedergeben, dass Silizium im nicht
dotierten Zustand ein schlechter Leiter und im dotierten Zustand ein guter Leiter ist.
Im Falle einer Dotierung mit Atomen, die nur 3 Atome in der äußeren Schale haben,
fehlt ein Elektron zur Bildung eines Elektronenpaares. Geeignet sind Indium-, Boroder Selen-Atome.
Bild 1.50: Bildung von drei Elektronenpaaren und eines Mangel-(Defekt-)Elektrons
beim Einbau eines dreiwertigen Atoms
Im Bild 1.50 ergibt sich folgender Strom von Ladungsträgern:
Im vorliegenden Fall wird die Bewegung der Elektronen von oben nach unten unterstützt,
d.h. oben ist der negative Pol, unten der positive Pol einer angelegten Spannungsquelle.
Eine Spannungsquelle erzeugt ein elektrisches Feld, das eine Kraft auf die
negativen Ladungsträger im Feld ausübt, die zum Pluspol gerichtet ist.
Je größer diese Kraft ist (d.h. je größer die angelegte Spannung ist), umso eher geht ein
Elektron aus einer Elektronenpaar-Bindung in die Fehlstelle über, die der Fehlstelle
benachbart ist (durchgezogene Elektronenbahn).
Damit ist die Fehlstelle (Loch) in umgekehrter Richtung gewandert, die wiederum durch
ein nächst benachbartes Elektron besetzt werden kann, das aus seiner Paarbindung
gelöst wird usw. (gepunktete Elektronenbahnen).
In einem Leiter wie Kupfer wandern die Elektronen und hinterlassen ionisierte
Atomrümpfe. Dem Pfad des Wanderns eines Elektrons entspricht eine rückwärts
hinterlassene Spur von positiv zurückgelassenen Rümpfen, was man als Wandern
eines positiv geladenen Ladungsträgers in umgekehrter Richtung interpretieren kann.
Dieser positive Ladungsträger ist aber fiktiv, weil es ihn physisch nicht gibt und damit
auch keine physische Fortbewegung festgestellt werden kann.
Hier gibt es nun bewusst in die atomare Struktur eingebaute Stellen, die eine
negative Elementarladung aufnehmen können. Ein Mangel an einer negativen
Ladung entspricht einer positiven Elementarladung. In diesem Sinne bedeutet das
Wandern von Löchern auch eine echte Fortbewegung von positiven Ladungsträgern
(Löcherleitung).
Computertechnik
45
Jacob
Das Funktionselement Transistor
Im Falle der freien Elektronen in n-dotiertem Silizium wirkt die Kraft durch das
elektrische Feld auf bindungslose Elektronen.
Hier nun muss man für die Bewegung eines Elektrons zuerst Energie aufwenden, um
die Bindung aus dem Elektronenpaar aufzulösen, bevor es frei wird und ein
benachbartes Loch besetzen kann, was gleichzeitig den Ortswechsel des Lochs in
das aufgebrochene Elektronenpaar bewirkt. Diese Bewegung eines Loches ist
schwerer zu erreichen als die Bewegung eines Elektrons im Falle der n-Dotierung.
Man spricht auch von einer geringeren Beweglichkeit der Löcher.
Da je ein eingebautes Atom eine Fehlstelle (Loch) liefert, die von einem Elektron
besetzt werden kann, werden die Atome auch Akzeptoren genannt. Die dotierte
Zone heißt p-dotiert (p = positiv), weil die Fehlstelle einen Mangel an einer
negativen Elementarladung bedeutet, also eine positive Elementarladung.
1.6 Das Funktionselement Transistor
Der Transistor ist das maßgebliche elementare Schaltelement der Computertechnik.
In diesem (eingeschränkten) Sinn wird er im Folgenden eingeführt. Genauso wichtig ist
die Anwendung als Verstärker-Element. Das ist aber Gegenstand von allgemeiner
gültigen Einführungen.
Bei einem Schaltelement gibt es immer auslösende und ausführende Teilfunktionen.
Als Beispiele können manuell betätigte Schalter bzw. Relais dienen.
Beim manuellen Schalter ist die auslösende Aktion die Betätigung des Schalthebels. Die
Bewegung des Schalthebels verändert die Stellung eines Kontaktes, der einen Stromkreis
öffnet oder schließt. Der Schalthebel mit der Bewegungsübertragung erfüllt die auslösende Aufgabe. Der Kontakt erfüllt die ausführende Aufgabe.
Tatsächlich verändert der Kontakt beim Schalten den Widerstand im Stromkreis. In der
einen Stellung ist der Widerstand sehr groß, in der anderen Stellung sehr klein. Das ist die
eigentliche Schaltfunktion.
Beim Relais wird bei der auslösenden Aktion der Strom durch eine Magnetspule ein- oder
ausgeschaltet. Eine Magnetspule zieht dabei einen Kontakt an oder sie lässt ihn los.
Dadurch, dass sich die Stellung des Kontaktes verändert, kann ein Stromkreis geöffnet
oder geschlossen werden.
Ein Transistor enthält ebenfalls eine auslösende und eine ausführende Teilfunktion.
Die ausführende Funktion beruht - genau so wie in den Beispielen mit Kontakten auf einer Veränderung des elektrischen Widerstandes. Aber die physikalische
Realisierung ist anders. Im Folgenden wird die physikalische Funktion eines NMOSTransistors genauer beschrieben.
Der polierte Wafer ist hochreines Silizium, das (im Falle eines NMOS-Transistors)
schon bei der Herstellung schwach p-dotiert wird.
Die gewünschte Transistorfunktion erhält man dadurch, dass man eine ganz
bestimmte Dotierungsstruktur in die Waferoberfläche einprägt (Bild 1.51).
Computertechnik
46
Jacob
Das Funktionselement Transistor
Bild 1.51: Ausschnitt einer Waferoberfläche für die Realisierung eines Transistors
Man überzieht den Wafer zuerst mit einer Glasschicht (Siliziumoxid) und dann mit
einer Fotoschicht. Man unterscheidet Verfahren, bei denen die belichteten Stellen
der Schicht beim Entwickeln verschwinden, und Verfahren, bei denen die belichteten
Stellen beim Entwickeln erhalten bleiben. Entsprechend wird die Maske angefertigt,
die beim Belichten die gewünschten Strukturen in die Fotoschicht einprägt.
Im Beispiel werden die belichteten Teile beim Entwickeln frei gelegt. Die nichtbelichtete Fotoschicht bleibt erhalten und wirkt als Schutz beim nachfolgenden
Abtragen der Glasschicht, z.B. durch chemisches Ätzen (Bild 1.52).
Bild 1.52:
Abbildung des Maskenbilds auf die Fotoschicht
Beschichtungen und
Die freiliegende Glasschicht wird abgetragen, die geschützte Glasschicht bleibt
erhalten. Man hat die Maskenstruktur in die Glasschicht eingeprägt (Bild 1.53).
Bild 1.53: Für die Dotierung vorbereitete Glasschicht
Computertechnik
47
Jacob
Das Funktionselement Transistor
Das Alles ist die Vorbereitung für den Dotierungsprozess. Die so vorbereitete Waferoberfläche wird einer Atmosphäre mit dem gasförmigen Dotierungsstoff ausgesetzt.
Die Bewegungsenergie der Gasatome bestimmt die Fortschrittsgeschwindigkeit des
Diffusionsprozesses.
Bild 1.54: Die Dotierung durch Diffusion
Nach Entfernen der unbrauchbar gewordenen Glasflächen und Aufbringen des
Leiterbahnmaterials, das (voneinander galvanisch getrennte) Leiterbahnen zu den
maßgeblichen drei Zonen erzeugt, hat man die für einen NMOS-Transistor gültige
Struktur erzeugt.
Bild 1.55: Das Strukturschema eines NMOS-Transistors im senkrechten Schnitt
Die Schichtung ist von oben nach unten: Metall-SiliziumOxid-Silizium, was zur
Bezeichnung MOS zusammengefasst wird.
Zwischen den Dotierungswannen entsteht ein schmaler, nicht negativ dotierter
Zwischenraum. Das ist der entscheidende Bereich für die Schaltfunktion des
Transistors.
Angenommen, man versucht einen Stromkreis zu bilden, der über die beiden ndotierten Zonen führt (Bild 1.56).
Bild 1.56: Stromkreis ohne Stromfluss über die beiden n-dotierten Zonen
Computertechnik
48
Jacob
Das Funktionselement Transistor
Die Zone zwischen den beiden n-dotierten Zonen enthält nicht genügend Elektronen
für einen Stromfluss. Sie wirkt wie ein sehr großer Widerstand. Es herrscht die
Spannung U zwischen den Rändern der n-dotierten Zonen bzw. der am Plus-Pol
liegenden Zone und dem Substrat-Anschluss. Aber es fließt kein Strom. Erst wenn es
gelingt, zwischen den n-dotierten Zonen für eine Ansammlung von freien Elektronen
zu sorgen, wird ein Stromfluss möglich; anders ausgedrückt: der Widerstand wird so
gering, dass ein Strom fließt.
Wie man das bewirken kann, ergibt sich aus folgender Schaltung (Bild 1.57).
Bild 1.57: Ein ergänzender Stromkreis über den dritten Anschluss und das Substrat
Es wird ein weiterer Stromkreis über den dritten Anschluss und das Substrat
hinzugefügt, der wahlweise über ein Schaltelement an die beiden Pole der
Spannungsquelle geschaltet werden kann. Im Bild 1.57 stellt das Schaltelement eine
solche Verbindung her, dass eine Schleife ohne Spannungsquelle entsteht, d.h. es
herrschen 0 Volt zwischen dem dritten Anschluss und dem Substrat.
In der anderen Stellung wird aber die Spannung der Spannungsquelle zwischen den
beiden wirksam.
Das löst einen besonderen Effekt aus. Es fließen Elektronen am dritten Anschluss ab, und
zwar an der Grenzfläche zur Glasschicht, und sie wandern zum Plus-Pol der
Spannungsquelle. Gleich viele Elektronen fließen vom Minus-Pol der Spannungsquelle
über das Substrat zu dessen Grenzfläche an der Glasschicht, indem Löcher aus dem pdotierten Substrat Richtung Minuspol der Spannungsquelle fließen. Es sammeln sich
entgegengesetzt geladene Ladungspaare in den beiden Grenzschichten: ein (vom
Elektron verlassener) positiv geladener Atomrumpf auf der einen Seite, ein dem weggewanderten entsprechendes Elektron auf der anderen Seite. Je mehr solche Paare sich
sammeln, umso größer wird die durch sie erzeugte Spannung. Wenn diese Spannung
gleich derjenigen der Spannungsquelle ist, hört der Stromfluss auf.
Dieser qualitativ geschilderte Vorgang entspricht dem Aufladevorgang eines
Kondensators. Die Glasschicht wirkt mit den angrenzenden Leitern als Kondensator.
Das Ergebnis des Aufladevorgangs ist eine Schicht von Elektronen, die von der
einen n-dotierten Zone zur anderen reicht (Elektronenbrücke). Damit sind im
Zwischenraum genügend freie Elektronen für den Stromtransport im Hauptstromkreis.
Computertechnik
49
Jacob
Das Funktionselement Transistor
Bild 1.58: Elektronenbrücke zwischen den n-dotierten Zonen für den Stromfluss im
Hauptstromkreis eines NMOS-Transistors
Der Strom der Elektronen erfolgt vom Source-Anschluss zum Drain-Anschluss. Der
dritte Anschluss wird Gate genannt, weil seine Steuerspannung (wie beim Öffnen
und Schließen eines Gattertors) den Strom im Hauptstromkreis zulässt (positive
Versorgungsspannung) oder nicht (0 Volt).
Mit Hilfe des Schaltelements sollte die Einprägung der Steuerspannung plausibel
gemacht werden. Im Ersatzschaltbild des Transistors interessiert nicht die Darstellung der Methode, wie die Steuerspannung hergestellt wird, sondern nur ihr Wert
(Bild 1.59). Der Minus-Pol der Spannungsquelle wird als Bezugspunkt genommen.
Als Spannungsbezeichnung ist Vdd (Voltage drain drain) üblich.
Bild 1.59: Ersatzschaltbild und Ersatzschaltung des NMOS-Transistors
Mit der Gate-Spannung kann man die Spannung an Drain steuern:
• eine positive Gate-Spannung erzeugt einen Stromfluss von Vdd zum
Bezugspunkt. Weil der Widerstand zwischen Drain und Source sehr gering ist,
ist auch der Spannungsabfall zwischen Drain und dem Bezugspunkt sehr
gering, praktisch 0 Volt;
• die Gate-Spannung 0 Volt macht den Widerstand zwischen Drain und Source
sehr groß, d.h. an Drain liegt Vdd.
Die Schaltung realisiert einen Inverter, ein Beispiel für ein wichtiges Element einer
integrierten Schaltung.
Computertechnik
50
Jacob
Gefertigte MOS-Transistoren
1.7 Gefertigte MOS-Transistoren
Der Schnitt durch einen beispielhaften gefertigten Transistor zeigt die Übereinstimmung mit den schematischen Schnitten und die maßgeblichen Größen (Bild 1.60).
Man erkennt einen symmetrischen Aufbau. Die schwarzen Bereiche rechts und links
unten sowie oben in der Mitte sind die Zonen für den Anschluss von Leiterbahnen.
Es gibt zwei charakteristische Größen für die Leistungsfähigkeit eines Fertigungsprozesses:
die physikalische Gatelänge, die gemäß dem aufgebrachten elektrisch leitenden
Gate-Material den Abstand zwischen den beiden stabilisierenden „Seitenstützen“
angibt (im Bild 1.60: 70 nm) und
die effektive Gatelänge, die den Abstand zwischen den Rändern des Source- und
des Drain-Bereiches angibt (im Bild 1.60: 130 nm).
Bild 1.60: Schnitt durch einen Transistor
Der Prozess wird von Intel gemäß der effektiven Gatelänge 130 nm Prozess genannt.
Die Transistorfunktion als gesteuerte Änderung eines Widerstandes
Ein Transistor ist eine Einheit mit drei Polen: Source, Drain, Gate. Source und Drain
sind die Anschlusspunkte auf dem Substrat. Legt man zwischen Source und Drain
eine Spannung an, so wirkt die Substrat-Zone dazwischen als ein variabler elektrischer Widerstand.
Die Spannung am Gate steuert die Größe des Widerstandes in der Substrat-Zone.
Das hat dem Transistor auch den Namen gegeben: transfer resistor.
In der Digitaltechnik sind eigentlich nur zwei Zustände des Widerstandes
maßgeblich:
• Widerstand sehr groß: es fließt also kein Strom durch die Zwischenzone,
• Widerstand sehr klein: es kann Strom durch die Zwischenzone fließen; begrenzt
wird er durch der Widerstand im Stromkreis der zu- und abführenden Leitungen.
Beim Übergang der Gate-Spannung von 0 Volt auf den positiven Endwert fließen
negative Ladungsträger über das Gate ab zur Spannungsquelle und von dort zum
Zwischenraum zwischen dem n-dotierten Source- und Drain-Bereich hin. Beim
Übergang der Gate-Spannung auf 0 Volt fließen die negativen Ladungsträger im
umgekehrten Sinn vom Zwischenraum zwischen Source- und Drain-Zone zum Gate
zurück.
Computertechnik
51
Jacob
Schaltungsbeispiel: SRAM-Speicherzelle
Die Schnelligkeit des Umschaltens eines MOS-Transistors
Maßgeblich dafür, dass beim Übergang kleine Ströme in kurzer Zeit fließen, ist das
Funktionselement, das von der Glasschicht und den an sie unmittelbar
angrenzenden Zonen gebildet wird, also der Gate- sowie der gegenüberliegenden
Substrat-Zone. Die Größe der Fläche, die sich in den begrenzenden Zonen
gegenüber liegen, und ihr Abstand, also die Dicke der Glasschicht, bestimmen, wie
viele Ladungen sich maximal sammeln können; denn Fläche und Abstand
bestimmen die Kapazität eines Kondensators.
Man versucht also, die Glasschicht möglichst dünn und den Zwischenraum zwischen
den n-dotierten Source- und Drain-Zonen möglichst schmal zu machen, um eine
kurze Schaltgeschwindigkeit zu erreichen. Diese ist maßgeblich für die
Arbeitsgeschwindigkeit der Schaltung, die mit einer Vielzahl solcher Transistoren
aufgebaut wird.
Die Glasschicht ist im Schliffbild (Bild 1.60) kaum erkennbar, weil sie nur einige
Nanometer dick ist.
Der wesentliche Vorteil der MOS-Technologie ist, dass der Flächenbedarf der
gefertigten Transistoren immer kleiner, d.h. dass die Transistordichte auf einem Chip
immer größer gemacht werden kann (large scale integration = LSI, very large scale
integration = VLSI). Dass damit auch eine Vergrößerung der
Umschaltgeschwindigkeit verbunden ist, ist ein angenehmer Begleiteffekt.
Außer der Technologie der MOS-Transistoren gibt es noch die der bipolaren
Transistoren, die aufgrund ihrer physikalischen Eigenschaften vom Prinzip her
schneller sind als MOS-Transistoren. Aber sie haben prinzipiell einen größeren
Flächenbedarf als MOS-Transistoren.
Verstärkerfunktion
Der sehr kleine Strom, bei dem wenige Elektronen zwischen dem Gate und dem
Zwischenraum zwischen Source- und Drain-Bereich in sehr kurzer Zeit verschoben
werden (Verschiebungsstrom), hat eine „große Wirkung“: der „geschaltete“ Strom
zwischen Source und Drain ist wesentlich größer. Kleine Ursache, große Wirkung:
das deutet auf eine andere grundsätzliche Funktion von Transistoren hin: die
Verstärkerfunktion. Sie ist eine der wichtigsten Funktionen der Transistoren, die für
die Analogtechnik konzipiert werden.
1.8 Schaltungsbeispiel: SRAM-Speicherzelle
Die Transistoren werden zum Aufbau von Schaltungen mit einer bestimmten Funktion eingesetzt. Die Funktion erreicht man durch eine zweckdienliche elektrische
Verbindung der Pole der Transistoren. Aus diesem Blickwinkel ist nicht mehr die
Physik eines einzelnen Transistors interessant, sondern die geeignete Bildung der
Leiterbahnen. Das ändert auch die Methoden der Veranschaulichung.
Bei der Festlegung der Transistorfunktionen sind Schnitte maßgeblich.
Bei der Festlegung von Schaltungsfunktionen sind die Aufsichten zur Festlegung der
Leiterbahnen (Bild 1.61).
Computertechnik
52
Jacob
Schaltungsbeispiel: SRAM-Speicherzelle
Bild 1.61: Aufsicht auf eine SRAM-Speicherzelle mit 6 Transistoren
(Intel 130 nm Prozess. Der Bereich der Transistoren ist rot markiert. Man erkennt die weißgrauen Leiterbahnen der elementaren Verbindungsstruktur zwischen den Transistoren im
Substrat, deren Aufsicht durch die Leiterbahnen teilweise verdeckt ist.
Die Funktion dieser Speicherzelle wird bei der Erklärung der Speichersysteme noch einmal
genau erläutert.
Bild 1.62: Aufsicht auf eine SRAM-Speicherzelle mit Markierung je eines Schnitts
durch einen NMOS-Transistor, exemplarische Vergrößerung eines Schnitts
Bild 1.62 zeigt mit Hilfe von Schnittlinien und einer exemplarischen (schematischen)
Vergrößerung die Funktionszonen der NMOS-Transistoren.
Die Leiterbahnen bilden ein Netz von Linien, die bei komplexen VLSI-Schaltungen in
mehreren Ebenen realisiert werden (multilayer). Die Transistoren im Substrat können
nur so eng beieinander liegen, wie die minimale Distanz der Leiterbahnen bei der
Fertigung sein kann. Sie ist (wie schon gesagt) ein grundsätzliches Merkmal des
technologischen Fortschritts.
Computertechnik
53
Jacob
Die minimale auflösbare Strukturbreite
1.9 Die minimale auflösbare Strukturbreite
Bei der Herstellung einer integrierten Schaltung wird die Struktur mit Hilfe von Masken eingeprägt. Die Herstellung und Anwendung dieser Masken legt die Grenzen für
die Mindestgrößen des Abstandes und der Breite der Leiterbahnen fest (Bild 1.63).
Bild 1.63: Struktur der Leiterbahn-Schichten eines ICs (Intel 130 nm Prozess)
Die hohen Anforderungen an die Fertigung von integrierten Schaltungen werden
noch deutlicher, wenn man sich die Strukturen im Schnitt ansieht. Er zeigt den
schichtenweisen Aufbau sowie die Größe und Abstände der metallischen Strukturelemente (Bild 1.64).
Bild 1.64: Schnitt durch die Schichten eines ICs (Intel 130 nm Prozess)
Die Abstände in der Leiterbahn-Ebene 1, die der elementaren Verbindung der
Transistoren dient, sind am engsten. Dort entscheidet entweder der minimale
Flächenbedarf der Transistoren oder die minimale Strukturbreite, wie eng die
Transistoren beieinander liegen können.
Dort entscheidet sich also der Integrationsgrad der Chips, die mit dem durch diese
Größen charakterisierten Herstellungsprozess gefertigt werden können.
Computertechnik
54
Jacob
Die Entwicklung der Mikroprozessoren und der Speicher-ICs
1.10 Die Entwicklung der Mikroprozessoren und der Speicher-ICs
Die augenfälligste Revolution, die durch die Fortschritte der Halbleitertechnologie
entstand, ist die Miniaturisierung der Komponenten von Computern, nämlich der
Prozessoren und der Speicher (Bild 1.65, Quelle: Intel).
Bild 1.65: Entwicklung der Transistor-Dichte von Prozessor- und Speicher-Chips,
Speicherkapazität in Bits
Die Entwicklung der Transistordichte nach 2002 ist noch zügiger als in der Vergangenheit, nämlich eine Verdopplung der Transistordichte pro Jahr (Bild 1.66)
Bild 1.66: Die Entwicklung der Transistor-Dichte nach 2002: Verdopplung pro Jahr
Das darf aber nicht den Blick auf die nahe liegenden Probleme verstellen: man
nähert sich dem atomaren Bereich. Doch zuerst ein Blick auf die vergangene
Entwicklung.
Computertechnik
55
Jacob
Die Entwicklung der Mikroprozessoren und der Speicher-ICs
Blick in die Vergangenheit
Der erste marktbeherrschende Ansatz, zentrale Prozessorfunktionen eines
Computers als großintegrierten IC zu realisieren, war der Mikroprozessor 8080 von
Intel. Da es geeignete Speicher-ICs schon gab und bald solche ICs folgten, die den
Datenverkehr mit Peripheriegeräten unterstützten, entstand in kürzester Zeit eine
neue Klasse von Computern: die Mikrocomputer.
Die Entwicklung der Computertechnik wurde seit diesem Start maßgeblich von der
Weiterentwicklung der großintegrierten Prozessoren bestimmt. Dabei waren zu
Beginn durchaus mehrere IC-Hersteller im Rennen. Neben INTEL gab es maßgebliche IC-Hersteller wie AMD, IBM, NATIONAL SEMICONDUCTORS, MOTOROLA,
TEXAS INSTRUMENTS. Dass Intel heute die mächtigste Rolle unter ihnen hat, liegt
an der eigenen Erfindungs- und Herstellerkraft und an der erfolgreichen Allianz mit
dem Software-Hersteller MICROSOFT auf dem Massenmarkt der PCs.
Der Mikroprozessor 8086/8088 brachte Ende der 70er Jahre den entscheidenden
Durchbruch zum Personal Computer, dem Computer für Jedermann.
Der Ruhm der ersten Idee wird immer mit dem Firmennamen APPLE verbunden
sein, die breite Durchsetzung des Konzeptes mit dem Namen IBM.
IBM stellte 1982 sein PC-Konzept IBM-PC/XT auf der Basis des Prozessors 8088
von INTEL vor. Alle Details des inneren Aufbaus des Computers wurden offen gelegt.
Damit war ein Quasi-Standard geschaffen. Dieser Computer wurde zum Urvater
vieler Anwendungen in der Industrie und im Büro.
Computer wurden bis Ende der 70er Jahre vor allem von zahlungskräftigen Institutionen der Industrie und der öffentlichen Hand angewandt. Da Computer teuer
waren, versuchte man auf einem einzelnen Computer möglichst viele Aufgaben zu
konzentrieren. Mit dem Erscheinen der Mikrocomputer setzte der umgekehrte Trend
ein.
Die Aufgaben wurden wieder einzeln gesehen und mehreren Computern kleinerer
Leistung zugeordnet. Das brachte - mit angepasstem Aufbau - die Klasse der
Microcomputer auch in industrielle Anwendungen.
Es folgten weitere PC-Generationen, über den IBM-PC/AT mit dem Mikroprozessor
80286 zu den PCs mit den Mikroprozessoren 80386 und 80486.
Die Entwicklung jeder neuen PC-Generation unterlag immer der Forderung, dass
Anwenderkomponenten, die für die vorhergehenden Generationen entwickelt worden
waren, auf den PCs der neuen Generation weiterhin einsetzbar sind.
Diese Forderung nach Kompatibilität wird von Entwicklern neuer Systeme häufig
als Hemmnis betrachtet, von Anwendern aber als notwendiger Investitionsschutz.
Umso mehr muss man bei den Weiterentwicklungen bewundern, mit welchen Ideen
die Entwickler neue Leistungen ermöglichen, ohne alte Vorgaben zu verletzen.
Computertechnik
56
Jacob
Die Entwicklung der Mikroprozessoren und der Speicher-ICs
Mit dem 80486 war eine Leistungsstufe erreicht, die nahe an den Prozessoren lag,
die aufgrund ihrer Struktur und der Taktraten leistungsfähiger waren als die
damaligen Personal Computer auf der Basis der Intel-Prozessoren und als
Workstations bezeichnet wurden. Der nächste Schritt, der Pentium-Prozessor,
brachte Intel den Einbruch in die Domäne der Workstation-Leistungsklasse.
Die Pentium-Prozessoren gehören zur sog- IA-32-Architektur. Die Itanium-Prozessoren gehören zur IA-64-Architektur. Während die Pentium4-Prozessoren noch mit
einer Prozessor-Wortbreite von 32 Bit arbeiten, haben die Itanium-Prozessoren eine
Prozessorwortbreite von 64Bit. Das ist die Wortbreite, mit der die WorkstationProzessoren der Konkurrenz von Intel (Sun und Hewlett-Packard) in Workstations
schon arbeiteten, als die PCs mit Hilfe der Pentium4-Prozessoren immer leistungsfähiger wurden. Mit den Itanium-Prozessoren drang Intel dann endgültig in den
Workstation und Server-Markt ein.
Die Leistungsfähigkeit von Prozessoren kann man dadurch verbessern, dass man
die Programmlaufzeit durch schnellere Verarbeitung der Befehle verringert und
dadurch kürzere Programmbearbeitungszeiten erzeugt. Der methodische Ansatz zur
Verkürzung der Verarbeitungszeit der Befehle ist die sog. Fließband-Struktur
(pipeline). Je kürzer die Verarbeitungszeit pro Verarbeitungsstufe ist, umso höher
kann die Taktrate eingestellt werden, so dass mehr verarbeitete Objekte pro
Zeiteinheit das Fließband verlassen. In diesem Sinne wurde der Leistungsumfang
der Verarbeitungsstufen der Pentium4-Prozessoren verringert und die Zahl der
Verarbeitungsstufen erhöht. Das ist die Grundlage für die Vergrößerung der Taktrate.
Zur Zeit setzt Intel weniger auf die Verbesserung der Leistungsfähigkeit durch
Vergrößerung der Taktrate als auf die Strategie, Simultanarbeit mehrerer autonomer
Prozessorkerne auf einem Chip (Dual/Multi-Core Chips, Bild 1.67).
Bild 1.67: Doppel-Prozessor-Chip (Pentium D bzw. Pentium XE)
Computertechnik
57
Jacob
Die Entwicklung der Mikroprozessoren und der Speicher-ICs
Blick in die Zukunft
Für die nahe Zukunft wird ein konkretes Ziel ins Auge gefasst: der 20nm-Transistor
(Bild 1.68).
Die Siliziumoxid-Schicht beträgt nur noch 12 Angström, was etwa drei Atomlagen im
Kristallgitter entspricht. In diesen Größenordnungen werden die Anforderungen an
die Genauigkeit des Herstellungsprozesses so groß, dass man an die Grenzen der
Beherrschbarkeit stößt.
Bild 1.68: Die zukünftige Miniaturisierung von MOS-Transistoren
Die Glasschicht beim 20 nm Transistor hat eine Dicke von etwa 12 Angström. Das entspricht
drei Atomlagen.
Im atomaren Bereich ergeben sich die Grenzen der Silizium-Technologie und man
muss nach Alternativen suchen.
Die Prognose in Bild 1.66, dass dabei eine Verdopplung der Transistordichte pro
Jahr möglich ist, ist eine hoffnungsvolle Prognose aus der Sicht von Intel.
Computertechnik
58
Jacob
Die befehlsgesteuerte Arbeitsweise eines Computers
2 Grundsätzliche Merkmale von Computern
Bevor einzelne Computertypen vorgestellt werden, ist es wichtig, einige grundsätzliche Merkmale zusammen zu stellen.
2.1 Die befehlsgesteuerte Arbeitsweise eines Computers
Allen Einheiten mit Computerstruktur ist gemeinsam, dass man ihre zentrale Gesamtfunktion in drei Basisfunktionen bzw. Basis-Einheiten aufteilen kann:
• die Prozessorfunktion der Prozessor-Einheit (processing unit), die aus einem
Prozessor (Ein-Prozessor-System) oder mehreren Prozessoren mit den gleichen
Grundfunktionen (Mehr-Prozessor-System) bestehen kann. Im folgenden stehen
die Grundfunktionen aus der Sicht eines Prozessors im Vordergrund.
• die Speicherfunktion der Speicher-Einheit (memory unit) oder einfach Speicher,
• die Funktion für die Ausführung des Datenverkehrs zwischen Peripherie-Einheiten
(peripheral units) und den beiden anderen Funktionen. Man liest für die
entsprechende Einheit noch die Bezeichnung Kanal-Einheit (channel unit). Hier
soll sie Ein/Ausgabe-Einheit (input/output unit) oder einfach Ein/Ausgabe heißen.
Speicher
Prozessor
Ein/Ausgabe
Bild 2.1: Die drei grundsätzlichen zentralen Funktionseinheiten eines Computers
Alle Aktivität eines Computers ergibt sich aus der Steuerung durch Befehle.
Das bedeutet, dass die Befehle in einer solchen Form verfügbar sind, dass
Prozessor sie sich durch geeignete Zugriffe holen und in Aktionen umsetzen kann,
die zu jedem Befehl vereinbart sind.
Erst die Ausführung einer Folge von Befehlen durch einen Prozessor erzeugt ein
gewünschtes Verarbeitungsergebnis.
Eine Befehlsfolge kann man von zwei unterschiedlichen Blickwinkeln betrachten:
• aus der Sicht der Festlegung der Befehlsfolge
• und aus der Sicht des Ablaufes bei der Ausführung.
Die Festlegung der Befehle ergibt eine bestimmte Befehlsreihenfolge, also ein Programm. Für den Beginn des Ablaufes muss der erste auszuführende Befehl in der
Reihenfolge festgelegt werden. Es muss nicht der erste in der Programmreihenfolge
festgelegte Befehl sein. Was danach geschieht, ist durch die Steuerung des Programmablaufes genau festgelegt. Wenn man die durchlaufenen Befehle aneinander
reiht, ergibt sich eine Spur (trace), die schließlich zu dem letzten ausgeführten Befehl
im Programm führt. Dieser Befehl muss nicht der letzte Befehl in der programmierten
Reihenfolge sein.
Bild 2.2 soll einerseits die Reihenfolge der programmierten Befehle (statischer
Aspekt) und andererseits die Spur des Ablaufes (dynamischer Aspekt) zeigen.
Computertechnik
59
Jacob
Die befehlsgesteuerte Arbeitsweise eines Computers
Es wird vereinfacht angenommen, dass der programmierte erste Befehl auch der Startbefehl
ist und der programmierte letzte Befehl auch der letzte ausgeführte Befehl ist. Der Ablauf
wird symbolisch durch Pfeile beschrieben.
Ein wesentlicher Zweck von Programmen ist die Erzeugung von Rechenergebnissen.
Es muss also arithmetische Verarbeitungsbefehle geben. Als Beispiel kann man eine
Addition nehmen, die zu einem Operanden einen zweiten addiert, z.B. eine 4. Woher
nimmt man nun den ersten Operanden und was macht man mit dem Ergebnis?
Man muss sich geeignete Objekte schaffen, die als Operanden verwendbar sind und
die ein Verarbeitungsergebnis aufnehmen und damit „festhalten“ können. Ein Objekt,
dessen Zustand ein Verarbeitungsergebnis „festhält“, also speichert, dass zu jeder
Zeit beim Programmablauf als Operand für einen Verarbeitungsbefehl verfügbar ist,
wird im folgenden Datenobjekt genannt.
Genau so, wie der Programmierer die Befehlsfolge festlegt, legt er auch die
Datenobjekte fest, die die Befehle seines Programms benutzen. Datenobjekte sind wie die Befehle - integraler Bestandteil eines Programms (Bild 2.2).
Befehlsfolge
=Programm
1. Befehl
usw.
i-ter Befehl
Prozessor
usw.
letzter Befehl
1. Datenobjekt
usw.
i-tes Datenobjekt
usw.
letztes Datenobjekt
Bild 2.2: Befehlsgesteuerte Arbeitsweise von Prozessoren
Bis hierher war noch keine Rede davon, wie ein Programm für den Prozessor
verfügbar gemacht werden kann. Die Befehle müssen in einer (für den Prozessor)
interpretierbaren Form ausgedrückt (man sagt: kodiert) werden. Damit sie für den
Prozessor lesbar werden, muss man sie in der kodierten Form speichern. Das ist die
Aufgabe des Speichers.
Beim Holen und Ausführen der Befehle eines Programms ergibt sich ein Strom von
Befehlen vom Speicher zum Prozessor und ein Strom von Datenobjekten zum
Prozessor bzw. von verarbeiteten (=veränderten) Datenobjekten vom Prozessor zum
Speicher (Bild 2.3).
Befehlsstrom
Prozessor
Datenstrom
Speicher
Ein/Ausgabe
Bild 2.3: Befehls- und Datenstrom beim Programmablauf
Um die zentrale Bedeutung des Speichers für die ablauffähigen Programme zu
unterstreichen, wird der Speicher auch Hauptspeicher genannt.
Computertechnik
60
Jacob
Die befehlsgesteuerte Arbeitsweise eines Computers
Hier erkennt man zum ersten Mal, wie man die Arbeitsgeschwindigkeit eines Computers beeinflussen kann: Je mehr Befehle pro Zeiteinheit beim Programmablauf in
den Prozessor fließen, um so mehr Verarbeitungsergebnisse werden pro Zeiteinheit
erzeugt, um so kürzer ist die Ablaufzeit eines Programms. Bevor aber die Merkmale
des Programmablaufes genauer diskutiert werden, soll ein andere Frage im Vordergrund stehen:
Wie kommt ein geeignet kodiertes ablauffähiges Programm überhaupt zustande?
2.2 Befehle in der Assemblerform
Um dem Programmierer das Programmieren einer zweckgerichteten Befehlsfolge zu
erleichtern, sollte man eine selbsterklärende Form der Befehle finden. Aus der
Schreibweise sollten die Merkmale der Aktionen, die der Prozessor bei diesem
Befehl ausführt, sinnfällig erkennbar sein. Ein Beispiel soll das erläutern (Bild 2.4).
AssemblerProgramm
1. Ass.-Befehl
Prinzipielles Format
Beispiel: 80x86
usw.
add x,0004H
Prozessor
Operation
1.Operand/
2.Operand
Ergebnis
usw.
letzter Ass.-Befehl
1. Datendefinition
usw.
Datendefinition für
die Variable x
usw.
letzte Datendefinition
In der Assemblersprache gelten
Variablennamen als Identifikatoren
für die Datenobjekte, die
die Variablen realisieren.
Bild 2.4: Beispiel eines Additionsbefehls
Eine Addition addiert zwei Operanden und erzeugt dabei ein Ergebnis. Bild 2.4 zeigt
am Fall einer beispielhaften Addition, wie man die Merkmale festlegen kann:
• zuerst den Typ der Operation, hier eine Addition;
• dann einen Hinweis auf den ersten Operanden; x ist der Name eines
Datenobjektes, x dient also als eindeutiges Erkennungsmerkmal (Identifikator)
eines Datenobjektes
• dann den zweiten Operanden, hier die Zahl 4.
Diese Merkmale bestimmen folgendes Operationsergebnis: „alter“ Zustand des
Datenobjektes x plus 4. Jetzt ist noch wichtig, was mit diesem Ergebnis geschehen
soll. Im Beispiel macht man eine stillschweigende (also implizite) Annahme:
Das Ergebnis wird der „neue“ Zustand des Datenobjektes x.
Man kann die Ausführung der Operation auch so beschreiben:
x←x+4
oder
x := x + 4
oder
x=x+4
Bei der letzten Schreibweise muss man sich auf eine Bedeutung des Gleichheitszeichens
einstellen, die nicht der üblichen (mathematischen) Bedeutung des Gleichheitszeichens
entspricht.
Der beispielhafte Befehl zeigt, dass x der Name eines (in seinem Zustand veränderlichen) Datenobjektes ist.
Computertechnik
61
Jacob
Befehle in der Assemblerform
Das Beispiel zeigt auch, dass die Schreibweise eines Befehls bestimmten Regeln
folgt. Diese Regeln sind den Regeln einer Sprache vergleichbar und werden auch
auf einer entsprechenden Abstraktionsebene formal festgelegt. Die Gesamtheit der
Befehle, die man beim Programmieren für einen bestimmten (Ziel-)Prozessors
verwenden kann, wird Assemblersprache genannt. Ein Programm, das nach den
Formalien dieser Sprache programmiert ist, heißt Assemblerprogramm.
Das Beispiel entspricht den Regeln der Assemblersprache für die weit verbreiteten IntelProzessoren. Es zeigt auch nur einige wichtige Aspekte einer Assemblersprache, weil es
hier nur um Grundsätzliches geht.
Auf der Ebene der Assemblersprache wird ein veränderliches Datenobjekt als die
Realisierung einer (abstrakten) Größe angesehen, die man Variable nennt. x ist (aus
dieser Sicht) ein Variablenname.
In einem Assemblerprogramm wird die Existenz einer Variablen durch eine
Definitionsanweisung gesichert, die dem Variablennamen durch eine Typangabe den
notwendigen Platz für das Datenobjekt zuordnet (Bild 2.5).
AssemblerProgramm
1. Ass.-Befehl
usw.
add x,0004H
Prozessor
usw.
letzter Ass.-Befehl
1. Datendefinition
usw.
x
dw
usw.
letzte Datendefinition
Prinzipielles Format
Beispiel: 80x86
Variablen- Definitionsname
typ
Initialisierung
db=define byte
dw= define word
Bild 2.5: Beispiel der Definition einer Variablen mit dem Namen x und einem
notwendigen Platz von 2 Byte für das realisierende Datenobjekt
Will man, dass das Datenobjekt beim Start des Programms einen bestimmten Anfangswert
hat, dann kann man diesen ergänzen. Sobald das Datenobjekt konkret erzeugt wird, hält
man nicht nur seinen Platz bereit, sondern man stellt seinen Zustand entsprechend ein, der
dann zu Beginn des Programmablaufes gilt (Initialisierung).
Die Formalien der Schreibweise von Assemblerbefehlen bzw. Definitionsanweisungen für Variable sind in den Assemblersprachen der auf dem Markt befindlichen
Prozessoren ähnlich festgelegt wie hier gezeigt.
Was ein Assemblerprogrammierer im wesentlichen erlernen muss, ist die Gesamtheit
der Befehle, ihre formal richtige Anwendung und - natürlich vor allem - ihre
zweckdienliche Anwendung im Sinne des gestellten Problems. Die selbsterklärende
Form der Assemblerbefehle hilft ihm sicher beim Erlernen und beim Anwenden.
Wichtig ist, dass einem Assembler-Programmierer immer der direkte Bezug zum
Ablauf der Befehle möglich ist, da die Reihenfolge der Assemblerbefehle unmittelbar
mit dem Programmablauf assoziiert werden kann.
Ein Assemblerprogramm ist für den Programmierer verständlich, nicht aber für den
Prozessor. Das bedeutet, dass man ein Assemblerprogramm in die für den
Prozessor verständliche Form bringen muss.
Computertechnik
62
Jacob
Das Maschinenprogramm
2.3 Das Maschinenprogramm
Um auch eine begrifflich deutliche Unterscheidung zu machen, nennt man die
Befehle, die vom Prozessor „verstanden“ werden, Maschinenbefehle.
Das Ergebnis der Umsetzung von Assemblerbefehlen in Maschinenbefehle ist für
das beispielhafte Szenario in Bild 2.6 dargestellt.
MaschinenProgramm
1. Masch.-Befehl
usw.
Prozessor
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
add x,0004H
Operation= aktuellen Wert der Variablen x holen,
Konstante 4 addieren und das Ergebnis
als neuen Wert der Variablen eintragen.
Identifikator der Variablen x
Konstante= 4
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
In der Maschinensprache gelten
Indizes (= Zeiger = Pointer)
auf die Datenobjekte als Identifikatoren
für die Datenobjekte, die
die Variablen realisieren.
usw.
letztes Datenobjekt
Bild 2.6: Maschinenprogramm mit den beispielhaften Befehlen
xi bzw. zi steht stellvertretend für die Bits des entsprechenden 16-Bit-Wortes
Man erkennt die Struktur des Assemblerbefehles in der Struktur des Maschinenbefehles wieder.
Der Assembler-Befehl besteht aus drei Abschnitten:
• dem für die Operation,
• dem für den ersten Operanden bzw. das Ergebnis, hier den Variablennamen,
• und dem für den zweiten Operanden, hier die Zahl 4.
Der Maschinenbefehl besteht aus drei Abschnitten:
• 2 Byte für die Angabe der Operation und die Art, wie die folgenden Bytes zu
verwenden sind,
• dann zwei Bytes, die den konkreten Bezug zum Datenobjekt herstellen,
• und dann zwei Byte, die die Zahl 4 enthalten.
Es ergibt sich eine Schwierigkeit, wenn man zur Darstellungsart von Intel konform bleiben
möchte. Intel zählt die Bytes fortlaufend von links nach rechts, also bei 16Bit-Wörtern
0
1
2
3
4
5
Im Byte mit der kleineren Nummer steht das niederwertige Byte einer 16Bit-Dualzahl und im
Byte mit der höheren Nummer das höherwertige Byte.
Eine 4 als 16Bit-Dualzahl ist in der mathematischen Darstellung:
0000 0000
0000 0100.
Durch die Darstellungsart von Intel ergibt sich daraus:
0000 0100
0000 0000.
Intel folgt der üblichen Schreibrichtung von links nach rechts. Die mathematische Darstellung
ordnet die Bytes gemäß der Stellenwertigkeit von rechts nach links an. Diese Darstellung
wählen die meisten anderen Hersteller.
Sehr wichtig ist nun, wie im Befehl der Bezug zum Datenobjekt hergestellt wird.
Computertechnik
63
Jacob
Das Maschinenprogramm
Im Assemblerprogramm legt die Gesamtheit der Definitionsanweisungen auch die
Gesamtheit der Variablen fest. Die Variablen müssen eindeutig unterscheidbar sein.
Es dürfen also keine Variablen mit gleichem Namen vorkommen. Diese Eigenschaft
muss genau so für die realisierenden Datenobjekte gelten.
Da man jeder Variablen ein Datenobjekt mit einer genau gegebenen Zahl von Byte
zuordnet und diese hintereinander im Programm anordnet, kann man Datenobjekte
eindeutig durch ihre Lage identifizieren.
Es gibt mehrere Möglichkeiten, die Lage anzugeben, z.B.
• als Zahl der Byte zwischen dem Befehl, in dem zu dem Datenobjekt zugegriffen
wird, und dem ersten Byte des Datenobjektes selbst,
• als Zahl der Bytes zwischen dem Anfang des Programmabschnittes mit den
Datenobjekten und dem ersten Byte des Datenobjektes.
• Wenn man weiß, in welche Speicherzellen im Hauptspeicher das ablauffähige
Maschinenprogramm geladen werden wird, kann man auch die Lage des
Datenobjektes als Hauptspeicheradresse ihres ersten Bytes angeben.
Man nennt die Größe, die die Lage eines Datenobjektes innerhalb eines Programms
oder im Hauptspeicher festlegt, im Kontext der Maschinenprogramme meistens
Index. Es sind auch die Bezeichnungen Zeiger oder Pointer üblich.
Im Bild 2.6 steht zi für die Bits des Index bzw. Zeigers.
Indizes mit Hauptspeicheradressen machen Probleme, wenn man die Lage des Programms
im Hauptspeicher ändert. Alle Befehle mit solchen Indizes müssen nämlich bei Veränderung
der Lage des Programms angepasst werden. Deshalb bevorzugt man in heutigen
Computersystemen die andere Art der Indizes, die man auch als relativ (zu einer vereinbarten Basis) ansehen kann. Davon später noch ausführlich.
Die Umsetzung eines Assemblerprogramms in das gleichwertige Maschinenprogramm wird mit einem Übersetzerprogramm durchgeführt, das man als Assembler bezeichnet (Bild 2.7).
MaschinenProgramm
AssemblerProgramm
1. Masch.-Befehl
usw.
1. Ass.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
add x,0004H
Übersetzer
(Assembler)
usw.
letzter Ass.-Befehl
1. Datendefinition
usw.
x
. . xi . .
usw.
letztes Datenobjekt
dw
usw.
letzte Datendefinition
Zur Laufzeit auszuführende Assemblerbefehle werden in
entsprechende Maschinenbefehle umgesetzt.
Datendefinitionen werden in entsprechende
Datenobjekte umgesetzt.
Bild 2.7: Die Übersetzung eines Assemblerprogramms in das Maschinenprogramm
Assemblerbefehle, die zur Laufzeit wirksam werden sollen, werden in ihre entsprechenden Maschinenbefehle umgesetzt. Variablendefinitionen - auch Datendefinitionen genannt - in entsprechende Datenobjekte.
Computertechnik
64
Jacob
Das Maschinenprogramm
Sobald man sehr komplexe Programme entwickelt, muss man das Gesamtproblem in
überschaubare Teilprobleme aufteilen. Dann hat man einen überschaubaren Aufgabenrahmen, in dem man auch die Richtigkeit des Programms prüfen kann. Aus
den geprüften Teilprogrammen wird dann das Gesamtprogramm zusammengesetzt,
das man dann als Ganzes prüft. Das Zusammensetzen wird durch ein Programm
unterstützt, das man Binder (Linker) nennt (Bild 2.8).
MaschinenGesamtprogramm
1. Ass.-Befehl
usw.
1. Masch.-Befehl
usw.
1. Masch.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
AssemblerTeilprogramme
MaschinenTeilprogramme
Binder
(Linker)
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
add x,0004H
Übersetzer
(Assembler)
usw.
letzter Ass.-Befehl
1. Datendefinition
usw.
x
dw
usw.
letzte Datendefinition
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
Bild 2.8: Das Binden von unabhängig entwickelten Teilprogrammen (Modulen)
Ein Binder ordnet die Maschinenbefehle der einzelnen Teilprogramme (die auch als
Module bezeichnet werden) in der Reihenfolge, wie sie im Binde-Kommando
aufgerufen werden, hintereinander. Das Gleiche macht er mit den Datenobjekten der
Module. Man erkennt für das beispielhafte Szenario sofort eine wichtige Aufgabe des
Binders: alle lageabhängigen Indizes müssen angepasst werden.
Das Programmieren in einer Assemblersprache hat den Vorteil, dass der
Programmierer sehr einfach den Bezug zum Ablauf herstellen kann. Aber es hat den
Nachteil, dass der logische Zusammenhang mit dem Anwenderproblem „verwischt“
wird. Den kann man beim Assembler-Programmieren oft nur durch konsequente
begleitende Kommentare im Programmtext herstellen.
Aus der Sicht des Programmierens komplexer Probleme ist hilfreich, wenn
mathematische oder logische Zusammenhänge auch mit den üblichen Formen
ausgedrückt werden können, die sich in den entsprechenden Sachgebieten
herausgebildet haben. Das leisten höhere Programmiersprachen.
Für Programme in einer höheren Programmiersprache gilt das Gleiche wie für
Assembler-Programme: man muss die Möglichkeit haben, sie getrennt zu entwickeln
und zu prüfen, und man muss die Möglichkeit haben, die geprüften Teilprogramme
zu binden, um sie insgesamt prüfen können und damit verlässlich lauffähig zu
machen (Bild 2.9).
Der Übersetzer heißt hier Compiler. Außerdem vermeidet man den Begriff Befehl und
verwendet stattdessen den Begriff Anweisung (statement).
Computertechnik
65
Jacob
Das Maschinenprogramm
MaschinenGesamtprogramm
1. Anweisung
1. Masch.-Befehl
usw.
1. Masch.-Befehl
usw.
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
Teilprogramme
in einer höheren
Programmiersprache
MaschinenTeilprogramme
Binder
(Linker)
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
integer x;
Compiler
usw.
x = x + 4;
usw.
. . xi . .
usw.
letztes Datenobjekt
letzte Anweisung
letzter Masch.-Befehl
1. Datenobjekt
usw.
Arithmetische Ausdrücke werden in entsprechende
Maschinenbefehlsfolgen umgesetzt.
. . xi . .
usw.
Datendefinitionen werden in entsprechende
Datenobjekte umgesetzt.
letztes Datenobjekt
Bild 2.9: Übersetzen und Binden bei höheren Programmiersprachen
Es wird im Allgemeinen nicht so sein wie im dargestellten einfachen Fall (Bild 2.9):
dass nämlich eine Anweisung direkt in einen einzigen Maschinenbefehl umgesetzt
werden kann. Da arithmetische Ausdrücke sehr komplex sein können, ergeben sich
auch entsprechend komplexe Befehlsfolgen. Die Aufgabe der Compilerprogrammierer ist es, aus den Ausdrücken effektive Befehlsfolgen zu machen.
Ob das so ist, kann der Anwenderprogrammierer in aller Regel nur dadurch feststellen, dass er die Laufzeiten von Programmen vergleicht, die er mit unterschiedlichen Compilern und Bindern erzeugt hat.
Das Ziel dieser Einführung in die Computerarchitekturen ist es, die hardwarenahen
Aspekte zu erläutern, also von der Ebene der Maschinenprogramme auszugehen.
Die Aspekte, die sich mit dem Weg „vom Problem zum Programm in einer höheren
Programmiersprache“ beschäftigen, werden hier nicht behandelt.
2.4 Merkmale des Programmablaufs
Wie auch immer ein ablauffähiges Maschinenprogramm (im folgenden einfach
Programm genannt) zustande kam: damit der Prozessor es Befehl für Befehl lesen
kann, muss es in den Hauptspeicher geladen werden.
Das Laden eines Maschinenprogramms
Man kann ein lauffähiges Programm als eine Folge ansehen, die Befehle und
Datenobjekte in einer strengen Reihenfolge vom ersten bis zum letzten Element
anordnet. Und genau in dieser Reihenfolge wird das Programm ab einer Speicherzelle in den Hauptspeicher geladen (Bild 2.10), die von einem Programm bestimmt
wird, das den Betrieb des Computers steuert, das sog. Betriebssystem.
Computertechnik
66
Jacob
Merkmale des Programmablaufs
Hauptspeicheranfang
usw.
Beginn des
gespeicherten
Programmes
1. Befehl
usw.
i-ter Befehl
usw.
letzter Befehl
1. Datenobjekt
usw.
i-tes Datenobjekt
usw.
Ende des
gespeicherten
Programmes
letztes Datenobjekt
usw.
Hauptspeicherende
Bild 2.10: Lage eines lauffähigen (Maschinen-)Programms im Hauptspeicher
Ein Programm belegt also im Hauptspeicher einen Speicherbereich, der dann für
andere Programme so lange nicht zur Verfügung steht, bis es abgelaufen ist und
„verdrängt“ werden kann.
Für den Ablauf ist nun wichtig, mit welchem Befehl der Ablauf beginnen soll. Das
muss nicht der erste gespeicherte Befehl sein. Im Bild 2.11 ist vereinfachend
angenommen, dass der erste gespeicherte Befehl auch der Startbefehl ist. Der
Ablauf erreicht am Ende den letzten auszuführenden Befehl des Programms, was
hier vereinfachend der letzte gespeicherte Befehl sein soll. Im Folgenden wird
besprochen, was auf diesem Weg geschieht.
Hauptspeicheranfang
usw.
Startadresse des
auszuführenden
Programmes
1. Befehl
usw.
i-ter Befehl
usw.
letzter Befehl
1. Datenobjekt
Adresse des letzten
auszuführenden
Befehls
usw.
i-tes Datenobjekt
usw.
letztes Datenobjekt
usw.
Hauptspeicherende
Bild 2.11: Start, Spur und Ende des Ablaufes eines geladenen Programms
Zuerst ist die Frage zu klären, wie man die kleinste abzählbare (adressierbare)
Einheit in den Befehlen bzw. im Speicher festlegt, um den wichtigen Begriff der
Startadresse zu verstehen.
Die kleinste abzählbare (=adressierbare) Einheit im Hauptspeicher
In den frühen Mikroprozessoren war die kleinste abzählbare Einheit sowohl für die
Maschinenbefehle/Datenobjekte eines Programms als auch für die Speicherzellen
des Hauptspeichers 1 Byte.
Computertechnik
67
Jacob
Merkmale des Programmablaufs
Wenn man zu dieser ursprünglichen Festlegung kompatibel bleiben will, muss man
diese kleinste abzählbare Einheit erhalten - auch wenn man die Zahl der Bits pro
Speicherwort auf 16, 32 bzw. 64 vergrößert.
Das wichtigste Beispiel für eine Weiterentwicklung mit strikter Einhaltung der Kompatibilität
sind die Intel-Prozessoren vom 8008 bis zum Pentium 4.
Die Vergrößerung der Länge (Anzahl der Bits pro Wort) der Speicherwörter hat einen
Vorteil, der im Bild 2.12 deutlich wird.
32-Bit
Speicherwortfomat
16-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
1. Masch.-Befehl
usw.
1000 0001 0000 0110
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
usw.
usw.
usw.
. . zi . .
usw.
1. Datenobjekt
. . xi . .
letztes Datenobjekt
64-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
1000 0001 0000 0110
letzter Masch.-Befehl
usw.
usw.
. . zi . .
1. Datenobjekt
. . xi . .
0000 0100 0000 0000
usw.
usw.
usw.
letztes Datenobjekt
Bild 2.12: Beispielhaftes Speicherabbild in Abhängigkeit vom Speicherwortformat
Die Bytes werden hier gemäß Intel-Darstellung angegeben, d.h. die Bytes werden von links
nach rechts im Speicherwort und die Speicherwörter werden von oben nach unten
durchnumeriert. Die Bytes des Maschinenprogramms werden von den niederwertigen zu den
höherwertigen hin gespeichert. Es gibt eine implizite Annahme in diesem Beispiel: die Zahl
der Bytes vom Programmbeginn bis zum ersten Byte des Beispielbefehles ist durch 2, 4 und
8 restfrei teilbar.
Der Zugriff zum Hauptspeicher
Ein Speicherzugriff bedeutet die Übertragung eines Datenwortes von/zum Speicher.
Dabei werden maximal so viele Bits übertragen, wie ein Speicherwort hat.
•
Bei einem lesenden Zugriff (vom Speicher) wird das ganze Speicherwort
übertragen.
• Bei einem schreibenden Zugriff (zum Speicher) muss es (wegen der oben
erwähnten Kompatibilität) möglich sein, immer auch die Einheiten auswählen zu
können, die in den früheren Systemen auswählbar waren.
Befehle werden nur gelesen, weil sie nach dem Laden in den Hauptspeicher unveränderlich sind.
Man wird bei einem Speicher mit 16Bit Speicherwortlänge drei Zugriffe für den
Beispielbefehl brauchen, bei 32Bit zwei und bei 64Bit einen. Jeder Zugriff braucht
eine bestimmte Zeit, die man Speicherzugriffszeit nennt. Wenn erst alle
Befehlsbytes geholt werden müssen, bevor ein Befehl ausgeführt werden kann, dann
sieht man sofort, wie sich die Wartezeiten und wie sich dementsprechend die
Programmlaufzeiten verteilen.
Computertechnik
68
Jacob
Merkmale des Programmablaufs
Die Adressierung von Speicherwörtern und von Bytes in Speicherwörtern
Die Abzählung der Bytes in den Hauptspeicherwörtern ergibt eine Nummerierung, die
ihre Lage bezogen auf den Speicheranfang festlegt. Man spricht nun nicht von
Nummern, sondern von Hauptspeicheradressen.
In diesem Sinne hat ein geladenes Programm eine Anfangsadresse und eine
Endadresse. Der Start erfolgt bei einer Startadresse und das Verlassen des
Programms bei der Adresse des letzten ausgeführten Befehls. Die Startadresse ist
die Adresse des ersten Byte des ersten Befehls.
Die Adresse ist eine ganze positive Zahl, die als Dualzahl in einem Wort mit n Bits
angegeben wird. In Prozessoren für heutige Computersysteme sind es mindestens
32 Bit. Die Verwendung der Bits für die Adressierung der Speicherwörter bzw. der
Bytes in den Speicherwörtern ist in Bild 2.13 dargestellt. Ein geladenes Programm
beginnt sinnvollerweise beim Byte 0 eines Speicherwortes.
Adreßformat mit Byte als kleinste adressierbare Einheit
31
2
0
2
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
16-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
Adreßformat mit Byte als kleinste adressierbare Einheit
31
2
0
2
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
32-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
usw.
. . zi . .
1000 0001 0000 0110
0000 0100 0000 0000
usw.
usw.
letzter Masch.-Befehl
usw.
usw.
1. Datenobjekt
. . xi . .
letztes Datenobjekt
Adreßformat mit Byte als kleinste adressierbare Einheit
31
2
64-Bit
Speicherwortfomat
0
2
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
1. Masch.-Befehl
usw.
usw.
. . zi . .
1000 0001 0000 0110
1. Datenobjekt
letzter Masch.-Befehl
usw.
. . xi . .
0000 0100 0000 0000
usw.
usw.
usw.
letztes Datenobjekt
Bild 2.13: Beispielhafte Formate für Speicheradressen
rot: Bits für die Adressierung der Byte innerhalb eines Speicherwortes
schwarz: Bits für die Adressierung der Speicherwörter im Hauptspeicher
Die kompakte Speicherung von Befehlen und Datenobjekten
Befehle werden beim Übersetzen bzw. Binden lückenlos aneinander gepackt. Das
Gleiche gilt für die Datenobjekte.
Eine wichtige Eigenschaft einer Variablendefinition ist, dass man unter einem Namen
mehrere Datenobjekte gleichen Typs definieren kann. Bei der Realisierung entsteht
eine Reihenfolge von Datenobjekten gleichen Typs. Man nennt das die Definition
eines Feldes (array). Bild 2.14 zeigt veranschaulichende Beispiele.
Computertechnik
69
Jacob
Merkmale des Programmablaufs
16Bit
Speicherwortformat
Ein Feld von
6 Variablen
vom Typ Byte
Ein Feld von
3 Variablen
vom Typ 2 Byte
Eine Variable
vom Typ 4 Byte
32Bit
Speicherwortformat
64Bit
Speicherwortformat
Bild 2.14: Beispiele für Felder
Es gibt drei markante Merkmale eines Feldes:
• die Anfangsadresse,
• die Zahl der Elemente,
• der Typ jedes Elementes.
Wenn man die Datenobjekte konsequent kompakt speichert, dann kann ein Feld bei
einer beliebigen Zahl von Bytes enden und das folgende Feld schließt sich
unmittelbar an. Das bedeutet, dass die Anfangsadresse eines Feldes eine ByteAdresse ist, also eine Adresse mit einem Byte als kleinste adressierbare Einheit.
Selbststeuernder Programmablauf
Wenn man die Startadresse eines Programms kennt, gibt es ein sehr einfaches
Merkmal, das einen sich selbst steuernden Programmablauf ermöglicht. Wenn man
an einer bestimmten Stelle in jedem Befehl eindeutig ein Merkmal erkennt, aus dem
die Zahl der Bytes für diesen Befehl hervorgeht, dann kann man einfach berechnen,
wo der nächste Befehl beginnt. Dort kann man genau so vorgehen usw. (Bild 2.15).
32-Bit
Speicherwortfomat
16-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
1. Masch.-Befehl
usw.
1000 0001 0000 0110
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
usw.
usw.
usw.
. . zi . .
usw.
1. Datenobjekt
. . xi . .
letztes Datenobjekt
64-Bit
Speicherwortfomat
1. Masch.-Befehl
usw.
1000 0001 0000 0110
letzter Masch.-Befehl
usw.
usw.
. . zi . .
1. Datenobjekt
. . xi . .
0000 0100 0000 0000
usw.
usw.
usw.
letztes Datenobjekt
Bild 2.15: Merkmal zur Bestimmung der Lage des beim Ablauf folgenden Befehls
Jeder Befehl beginnt mit den Bytes, die die Operation festlegen. Dann folgen die
Merkmale der Operanden. Eine konkrete Operation hat immer eine eindeutige Zahl
von folgenden Bytes für die Angabe der Operanden. Die Anfangsadresse des
Computertechnik
70
Jacob
Merkmale des Programmablaufs
folgenden Befehls ergibt sich aus der Startadresse des aktuellen Befehls plus der
Anzahl der Bytes für diesen Befehl, die der Prozessor aus der Operationsangabe
eindeutig zuordnet.
Im Fall von Bild 2.15 wird eine Operation mit 2 Bytes kodiert. Der Additionsbefehl umfasst 6
Byte. Gleichgültig, in welchem Speicherformat der Befehl abgelegt wird: die Anfangsadresse
des nächsten Befehls ergibt sich durch die Addition von 6 zur Adresse des ersten Byte des
Befehls.
Ausgehend von einer Startadresse kann man Folgebefehl für Folgebefehl bestimmen, bis man den letzten Befehl des Programms erreicht: ein sich selbst steuernder
Ablauf, der aber einen entscheidenden Nachteil hat: Verarbeitungsergebnisse, die
sich beim Ablauf ergeben, könnten nie auf den Ablauf Einfluss nehmen. Genau das
muss aber möglich sein.
Die Steuerung des Programmablaufes durch Verarbeitungsergebnisse
Es muss Befehle geben, mit denen man den Programmablauf von Verarbeitungsergebnissen abhängig machen kann.
Hauptspeicheranfang
usw.
Startadresse des
auszuführenden
Programmes
1. Masch.-Befehl
usw.
Befehl zur bedingten Fortsetzung des Programmes
usw.
usw.
Adresse des letzten
auszuführenden
Befehls
letzter Masch.-Befehl
1. Datenobjekt
usw.
letztes Datenobjekt
usw.
Hauptspeicherende
Bild 2.16: Bedingte Fortsetzung eines Programms
Die Wirkung eines ablaufsteuernden Befehles ist: wenn die (im Befehl)
angegebene Bedingung erfüllt ist, verzweigt der Ablauf zu einem besonders
markierten Befehl, sonst geht es normal weiter.
Ein Beispiel soll das erläutern.
Angenommen, eine Variable x vom Typ 16Bit hat im Augenblick den
hexa(dezimalen)-Wert f f f c und man addiert dazu eine 4:
f f f c
+ 0004
10000
Dann erhält die Variable x den hexa-Wert 0 0 0 0 mit einem „übergelaufenen“ Bit, das
man Übertrag (carry) nennt. In dem Fall, dass die Variable den Wert 0 0 0 0
annimmt, soll zu einem Befehl mit der Markierung Fertig verzweigt werden, in allen
anderen Fällen soll es normal weitergehen.
Computertechnik
71
Jacob
Merkmale des Programmablaufs
Bild 2.17 zeigt die Ablaufalternativen an einem entsprechenden Assemblerbeispiel.
1. Ass.-Befehl
Prinzipielles Format
Beispiel: 80x86
add x,0004H
jz
Fertig
Operation
ZielMarke
jz= jump zero
Fertig: mov x, 0ffffH
lade x mit 1en
letzter Ass.-Befehl
1. Datenobjekt
usw.
. . xi . .
letztes Datenobjekt
Bild 2.17: Beispiel für den bedingten Verzweigungsbefehl jump zero mit zwei Ablaufalternativen
Der Befehl jump zero prüft, ob bei der vorangegangenen Operation eine Null als
Ergebnis herauskam. In diesem Fall hätte man auch ein jump carry anwenden
können. Die umgekehrte Abfrage mit jump not zero oder jump not carry muss hier
nicht mit Beispielen erläutert werden; sie ist nahe liegend. Das ist nur eine kleine
Probe von Befehlen mit bedingter Verzweigung, die reelle Prozessoren bieten.
Der letzte auszuführende Befehl
Der Programmlauf erzeugt mit dem normalen und dem bedingten Fortschritt eine
Ablaufspur bis zum Befehl, der oben als letzter auszuführender Befehl bezeichnet
wurde.
Hauptspeicheranfang
usw.
Startadresse des
auszuführenden
Programmes
1. Masch.-Befehl
usw.
Befehl zur bedingten Fortsetzung des Programmes
usw.
usw.
Adresse des letzten
auszuführenden
Befehls
letzter Masch.-Befehl
1. Datenobjekt
usw.
letztes Datenobjekt
usw.
Hauptspeicherende
Bild 2.18: Der letzte auszuführende Befehl in einem Anwenderprogramm
Was bedeutet der letzte auszuführende Befehl aus der Sicht eines
Anwenderprogramms, das vom Betriebssystem geladen und gestartet wurde?
Ein Anwenderprogramm ist dann zu Ende, wenn alle vom Programmierer
gewünschten Ergebnisse erzeugt sind, der Zweck des Programms also erfüllt ist. Der
Computertechnik
72
Jacob
Merkmale des Programmablaufs
letzte Befehl kann dann nur bedeuten, dass der Ablauf in demjenigen Programm
weiter geht, das für den Ablauf des Anwenderprogramms gesorgt hat. Das bedeutet
die Rückkehr in das Betriebssystem.
Und was bedeutet dann der letzte auszuführende Befehl im Betriebssystem?
Das Betriebssystem sorgt für den Ablauf der von dem(den) Benutzer(n) gewünschten
Anwendungen. Die Benutzer machen bestimmte Eingaben, z.B. geben sie
Kommandos ein, um dem Betriebssystem zu sagen, welche Programme gestartet
werden sollen. Leerlauf bedeutet, dass alle bisherigen Eingaben fertig bearbeitet sind
und das Betriebssystem auf neue Eingaben wartet. Tatsächlich gibt es in allen
universell einsetzbaren Prozessoren einen Befehl, bei dessen Ausführung der
Prozessor auf externe Ereignisse mit programmsteuernder Wirkung wartet. Das ist
dann der letzte auszuführende Befehl im Betriebssystem.
2.5 Der Grundzyklus der Programmablaufsteuerung und die Reaktion auf äußere Ereignisse
Der einfache Grundzyklus
Ein Anwenderprogrammierer hat sein Anwenderproblem im Auge und betrachtet den
Programmablauf aus dem Blickwinkel der schnellen und anwendungsgerechten
Ausführung. Die grundsätzlichen Merkmale des Programmablaufes wurden zunächst
aus diesem Blickwinkel beschrieben.
Ein Computerarchitekt, der die passenden Schaltungen entwirft und realisiert, hat
einen anderen Blickwinkel. Er stellt fest, dass sich die befehlsgesteuerte
Arbeitsweise eines Computers eine zyklische Abfolge von zwei aufeinander
folgenden Arbeitsvorgängen erzwingt: dem Holen eines gespeicherten Befehls
(instruction fetch) und dem Ausführen dieses Befehls (instruction execute) (Bild
2.19).
Befehl
nächsten Befehl
ausführen
holen
Bild 2.19: Grundzyklus eines Prozessors
Dieser Grundzyklus ist die treibende Kraft für die Aktionen eines Computers. Er wird
mit dem Einschalten eines Computers gestartet und hält im eingeschalteten Zustand
nur dann an, wenn Leerlauf ist. Das bedeutet bei den meisten Prozessoren die
Ausführung eines Befehls, in dem auf externe Ereignisse gewartet wird. Eine Alternative ist, einen Befehl auszuführen, der auf sich selbst verzweigt.
Würde die Programmablaufsteuerung nur diesen Grundzyklus ausführen, könnten
äußere Ereignisse nie auf sie Einfluss nehmen. Eine geeignete Funktion muss
möglich machen, dass die Programmablaufsteuerung gezielt zu einer Befehlsfolge
verzweigt, die dem aufgetretenen Ereignis eindeutig zugeordnet ist
Computertechnik
73
Jacob
Der Grundzyklus der Programmablaufsteuerung und die Reaktion auf äußere
Ereignisse
Zunächst kann man das Problem aus Anwendersicht veranschaulichen (Bild 2.20).
Hauptspeicheranfang
usw.
1. Befehl
spontanes
äußeres Ereignis
mit programmsteuernder
Wirkung
usw.
i-ter Befehl
usw.
letzter Befehl
1. Datenobjekt
usw.
i-tes Datenobjekt
usw.
letztes Datenobjekt
usw.
Hauptspeicherende
Bild 2.20: Die Unvorhersehbarkeit eines spontanen externen Ereignisses mit
programmsteuernder Wirkung
Spontane programmsteuernde Ereignisse sind z.B. Mouseclicks oder Tastaturanschläge oder fertige Kommandoeingaben, um nur einige zu nennen. Sie treten
zeitlich unabhängig vom aktuellen Programmablauf auf. Die Frage ist nun, wie man
ein solches Ereignis im Rahmen des Grundzyklus erfassen soll?
Man kann das Ereignis nur erfassen, wenn man es geeignet kodiert. Es gibt nur zwei
Zustände: Ereignis da/Ereignis nicht da. Das bedeutet, dass man es als binäres
Signal kodieren kann.
Wenn der Zustand Ereignis nicht da erfasst wird, soll es keine Verzweigung geben,
bei Ereignis da soll eine gezielte Verzweigung ausgeführt werden. Das bedeutet,
dass die Abfrage und die Entscheidung nach der Ausführung eines Befehles und vor
dem Holen des nächsten eingebaut werden muss (Bild 2.21).
Befehl
nächsten Befehl
ausführen
holen
Interrupt Request Meldung
abfragen:
da: spätere Fortsetzung
des aktuellen Programmablaufes vorbereiten,
Verzweigung einstellen;
nicht da: weiter
Bild 2.21: Grundzyklus mit Möglichkeit zur Unterbrechung von außen
Liegt ein Ereignis vor, kommt es zu einer Unterbrechung des aktuellen Programmablaufs (Interrupt).
Computertechnik
74
Jacob
Der Grundzyklus der Programmablaufsteuerung und die Reaktion auf äußere
Ereignisse
Die nach der Unterbrechung ausgeführte Befehlsfolge nennt man Interrupt Service
Routine. Das äußere Ereignis, das einen Interrupt auslöst, heißt Interrupt Anforderung (interrupt request).
Während eines Interrupts läuft also eine Befehlsfolge ab, die dann an dem letzten
Befehl anlangt, wenn die programmierte Aufgabe der Unterbrechung erfüllt ist. Dann
muss die Programmablaufsteuerung in der Lage sein, das unterbrochene und angehaltene Programm mit dem Befehl fortzusetzen, der anstelle der unterbrechenden
Verzweigung als nächster geholt und ausgeführt worden wäre.
2.6 Maßnahmen zur Verkürzung der Programmlaufzeit
Je mehr Befehle pro Zeiteinheit vom Prozessor verarbeitet werden, umso kürzer wird
die Zeit für den Programmablauf - gleiche Ablaufbedingungen vorausgesetzt. Im
Folgenden werden Maßnahmen zur Verkürzung der Programmlaufzeit diskutiert.
Die Entkopplung von Holen und Ausführen der Befehle
Im Grundzyklus gibt es ein wichtiges Merkmal, das „bremsend“ auf die Ablaufzeit
wirkt: die Tatsache, dass die Ausführung auf die Lieferung eines Befehls warten
muss, und die Tatsache, dass der nächste Befehl erst geholt werden kann, wenn der
vorherige ausgeführt ist. Die Frage ist, wie man das gegenseitige Warten vermeiden
kann.
Das kann man mit einem Vorratkonzept. Eine Einheit zum Holen der Befehle sorgt
dafür, dass in einem Zwischenspeicher ständig ein Vorrat an Befehlen vorgehalten
wird. Eine Einheit zum Ausführen der Befehle bedient sich aus dem Vorrat im
Zwischenspeicher, wenn sie Bedarf hat. Der Zwischenspeicher wird üblicherweise
Puffer genannt (Bild 2.22).
Die übliche Strategie ist, dass die eine Einheit den Puffer füllt, solange Platz ist, und
die andere nach Bedarf entnimmt und damit Platz schafft.
nächsten Befehl
holen
Befehl
puffern
Zwischen
speicher
als Puffer
ermöglicht
Simultanarbeit ohne
gegenseitiges
Warten
Befehl
nächsten Befehl
ausführen
holen
Interrupt Request Meldung
abfragen:
da: spätere Fortsetzung
des aktuellen Programmablaufes vorbereiten,
Verzweigung einstellen;
nicht da: weiter
Bild 2.22: Die Trennung der Aktionen für das Holen und das Ausführen der Befehle
Dieses Vorratskonzept wird auch als Prefetch bezeichnet. Die einfachste Strategie
füllt den Puffer immer in der Reihenfolge der gespeicherten Befehle. Das bedeutet,
dass bei bedingten Verzweigungsbefehlen nur die Befehle der einen von beiden
Alternativen im voraus geholt werden können.
Wenn aber der Ablauf zur anderen Alternative verzweigt, war das Holen dieser
Befehle überflüssig. Der Inhalt des Puffers wird „weggeworfen“ (flush) und die
Befehle der Alternative werden geholt. In diesem Fall wartet die ausführende Einheit
auf das Holen.
Computertechnik
75
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Das Puffer-Konzept bewirkt, dass die Ausführ-Aktionen nicht mehr auf die HolAktionen warten müssen (mit Ausnahme des Widerrufes bei bedingten Verzweigungen). Durch den Wegfall der Wartezeiten entsteht der Effekt der Verkürzung der
Programmlaufzeit.
In modernen Prozessoren wird das Verfahren durch ein Variante erweitert, die man
Vorhersage der Verzweigung (Branch-Prediction) nennt. Davon später.
Ein noch deutlicherer verkürzender Effekt entsteht, wenn man Befehle und
Datenobjekte für Wiederholungen in einem Zwischenspeicher bereit hält.
Die Bereithaltung von Befehlen für wiederholten Zugriff
Beim Programmieren gehören Wiederholungen zu den elementaren Programmiermethoden, die häufig angewendet werden und entsprechend den Programmablauf
prägen. Statistische Untersuchungen an repräsentativen Stichproben von
Programmen bestätigen das in eindrucksvoller Weise. Deshalb haben sich
Computerarchitekten schon sehr früh damit beschäftigt, Konzepte zu erfinden, die bei
Wiederholungen eine Verkürzung des Hol-Vorganges bewirken.
Die Verkürzung entsteht im Wesentlichen dadurch, dass ein gerade ablaufender
Befehl für kommende Wiederholungen in einem Zwischenspeicher gespeichert wird,
der eine deutlich kürzere Zugriffszeit hat als der Hauptspeicher.
Cache-Konzept für Befehle
Cache
Zwischenspeicher
für eine Untermenge
von Hauptspeicherzellen mit Befehlen,
die der Prozessor
aktuell bearbeitet hat.
Schnelle Erkennung,
ob ein Befehl
vorhanden ist
oder nicht.
nächsten Befehl
aus Hauptspeicher
holen
vorhanden
nicht vorhanden:
nachladen
Befehl
nächsten Befehl
ausführen
holen
Interrupt Request Meldung
abfragen:
da: spätere Fortsetzung
des aktuellen Programmablaufes vorbereiten,
Verzweigung einstellen;
nicht da: weiter
Bild 2.23: Der Grundzyklus mit dem Befehls-Cache
Die Einheit zum Holen des nächsten Befehls erzeugt einen Lesevorgang und
erwartet das(die) Speicherwort(-wörter) mit dem Befehl. Aus dieser Sicht gibt es zwei
mögliche Quellen, die das Speicherwort liefern: der Hauptspeicher oder der schnelle
Zwischenspeicher.
Ein zeitlicher Gewinn gegenüber dem Hauptspeicherzugriff entsteht immer dann,
wenn der schnelle Zwischenspeicher liefert. Der Gewinn, d.h. die gesparte Zeit, ist
die Differenz zwischen der Zugriffszeit zum Hauptspeicher und der Zugriffszeit zum
schnellen Zwischenspeicher.
Computertechnik
76
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Die Einheit zum Holen der Befehle kann den Lesevorgang anstoßen, ohne zu unterscheiden, ob ein Zugriff zum Hauptspeicher oder zum schnellen Zwischenspeicher
erfolgen soll. Die Entscheidung, wer liefert, muss in den Einheiten fallen, die im
Zwischenspeicher auf den Zugriff reagieren bzw. die im Hauptspeicher auf den
Zugriff reagieren. Wenn der Zwischenspeicher liefert, dann ist eine Fortsetzung des
Lesevorganges zum Hauptspeicher überflüssig und kann abgebrochen werden.
Wenn der schnelle Zwischenspeicher liefert, dann geschieht das sozusagen „verdeckt“: man nennt ihn deshalb Cache.
Für die Wirksamkeit des Cache ist maßgeblich, wie schnell die Cache-Steuerung
feststellen kann, ob das Speicherwort im Cache steht.
Kopien im Cache als Untermenge des Hauptspeichers
Adressen der
Speicherwörter
Hauptspeicher
Adressen der
Zeilen im verdeckten
Zwischenspeicher
verdeckter Zwischenspeicher (Cache)
Fluß der gelesenenSpeicherwörter
Konzept: wenn vorhanden,
lesen der Kopie im Cache,
sonst lesen aus Hauptspeicher
und Kopie in den Cache.
Bild 2.24: Das Zugriffskonzept für den Befehls-Cache:
Treffer (Hit, einfacher Pfeil) oder Nicht-Treffer (Miss) und Cacheline-Fill (Doppelpfeil)
Im Cache können keine anderen Befehle stehen als im Hauptspeicher (KonsistenzBedingung). Anders ausgedrückt: der Inhalt des Cache muss eine Untermenge des
Inhalts des Hauptspeichers sein. Das kann man beim Füllen des Cache sehr einfach
realisieren. Wenn die Cache-Steuerung beim Lesevorgang feststellt, dass keine
Kopie da ist, ist sicher, dass der Lesevorgang aus der übergeordneten Speicherebene, also dem Hauptspeicher beantwortet wird. Dann übernimmt die CacheSteuerung, was von dort geliefert wird, so wie die Einheit zum Holen der Befehle das
Gelieferte übernimmt. Damit steht der Befehl für einen späteren Zugriff im Cache
bereit.
Tatsächlich wird bei diesem Eintrag in den Cache (cacheline fill) ein vorhergehender
Eintrag überschrieben, der dann nicht mehr für eine Wiederholung bereitsteht. Die
Strategie ist also, immer den letzten Eintrag als den besten Kandidaten für eine
Wiederholung zu betrachten.
Man kann nun die Chance für einen Treffer zu verbessern, in dem man nicht nur ein
Speicherwort überträgt, sondern gleich mehrere, die hintereinander liegen.
n
Bei einer Zahl von 2 ist das Zählen am einfachsten. (Intel verwendet zur Zeit n=2).
Computertechnik
77
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Das ergibt einen Block von je 4 Speicherwörtern (Bild 2.24). Das Adressformat der
Blöcke ist (32 Bit für die Adressierung von Bytes vorausgesetzt):
31
5
2 .........................2 . . . . .
x .........................x 00000
Wie man den Hauptspeicher in solche Blöcke einteilt, so teilt man auch den Cache in
Speicherbereiche der gleichen Größe ein. Sie heißen dort Cachezeilen (Cacheline).
Ein Cache kann immer nur eine Untermenge des Hauptspeichers aufnehmen.
Heutige Cache-Konzepte bilden die Reduzierung auf der Basis einer Zuordnung:
je eine Cachezeile steht als Zwischenspeicher für eine genau definierte Menge von
(eben definierten) Blöcken zur Verfügung;
je eine solche Menge von Blöcken teilt sich also in die Benutzung einer Cachezeile.
Welcher der Blöcke nun tatsächlich in der Cachezeile gespeichert ist, kann sich nur
aus einem Merkmal ergeben, das dem gespeicherten Block hinzugefügt worden ist.
Das Merkmal ist ein geschickt gewählter Teil der Hauptspeicheradresse des Blocks.
Die Übereinstimmung zwischen dem gespeicherten Wert dieses Adressteils und dem
(beim Zugriff) angelegten Wert dieses Adressteils zeigt an, dass ein Treffer vorliegt.
Soweit das Prinzip. Die Details des Verfahrens sollen im entsprechenden späteren Kapitel
ausführlich besprochen werden.
Cache-Konzept für Datenobjekte
Ein Zeitgewinn ist natürlich auch zu erwarten, wenn man das Cache-Konzept auch
für Datenobjekte einsetzt. Zugriffe zu Datenobjekten kommen bei der Ausführung von
Befehlen vor (Bild 2.25).
Befehls-Cache
Daten-Cache
Zwischenspeicher
für Maschinenbefehle
nächsten Befehl
aus Hauptspeicher
holen
vorhanden
nicht vorhanden:
nachladen
Zwischenspeicher
für Datenobjekte
Befehl
nächsten Befehl
ausführen
holen
vorhanden
nicht vorhanden:
nachladen
gewünschtes Datenobjekt aus Hauptspeicher holen
Interrupt Request
Abfrage und
Ausführung
Bild 2.25: Das vollständige Cache-Konzept für Befehle und Datenobjekte
Die lesenden Zugriffe sind genau so zu behandeln wie die zu Befehlen. Man muss
aber auch ein Konzept für Veränderungen haben; denn Datenobjekte sind
Verarbeitungsobjekte, d.h. sie werden geholt und müssen nach einer Veränderung
wieder in die Ursprungsspeicher zurückgebracht (= geschrieben) werden, um den
neuen Zustand festzuhalten.
Computertechnik
78
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Adressen der
Speicherwörter
Hauptspeicher
Adressen der
Zeilen im verdeckten
Zwischenspeicher
verdeckter Zwischenspeicher (Cache)
Fluß der gelesenen
Datenobjekte
Konzept: wenn vorhanden,
lesen der Kopie im Cache,
sonst lesen aus Hauptspeicher
und Kopie in den Cache.
Fluß der Veränderungen
der Datenobjekte
Konzept: nur dann zurückschreiben,
wenn notwendig,
aber: es darf keine vom Prozessor
ausgeführte Veränderung verloren gehen.
Bild 2.26: Das Zugriffskonzept für den Daten-Cache
Es ist die Frage, wie man beim Schreiben einen Zeitgewinn realisieren kann, wobei
keine Änderung eines Datenobjektes verloren gehen darf.
Es geht keine Änderung verloren, wenn man bei jedem schreibenden Zugriff sowohl
die Kopie im Cache als auch das Original im Hauptspeicher aktualisiert. Dann muss
die Einheit, die den schreibenden Zugriff abwickelt, aber abwarten, bis der Hauptspeicherzugriff fertig ist. Beim Schreiben der Datenobjekte entsteht also kein Zeitgewinn. Der entstünde bei diesem Verfahren nur beim Lesen.
Nun ist es nicht zwingend, beide Ursprungsspeicher gleichzeitig zu aktualisieren.
Man hat auch die Möglichkeit, (zunächst) nur die Kopie im Cache zu aktualisieren.
Wenn dann im weiteren Programmablauf die Cachezeile mit dem geänderten
(=modifizierten) Datenobjekt durch ein Cacheline-Fill überschrieben werden soll, wird
die Cachezeile zuerst in den Hauptspeicher zurück geschrieben, bevor das
Cacheline-Fill erfolgt.
Man muss also die Steuerung des Daten-Cache so ausstatten, dass dieses bedingte
Zurückschreiben möglich wird. Dann ist sichergestellt, dass keine Änderung eines
Datenobjektes verloren geht, aber so viele schreibende Zugriffe wie möglich nur in
den Cache erfolgen.
Register-Konzept für Datenobjekte
Das Konzept des Befehls- und des Daten-Cache dient dazu, einen geschickten
Vorrat an Befehlen und Datenobjekten in Zwischenspeichern in der Nähe des
Prozessorkernes zu halten. Die Speicherzugriffszeit war durch den Speichertyp und
durch die kurzen Leitungslängen deutlich kürzer als zum Hauptspeicher.
Es ist nun möglich, im Prozessorkern selbst spezielle Speicherzellen vorzusehen,
deren Aufbau und Lage die kürzeste Zugriffszeit erlaubt, die aus der Sicht der
Befehlsausführung im System möglich ist. Diese speziellen Speicherzellen im
Prozessor heißen Register (Bild 2.27).
Computertechnik
79
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Diese Register bieten also die kürzesten Zugriffszeiten, die im System möglich sind,
und sind die Speicher, die für eine schnelle Verarbeitung vom Assembler-Programmierer bevorzugt werden. Er lädt die Register mit den gewünschten Datenobjekten,
verarbeitet sie dort und schreibt die Verarbeitungsergebnisse bei Bedarf wieder in
das Datenobjekt zurück. Das Laden der Register und das Zurückschreiben in das
Datenobjekt muss er explizit tun, d.h. mit Transferbefehlen. (Es gibt keinen Mechanismus, der das automatisch macht wie beim Cache-Konzept.)
Die Register werden auch Arbeitsregister genannt.
Hauptspeicher
verdeckter Zwischenspeicher (Cache)
Datenobjekt explizit mit
Transferbefehl in Register
kopieren.
Register im
Prozessor
Datenobjekt explizit mit
Transferbefehl aus
Register zurückschreiben.
Datenobjekte in Registern mit
arithmetischen und logischen
Befehlen verarbeiten.
Datenobjekte im Speichersystem mit arithmetischen und logischen Befehlen verarbeiten.
Bild 2.27: Das Speicherkonzept aus der Sicht der Verarbeitung mit arithmetischen
und logischen Befehlen
Die Arbeitsregister sind Teil des sog. Registersatzes (register set).
Bei der detaillierten Betrachtung der Arbeitsweise eines Prozessors wird die Funktion der
übrigen Register erläutert, die noch zum Registersatz gehören.
Moderne strukturelle Konzepte zur Verkürzung der Programmlaufzeit
Moderne Konzepte setzen bei der Ausführung der Befehle an. Die Strategie ist, die
ausführende Einheit so aufzubauen, dass beim Programmablauf nicht immer nur ein
geholter Befehl nach dem anderen ausgeführt wird, sondern dass man aus der
Menge der Befehle, die beim Programmablauf im Befehlsvorrat gebildet wird,
mehrere gleichzeitig ausführt, soweit die gegenseitige Abhängigkeit der
Befehlsausführung durch Verarbeitungsergebnisse anderer zulässt.
Man nennt das Instruction Level Parallelism.
Wenn man mehrere Befehle gleichzeitig verarbeiten will, dann braucht man mehrere
ausführende Einheiten, die gleichzeitig verschiedene Befehle ausführen können.
Man erkennt in modernen Prozessoren also immer, dass es mehrere ausführende
Einheiten mit gleicher Funktion gibt.
Computertechnik
80
Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Diese ausführenden Einheiten müssen nun im Programmablauf „geschickt“ genutzt
werden. Das heißt, es muss eine Einheit geben, die aufgrund des (mit dem
Programmfortschritt aktualisierten Befehlsvorrates) entscheidet, wann welche Einheit
welche Aufgabe zu erfüllen hat.
Die Effektivität bei der gleichzeitigen Nutzung der ausführenden Einheiten ist
entscheidend für den Erfolg des Konzeptes.
Aus der Sicht des aktuellen Marktes konkurrieren vor allem zwei Konzepte: das des
Pentium 4 und das des Athlon. Ein grundsätzliches Merkmal beider Konzepte ist,
dass die Ausführung der Maschinenbefehle in kleinere Teiloperationen aufgeteilt
wird, die von den ausführenden Einheiten ausgeführt werden. Jedem Maschinenbefehl ist also eine genau definierte Menge von Teiloperationen zugeordnet, die so
festgelegt sind, dass sie möglichst viele gleichzeitig ausgeführt werden können.
Diese werden als Vorrat von Teiloperationen gespeichert und von einer Einheit, die
die Parallelarbeit der ausführenden Einheiten steuert, aus dem Vorrat entnommen
und den ausführenden Einheiten zugeteilt.
Das bedeutet, dass es eine Einheit geben muss, die die Maschinenbefehle in die
Teiloperationen umsetzt und diese in einen Puffer einträgt, aus dem die planende
und zuteilende Einheit entnimmt (Bild 2.28).
Befehls-Cache
Zwischenspeicher
für Befehle
nächsten Befehl
aus Hauptspeicher
holen
vorhanden
nicht vorhanden:
nachladen
Befehl in die auszuführenden
Teiloperationen zerlegen,
entsprechende interne
nächsten Befehl Steuermaßnahmen festlegen
und binär kodieren
holen
(=Micro-Operationen) und
Micro-Operationen in
Zwischenspeicher laden
Interrupt Request
Abfrage und
Ausführung
Zwischenspeicher
holen und gleichzeitige Ausführung
planen und den Ausführungseinheiten
zuordnen
Ausführungseinheiten
Instruction Level Parallelism
Bild 2.28: Das Strukturkonzept der Befehlsausführung in aktuellen Prozessoren
Die Kodierung der Teiloperationen berücksichtigt natürlich die Funktionsmerkmale, die der
Entwurf den einzelnen ausführenden Einheiten gibt. Intel nennt sie Micro-Operationen, AMD
Macro-Operationen. Es ist klar, dass die Effektivität des Konzeptes von den Details des
Entwurfes bestimmt wird. Hier sollte nur das Prinzip deutlich werden.
2.7 Die Strukturierung des Datenverkehrs
Zwischen dem Prozessor und dem Speicher fließen beim Ablauf der Programme
Befehle und Daten. Der Zweck dieses Datenstroms wurde in den vorhergehenden
Abschnitten ausführlich diskutiert.
Diesem überlagern sich die Datenströme von und zur Ein/Ausgabe (Bild 2.29).
Computertechnik
81
Jacob
Die Strukturierung des Datenverkehrs
Befehlsstrom
Prozessor
Datenströme
Speicher
Ein/Ausgabe
Bild 2.29: Die Datenströme zwischen den zentralen Einheiten eines Computers
Bei allen Strömen, die von/zum Prozessor gehen, hat der Prozessor die Aufgabe der
Ablaufsteuerung des Datenaustausches. D.h. der Hauptspeicher ist beim Datenaustausch immer passiv.
Außer den Strömen, bei denen der Prozessor die Aufgabe der Ablaufsteuerung hat,
gibt es zusätzlich noch einen Datenstrom, der zwischen der Ein/Ausgabe und dem
Hauptspeicher direkt abläuft. In diesem Fall muss die Ablaufsteuerung in der
Ein/Ausgabe liegen, weil der Hauptspeicher nur passiv reagieren kann. Diese
Fähigkeit der Ein/Ausgabe wird mit dem Begriff Direct Memory Access, kurz dma
bezeichnet.
Nun kann eine dma-fähige Steuerung nicht von sich aus Aufträge erzeugen, die der
Übertragung von Daten von und zum Hauptspeicher dienen. Das kann nur die
Programmverarbeitung im Prozessor.
Einzig und allein der Ablauf der vom Benutzer gewünschten Programme bestimmt
alle Aktivitäten im Computersystem!
Der Programmierer hat die Möglichkeit, Übertragungsaufträge an die Peripheriegeräte zu formulieren, die über die Ein/Ausgabe erreichbar sind. Diese Übertragungsaufträge werden in Anweisungen (commands) umgesetzt, die vom Prozessor
in die Ein/Ausgabe geschickt werden. Das ergibt einen Command-Datenstrom zur
Ein/Ausgabe. Sobald das Command vollständig empfangen ist, kann die Ein/Ausgabe zusammen mit dem Gerät aktiv werden und die Daten per dma übertragen.
Das Ende der Übertragung muss als Fertigmeldung zur Programmablaufsteuerung
gemeldet werden, weil der Programmfortschritt sicher davon abhängt, dass die Daten
vollständig im Hauptspeicher stehen. Für die Fertigmeldung bietet sich dann das
Konzept der Interrupt-Anforderungen an.
Eine andere Methode besteht darin, gerätebezogene Status-Daten in der
Ein/Ausgabe bereit zu halten, die den aktuellen Bearbeitungszustand eines
Auftrages enthalten und die der Prozessor lesen kann. Durch zyklisches Lesen und
Testen des Wertes kann man das Ereignis der Änderung erkennen und mit einer
bedingten Verzweigung auswerten.
Eine solche zyklische Abfrage nennt man (etwas salopp) Pollen (poll). Das wäre ein
Beispiel für einen Datentransfer von der Ein/Ausgabe zum Prozessor.
Computertechnik
82
Jacob
Der Einfluss der Anwendung auf die Aufteilung in grundsätzliche Einheiten
2.8 Der Einfluss der Anwendung auf die Aufteilung in grundsätzliche Einheiten
Bisher wurden die Merkmale von Computern aus einer sehr grundsätzlichen Sicht
erläutert. Wenn man nun mehr ins Detail geht, muss man Schnittstellen definieren.
Das wiederum gelingt nicht, ohne den Anwendungshintergrund zu berücksichtigen.
Microcontroller-Schnittstelle
Am einfachsten ist der Fall, in dem alle zentralen Einheiten auf einem einzigen Chip
realisiert sind. Das gilt für die sogenannten Microcontroller, die überwiegend für die
Realisierung elektronischer Steuerschaltungen verwendet werden. Dort gibt es nur
eine Schnittstelle nach außen, die flexibel an verschiedenste Anwendungen
angepasst werden kann. Der dma-Datenverkehr entfällt (Bild 2.30).
Befehlsstrom
Prozessor
Speicher
Datenströme
Ein/Ausgabe
Eine Schnittstelle, die eine
flexible, anwendungsgerechte
Anpassung für die Realisierung
elektronischer Steuerschaltungen
erlaubt
Bild 2.30: Microcontroller-Struktur: alle zentralen Einheiten auf einem Chip
Wenn man alle zentralen Funktionseinheiten auf einem einzigen Chip realisiert, dann
muss man ihre Leistungen dem verfügbaren Platz anpassen. Das gilt besonders für
die Anzahl der Ein/Ausgabe-Pins. Die Programmverarbeitung mit Microcontrollern ist
bei weitem nicht so leistungsfähig wie die der Mikroprozessoren, die ja bewusst auf
Hochleistung hin entworfen werden.
Schnittstellen in komplexen Computersystemen
Komplexe Computersysteme kann man nur entwerfen, wenn man bestimmte
Anforderungen an die Modularisierung berücksichtigt (Bild 2.31).
Eine Schnittstelle,
die Mehrprozessorstruktur erlaubt
Eine Schnittstelle,
die modulare Speichererweiterung erlaubt
Befehlsstrom
Prozessor
Datenströme
Ein/Ausgabe
Speicher
Eine Schnittstelle, die eine
flexible, anwendungsgerechte
Anpassung der Ausstattung mit
Peripherie-Geräten erlaubt
Bild 2.31: Schnittstellen für die Modularisierung in komplexen Computersystemen
Bild 2.32 zeigt nun die konkreten Schnittstellen.
Computertechnik
83
Jacob
Der Einfluss der Anwendung auf die Aufteilung in grundsätzliche Einheiten
SpeichermodulSchnittstelle
Host-BusSchnittstelle
steckbares
Prozessormodul
Befehlsstrom
ProzessorSchnittstellen
anpassung
Speichersteuerung
Datenströme
Ein/AusgabeSchnittstellenanpassung
steckbares
Gerätesteuerungsmodul
steckbares
Speichermodul
Ein/AusgabebusSchnittstelle
verlötetes
Gerätesteuerungs-IC
gerätespezifische
Schnittstellen
Bild 2.32: Die konkreten zentralen Schnittstellen
Die Konkurrenz auf dem Computermarkt zwingt dazu, Standards für die Schnittstellen zu bestimmen.
Das gilt für die zentrale Ein/Ausgabe-Schnittstelle. Früher galt der ISA-Bus-Standard
(industry standard architecture). Heute hat sich der PCI-Bus-Standard (peripheral
component interface) durchgesetzt.
Auch die Speichermodule werden abhängig vom Entwicklungsfortschritt zügig von
der Organisation JEDEC standardisiert.
Bei den Prozessormodulen ist der jeweilige Prozessor-Hersteller allein maßgeblich.
Die gerätespezifischen Schnittstellen werden ebenfalls von einschlägigen Organisationen standardisiert, die Geräte- und Computer-Hersteller zusammenführen.
Die Trennung von Befehls- und Datenstrom ist nur für Detailanalysen wichtig. Bei
übergeordneten Analysen fällt sie im Folgenden weg.
2.9 Elementare Datenübertragungsvorgänge
Der Datenfluss zwischen dem Prozessor und dem Hauptspeicher
Die Programmablaufsteuerung des Prozessors sorgt dafür, dass sich fortlaufend
elementare Lese- und Schreib-Vorgänge zum Hauptspeicher bilden. Je mehr solcher
Vorgänge pro Zeiteinheit nacheinander abgewickelt werden können, umso mehr
Verarbeitungsergebnisse entstehen pro Zeiteinheit.
Alle Verbesserungen im Sinne eines größeren Programmdurchsatzes setzen u. a. an
der Frage an, diese Elementar-Vorgänge so schnell wie möglich aufeinander folgen
zu lassen, weil sie den Hauptdatenfluss des Systems bestimmen.
Computertechnik
84
Jacob
Elementare Datenübertragungsvorgänge
SpeichermodulSchnittstelle
Host-BusSchnittstelle
ProzessorSchnittstellen
anpassung
steckbares
Prozessormodul
Die Initiative für einen Zugriff
liegt beim Prozessor.
Lese-Zugriff zum
Hauptspeicher
Speichersteuerung
steckbares
Speichermodul
Ein Speicherwort mit Hilfe einer eindeutigen Adresse auswählen
Inhalt des ausgewählten Speicherwortes liefern
Zweck: Befehle bzw. Operanden für die Befehle holen
Ein Speicherwort mit Hilfe einer eindeutigen Adresse auswählen
Schreib-Zugriff zum
Hauptspeicher
Inhalt des ausgewählten Speicherwortes mit geliefertem Wort überschreiben
Zweck: Verarbeitungsergebnis eines Befehls speichern
Bild 2.33: Lese- und Schreibzugriffe als Elementar-Vorgänge im Datenverkehr
zwischen Prozessor und Hauptspeicher
Der Datenfluss zwischen dem Prozessor und dem Ein/AusgabeSpeicherbereich
Die Aktionen der Ein/Ausgabegeräte erfüllen nur den Zweck, der ihnen von den
Programmen, die im Prozessor ablaufen, gegeben wird. Das bedeutet, dass Daten
von und zu den Geräten dann und nur dann fließen, wenn entsprechende Befehle im
Prozessor das anstoßen; auf einer abstrakteren Ebene kann man sagen: wenn sie
dazu einen Eingabe- oder Ausgabe-Auftrag bekommen haben.
Ein Auftrag kann die Übertragung eines einzelnen Wortes bewirken (Einzeldatenübertragung). Im Sinne der Ausnutzung der vorhandenen Möglichkeiten ist das eine
sehr ineffektive Lösung. Effektiver ist die Übertragung mit Datenblöcken. Da die
Daten eines solchen Datenblockes sequentiell nacheinander mit der größtmöglichen
Geschwindigkeit übertragen werden, heißt der Übertragungsvorgang auch Burst .
Ziel der Auftragsvergabe durch ein Programm ist es, die Steuereinheit des
Ein/Ausgabegerätes in die Lage zu versetzen, den Übertragungsauftrag völlig
selbständig ausführen zu können. Dazu muss die Steuereinheit einen vollständigen
Satz mit den genauen Angaben zum Auftrag (Auftragsparameter) bekommen und
sie muss in der Lage sein, direkte Hauptspeicherzugriffe zu veranlassen.
Die Auftragsparameter geben an,
• ob es sich um eine Übertragung vom Hauptspeicher zum Ein/Ausgabegerät hin
handelt (Ausgabe) oder eine vom Ein/Ausgabegerät zum Hauptspeicher hin
(Eingabe),
• Wo das erste Hauptspeicherwort für die Ausgabe bzw. die Eingabe liegt (die
folgenden Adressen können fortlaufend durch Erhöhung um 1 gebildet werden),
• wie viele Speicherwörter nacheinander zu übertragen sind.
Die Auftragsparameter sind also:
• die Übertragungsrichtung,
• die Anfangsadresse des Hauptspeicherbereiches,
• die Blocklänge.
Computertechnik
85
Jacob
Elementare Datenübertragungsvorgänge
Host-BusSchnittstelle
steckbares
Prozessormodul
ProzessorSchnittstellen
anpassung
Ein/AusgabeSchnittstellenanpassung
Ein/AusgabebusSchnittstelle
steckbares
Gerätesteuerungsmodul
Die Initiative für einen Zugriff
liegt beim Prozessor.
Lese-Zugriff zum
Ein/AusgabeSpeicherbereich
Schreib-Zugriff zum
Ein/AusgabeSpeicherbereich
verlötetes
Gerätesteuerungs-IC
gerätespezifische
Schnittstellen
Ein Ein/Ausgabe-Speicherwort mit Hilfe einer eindeutigen Adresse auswählen
Inhalt des ausgewählten Eingabe-Speicherwortes liefern
Zweck: Zustand (Status) einer Steuereinheit einlesen
Ein Speicherwort mit Hilfe einer eindeutigen Adresse auswählen
Inhalt des ausgewählten Ausgabe-Speicherwortes mit geliefertem Wort überschreiben
Zweck: Mit Hilfe eines Command-Wortes eine Steuermaßnahme in einer Steuereinheit anregen
Bild 2.34: Lese- und Schreibzugriffe im Datenverkehr zwischen dem Prozessor und
dem Ein/Ausgabe-Speicherbereich
Für jeden der Auftragsparameter ist in der Steuereinheit eines Ein/Ausgabegerätes,
das selbständig Daten im dma-Datenverkehr übertragen kann, eine Speicherzelle
(Register) vorgesehen. Wenn ein bestimmtes Ein/Ausgabegerät einen bestimmten
Auftrag ausführen soll, schreibt der Prozessor nacheinander die Werte der
Auftragsparameter in die Register. Sobald der letzte relevante Auftragsparameter in
der Steuereinheit angekommen ist, kann diese mit der selbständigen Abwicklung des
Übertragungsauftrages beginnen. Der Status der Abwicklung ist in einem (oder in
mehreren) Register(n) der Steuereinheit für den Prozessor lesbar vermerkt.
Ein wichtiges Status-Ereignis ist das Ende-Ereignis des Übertragungsvorganges.
Dieses Ereignis ist so wichtig, dass man es nicht nur ablesbar macht, sondern mit
ihm auch einen Eingriff in den Programmablauf verbinden kann, also einen Interrupt.
Die schreib- und lesbaren Register aller Steuereinheiten der Ein/Ausgabegeräte
eines Systemes bilden zusammen den Ein/Ausgabespeicherbereich des Systems.
In der Regel ist die Blocklänge (also die Anzahl der im Burst übertragenen Wörter)
ein deutliches Vielfaches der Anzahl der Wörter, die zur Übertragung der Auftragsparameter in die Steuereinheit bzw. zum Auslesen von Statusdaten aus der Steuereinheit gebraucht werden.
Der Datenfluss zwischen dem Prozessor und den Steuereinheiten der Ein/Ausgabegeräte ist also vernachlässigbar gegenüber dem Datenfluss zwischen den Steuereinheiten und dem Hauptspeicher.
Computertechnik
86
Jacob
Elementare Datenübertragungsvorgänge
Der Datenfluss zwischen den Ein/Ausgabegeräten und dem Hauptspeicher
SpeichermodulSchnittstelle
Speichersteuerung
steckbares
Speichermodul
Ein/AusgabeSchnittstellenanpassung
Ein/AusgabebusSchnittstelle
Die Initiative für einen Zugriff
liegt bei der dma-fähigen
Steuereinheit des Ein/Ausgabegerätes
Lese-Zugriff zum
Hauptspeicher
Schreib-Zugriff zum
Hauptspeicher
steckbares
Gerätesteuerungsmodul
verlötetes
Gerätesteuerungs-IC
gerätespezifische
Schnittstellen
Ein Hauptspeicherwort mit Hilfe einer eindeutigen Adresse auswählen
Inhalt des ausgewählten Hauptspeicherwortes liefern
Zweck: dma-Steuereinheit liest ein Hauptspeicherwort, das auf einer Disk gespeichert
oder mit einem Ausgabegerät ausgegeben werden soll.
Ein Hauptspeicherwort mit Hilfe einer eindeutigen Adresse auswählen
Inhalt des ausgewählten Hauptspeicherwortes mit geliefertem Wort überschreiben
Zweck: dma-Steuereinheit liefert ein Hauptspeicherwort, das auf einer Disk gelesen
oder mit einem Eingabegerät eingegeben wurdel.
Bild 2.35: Lese- und Schreibzugriffe im Datenverkehr zwischen den dma-fähigen
Ein/Ausgabegeräten und dem Hauptspeicher
Immer dann, wenn ein Ein/Ausgabegerät einen dma-Übertragungsauftrag ausführt,
kommt es muss sowohl der Datenfluss von/zum Prozessor als auch der Datenfluss
von/zum Gerät ausgeführt werden. Der Entwurf der Schaltungen hat die Aufgabe,
dafür zu sorgen, dass die „Überlagerung“ nicht zu einer gegenseitigen Verdrängung
(also Verzögerung des einen zu Gunsten des anderen) führt.
Ein guter Systementwurf wird immer dafür sorgen, dass die Zugriffe zum Speicher
durch den Prozessor und die durch die Ein/Ausgabegeräte im Gleichgewicht
gehalten werden können, so dass kein Nadelöhr-Effekt entsteht.
Der Systementwurf hat noch ein weiteres Problem zu lösen: der Programmablauf im
Prozessor kann nämlich nacheinander mehrere Übertragungsaufträge an verschiedene Ein/Ausgabegeräte schicken, bevor vorausgehende fertig gemeldet worden
sind. Das bedeutet, dass auch die betroffenen Gerätesteuerungen untereinander
beim Zugriff zu den Übertragungsmedien koordiniert werden müssen.
Computertechnik
87
Jacob
Programmsteuernde Ereignismeldungen
2.10 Programmsteuernde Ereignismeldungen
Die Ein/Ausgabebus-Schnittstelle
Die Bus-Schnittstelle, die die Pin-Funktionen an den steckbaren bzw. fest verlöteten
Gerätesteuerungen eindeutig vorgibt, hat zwei Hauptfunktionen:
die Funktion der Datenübertragung und
die Funktion der Übertragung von Ereignismeldungen zur Programmsteuerung, die
als Interrupt-Anforderungen zum Prozessor übertragen werden.
Ereignismeldungen=
Interrupt-Anforderungen
Daten
steckbares
Gerätesteuerungsmodul
Daten
verlötetes
Gerätesteuerungs-IC
Bild 2.36: Die beiden Hauptfunktionen der Ein/Ausgabe-Schnittstelle: Daten und
Interrupt-Anforderungen übertragen
Der Fluss der Interrupt-Anforderungen in Ein-Prozessor-Strukturen
Die Aufgabe jeder einzelnen Gerätesteuerung legt fest, wie viele unterscheidbare
Interrupt-Anforderungssignale sie benötigt. Bei den üblichen Peripheriegeräten
genügt es, nur eine einzige Signalleitung zur Meldung einer Anforderung vorzusehen. Für komplexere Geräte sollten mehr möglich sein. Die Gesamtzahl der
(unabhängig voneinander) aktivierbaren Interrupt-Anforderungssignale ist davon
abhängig, wie viele Geräte und damit Gerätesteuerungen im Computersystem
konfiguriert werden.
Die grundsätzlichen Funktionen werden zunächst aus der Sicht eines Ein-ProzessorSystems entwickelt.
Im Grundzyklus eines Prozessors erkennt man die Tatsache einer Interrupt-Anforderung am Wert einer einzigen binären Zustandsvariablen, die die Tatsache Interrupt
Anforderung da/nicht da angibt. Das bedeutet, dass die Tatsache Interrupt
Anforderung da/nicht da durch „Überlagerung“ aus den einzelnen Anforderungssignalen gebildet werden muss (Bild 2.37).
steckbares
Prozessormodul
Aus mehreren einzelnen
Interrupt-Anforderungen
eine einzige abfragbare machen!
Ereignismeldungen=
Interrupt-Anforderungen
steckbares
Gerätesteuerungsmodul
verlötetes
Gerätesteuerungs-IC
Bild 2.37: Der Fluss der Interrupt-Anforderungen
In formal-logischer Ausdrucksweise würde man sagen: Interrupt-Anforderung da,
wenn Einzel-Anforderung 1 da oder Einzelanforderung 2 da oder .. oder Einzelanforderung n da.
Computertechnik
88
Jacob
Programmsteuernde Ereignismeldungen
Die hierdurch erzeugte Anforderung bezeichnet man als Sammelanforderung.
Durch die Bildung einer Sammelanforderung entsteht aber ein Problem: sobald man
erkannt hat, dass überhaupt eine Interrupt-Anforderung vorliegt, muss man untersuchen, welche einzelne Interrupt-Anforderung diese überhaupt ausgelöst hat. Es
braucht nicht eine einzelne zu sein; es können auch mehrere gleichzeitig sein.
Dadurch entsteht das Problem, diejenige Anforderung auszuwählen, deren
Befehlsfolge letztendlich ausgeführt werden soll.
Das Auswahlproblem ist nur lösbar, wenn man die gleichzeitig anliegenden Anforderungen in einer eindeutigen Rangfolge (Priorität) anordnen kann und dadurch
eindeutig eine Anforderung erhält, die den höchsten Rang hat.
Die Auswahl und Offenbarung der wichtigsten Anforderung ist die Hauptaufgabe der
Interrupt-Steuer-Einheit (Interrupt Controller) bezeichnet. Man kann diese Einheit
an verschiedenen Stellen im Fluss der Anforderungen positionieren.
Als erste Alternative könnte man sie in die Prozessor-Einheit integrieren. Bild 2.38
zeigt das Problem, das dann entsteht.
steckbares
Prozessormodul mit
Interrupt-Controller
steckbares
Gerätesteuerungsmodul
verlötetes
Gerätesteuerungs-IC
Bild 2.38: Interrupt-Controller im Prozessor: alle Interrupt-Request-Signale an der
Schnittstelle des Prozessors
Für einen Interrupt-Controller im Prozessor muss die Prozessorschnittstelle alle
möglichen Interrupt-Request-Signale des Computer-Systemes enthalten. Die
Offenbarung der höchst prioren Interrupt-Anforderung im Prozessor ist der Vorteil.
Mit einem Interrupt-Controller außerhalb des Prozessors lässt sich der Nachteil (dem
man früher mehr Bedeutung beimessen musste als heute) vermeiden.
steckbares
Prozessormodul
SammelInterruptAnforderung
Interrupt-Controller
verlötetes
Gerätesteuerungs-IC
steckbares
Gerätesteuerungsmodul
Bild 2.39: Interrupt-Controller außerhalb des Prozessors: Sammel-InterruptAnforderung zum Prozessor
Computertechnik
89
Jacob
Programmsteuernde Ereignismeldungen
Interrupt-Controller-Konzept (erste Intel-Generation mit ISA-Bus)
Sobald man den Interrupt-Controller außerhalb des Prozessors vorsieht, muss man
beachten, dass auch die Entscheidung über die höchstpriore Interrupt-Anforderung
außerhalb stattfindet. Das bedeutet, dass man einen Weg finden muss, wie man die
höchstpriore Anforderung gegenüber dem Prozessor „offenbart“. Zur Kennzeichnung
eines einzelnen Anforderungssignales ist ein eindeutiges Merkmal nötig, das man als
übertragbares Datenwort kodiert. Für die Übertragung des Datenwortes steht der
normale Datenpfad zur Verfügung. Deshalb ergibt sich bei diesem Konzept immer
zuerst eine Sammel-Interrupt-Anforderung und danach ein Vorgang, bei dem der
Interrupt-Controller das Merkmal des höchstprioren Interrupt als Datenwort schickt
(Bild 2.40).
Das Lesen dieses Datenwortes unterscheidet sich von dem normalen Lesen und wird
Interrupt-Bewilligung (interrupt acknowledge) genannt. Sie wird durch das
entsprechende Signal gesteuert.
Meldung des
Interrupt-Request mit der
höchsten Priorität über den
normalen Datenpfad
steckbares
Prozessormodul
ProzessorSchnittstellen
anpassung
InterruptAcknowledge
Request-Merkmal
Sammel-InterruptRequest
ISA-Interrupt-Controller
ODER
Speichersteuerung
steckbares
Speichermodul
Ein/AusgabeSchnittstellenanpassung
ISA
ISA-Bus
ISA
Int.
Requ.
steckbare ISAGerätesteuerungseinheit
Bild 2.40: Die Bildung der Sammel-Interrupt-Anforderung im Interrupt-Controller
außerhalb des Prozessors, Übertragung des Merkmals der höchst prioren InterruptAnforderung direkt zum Prozessor (ISA-Konzept).
Szenario: Zwei Geräte-Anforderungen (rot markiert) sind beispielhaft gleichzeitig aktiv.
Das Konzept in Bild 2.40 ist das Konzept der frühen PC-Systeme mit dem ISA-Bus
als Ein/Ausgabebus-Schnittstelle. Das Konzept wurde im Prinzip beibehalten, als
sich der PCI-Bus bzw. die AGP-Schnittstelle (die nur eine spezielle PCI-Schnittstelle
ist) als Ein/Ausgabebus-Schnittstellen durchsetzten.
Für den Fluss der Interrupt-Anforderungen musste man das alte Konzept erweitern.
Man nutzte die Freiheit des neuen Standards, um die Interrupt-Anforderungssignale
nicht mehr einzeln zum Interrupt-Controller zu übertragen (Bild 2.41). Die „geerbten“
Interrupt-Anforderungen mussten weiterhin berücksichtigt werden, weil man ja Kompatibilität zu den Vorgänger-Systemen wahren wollte.
Computertechnik
90
Jacob
Programmsteuernde Ereignismeldungen
Interrupt-Controller-Konzept (folgende Generation mit PCI-Bus)
Auf dem PCI-Bus sind vier Leitungen zur Übertragung von Interrupt-Anforderungen
(requests) vorgesehen: INTA, INTB, INTC und INTD (die signaltechnisch als avtivelow-Signale genutzt werden). Die einzelnen Gerätesteuereinheiten teilen sich in die
Benutzung dieser Leitungen zur Übertragung ihrer Anforderungen. Dabei wird der
elektronische Trick des „wired OR“ benutzt. Damit schaffte man sich auch bei den
PCI/AGP-Steuereinheiten ein Offenbarungsproblem, dessen Lösung später diskutiert
wird.
Die Steckkarte in der AGP-Schnittstelle kann zwei PCI-Interrupt-Request-Leitungen
nutze, und zwar INTA oder INTA und INTB.
Host-BusSchnittstelle
SpeichermodulSchnittstelle
ProzessorSchnittstellen
anpassung
steckbares
Prozessormodul
Speichersteuerung
Ein/AusgabeSchnittstellenanpassung
SammelInterruptRequest
PCI
AGP
PCI
ererbter ISA-Interrupt-Controller
mit PCI-Anpassung
PCI
Anpassung
INTA-INTD
PCI-Interrupt-Req.
Übertragung
PCI steckbares
Gerätesteuerungsmodul
steckbares
Speichermodul
PCI verlötetes
Gerätesteuerungs-IC
nichtPCI
AGP steckbares Gerätesteuerungsmodul
AGP
Die AGP-Steckkarte
kann die PCI-InterruptRequests INTA oder
INTA und INTB
benutzen.
Int.
Requ.
integrierte
Gerätesteuerungseinheit
Bild 2.41 : Fluss der Interrupt-Anforderungen in einem Computersystem mit einem
PCI-Bus und einer AGP-Schnittstelle
Der direkte Pfad vom Interrupt-Controller zum Prozessor, um die Interrupt-Merkmale
während der Interrupt-Acknowledge-Phase zu übertragen, wurde aufgegeben. Die
Protokolle des Hostbus und des PCI-Bus enthalten dafür spezielle Buszyklen, die
Interrupt-Acknowledge-Zyklen. Sobald der Prozessor aufgrund eines SammelInterrupt-Request eine Interrupt zulässt, initiiert er einen solchen Zyklus, der zu
einem entsprechenden auf dem PCI-Bus führt. Das bedeutet für den InterruptController, dass er das Merkmal des höchstprioren senden soll. Der InterruptController handelt also nach einem Abfrage-Prinzip.
Computertechnik
91
Jacob
Programmsteuernde Ereignismeldungen
Host-BusSchnittstelle
SpeichermodulSchnittstelle
ProzessorSchnittstellen
anpassung
steckbares
Prozessormodul
Speichersteuerung
Ein/AusgabeSchnittstellenanpassung
SammelInterruptRequest
PCI
AGP
PCI
AGP
ererbter ISA-Interrupt-Controller
mit PCI-Anpassung
PCI
Anpassung
INTA-INTD
PCI-Interrupt-Req.
Übertragung
PCI steckbares
Gerätesteuerungsmodul
steckbares
Speichermodul
PCI verlötetes
Gerätesteuerungs-IC
AGP steckbares Gerätesteuerungsmodul
nichtPCI
Int.
Requ.
integrierte
Gerätesteuerungseinheit
Bild 2.42: Sammel-Interrupt-Anforderung und Übertragung des Merkmals der
höchstprioren Anforderung
Szenario:
Zwei Anforderungen, die sich auf INTA melden und eine interne nicht-PCI-Anforderung
wollen bedient werden. Der Controller muss die höchstpriore bestimmen und deren Merkmal
melden. Das Merkmal wird mit Hilfe von abfragenden Buszyklen über die normalen
Datenpfade zum Prozessor übertragen (interrupt acknowledge cycle).
Alternatives Interrupt-Controller-Konzept für Mehrprozessor-Systeme
Die Notwendigkeit eines prinzipiell anderen Ansatzes ergibt sich im Zusammenhang
mit Mehrprozessor-Strukturen.
Dann nämlich entstehen Interrupt-Anforderungen nicht mehr nur im InterruptController an der Ein/Ausgabeschnittstelle (input/output interrupt controller), sondern
auch in den Prozessor-Einheiten, die sich auf diese Art gegenseitig Ereignismeldungen schicken können.
Damit gibt es in der Host-Bus-Schnittstelle nicht nur die einzelne Signalleitung für die
Sammelinterrupt-Anforderung, sondern mehrere Signalleitungen für ein mehrprozessor-fähiges Übertragungssystem für Interrupt-Anforderungen (Bild 2.43). Dieses
System muss in der Lage sein, die Merkmale von Interrupt-Anforderungen als Datenwörter zu übertragen.
Man hat die Möglichkeit, für jedes Bit des Merkmal-Wortformates je eine Signalleitung vorzusehen oder man kann die Bits der Merkmale seriell über einige wenige eine Realisierung von Intel hat 3 - Signalleitungen übertragen.
Computertechnik
92
Jacob
Programmsteuernde Ereignismeldungen
Die erste Möglichkeit ist die schnellere, aber sie hat einen größeren Leitungsaufwand. Wenn man den Takt für die serielle Übertragung genügend groß machen
kann, ist die Übertragungszeit für die Merkmale genügend klein, so dass man den
Vorteil des geringeren Leitungsaufwandes nutzen kann.
Host-BusSchnittstelle
steckbares
Prozessormodul
Mehrprozessor-fähiger
Bus zur Übertragung der
Interrupt-Merkmale
(Interrupt-Requests und
Quittungen): APIC-Konzept
SpeichermodulSchnittstelle
ProzessorSchnittstellen
anpassung
ererbter
SammelInterruptRequest
Speichersteuerung
Ein/AusgabeSchnittstellenanpassung
PCI
AGP
PCI
AGP
ererbter ISA-Interrupt-Controller
mit PCI-Anpassung
PCI
Anpassung
INTA-INTD
PCI-Interrupt-Req.
Übertragung
PCI steckbares
Gerätesteuerungsmodul
steckbares
Speichermodul
AGP steckbares Gerätesteuerungsmodul
Ein/AusgabeSchnittstelle =
PCI-Bus
als universelle Schnittstelle,
spezielle PCI-Schnittstelle (AGP)
für das Graphiksystem
nichtPCI
Int.
Requ.
PCI verlötetes
Gerätesteuerungs-IC
integrierte
Gerätesteuerungseinheit
gerätespezifische
Schnittstellen
Bild 2.43: Fluss der Interrupt-Anforderungen mit Mehrprozessor-Fähigkeit und
Kompatibilität zu ererbten Ein/Ausgabe-Schnittstellenstrukturen
Das Übertragungssystem für die Interrupt-Anforderungen ist sowohl für den
Ein/Ausgabe-Interrupt-Controller als auch für die Prozessoren erreichbar. Man muss
ein Übertragungsprotokoll definieren, damit ein geordneter Zugriff zu dem System
stattfinden kann. Ein typisches Merkmal zur Sicherung der Übertragung ist z.B., dass
nach der Übertragung einer Anforderung eine Quittung zurückgeschickt wird, um den
Empfang zu bestätigen.
Computertechnik
93
Jacob
Computerklassen
3 Stand der Computertechnik
3.1 Computerklassen
Heute wird die Sprachregelung der Computertechnik noch mehr als früher von
Marketing-Strategien der Computerhersteller bestimmt, die solche Begriffe wie Mikrooder Minicomputer nicht mehr verwenden. Auch einige Computerkonzepte sind heute
vom Markt verschwunden. Der aktuelle Stand des Markts und der herkömmlichen
Computerinstallationen sowie der Begriffe ist in Bild 3.1 erkennbar.
im Büro
Embedded
Mikrocontroller
PersonalComputer
in Computersystemen
Workstation
z.B. Peripheriegeräte
in der Produktion
in herkömmlichen
Mehrbenutzersystemen
in HöchstleistungsRechenzentren
herkömmliche
MehrbenutzerComputer
herkömmliche
Mainframes
in der KraftfahrzeugElektronik
Embedded Computer
in der
Leitsystemtechnik
in der Meß-, Regelund Steuerungstechnik
Embedded Computer:
Steuerung einer einzelnen Produktionseinheit
in Computernetzen
Server mit EinProzessorStruktur
in der Unterhaltungselektronik
Programmierbare
Steuerung für einzelne Produktionseinheit
Server mit MultiProzessorStruktur
Vektorcomputer
Supercomputer
mit HöchstleistungsMultiprozessorStruktur
Bild 3.1: Aktuelle marktkonforme Einteilung in Computerklassen
Die Klassifikation spiegelt die unterschiedlichen Anforderungen der Anwendungsgebiete wider. Diese kann man gemäß steigenden Anforderungen an die Verarbeitungsgeschwindigkeit ordnen:
• Gerätetechnik
• Büro oder Produktion
• Serverleistungen in Computernetzen
• Höchstleistungs-Rechenzentren.
Die controller- bzw. computergestützte Anwendung erfüllt einen bestimmten Zweck:
• ein Gerät hat eine genau spezifizierte Funktion und für diese Funktion wird die
Steuerschaltung entworfen und gebaut;
• ein Produktionsprozess gilt der Herstellung von Produkten nach genau
bestimmten Regeln, die mit Hilfe von Computern eingehalten werden.
3.2 Computer in industriell produzierenden Anlagen
Im Folgenden wird das industrielle Anwendungsfeld von Computersystemen und
Mikrocontrollern untersucht; denn Computertechnik gibt es nicht nur als die
massenweise eingesetzten Desktop-Computer, die heute sicher zur Alltagserfahrung
der Leser dieses Skriptums gehören.
Produktionsprozesse lassen sich nach typischen Merkmalen einteilen (Bild 3.2).
Computertechnik
94
Jacob
Computer in industriell produzierenden Anlagen
Kontinuierliche Prozesse:
Die verarbeiteten Stoffe sind
„fließend“, also gasförmig, flüssig
oder granuliert. Die Verarbeitung
ist zeitkontinuierlich und gestaltlos
(amorph).
Prozesse der chemischen Technik
und der Verfahrenstechnik.
Diskontinuierliche Prozesse:
Die verarbeiteten Stoffe sind fest.
Die Verarbeitung ist zeitdiskontinuierlich und ändert
schrittweise gesteuert die
Gestaltmerkmale der Stücke.
Prozesse der Fertigungstechnik.
Bild 3.2: Einteilung industrieller Produktionsprozesse
Der Einsatz von Computern gilt nun nicht nur den Produktionsprozessen, sondern
auch allen anderen notwendigen Aktivitäten eines Unternehmens. Die unternehmensweite Informationstechnik lässt sich in Forschung und Entwicklung (Technische
Informationstechnik) und Fertigung/Produktion (Kommerzielle Informationstechnik)
gliedern (Bild 3.3).
Die kommerzielle IT beschäftigt sich
mit der der Planung und Ausführung
der Produktion in den Anlagen.
Die technische IT beschäftigt sich mit der
Entwicklung neuer Produkte und der
Planung und dem Bau neuer Anlagen zu
ihrer Produktion.
Bild 3.3: Grundsätzliche Aufteilung der Informationstechnik in einem Unternehmen
Die Technische Informationstechnik ist ein Anwendungsfeld für Hochleistungs-Server
und –Workstations. - Die kommerzielle Informationstechnik dient letztlich der
konkreten Erwirtschaftung von Gewinn. Für Computersysteme gibt es die HauptAnwendungsfelder:
Vertrieb/Buchhaltung/Controlling: datenbank-orientierte Hochleistungsserver im
Verbund mit Workstations;
laufende Fertigung/Produktion: angepasste Automatisierungssysteme.
Computertechnik
95
Jacob
Computer in industriell produzierenden Anlagen
Das Segment für die Fertigung/Produktion soll genauer untersucht werden (Bild 3.4).
Bild 3.4: Die Leitebenenstruktur eines Fertigungs/Produktions-Betriebs
Grundsätzlich gibt es in einem Unternehmen eine Instanz, die die Unternehmensziele
festlegt und mehrere Instanzen, die das umsetzen. Bildhaft drückt man die
„Befehlsgewalt“ in einem hierarchischen „von oben nach unten“ Modell aus und
spricht von einem hierarchischen Ebenenmodell. An der Spitze des Modells liegt die
Unternehmensleitebene. Die Vorgaben dieser Ebene werden von der Ebene
umgesetzt, die für die zweckbestimmte Planung und den entsprechenden Ablauf der
Produktion verantwortlich ist: die Produktionsleitebene.
Das Produktions-Planungs-System (PPS) ist ein Programmsystem zur vertriebsgerechten Belegungsplanung der Produktionsmittel. Es gleicht Aufträge, Bereitstellung von Material, Belegung von Produktionsmitteln, Lagerverwaltung und
Versand so miteinander ab, dass keine behindernden Engpässe entstehen und sich
eine schnelle, aber auch kostengünstige Produktion ergibt.
Von dieser zentralen Produktionsplanungsebene ist die Betriebsleitebene zu
unterscheiden, die dafür verantwortlich ist, dass die Produktion nach Plan abläuft.
Ihre Hauptaufgabe ist also, die Produktionsmittel in einem Zustand zu halten, dass
Stillstände vermieden bzw. schnell behoben werden und die notwendige Qualität der
Produkte eingehalten wird.
Die Computer der Produktionsplanungs- und der Betriebsleitebene sind in der Regel
örtlich voneinander getrennt. Der notwendige Verbund wird durch ein Computernetz
hergestellt (Bild 3.5).
Der Leitende des Betriebs wird an der Einhaltung der Ziele gemessen, die die
Planung vorgibt. Er selbst misst seine Mannschaft daran, wie verlässlich sie die
Produktionsmittel beobachtet und zielgerichtet eingreift.
Computertechnik
96
Jacob
Computer in industriell produzierenden Anlagen
Die Standorte für die zentrale
Produktionsplanung und die Standorte der Betriebe bedingen die Vernetzung über ein unternehmensweites Computernetz.
Der technische Hintergrund bestimmt
die Bezeichnung der Betriebsleitebene: in der Fertigungstechnik spricht man von Fertigungsleitebene, in der Verfahrenstechnik
von Prozessleitebene.
Bild 3.5: Aufgabenteilung und Computerverbund in der Produktionsleitebene
Ausgedehnte Produktionsanlagen können dann sinnvoll beobachtet werden und man
kann dann sinnvolle Eingriffe machen (man sagt auch: bedienen), wenn man den
Überblick über alle Bedingungen der Produktion behält. Deshalb werden die entsprechenden Einrichtungen zum Beobachten und Bedienen meistens in zentralen
Warten zusammengefasst.
Zum Beobachten setzt man Bildschirme ein, die den Zustand des Prozesses mit Hilfe
von geeigneten Bildern veranschaulichen. Zum Bedienen setzt man eingabefähige
Bildschirme oder tischartige Pulte oder wandmontierte Geräte mit den gewünschten
Bedienmöglichkeiten ein.
Jede Produktionseinheit (z.B. eine Maschine in einem Fertigungsbetrieb oder ein
Reaktor in einem verfahrenstechnischen Betrieb) verfügt über ein oder mehrere
Steuereinheiten, die den Produktionsablauf automatisch steuern. Der Aufbau solcher
Steuereinheiten ist von den Merkmalen der Anwendung abhängig.
In der Fertigungstechnik überwiegt die Aufgabe, zeit- und stückdiskrete Produktionen
zu steuern. Das hat zu speziellen Computern geführt, die Ablaufsteuerungen
realisieren und Speicherprogrammierbare Steuerung (SPS) genannt werden.
In der Verfahrenstechnik überwiegt die Aufgabe, kontinuierliche Produktionen zu
steuern. Das hat zu speziellen Computern geführt, die überwiegend
regelungstechnische, aber auch ablaufsteuernde Funktionen erfüllen.
Jede Steuereinheit eines Produktionsmittels realisiert also ein Bündel von EinzelFunktionen, um den Betrieb des Produktionsmittels steuern. Fasst man die
Aktivitäten aller Steuereinheiten in einer Leitebene zusammen und sucht einen
brauchbaren Begriff, dann kann man von der Leitebene der FunktionsgruppenSteuerungen oder verkürzt Gruppenleitebene sprechen.
Die Einheiten der Betriebs- und Gruppenleitebene fasst man auch unter dem Begriff
Leitsystem zusammen.
Die Steuereinheiten können nur das Produktionsmittel nur dann sinnvoll steuern,
wenn sie Messwerte der produktionsbestimmenden Größen auswerten können und
Computertechnik
97
Jacob
Computer in industriell produzierenden Anlagen
daraus die Werte von Größen bestimmen können, die in den Produktionsprozess
eingreifen. Die Steuereinheiten stützen sich also auf Mess- und Stellgeräte, die die
endgültige Schnittstelle zum Produktionsprozess bilden.
Dem Stand der Technik entsprechend, werden Mess- und Stelleinheiten
untereinander und mit den übergeordneten Steuereinheiten durch ein
Leitungssystem mit Linienstruktur (Bus) verbunden, auf dem ein standardisiertes
Übertragungsprotokoll gilt.
Das gleiche gilt für die Verbindung der Steuereinheiten mit den Computern der
Betriebsleitebene (Bild 3.6).
Bild 3.6: Ebenenmodell eines Leitsystems mit Verbundstruktur
In der Verfahrenstechnik kommt es häufig vor, dass die Produktionsmittel in der
freien Luft über größere Flächen verteilt angeordnet sind. Man spricht vom Feld. Die
Ebene der Mess- und Stelleinheiten wird deshalb als Feldebene bezeichnet, das
Leitungssystem als Feldbus.
Diese Begriffsbildung gibt es in der Fertigungstechnik nicht, weil Steuereinheiten und
Mess- und Stellgeräte in aller Regel innerhalb einer Maschine bzw. Aggregates
„verbaut“ sind. Das Bus-Prinzip gilt aber innerhalb der Aggregate auch.
3.3 Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Da der PROFIBUS in der Fertigungs-, der Prozessautomatisierung und der Gebäudeleittechnik eingesetzt wird, gibt es unterschiedlich optimierte Varianten des
PROFIBUS: FMS steht für Fieldbus Messaging Specification, DP für Dezentrale
Peripherie und PA für Prozess-Automatisierung.
Bild 3.7 zeigt ein Beispiel für einen unterlagerten PROFIBUS-PA (process
automation), der besonderen Ex-Schutz-Bedingungen einer verfahrenstechnischen
Anlage genügt: http://www.profibus.com
Computertechnik
98
Jacob
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Bild 3.7: Feldbus-Struktur für ein Prozessleitsystem
Basissystem für die dezentrale Peripherie (PROFIBUS DP); unterlagerte PA-Struktur für den
Bereich mit besonderem Schutz vor Explosionen (PROFIBUS PA); bestehende Geräte mit
herkömmlichem analogem Signal zwischen 4 und 20 mA .
Istwert
Sollwert
Stellwert
Regler
Sollw ert
- Istw ert
Bild 3.8: Regelkreis-Schema eines Durchfluss-Regelkreises
Durchflussmessgerät liefert Istwert; Stellgerät wird mit Stellwert eingestellt; Ist- und Stellwert
werden über das Bussystem zur/von SPS übertragen; die Regelfunktion wird dort realisiert.
Bild 3.8 zeigt das Schema eines Durchfluss-Regelkreises: der Istwert wird über den
Bus zur SPS übertragen. Sie berechnet die Differenz vom Sollwert, errechnet daraus
über die Regelfunktion den Stellwert. Sie gibt den Stellwert an das Stellglied aus,
was mit Hilfe der Übertragung über den Bus zum Stellglied ausgeführt wird.
Im Folgenden werden einige prinzipielle Merkmale des PROFIBUS DP zusammengestellt (Bild 3.9).
Das Buskabel wird von Anschlussschaltung (Busterminal) zu Anschlussschaltung
geführt. Das ergibt eine linienhafte Struktur.
Computertechnik
99
Jacob
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Ein Busterminal hat folgende Aufgaben:
•
Es muss für eine geeignete Auskopplung eines elektrischen Signals zur angeschlossenen Schaltung sorgen, wenn von einem anderen Busterminal ein Signal
gesendet wird.
• Es muss eine geeignete Einkopplung eines elektrischen Signals sorgen, wenn die
angeschlossene Schaltung ein zu sendendes Signal vorgibt.
• Am Ein/Auskoppelpunkt muss der elektrische Übergangswiderstand vernachlässigbar groß sein, d.h. die Leitung muss wie „durchgeschleift“ wirken.
Bild 3.9: Beispielhafte Feldbus-Struktur des PROFIBUS DP
Man kann auf dem Bus nur bitseriell übertragen. Die Übertragungsgeschwindigkeit
gibt an, wie viele Bits pro sec übertragen werden können.
Die maximale Übertragungsgeschwindigkeit ist mit 12 MBit/sec spezifiziert, wobei der
Abstand zwischen den zwei am weitest entfernten Teilnehmern bis zu 1,2 km betragen darf.
Darüber hinaus muss die Fehlerfreiheit nicht mehr garantiert sein. Will man Teilnehmer mit
einem größeren Abstand erreichen, muss man für eine Regenerierung der Signale in einem
sog. Repeater sorgen. - Die Zahl der Repeater in einer Kette ist begrenzt, so dass eine
maximale Ausbreitung von 10 km zugelassen ist.
Die elektrische Verbindung zwischen Bus und Busterminal richtet sich nach dem
Anwendungsumfeld (Bild 3.10).
Auf den beiden Adern der Zwei-Draht-Übertragung werden bitserielle Spannungspulse übertragen, die immer einen entgegen gesetzten Wert haben, d.h. die zueinander invers sind. Auf dieser Basis kann man die elektrische Übertragung robust
gegen Störungen machen. Weitere Signale der Profibus-Schnittstelle sind zwar
definiert, aber nicht zwingend notwendig.
Computertechnik
100
Jacob
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Anschluss-Beispiel für industriellen Einsatz:
das zu- und das abgehende Kabel werden auf der
Klemmleiste einer speziellen Platine aufgelegt, die in
das schützende Gehäuse eingebaut ist; siehe Bild
3.11.
Anschlussbeispiel für unkritischen
Einsatz mit SUB-D-stecker
Bild 3.10: Beispiele für den Zwei-Adern-Anschluss eines PROFIBUS DP
3.4 Eingebettete Mikrocontroller
Anwendungsbeispiel: Steuereinheit für Stellantrieb
Die Steuereinheit in Bild 3.11 veranschaulicht einige typische Aufgaben für
mikrocontroller-gestützte Schaltungen in der Automatisierungstechnik der
Verfahrensindustrie (http://www.auma-stellantriebe.de):
•
Der Einstellzustand von Bedienelementen einer Bedienungseinheit (control
pannel) kann erfasst werden.
• Meldungen können auf einer Ausgabeeinheit, z.B. einem Display, ausgegeben
werden.
• Entsprechend der Änderung der Einstellung der Bedienelemente können
Steuersignale zum Antrieb erzeugt werden.
• Änderungen können nicht nur durch die Bedienelemente vor Ort eingestellt werden. Sie können auch von einer zentralen Leitwarte aus über weitere Entfernungen empfangen werden. Dafür gibt es an der Steuerung eine entsprechende
Schnittstelle, die für Datenübertragung geeignet ist. Die Kommandos müssen entschlüsselt und in Steuersignale für den Antrieb umgesetzt werden.
Computertechnik
101
Jacob
Eingebettete Mikrocontroller
Bild 3.11: Steuereinheit für einen Stellantrieb in einer verfahrenstechnischen Anlage
Der Rundstecker an der rechten Unterseite führt die Steuerleitungen zum Antriebsmotor, auf
dessen Gehäuse eine solche Antriebssteuerung aufmontiert wird; die Zuführung der
Starkstrom-Leitungen an der linken Unterseite.
Dazu kommen die Leitungen für Kommando- und Rückmelde-Signale von/zur Zentrale. Die
Kommandos und Rückmeldungen werden bitseriell über den Feldbus (Profibus DP)
übertragen.
Die grünen Platinen dienen der Steuerungselektronik. Die Logikplatine enthält den
Mikrocontroller. Alle anderen Elemente dienen der Leistungselektronik.
Prinzipielle Funktionsmerkmale von Mikrocontrollern
Mikrocontroller werden als Steuerzentralen in Geräten eingesetzt. Deshalb verfügen
sie über eine Schnittstelle zur Ein- und Ausgabe von binären und, bei entsprechendem Typ, auch analogen Signalen. Sie verfügen außerdem über einen Prozessorkern und Programm- und Datenspeicher. Sie sind programmierbar und durch ihre
Programmierbarkeit für unterschiedliche Anwendungen (man sagt: universell)
einsetzbar.
Eine technische Alternative sind die sog. ASICs (application specific integrated
circuit, ASIC). Dies sind Schaltungen, die speziell für einen einzigen Zweck
entworfen und in großintegrierter Form gefertigt werden. Sie sind entsprechend teuer
und lohnen sich nur, wenn eine Lösung mit Mikrocontroller nicht wirtschaftlicher ist.
Da auf einem Mikrocontroller alle drei Grundeinheiten (Prozessor, Speicher,
Ein/Ausgabe-Steuerung) integriert sind, muss man Kompromisse beim
Schaltungsumfang und damit beim Leistungsumfang schließen, weil ja nur eine
begrenzte Chipfläche für alle drei Einheiten zur Verfügung steht.
Für universell einsetzbare Computersysteme ist die Realisierungsstrategie anders:
ein spezieller IC für den Prozessor, andere spezielle für den Speicher und wieder
andere spezielle für die Steuereinheiten der Ein/Ausgabe.
Computertechnik
102
Jacob
Eingebettete Mikrocontroller
Ein konkretes Beispiel: Infineon C501
a) Allgemeines Funktionsschema mit Ausbau-Alternativen
ROM: maskenprogrammiert bei der Herstellung
ProzessorEinheit
Befehle
Konstanten
Variable
Jedes Bit einzeln Ein- und Ausgabe-fähig
Bitserielle
Ein/
Ausgabe
RAM für veränderliche Daten=
Variable
Interrupt-Bewilligung
Interrupt-Anforderung
Ein/Ausgabe -Daten
Bitparallele Ein/Ausgabe
ROM für Befehle
und unveränderliche Daten
=Konstanten
3 TimerZähler
Merkmal der höchstprioren
Interrupt-Anforderung oder
Controller-Einstellung
Interrupt
Controller
Eingabe-Wort je Zähler zwei getrennte
fertig=
abgelaufen=
InterruptInterruptInterrupt- AnforderungsAnforderung, Anforderung signale von
Ausgabe-Wort
außen
fertig=
InterruptAnforderung
Schnittstelle des
Microcontrollers
zur gesteuerten
Schaltung
OTP = one time programmable: einmal vom Kunden programmierbar
b) Detailliertes Funktionsschema
Bild 3.12: Das Funktionsschema des C501 (kompatibel zum 8051 von Intel)
Bild 3.12 schlüsselt an einem typischen realen Beispiel die Innenstruktur eines
Mikrocontrollers und damit auch seine Ein/Ausgabe-Schnittstelle auf. Man kann an
der Schnittstelle nach außen typische Merkmale feststellen:
• Man muss binäre Signale einzeln oder gruppenweise von der gesteuerten
Einheit einlesen können.
• Man muss binäre Signale einzeln oder gruppenweise zur gesteuerten Einheit
ausgeben können.
• Man muss nach Ablauf von vorgegebenen Zeiten zu eindeutig zugeordneten
Befehlsfolgen verzweigen können.
• Das gleiche muss gelten, wenn bestimmte externe Ereignissignale vorliegen.
• Man muss Datenwörter bitseriell von der gesteuerten Einheit empfangen können.
• Man muss Datenwörter bitseriell zu der gesteuerten Einheit senden können.
Computertechnik
103
Jacob
Eingebettete Mikrocontroller
All diese Funktionen sind in der Schnittstelle erkennbar. Nicht erkennbar ist eine
andere typische Funktion für bestimmte Anwendungen, nämlich die Ein- und die
Ausgabe von analogen Größen. Das berücksichtigt man in entsprechend
„mächtigeren“ Mikrocontrollern der gleichen „Mikrocontroller-Familie“.
Die Mitglieder einer Mikrocontroller-Familie unterscheiden sich nicht in den Befehlen,
die sie verarbeiten können, wohl aber im Funktionsumfang der Ein/Ausgabe-Einheit
und des Speichers.
Ein charakteristisches Merkmal von Mikrocontrollern ist, dass ihre Programme in
Nur-Lese-Speichern (read only memory, ROM) gespeichert sind, die ihren
Speicherinhalt auch beim Ausschalten des Stromes behalten; denn die Programme
müssen erhalten bleiben, wenn der Strom abgeschaltet wird. Eine aufwendige
Batteriepufferung für die flüchtigen Schreib-Lese-Speicher (random access memory,
RAM) ist damit vermeidbar.
Die nicht flüchtigen Programmspeicher können auch Daten enthalten, die sich nicht
ändern und deshalb Konstanten genannt werden.
Veränderliche Daten, also Variable, müssen in Schreib-Lese-Speichern realisiert
werden und dürfen flüchtig sein.
Man kann Mikrocontroller um einen externen Speicher erweitern. Das geht aber auf
Kosten der Ein/Ausgabe-Funktionen der bitparallelen Schnittstelle, die teilweise für
diese Erweiterung verwendet wird.
Die Interrupt-Anforderungen werden zu einem internen Interrupt-Controller geführt.
Für die interne Offenbarung der höchstprioren Interrupt-Anforderung wird das
schaltungstechnisch einfachste Verfahren angenommen: der Interrupt-Controller
sendet mit Hilfe einer binären Signalleitung eine Anforderung und der Prozessor
sendet auf einer anderen binären Signalleitung die Bewilligung zurück und erwartet
dabei, dass der Controller das Merkmal der höchstprioren Interrupt-Anforderung als
Eingabe-Datenwort liefert.
3.5 Computergestützte Automatisierungssysteme für mittlere und
kleine Anlagen
Leitsysteme dienen der Automatisierung ausgedehnter Produktionsanlagen mit
vielen Produktionseinheiten. Es handelt sich dabei um Großanlagen. - Es gibt aber
auch viele Automatisierungsprobleme, bei denen man eine Produktionseinheit allein
oder einige wenige automatisieren möchte, die in einem überschaubaren
Gebäudebereich angeordnet sind.
Bild 3.13 (http://www3.ad.siemens.de) zeigt eine konkrete Realisierung, und zwar in Form
einer Speicherprogrammierbaren Steuerung (SPS), die man auch kurz als
Programmierbare Steuerung bezeichnet.
Die Bezeichnung hatte früher den Zweck, diesen Typ von Steuerung, der seine Funktion
durch den Ablauf einer frei programmierbaren Befehlsfolge erfüllt, von den Steuerungstypen
zu unterscheiden, die ihre Funktion mit Hilfe von verdrahteten gedruckten Schaltungen
erfüllen.
Computertechnik
104
Jacob
Computergestützte Automatisierungssysteme für mittlere und kleine Anlagen
Alle diese Steuerungen stellen Kompaktlösungen dar. Je kleiner die Bauform, umso
kleiner ist die Zahl und der Typ der erfassbaren und ausgebbaren Größen.
Der Leistungsschwerpunkt liegt in der Realisierung von Ablaufsteuerungen.
Kompakt sind auch die Bedienungs- und Beobachtungs-Einheiten. In Leitsystemen
wird das sehr aufwendig durch Visualisierungssysteme in der Warte realisiert. Hier
erkennt man eine beispielhafte Kompaktlösung.
Bild 3.13: Speicherprogrammierbare Steuerung, Simatic S7
unten rechts Kompaktgerät S7-200, mitte rechts Mittelleistungssteuerung S7-300, oben
Hochleistungssteuerung S7-400 - ein Typ, der auch in dem o.g. Leitsystem eingesetzt wird.
Der Zweck einer Programmierbaren Steuerung ist, einen Fertigungsablauf zu garantieren, der nach der Planungs- und Erprobungsphase feststeht und solange sicher
reproduziert werden muss, wie keine Änderung der Produktion stattfindet. Man wird
also einen einmal programmierten und bestätigten Ablauf nicht mehr umprogrammieren. Deshalb werden die Programme (wie bei einem Mikrocontroller) in einen
Nur-Lese-Speicher gebrannt und stehen damit unabhängig von Spannungsausfällen
sicher zur Verfügung.
Eine ganz andere Bautechnik ist die sog. Hutschienenmontage (Bild 3.14).
Bild 3.14: Beispiel für eine Steuerung mit Hutschienemontage
In der kompaktesten Bauweise werden Module gleicher äußerer Bauform in Reihe
auf eine Schiene aufgeklemmt werden. Ein CPU-Modul wird durch Klemmen-Module
ergänzt, an die die Leitungsdrähte von/zum Prozess angeklemmt werden können.
Computertechnik
105
Jacob
PCs, Workstations und Server
3.6 PCs, Workstations und Server
Bezeichnungen und Markt
Mit den Begriffen Personal Computer und Workstation unterscheidet man grob zwei
Leistungsklassen von Arbeitsplatz-Computern. Man lässt die beiden Begriffe
bewusst unscharf.
Das zeigt folgende Definition aus einem Glossar. Workstation: Ein Ein-Nutzer-Computer, der
leistungsfähiger und schneller ist als die meisten Personal Computer. Er wird typischerweise
für graphik-intensive Anwendungen, wissenschaftliche Untersuchungen, CAD oder CAE und
andere Anwendungen verwendet, die hohe Prozessor-, Speicher- und Graphik-Leistung
brauchen.
Da sich die Leistungen der PCs laufend verbessern, müssen sich entsprechend auch die
Leistungen der Workstations verbessern. Mit anderen Worten: Was gestern noch
Workstation genannt wurde, weil es mit dem neuesten und schnellsten Mikroprozessor
ausgestattet war, kann heute zur Gruppe der PCs gezählt werden, weil ein neuer
Mikroprozessor als Hochleistungsprozessor auf den Markt kam und entsprechende
leistungsfähigere Workstations auf den Markt kommen. Das Gesetz dieses Marktes ist: neue
Prozessoren lassen frühere veralten, billiger werden und damit für den Massenmarkt der
PCs lukrativer werden.
PCs werden auf dem Markt als No-Name-Produkte oder als Marken-Produkte
angeboten, Workstations als Markenprodukte. Bekannte, weltweit anbietende
Hersteller sind zur Zeit:
• Dell: http://www.dell.com/
• Fujitsu-Siemens: http://www.fujitsu-siemens.de/
• Hewlett Packard: http://www.hp.com/
• IBM: http://www.ibm.com/
• Sun: http://www.sun.com/
Aufbautechnik von Desktop-PCs
Man unterscheidet die standort-festen Bauformen (Desktop in Turm- oder Flachbauweise, Bild 3.15) von den standort-variablen (Laptop, Notebook)
Bild 3.15: Schema eines Desktop-PC mit Einbaurichtung einer Erweiterungskarte
Die zentrale Bedeutung des Motherboards
Das Motherboard ist die zentrale bautechnische und funktionale Einheit in einem PC
bzw. einer Workstation.
Computertechnik
106
Jacob
PCs, Workstations und Server
Das ist das Ergebnis einer geschickten Aufteilung der Funktionen dieser Computer
durch geeignete Schnittstellen (Bild 3.16).
Man erkennt die Funktionsgrenzen eines Motherboards an seinen Schnittstellen:
• Die Prozessor-Sockel oder –Steckplätze (Slots), wenn ein oder mehr Prozessoren mit dem Motherboard arbeiten können.
• Die Steckplätze für die Speichermodule.
• Die Steckplätze für die zentrale Ein/Ausgabebus-Schnittstelle, z.B. den PCI-Bus.
• Die Steckplätze für die Stecker der gerätespezifischen Schnittstellen.
Man erkennt damit auch die Hauptfunktion des Motherboards: für den Datenverkehr
zwischen den Schnittstellen zu sorgen.
SpeichermodulSchnittstelle
Host-BusSchnittstelle
steckbares
Prozessormodul
ProzessorSchnittstellen
anpassung
Speichersteuerung
steckbares
Speichermodul
Ein/AusgabeSchnittstellenanpassung
Ein/AusgabebusSchnittstelle
verlötetes
Gerätesteuerungs-IC
steckbares
Gerätesteuerungsmodul
gerätespezifische
Schnittstellen
Bild 3.16: Die Funktionsgrenzen eines Motherboards (rote Markierung)
PCs und Workstations sind heute unbestrittene Arbeitsmittel am Arbeitsplatz im
Büroumfeld. Es wurde schon gezeigt, dass für die Anwendung im industriellen
Produktionsumfeld andere Aufbautechniken notwendig sind als im Büroumfeld.
Insbesondere achtet man bei der Konstruktion darauf, dass die Betriebsbedingungen
der ICs auch bei strengen Umwelteinflüssen so eingehalten werden, dass keine
Überlastungen entstehen. Das sind Gesichtspunkte, die im Büroumfeld meistens
keiner besonderen Aufmerksamkeit bedürfen.
Sowohl im Büroumfeld als auch im Produktionsumfeld ist es wichtig, dass man Daten
zwischen einzelnen Arbeitsplätzen bzw. computergestützten Automatisierungseinrichtungen austauschen kann. Das führt zur Vernetzung der Computer.
Server in Netzen
In Netzen übernehmen einzelne Computer wichtige Dienstleistungsaufgaben. Deshalb nennt man sie Server. Je mehr Nachfrage nach Dienstleistung von den Teilnehmern im Netz entsteht, umso schneller muss der Server arbeiten, um jeden in
einer angemessenen Zeit zu bedienen. Das macht besonders leistungsfähige
Computer notwendig.
Als Beispiel sei Hewlett Packard genommen (Bild 3.17).
Computertechnik
107
Jacob
PCs, Workstations und Server
Bild 3.17: Konstruktiver Aufbau eines HP-Netservers
Das Beispiel zeigt, dass durch die Aufgabenstellung eine völlig andere Modularisierung erforderlich ist, als sie in den tischfähigen Gehäusen eines Arbeitsplatzcomputers möglich ist. In dieser Bauweise gibt es kein zentrales Motherboard, das
als Stützpunkt für alle relevanten Steckerschnittstellen dient.
•
•
•
•
•
Für die Anpassung der Computerleistung gibt es leicht zugängliche
Zuführungsschienen zum Einstecken der CPU- Module.
Das sinngemäß Gleiche gilt für die Kammer der PCI-Steckplätze (PCI slots).
Die Festplatten (auf der hier nicht gezeigten Rückseite) können während des
laufenden Betriebes ersetzt werden (hot swap).
Es kann eine Reserve-Stromversorgung vorgesehen werden. Die Stromversorgungen sind während des Betriebes ersetzbar.
Es kann ein Reserve-Lüfter vorgesehen werden. Auch die Lüfter sind während
des Betriebes ersetzbar.
Computertechnik
108
Jacob
Supercomputer
3.7 Supercomputer
Sobald leistungsfähige Arbeitsplatz-Computer einsetzbar waren und die Vernetzung
der Computer auf der Basis zuverlässiger Standards und Komponenten möglich war,
änderten sich auch die Anwendungskonzepte vieler Anwender. Konzepte mit einer
Konzentrierung von Dienstleistungen in zentralen Rechenzentren wurden seltener
und mit ihnen die klassischen Mainframes.
Auf einem Gebiet blieben aber die Anforderungen an eine große zentrale
Computerleistung erhalten: die technisch-wissenschaftlichen Anwendungen, die sich
mit der Modellierung von aerodynamischen, fluiddynamischen, meteorologischen,
chemischen und kern-physikalischen Prozessen beschäftigen. Das ist und bleibt das
Arbeitsgebiet der sog. Supercomputer.
Supercomputer brauchen zur Bearbeitung von technisch-wissenschaftlichen
Problemen eine leistungsfähige Matrizenrechnung auf der Basis von FloatingPoint-Variablen (real-Typ), weil naturgesetzlich bestimmte Größen nur in Ausnahmefällen als ganze Zahlen behandelt werden können.
Alle bisher besprochenen Computertypen verarbeiten skalare Variable, was auf
diesem Gebiet nicht mehr ausreicht, weil man wegen der Matrizenrechnung besser
mit Vektoren rechnet. Man hat deshalb ein geeignetes Konzept entwickelt, durch
eine geschickte Parallelverarbeitung vektorielle Variable zu verarbeiten. Computer,
die das können, werden Vektorcomputer genannt.
Vektorcomputer
Ein wichtiger Hersteller von Supercomputern nach dem Vektorprinzip ist Cray.
Der Name ist fast zu einem Synonym geworden für die Klasse der Supercomputer.
Bild 3.18 zeigt eine beispielhafte Konfiguration.
Bild 3.18: Schrankaufbau einer typischen Konfiguration des skalierbaren
Vektorcomputers SV1 von Cray und allgemeine Prinzipien der inneren Struktur
Platzbedarf je Schrank: Höhe 1,9 m, Breite 0,8 m
Computertechnik
109
Jacob
Maße für die Computer-Leistung
Processing Cabinet: ein Node-Modul integriert mehrere Prozessor-Einheiten; skalierbar bedeutet, dass man die Zahl der Node-Module an die Leistungsanforderungen der Anwendung
durch genügend vorbereitete Steckplätze anpassen kann.
Heat Exchanger, Pumps: Supercomputer haben ein ausgeklügeltes Kühlungssystem. Die
Schaltungsträger der Module sind aus gut wärmeleitendem Material und von Kanälen durchzogen, durch die in einem Kreislauf das Kühlmittel fließt. Man erkennt an der Filter-Position
den Weg der Kanäle in den Schrankecken und kann daraus auf den Kreislauf schließen.
Router: In einem Multiprozessorsystem gibt es das Problem der wahlweisen Kommunikation
zwischen den Prozessoren bzw. zwischen den Prozessoren und dem Speicher.
I/O Cables: Die Controller für die Ein/Ausgabe-Geräte müssen erreichbar sein, z.B. in den
erweiternden Schränken.
Im Wettbewerb um den besseren Computer muss es möglichst objektive Maße für
die Computerleistung geben. Das soll nun aus dem Blickwinkel der PC/WorkstationKlasse diskutiert werden.
3.8 Maße für die Computer-Leistung
Ein Anwender wünscht sich von einem Computer
• möglichst viel Speicher für viele Anwenderprogramme und -daten,
• möglichst kurze Programmlaufzeiten,
• möglichst zweckdienliche Bedienung.
Häufig hat man von den drei genannten Aspekten der Computerleistung nur einen
einzigen im Auge: die kurze Programmlaufzeit, also den großen Durchsatz.
Seit langem gibt es das sog. MIPS-Bewertungsverfahren (million instruction per
second) für den Vergleich beim Leistungsmerkmal Durchsatz. Dabei wählen die
Prozessor- bzw. Computerhersteller Benchmark-Programme aus, deren Laufzeit
auf ihren Produkten sie bestimmen. Zum Vergleich werden die Laufzeiten derselben
Benchmarks auf einem 1-MIPS-Gerät genommen, in aller Regel eine VAX-11/780.
Das Verhältnis der gemittelten Laufzeiten bestimmt dann die vom Hersteller
angegebene MIPS-Zahl.
Leider ist die Auswahl der Programme des Benchmarks nicht standardisiert, so dass
Leistungsvergleiche zwischen den Produkten verschiedener Hersteller nur dann
möglich sind, wenn man die genauen Bedingungen ihres Zustandekommens kennt,
die meistens ein „Geheimnis“ der Computerhersteller sind. Unbedenklich ist die
Verwendung von MIPS-Zahlen als unscharfes Klassifikationsmerkmal.
Die wichtigste Alternative zu der Leistungsangabe in MIPS sind die Benchmarks der
Standard Performance Evaluation Corp. (SPEC), einer nicht gewinnorientierten
Gruppe von Computerherstellern, Systemintegratoren, Universitäten, Forschungseinrichtungen, Verlagen und Beratern in der ganzen Welt: http://www.spec.org
Der aktuell maßgebliche Benchmark heißt SPEC CPU2000, der den Vorgänger
SPEC CPU95 abgelöst hat.
SPEC CPU2000 besteht aus zwei Benchmark-Reihen: CINT2000 zur Messung und
zum Vergleich der Leistung bei intensiven Rechenoperationen mit Integer-Variablen
und CFP2000 zur Messung und zum Vergleich der Leistung bei intensiven
Rechenoperationen mit Floating-Point-Variablen.
Die CINT2000-Reihe ist in der Programmiersprache C geschrieben und besteht aus
12 CPU-intensiven Integer-Benchmarks.
Computertechnik
110
Jacob
Maße für die Computer-Leistung
Auszug:
Benchmark
164.gzip
175.vpr
176.gcc
181.mcf
186.crafty
197.parser
252.eon
253.perlbmk
254.gap
255.vortex
256.bzip2
300.twolf
Language
C
C
C
C
C
C
C++
C
C
C
C
C
Category
Compression
FPGA Circuit Placement and Routing
C Programming Language Compiler
Combinatorial Optimization
Game Playing: Chess
Word Processing
Computer Visualization
PERL Programming Language
Group Theory, Interpreter
Object-oriented Database
Compression
Place and Route Simulator
Sie wird zur Messung und Bewertung der folgenden Größen verwendet:
• CINT2000 : Das geometrische Mittel aus den normalisierten Ergebnissen der
Integer-Benchmarks, wobei jeder dieser Benchmarks mit bestmöglicher
Optimierung kompiliert wurde.
• CINT_base2000 : Das geometrische Mittel aus den normalisierten Ergebnissen
der Integer-Benchmarks, wobei die Benchmarks mit Standard-Optimierung
kompiliert wurden.
Definition: Das geometrische Mittel entspricht der n-ten Wurzel aus dem Produkt aller Werte
einer »Variablen« über alle »Untersuchungseinheiten« (engl.: geometric mean).
Die Benchmarks CINT2000 und CFP2000 sind Maße für die Leistung des
Mikroprozessors, der Speicherarchitektur und des Compilers eines Computersystems bei rechenintensiven 32-Bit-Anwendungen.
Im Folgenden wird ein Auszug von CINT2000-Ergebnissen (siehe Datum) angegeben (Bild 3.19).
Die Grenze zwischen PCs und Workstations ist fließend. Das Motherboard und sein
Mikroprozessor sind entscheidend für die Leistung des Computersystems. Deshalb
werden immer der Typ des Motherboards und sein Mikroprozessor als Hauptmerkmal angegeben.
Computertechnik
111
Jacob
Maße für die Computer-Leistung
All SPEC CPU2000 Results Published by SPEC
CINT2000 (193):
Company Name
Advanced Micro Devic
Advanced Micro Devic
Advanced Micro Devic
Advanced Micro Devic
Dell
Dell
Dell
Dell
Intel Corporation
Intel Corporation
System Name
Epox 8KHA+ Motherboard, AMD Athlon
Epox 8KHA+ Motherboard, AMD Athlon
Gigabyte GA-7DX Motherboard, AMD Ath
Gigabyte GA-7DX Motherboard, AMD Ath
Precision WorkStation 330 (2.0 GHz P
Precision WorkStation 340 (1.8 GHz P
Precision WorkStation 340 (2.0 GHz P
Precision WorkStation 530 (2.0 GHz X
Intel D850GB motherboard (1.9 GHz, P
Intel D850GB motherboard (2.0 GHz, P
#CPU
1
1
1
1
1
1
1
1
1
1
Base
633
648
605
621
636
602
648
642
619
640
Peak
656
671
629
644
659
620
664
663
634
656
Last updated: Thu Oct 25 11:30:17 EDT 2001
Copyright © 2000-2001 Standard Performance Evaluation Corporation.
URL: http://www.spec.org/osg/cpu2000/results/cint2000.html
Tabelle 3.1: CINT2000-Ergebnisse: Tabelle mit den Spitzenergebnissen
Bild 3.19: Ausführliches Einzelergebnis für ein System mit PENTIUM 4 (2 MHz)
(Base) Ratio = Reference Runtime / (Base) Runtime x 100: aufgerundet.
Das Gewicht eines Benchmark-Testprogramms wird durch die Reference Runtime
ausgedrückt. Je kleiner die tatsächliche Runtime ist, umso größer wird das Verhältnis
Base-Ratio bzw. Ratio. Das geometrische Mittel aus den Ratios aller Testprogramme
ist das Gesamtergebnis.
Computertechnik
112
Jacob
Strukturalternativen von lokalen Computernetzen
4 Physikalische und logische Merkmale von lokalen
Computernetzen (LAN)
4.1 Strukturalternativen von lokalen Computernetzen
Die Verkabelung ist der augenfälligste physikalische Aspekt eines Computernetzes.
Dabei hat die örtliche Anordnung (Topologie) der Computer, die durch das Netz
verbunden werden, einen maßgeblichen Einfluss.
Ein lokales Netz mit Koaxialkabel und Bus-Topologie
Das kann man am Beispiel eines Netzes verdeutlichen, das die Computer eines
Lehrstuhls der Ruhruniversität lokal vernetzt (LAN, local area network). Der
Hauptzweck des Netzes ist, die Computer der Organisationseinheit Lehrstuhl auf
einer Ebene eines Gebäudes untereinander und - über einen speziellen Computer,
der als „Schleuse“ dient - mit den Computern anderer lokaler Netze des Gebäudes
bzw. der Universität bzw. mit den Computern außeruniversitärer Netze zu verbinden.
Bild 4.1: Beispielhaftes Netz mit Bus-Topologie und Koaxialkabel
Lehrstuhl für Datenverarbeitung der RUB (bis 2000): mit Koaxialkabel verbundene TVerbinder (rote Linien) und Repeater zur Signalregenerierung (rote Rechtecke)
Wenn die Arbeitsräume nebeneinander angeordnet sind, ergibt die Verlegung eines
Kabels von Anschlussstelle zu Anschlussstelle die kürzeste Gesamtlänge. Ein
geeignetes Übertragungsmedium ist ein Koaxialkabel, das mit Hilfe von sog. TVerbindern die Weiterleitung und die Ein/Auskopplung des elektrischen Signales
ermöglicht. Man bezeichnet eine linienhafte Topologie auch als Bus-Topologie.
Die Eignung eines Übertragungsmediums für die Datenübertragung wird daran
gemessen, wie viele Daten pro Sekunde (konkret: wieviel Bit pro sec) darüber fließen
können. Ein Kabel eines bestimmten Typs lässt mit einer gegebenen Länge und
einer gegebenen Zahl von Anschlüssen eine bestimmte maximale Übertragungsgeschwindigkeit zu. Darüber hinaus ist die Übertragung wegen Verzerrungen des
elektrischen Signales nicht mehr sicher.
Man kann also nicht beliebig die Kabelstrecken verlängern bzw. die Anzahl der
Anschlüsse vergrößern. Sobald man die zulässigen Maximalwerte überschreitet,
muss man eine Einheit zur Regenerierung des elektrischen Signales einfügen. In
Netzen, die als Übertragungsmedium Koaxialkabel und den Ethernet-Standard
verwenden, nennt man diese Einheiten Repeater.
Computertechnik
113
Jacob
Strukturalternativen von lokalen Computernetzen
Die Zusammenfassung der physikalischen Funktionen in einer Funktionsebene: physikalische Schicht (physical layer)
Die Verkabelung ist der augenfälligste Aspekt der physikalischen Eigenschaften
einer Computervernetzung. Die elektrischen Eigenschaften sind zwar nicht unmittelbar sichtbar, aber genauso wichtig. Die Gesamtheit der elektrischen Übertragungstechnik (Kabel, Repeater, Anschaltungen in den Teilnehmern) kann man in einem
Schichten- bzw. Ebenenmodell als die unterste operative Dienstleistungsebene
ansehen, die sog. physikalische Schicht bzw. Ebene (physical layer, layer 1).
Darüber liegen hierarchisch gegliederte, auftraggebende Schichten (Ebenen).
Die Zusammenfassung der Funktionen zur gesicherten Datenübertragung in
einer Funktionsebene (data link layer)
Am Bild 4.1 kann man ein grundsätzliches Problem erkennen, das den Zugriff zum
Übertragungsmedium (medium access control, MAC) betrifft. Im Vollausbau ist an
jedem T-Stück ein Computer angeschlossen, der unabhängig von jedem anderen
betrieben wird. Damit ist es möglich, dass gleichzeitig mehrere Computer eine Übertragung auf dem Medium wünschen. Aber nur ein einziger darf – aus physikalischen
Gründen – ein elektrisches Signal auf dem Medium einprägen. Die Steuerung der
Belegung des Übertragungsmediums ist der eigentlichen physikalischen Übertragung
übergeordnet, weil diese wie eine Dienstleistungsinstanz der Zugriffskontrolle
behandelt werden kann.
Diese Auftragsebene stellt nicht nur den Zugriff zum Medium her, sondern überwacht
danach die Datenübertragung von Teilnehmer zu Teilnehmer (data link). Die Funktionen dieser Ebene werden unter dem Begriff Datensicherungs-Ebene (data link
layer, layer2) zusammengefasst.
Ein lokales Netz mit Twisted-Pair-Kabeln und Stern-Topologie
Das Netz mit der Verkabelungsstruktur von Bild 4.1 hat den Vorteil einer preisgünstigen Realisierung. Aber es hat den Nachteil, dass die maximale Übertragungsgeschwindigkeit 10 Megabit/sec war. Als die 100 Megabit/sec-LANs aufkamen, entsprach es nicht mehr dem Stand der Technik und wurde ersetzt. Das neu installierte
Netz hat eine Stern-Topologie (Bild 4.2). Diese ergibt sich dadurch, dass man eine
zentrale Verteilereinheit einzeln mit den ortsfesten Steckdosen in den Arbeitsräumen
verbindet (Punkt zu Punkt Verbindungen). Die Kabel sind keine Koaxialkabel, sondern Twisted Pair Kabel.
Bild 4.2: Beispielhaftes Netz mit Stern-Topologie und Twisted-Pair-Kabel
Lehrstuhl für Datenverarbeitung der RUB (nach 2000): Punkt-zu-Punkt-Verbindungen mit
Twisted-Pair-Kabeln (rote Linien), zentrale Verteilereinheit (großes rotes Rechteck) und
ortsfeste Steckdosen (rote kleine Quadrate)
Computertechnik
114
Jacob
Strukturalternativen von lokalen Computernetzen
Jeder Teilnehmer hat eine eigene Punkt-zu-Punkt-Verbindung zur zentralen Verteilereinheit. Das bedeutet, dass die Teilnehmer diese Verbindungen unabhängig
voneinander und gleichzeitig für Übertragungen benutzen können, wenn die zentrale
Verteilereinheit das zulässt.
Die Verteilereinheit: Switch
Eine solche Verteilereinheit ist für den Datenverkehr einer genau definierten Menge
von Teilnehmern zuständig. D.h. auf der physikalischen Ebene, dass es eine genau
definierte Anzahl von Anschlussstellen (Ports) gibt, die über Einzelkabel mit einer
genau definierten Menge von Anschlussdosen und dort mit einer genau definierten
Menge von angeschlossenen Computern verbunden ist. Jeder Computer hat seine
eigene Übertragungstrecke (Strang) zur Verteilereinheit.
In der Verteilereinheit muss das Problem der „Wegschaltung von Port zu Port“
gelöst werden; denn jeder Teilnehmer kann zu jedem frei wählbaren anderen in der
Gruppe Daten übertragen. Die freie Wählbarkeit setzt eine eindeutige
Unterscheidbarkeit, also Identifikation voraus. Als Identifikatoren verwendet man
eindeutige Adressen aus einer genau vorgegebenen Menge von Adressen (address
space, Adressraum bzw. MAC-Adressraum). Die Verteilereinheit kann die
Wegschaltung auf der Basis der Angabe von Quell- und Zieladresse eindeutig
ausführen.
Eine Verteilereinheit, die gleichzeitig Datenübertragungen für mehrere Paare einer
durch ihren Adressraum genau umgrenzten Gruppe von Teilnehmern ausführen
kann, wird Switch genannt.
Elementar-Netze
Die Bildung von Gruppen von Netzteilnehmern mit ihren individuellen Adressräumen
ist die elementarste Stufe der Gruppenbildung.
Wenn alle Mitglieder der Gruppe zusammen angesprochen werden, spricht man von Broadcast. Die Gruppe wird auch als Broadcast-Domäne bezeichnet.
Ein Netz einer solchen Gruppe wird hier Elementar-Netz genannt.
Im Bild 4.2 wird der Plan einer Etage angegeben, in der es mehrere (nicht gezeigte)
Organisationseinheiten gibt, die jede für sich einen eigenen Broadcast-Bereich
beanspruchen, d.h. ein eigenes Elementar-Netz haben. Alle Kabel dieser Bereiche
sollen am Ort der symbolisch dargestellten zentralen Verteilung zusammenlaufen.
Jedes Elementar-Netz erhält seine eigene Switch-Funktion. Das muss nicht
bedeuten, dass jede Switch-Funktion ein eigenes Switch-Gerät bekommt. Es gibt
auch Switch-Geräte, die für die individuellen Switch-Funktionen mehrerer ElementarNetze konfigurierbar sind.
Die physikalische Funktionsebene zur Datenübertragung zwischen ElementarNetzen (network layer)
Damit wird das Problem deutlich, wie man Datenübertragung von Elementar-Netz zu
Elementar-Netz ausführen soll. Auf der Ebene der Steuerung der Datenübertragung
innerhalb eines Elementar-Netzes kann dieses Wegfindungsproblem nicht gelöst
werden. Der Datenübertragungsweg oder die Route zwischen den Elementar-Netzen
muss auf einer Auftragsebene darüber bestimmt werden.
Computertechnik
115
Jacob
Strukturalternativen von lokalen Computernetzen
Die Erreichbarkeit von Elementar-Netzen: Router
Die Einheiten zur Bestimmung der Route zwischen den Elementar-Netzen wird als
Router bezeichnet.
Man kann die Funktionen des „Switchens“ und „Routens“ auf einem einzigen
konfigurierbaren Gerät realisieren. Ein solches Gerät bezeichnet man auch als
Layer3-Switch. Man kann sie aber auch auf getrennten Geräten realisieren.
Dann kann man je eine Verbindung zwischen einer Switch-Funktion und dem Gerät
mit der Router-Funktion vorsehen. In Bild 4.2 erkennt man an der Verteilereinheit
(Switch) das Symbol einer offenen Datenverbindung. Das ist die Darstellung einer
möglichen Verbindung zu einem Router.
Bild 4.3 zeigt, wie die Switches der Elementar-Netze mit dem Router verbunden
werden. Im konkreten Fall werden Lichtfaser-Kabel zu einem zentral gelegenen
Router verwendet. Der zentrale Router stellt die Verbindung der Elementarnetze
untereinander her. Router stellen universitätsweit die Verbindung zwischen den
Elementarnetzen der einzelnen Organisationseinheiten her. Die wichtigste für den
Datenverkehr nach außen ist das Rechenzentrum. Dort stehen die „Schleusen“ zu
den Netzen außerhalb der RUB zur Verfügung.
LAN i-1
Switch i-1
LAN i
Switch i
LAN i+1
Switch i+1
Router
Bild 4.3: Die Erreichbarkeit von Elementar-Netzen über Router
Aus der Sicht eines Routers ist die Frage der Erreichbakeit eines Endteilnehmers
einfach zu lösen, wenn eine streng baumartige Struktur (Baum-Topologie) gewählt
wird. Dabei gibt es nur eine einzige mögliche Route. - Mehrere alternative Routen
zwischen ElementarNetzen sind wichtig, wenn man die Erreichbarkeit im Falle von
Geräteausfällen oder Überlastungssituationen weiterhin gewährleisten möchte.
Router beobachten den Betriebszustand der Routen mit Hilfe eines speziellen
Meldesystems und wählt die „beste“ Route.
4.2 Systemtechnische Merkmale am Beispiel der ersten EthernetVarianten
Netze mit Koaxial-Kabeln
Die Netze dieses Typs werden in (linienhafter) Busstruktur aufgebaut. Sobald die
zulässige Länge eines Stranges (Segmentes) überschritten wird, setzt man zur
Signalregeneration Zwei-Port- oder Multi-Port-Repeater (Bild 4.4).
Computertechnik
116
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Bild 4.4: Beispiel-Topologie eines 10Base2-Ethernets
In einer solchen Anordnung kann eine beliebige Nutzer-Einheit (Station) mit einer
beliebigen anderen in Beziehung treten und über die Kommunikationseinrichtung
Koaxialkabel-Repeater Daten übertragen. - Die Übertragungseinrichtung ist als
Ganzes ein „shared medium“, ein allen Stationen gemeinsames Betriebsmittel,
dessen sich die Sendewilligen nur zeitlich nacheinander bedienen können.
Signalübertragung zwischen den Network-Interface-Controllern der Stationen
Die Einheit für das Senden/Empfangen in einer Station ist der Network-InterfaceController (NIC). Eine Sender/Empfänger-Schaltung kann Spannungspegel auf die
Koaxialleitung einprägen (line driver, Transmitter) und ankommende Spannungspegel empfangen (Receiver). Die Kombination heißt auch Transceiver (Bild 4.5).
Bild 4.5: Koax-Transceiver als Sender/Empfängerschaltungen
Computertechnik
117
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Ein Treiber prägt das Signal ein, messbar am Spannungspegel (rot) gegen ein
Bezugspotential (blau). Das Signal läuft als Spannungsdifferenzsignal zwischen dem
Innenleiter und dem (konzentrisch darum liegenden) Außenleiter zu den beiden
Leitungsenden.
Der Empfang des Spannungsdifferenzsignals darf das weiterlaufende Signal nur
wenig verfälschen, damit es möglichst unverfälscht auch alle anderen Empfänger bis
zum Ende der Leitung erreicht. Dort sorgt der Abschluss mit einem besonders
angepassten Widerstand (Wellenwiderstand) dafür, dass das Signal nicht reflektiert
wird, d.h. auf der Leitung in Gegenrichtung zurückläuft.
Der Repeater schaltet ein (an einem beliebigen Port) empfangenes Signal auf einen
internen „Verteilerknoten“, der es an alle anderen verteilt. Auf dem Strang, über den
der empfangene Datenstrom ankommt, wird nichts zurückgesendet. Der entsprechende Treiber ist nicht aktiv, während die Treiber der anderen Stränge aktiv sind
und das empfangene Signal regeneriert senden.
Galvanische Trennung: eine grundsätzliche Maßnahme gegen Störungen
In vielen elektronischen Geräten, auch in Computern, ist das Bezugspotential
geerdet, indem es mit dem Metallgehäuse galvanisch verbunden wird. Anders
ausgedrückt: der Bezugsleiter und das (elektrisch leitende) Gehäuse sind nicht
galvanisch getrennt.
Die leitende Verbindung zwischen dem Bezugspotential und dem Gehäuse eines
Computers hat bei einer Vernetzung ungute Konsequenzen. Da der Außenleiter des
Koaxialkabels die Bezugsleiter der Computer untereinander leitend verbindet,
entstehen sog. Masseschleifen (Bild 4.6).
Anpassung
Datenpfad in der
Verteilereinheit
(Repeater)
Anpassung
NIC
NIC
NIC
Computer
Computer
Computer
NIC
NIC
NIC
Computer
Computer
Computer
StörspannungsQuelle
-
+
Ausgleichsstrom
Bild 4.6: Beispiel für eine Masseschleife: eine Störspannungsquelle treibt einen
Ausgleichsstrom durch die Masseschleife
Computertechnik
118
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Störungen entstehen dadurch,
• dass die Erdpotentiale der Gebäude (in denen die Stationen betrieben werden)
unterschiedlich sein können und
• dass in solchen Schleifen Störspannungen durch Induktion entstehen.
Man stelle sich die Wirkung eines Blitzschlages im Bereich der Gebäude vor, wo die
Stationen stehen. Die entstehenden Ausgleichsströme in den Schleifen bewirken
nichts Gutes.
Durch Induktion entstehen zwar deutlich kleinere Spannungen. Diese treiben aber
ebenfalls Ströme durch die Schleifen, die dann stören, wenn sie im Innen- und
Außenleiter ungleich sind. Das ist eigentlich immer der Fall ist, weil die Widerstände
in den entsprechenden Strompfaden ungleich sind. Je kleiner die Pegel der empfangenen Signale sind (Nutzsignale), umso verfälschender wirkt ein Störsignal.
Die Lösung heißt: galvanische Trennung. Das heißt: der gesamte Transceiver soll
keine leitende Verbindung mit der übrigen Schaltung haben.
Ein Mittel, die galvanische Trennung zu realisieren, sind Übertrager. Die entsprechenden Symbole sind im Bild 4.7 deutlich erkennbar. Das Signal auf der einen Seite
eines Übertragers wird mit Hilfe der magnetischen Induktion auf die andere Seite
übertragen, wobei die beiden Stromkreise keinen leitenden Kontakt haben. Die
Übertragung geschieht meistens im Verhältnis 1:1.
Anpassung
Datenpfad in der
Verteilereinheit
(Repeater)
Anpassung
NIC
NIC
NIC
Computer
Computer
Computer
NIC
NIC
NIC
Computer
Computer
Computer
Bild 4.7: Galvanische Trennung im beispielhaften 10Base2-Ethernet
Treiber links unten ist aktiv, alle Empfänger „hören“ mit; an den Leitungsenden sind die
Abschlusswiderstände zu erkennen.
Übertrager
Den Übertrager-Kern bildet ein ringförmiger Ferrit-Toroid.
Um ihn sind zwei Spulen gewickelt. Das Ganze ist in einem IC-Gehäuse
normaler Größe vergossen. Die beiden Wicklungsenden der beiden
Spulen werden mit je einem Pin des IC-Gehäuses verbunden.
Die Funktion ergibt sich aus dem Induktionsgesetz.
Computertechnik
119
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Eine Spannung an einer (primären) Spule erzeugt einen Strom, der ein magnetisches Feld
erzeugt. Dieses Feld erzeugt einen magnetischen Fluss im Ferrit-Kern, der die andere Spule
durchsetzt. Wenn sich die eingeprägte Spannung ändert, ändern sich der Strom, damit das
magnetische Feld und damit der magnetische Fluss. Die Flussänderung erzeugt eine
Spannung in der anderen (sekundären) Spule.
Solange in dieser Spule kein Strom fließt, wird der magnetische Fluss bzw. seine Änderung
nur vom primären Strom bestimmt. Fließt aber ein sekundärer Strom, dann hat dieser auch
ein Magnetfeld und dieses beeinflusst den magnetischen Fluss im Kern. Der sekundäre
Strom ist immer so gerichtet, dass der von ihm erzeugte Fluss dem primär erzeugten
entgegen gerichtet ist. Mit anderen Worten: Versucht der Strom in der Primärspule, den
Fluss zu erhöhen/erniedrigen, dann versucht der in der Sekundärspule, die damit
verbundene Flussänderung zu verhindern.
An die beiden Pole der primären Spule legt man zueinander invertierte Spannungssignale.
Damit wird an der Primärspule die Spannungsdifferenz U1-U2 wirksam, die auch auf die
Sekundärseite „übersetzt“ wird. In LANs werden Übertrager mit dem Wicklungsverhältnis 1:1
eingesetzt (Bild 4.8), in dem auch die Spannungsdifferenz „übersetzt“ wird.
Bild 4.8: Funktion von LAN-Übertragern
Netze mit Twisted Pair Kabeln
Ethernet-Netze mit Koaxial-Verkabelung haben einen Kostenvorteil durch billige
Verkabelung, sind aber veraltet. Bei Twisted-Pair-Netzen ist eine sternförmige
Verkabelung notwendig, die etwas aufwendiger ist. Diese haben aber den Vorteil,
dass die Entflechtung von Datenströmen strukturell vorbereitet ist, d.h. dass sie
dadurch für hohe Übertragungsraten besser geeignet ist.
Bild 4.9: Beispielhafte Topologie eines 10BaseT Ethernets
Computertechnik
120
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Hubs haben hier die gleiche Funktion wie die Multiport-Repeater im Koaxial-Netz: sie
sind zentrale Verteilereinheiten, an deren Anschlussschnittstellen (Ports) die
Verbindungskabel von/zu den Stationen sternförmig zusammenlaufen.
Sie sind in heutigen Netzen überholt, weil sie zum gleichen Preis durch die
leistungsfähigeren Switchs ersetzt werden können.
Kabeltypen
Die Zuordnung zwischen Leitungen und Kontaktfahnen kann man im Bild 4.10
erkennen. Ein Ethernet-Twisted-Pair-Kabel nützt 4 verdrillte Doppeladern.
Sind die Paare nicht einzeln geschirmt, dann spricht man von UTP-Kabeln
(unshielded twisted pair). Sind die Paare einzeln geschirmt, dann spricht man von
STP-Kabeln (shielded twisted pair). UTP-Kabel haben meistens einen Folienschirm,
der die verdrillten Paare insgesamt ummantelt. Dann spricht man auch von FTPKabeln (foil shielded twisted pair).
Die Paare sind farbkodiert und numeriert. Der Grund liegt darin, dass dieser Kabeltyp
nicht nur für die Anwendung im Twisted Pair Ethernet vorgesehen ist, sondern auch
für den Token Ring sowie für ATM- und ISDN-Netze. Jede Anwendung benutzt ihre
eigenen funktionalen Zuordnungen.
Im Ethernet gilt die folgende Zuordnung, wobei nur die Hälfte
der Paare genutzt wird:
orange/weiß für Transmit-positiv auf Pin 1,
orange für die Transmit-negativ auf Pin 2,
grün/weiß für Receive-positiv auf Pin 3,
grün für Receive-negativ auf Pin 6.
Die Zuordnung der übrigen Leitungen ist irrelevant, weil sie
nicht genutzt werden. Das ist in gewisser Weise
Verschwendung, aber es ist so.
Man beachte: Die Begriffe Transmit und Receive sind aus
der Sicht des Nutzer-Computers, nicht aus der Sicht des Hub
oder Switch definiert!
Bild 4.10: RJ45-Sockel und Stecker/Kabel für Twisted Pair-Verkabelung
Network-Interface-Controller
Network-Interface-Controller enthalten als Kernschaltung ein grossintegriertes IC,
das früher nur die Netzwerkfunktionen ausführte, heute aber zusätzlich auch die
Controllerfunktionen für den Systembus, in PCs den PCI-Bus, ausführt (Bild 4.11).
Für die früher weit verbreitete Koaxial-Anwendung wird ein besonderer Transceiver
eingesetzt, der das massebezogene Übertragungssignal erzeugt.
Die Stromversorgung dieses Transceivers muss galvanisch vom Bezugspotential der übrigen
Schaltung getrennt sein. Deshalb wird ein entsprechender IC notwendig.
Computertechnik
121
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Galvanische
Trennung
(isolator)
RJ-45
PCIBus
Controller
Network
Interface
Controller
Twisted
Pair
Network
Separate Controller-Struktur
für frühere Netzwerkkarten mit
einem 10Base-coax- und
einem 10Base-twisted pairAnschluss
Coaxial
Network
Transceiver
Transmitted Data
Received Data
V in
PCIBus
V1
V2
NICBack-Controller
Interface
Masse
5V Galvanisch
getrennte
Spannungserzeugung
RJ-45
Fast-Ethernet-Controller
Twisted
Pair
Network
Integrierte Controller-Struktur
für aktuelle Netzwerkkarten mit
mit Fast-Ethernet-Anschluss
PCIBus
Bild 4.11: Frühe und aktuelle Ethernet-Controller-Struktur
10Base2 Anwendung mit einem Koaxialkabel und 10BaseT Anwendung mit Twisted Pair
Kabel oben; sie entspricht nicht mehr dem Stand der Technik; die aktuelle Struktur unten.
Bild 4.12: Beispielhafte moderne Ethernet-Netzkarte
(Intel PRO 100 S mit dem Fast-Ethernet-Controller 82550))
Elektrische Codierung der Signale im Ethernet
In den frühen Ethernet-Varianten wird der Manchester-Code benutzt: eine log. 1
wird als Signalpegel-Übergang von niedrigem Pegel zum hohen und eine log. 0
durch den umgekehrten Übergang codiert.
Um einen Eindruck von den tatsächlichen elektrischen Signalen zu bekommen,
werden beispielhafte gemessene Signale vorgestellt: zunächst für das Signal auf
einem Koax-Kabel, das auf Masse (besser: signal ground) bezogen wird (Bild 4.13).
Computertechnik
122
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Bild 4.13: Beispiel für eine Manchester-codierte Bitfolge: Ideales und tatsächliches
Signal auf einem Koaxkabel
Ethernet-Controller für das Twisted-Pair-Netz 10BaseT erzeugen beim Senden zwei
(in aller Regel um den 0Volt-Pegel symmetrische) Signale: ein originales und ein
invertiertes, d.h. das am 0 Volt Pegel gespiegelte (Bild 4.14).
Bild 4.14: Positives und invertiertes Signal
Triggert man ein Oszilloskop auf den Beginn des Taktes, so überlagern sich die Bilder zu
einem Augenmuster.
Diese beiden Spannungen werden an den Sende-Übertrager angelegt. Die
Spannungsdifferenz wird auf die andere Seite übertragen.
In Empfangsrichtung überträgt der Empfangs-Übertrager die ankommende
Spannungsdifferenz an die zwei Eingangspole der Empfänger-Schaltung, die die
empfangene Differenzspannung auswertet.
Computertechnik
123
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Elektromagnetische Verträglichkeit
Beim Senden erzeugt das NIC-IC die notwendigen Übergänge des elektrischen
Stromes an der NIC-nahen Wicklung des Übertragers für die Transmit-Richtung.
Jeder Übergang erzeugt auf der leitungsnahen Wicklung einen Spannungspuls.
Beim Empfang kommt ein Spannungspuls an der leitungsnahen Wicklung des Übertragers in Receive-Richtung an. Er wird in einen entsprechenden Spannungspuls an
der NIC-nahen Wicklung gewandelt.
Der Strom, der beim Senden eingeprägt wird, darf sich nicht zu schnell ändern. Eine
Stromänderung stört andere elektronische Schaltungen umso mehr, je schneller sie
ist. Das Induktionsgesetz, das oben für die Übertragerwirkung genutzt wurde, ist hier
ein Grund für Störungen.
Die Sende-Treiber sind current-slope-controlled, d.h. die Stromeinprägungen haben
geregelte und begrenzte Übergangsgradienten.
Zugriff auf das gemeinsame Übertragungsmedium in LANs mit Busstruktur
Nur ein einziger Sender darf Spannungspulse auf der Koaxialleitung erzeugen. Wenn
das mehr als einer tut, dann sind die (durch Überlagerung entstehenden)
Spannungswerte nicht mehr eindeutig. - Umgekehrt muss man auch eine
Sendepause erkennen können, was man durch eine entsprechende Festlegung der
Spannungspulse für die 1en und 0en des Bitstromes erreicht.
Im Ethernet ist die Festlegung so, dass die 1en und 0en als Übergänge zwischen
zwei Spannungspegeln kodiert sind. Wenn kein Sender mehr Übergänge erzeugt,
dann ist das ein Zeichen für eine Pause, also die Belegbarkeit des Mediums.
Zur Begriffsbildung: Man bezeichnet einen eingeprägten Pulsstrom als Träger (carrier).
Eine neue Belegung ist nur möglich, wenn kein carrier mehr beobachtet wird (carrier
sense). Es können dann mehrere Sendewillige beginnen (carrier sense multiple access).
Der Übertragungszustand der Leitung muss beobachtet werden, damit eine Kollision
entdeckt wird (collision detect). Das gab dem Verfahren den Namen: CSMA/CD.
Die sendewilligen NICs müssen sich dann über die Benutzung des Übertragungsmediums einigen. Kein NIC weiß etwas von dem anderen. Im Grunde können alle
Sendewilligen nur beginnen und warten, was passiert. So beginnt eine Phase der
„Unsicherheit“ bei der Benutzung des gemeinsamen Mediums. Durch die endliche
Ausdehnung der Leitungen und die Laufzeit der Signale wird das Problem noch
etwas komplizierter (Bild 4.15).
Zum Zeitpunkt t0 ist Pause auf dem Koaxialkabel. NIC A hat einen Übertragungswunsch
und startet seine Sendung. Das eingeprägte Signal läuft mit beinahe Lichtgeschwindigkeit
nach rechts und links von dem T-Verbinder. Noch bevor das Signal bei NIC C
angekommen ist, beginnt C zum Zeitpunkt t1 zu senden. Er bemerkt den Konflikt, sobald
die Signalfront des anderen Senders bei ihm angekommen ist (Zeitpunkt t2). Er sendet
weiter, weil seine Signalfront beim anderen angekommen sein muss, damit auch dieser
den Konflikt feststellen kann (Zeitpunkt t3).
Der Ethernet-Standard legt bestimmte Merkmale fest, um das Kollisionsverfahren so
anwenden zu können, dass ein fehlerfreier Betrieb gesichert ist. Eines davon ist der
Ablauf einer Mindestzeit, bis zu der keine Kollision aufgetreten sein darf. Gab es
dabei keine Kollision, dann war der aktuelle Sender entweder der einzige Sender,
Computertechnik
124
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
oder er hat die anderen rechtzeitig erreicht, so dass diese die Belegung erkennen
konnten, bevor sie senden wollten.
Bild 4.15: Beispiel für eine Kollision in einem Ethernet mit Busstruktur
t0: A sendet; t1>t0: C sendet zusätzlich; t2>t1; C erkennt anderen Sender; t3>t2: A erkennt
anderen Sender
In allen Fällen, die zu einem Rückzug wegen Konflikts geführt haben, starten alle
Sendewilligen einen neuen Versuch. Dabei kommt ein statistisches Verfahren zum
Einsatz, das man sehr gut mit einem Würfelspiel vergleichen kann.
Angenommen, man hat zwei „Bewerber“. Beide nehmen einen zweiseitigen Würfel mit
den Seiten 0 und 1. Nach dem Würfeln hat jeder „Bewerber“ eine Zahl gewürfelt,
entweder eine 0 oder eine 1. Die Zahl wird mit der sog. Slotzeit multipliziert. Das bestimmt
den Zeitpunkt der neuen Sendung.
Bei der 0,1- bzw. der 1,0-Kombination ergibt sich eine klare Reihenfolge, bei der 0,0- bzw.
1,1-Kombination nicht. Die Chancen, dass eine 0,1/1,0 - oder eine 0,0/1,1- Kombination
entsteht, sind je ½. Anders ausgedrückt: würde man dieses Würfelexperiment sehr oft
wiederholen, dann wäre in der Hälfte der Fälle der Konflikt gelöst.
Ein ungünstiges Würfelergebnis erzwingt wieder einen Rückzug und neues Würfeln. Jetzt
nehmen die „Bewerber“ einen 4seitigen Würfel. Bei 12 von den 16 möglichen
Ergebniskombinationen ist der Konflikt gelöst; die Chance dafür ist ¾ .
Führt auch das nicht zum Erfolg, so erhöht man exponentiell die Würfelseiten weiter, bis
das Zufallsergebnis (hoffentlich) einen eindeutigen einzigen ersten ermittelt hat. (Es gibt
ein Abbruchkriterium und es ist nicht ausgeschlossen, dass dies auch erreicht wird.)
Was hier als Würfelexperiment erklärt wurde, ist tatsächlich eine elektronische
Entscheidungsfunktion im NIC auf der Basis eines entsprechenden Algorithmus.
Computertechnik
125
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Zugriff auf das gemeinsame Betriebsmittel in LANs mit Hubs
Die sternförmige Verkabelung bewirkt, dass jeder Computer sein eigenes Anschlusskabel hat und dass damit kein Benutzerkonflikt an einem gemeinsamen Kabel
entstehen kann (Bild 4.16).
Bild 4.16: Beispielhaftes Ethernet mit Hub und sternförmiger Punkt-zu-PunktVerkabelung (Distanzgraph zur Abschätzung der Laufzeiten)
Aber es gibt ein gemeinsames Betriebsmittel im Hub selbst (Bild 4.17). Alle Treiberund Empfänger-Schaltungen nutzen einen gemeinsamen internen Signalpfad, z.B.
eine Leiterbahn, die die Anschlusspunkte der Treiber/Empfänger-Schaltungen
untereinander verbindet. Nur ein Empfänger darf auf seinem Anschlusspunkt ein
Spannungssignal einprägen. Alle Treiber prägen dieses Signal auf die Leitungen zu
den angeschlossenen Computern ein.
Bild 4.17: Interne Signalpfad-Struktur eines Twisted-Pair-Hubs
Empfänger in Richtung Hub, Treiber in Richtung angeschlossener Computer
Das Verfahren, das für den Zugriff zum Medium Koaxialkabel entwickelt wurde, ist
auch hier anwendbar. Sobald der NIC eines Computers zu senden beginnt, wird das
Signal zuerst den Hub erreichen, bevor es von ihm verteilt wird. Sobald der Hub
mehr als zwei Signale gleichzeitig empfängt, verteilt er ein unbrauchbares Überlagerungssignal. Das stellen alle NICs fest. Der Rückzug der Sender, das Würfeln und
Neu-Senden geschehen wie oben beschrieben.
Die Datenübertragung mit Datenpaketen (frames)
Die eigentliche Datenübertragung findet in der Phase nach der eindeutigen
Zuordnung des Übertragungsmediums zu einer Station statt. Dann wird ein
Datenpaket in einem genau festgelegten Format übertragen (Bild 4.18).
Computertechnik
126
Jacob
Systemtechnische Merkmale am Beispiel der ersten Ethernet-Varianten
Bild 4.18: Datenpaket-Format (Frame) im Ethernet
•
•
•
•
•
•
Die ersten 7 Präambel-Bytes dienen der Anpassung der Takterkennung in den
Empfänger-Schaltungen auf den Sende-Takt, also der Bitsynchronisation.
Das Start-Byte des Datenpaketes (start of frame delimiter) dient der ByteSynchronisation. Sobald es vollständig empfangen ist, hat man den StartZeitpunkt des folgenden Bytes und damit die Startzeitpunkte aller folgenden Bytes,
da man auf Grund der Bitsynchronisation exakt mitzählen kann.
Wenn das gesendete Datenpaket dann als erstes die Zieladresse (destination
address) enthält, kann die Empfangselektronik aller empfangenden NICs sofort mit
dem Empfang und der Analyse der Zieladresse beginnen. Damit wird eine
eindeutige Auswahl derjenigen NICs getroffen, die das Datenpaket erreichen soll.
Derjenige bzw. diejenigen NICs, die nicht adressiert sind, brauchen sich nicht
mehr mit den weiteren empfangenen Bytes zu beschäftigen.
Im Empfänger kann es wichtig sein, den Verursacher des empfangenen
Datenpaketes zu kennen, z.B. um ihm eine bestätigende Rückmeldung zu geben.
Deshalb sieht das Format als nächstes die Quelladresse (source address) vor.
Da die Anzahl der übertragenen Daten frei wählbar ist, muss zuerst angegeben
werden, wie viele Daten übertragen werden, bevor sie gesendet werden (length).
Die Übertragung der Daten wird von einem Feld von Sicherungsbits abgeschlossen. Diese dienen dem Test der fehlerfreien Übertragung in den Empfängern.
Die Bildung der Ethernet-Adressen
Für die Bildung der Ethernet-Adressen gelten bestimmte Format-Festlegungen, die
am Anfang der technischen Entwicklung des Ethernets entstanden. Die Festlegung
der Ethernet-Adressen verfolgt ein Ziel, das aus der Sicht der Internet-Vernetzung
etwas eigenartig erscheint: es dient der Unterscheidung der einzelnen NICs nach
Hersteller und nach einem erkennbaren Einzelprodukt des Herstellers.
Hierfür enthalten die ersten drei Bytes (vom Paket-Anfang her gezählt) ein Bitmuster,
das als Hersteller-Kennung dient. Die folgenden drei Bytes dienen der Unterscheidung der NICs. Die Hersteller sorgen dafür, dass es sehr unwahrscheinlich ist, in
einem lokalen Netz NICs mit gleichen Adressmerkmalen zu verwenden. Man nennt
die so festgelegte Adresse auch MAC-Adresse (medium access control).
Im Internet-Protokoll dient die Festlegung der Adressformate der eindeutigen
weltweiten Identifizierung eines Computers im Internet. Dabei interessiert überhaupt
nicht, wer den NIC des Computers hergestellt hat.
Das bedeutet, dass es zwischen den Formaten der Internet- und der MAC-Adressen
grundsätzliche Unterschiede gibt. Die Internet-Adressen sind „logische“ Adressen,
die unabhängig von dem Standard sind, der für die physikalische Übertragung gilt.
Wenn ein lokales Netz dafür den Ethernet-Standard verwendet, müssen die InternetAdressen in die eindeutig zugeordneten Ethernet-Adressen umgesetzt werden.
Computertechnik
127
Jacob
Token-basierte LANs
Das übliche Verfahren der Adressumsetzung hat folgende Prinzipien: In jedem Computer
gibt es eine Datenstruktur zur Speicherung gesammelter Zuordnungen von InternetAdressen mit den zugehörigen Ethernet-Adressen. Sobald ein Datenpaket an einen
Teilnehmer mit einer Internetadresse gehen soll, deren zugeordnete Ethernet-Adresse noch
nicht bekannt ist, wird ein spezieller Datenverkehr zur Offenbarung der zugeordneten
Ethernet-Adresse abgewickelt. Das Ergebnis ist die Aktualisierung der Datenstruktur in allen
Teilnehmern des lokalen Netzes, die noch nicht über diese Zuordnung verfügen. Damit kann
die Zieladresse im aktuell zu versendenden Datenpaket eingesetzt werden, und alle
Teilnehmer verfügen über die Zuordnung bei künftigem Bedarf.
4.3 Token-basierte LANs
Das nicht-deterministische Auswahlverfahren ist typisch für den EthernetStandard (IEEE 802.3). Es bringt solange wenig Zeitverlust für Belegungsentscheidungen, wie durch wenig Nachfrage wenig Konfliktpotential erzeugt wird. Je mehr
Datenverkehr aber von den Stationen nachgefragt wird, umso häufiger wird es
längere Entscheidungsphasen geben, bis sich schließlich die NICs überwiegend mit
Entscheidungen und nicht mehr mit Datenverkehr beschäftigen.
Im Gegensatz zum Ethernet steht das deterministische Verfahren mit Hilfe von
speziellen Frames zur Vergabe der Übertragungseinrichtung, sog. Token. Die beiden
wichtigsten Standards für Token-basierte LANs sind: der FDDI-Standard (fiber
distributed data interface) und der (IBM) Token-Ring Standard (IEEE 802.5).
Die Ring-Topologie
Das Übertragungsprinzip bei Ring-Topologie unterscheidet sich grundsätzlich von
dem bei Bus- oder Stern-Topologie. Dort kann man feststellen, dass ein Sender
immer mehrere Empfänger gleichzeitig hat. Beim Ring sendet immer ein Sender an
nur einen Empfänger. Die Teilnehmer eines lokalen Netzes werden durch die
ringförmige Hintereinanderschaltung von mehreren Übertragungsstrecken erreicht,
die jeweils von einem Sender zu einem Empfänger übertragen (Bild 4.19).
NIC1
NIC2
NICn
Bild 4.19: Kettung der Übertragungsstrecken bei Ring-Topologie
Im IBM-Token-Ring ergeben sich die Sender/Empfänger-Schaltungen dadurch, dass
man über ein geschirmtes Twisted-Pair-Kabel überträgt, im FDDI-Netz dadurch, dass
man über Glasfaser überträgt.
Im Bild 4.19 erkennt man deutlich einen Nachteil der Struktur: wenn auch nur eine
Einheit im Ring ausfällt, ist die Übertragungskette unterbrochen, damit ist die
Erreichbarkeit der „stromabwärts liegenden Einheiten und damit ist die gesamte
Übertragungsfunktion im Ring nicht mehr gewährleistet.
Deshalb hat man sich Verfahren ausgedacht, um diesen Nachteil zu umgehen. Das wird hier
nicht vertieft.
Computertechnik
128
Jacob
Token-basierte LANs
Rekonfigurierung im FDDI-Ring
Glasfaser-Übertragungstrecken werden immer in einer einzigen Übertragungsrichtung betrieben, die durch die Lage des Licht-emittierenden Senders (Tx) und des
Licht-empfangenden Empfängers (Rx) festgelegt ist.
Man kettet die Übertragungsstrecken hintereinander und erreicht durch die
Ringbildung alle Knoten (nodes) (Bild 4.20).
Bild 4.20: Redundantes Ringsystem eines FDDI-Netzes
Die Netz-Teilnehmer bzw. Stationen heißen hier Knoten.
Hier ist man nutzt man einen redundanten Glasfaser-Ring, um den Ausfall einer
Einheit in einem primären Ring zu „überleben“.
Der Zugriff zum Übertragungsmedium eines Token-Ringes
Auch hier unterscheidet man zwischen der Phase der Zuordnung des Übertragungsmediums und der Phase der eigentlichen Datenübertragung. Dabei sind die
Details der Verfahren auf dem IBM-Token-Ring und dem FDDI-Ring unterschiedlich.
Das Prinzip ist aber gleich.
Token-Verfahren gehen immer davon aus, dass der aktuelle Sender am Ende seiner
Sendung eine Bitfolge sendet, die von den in Stromrichtung liegenden Stationen als
„Gutschein“ für die Benutzung des Ringes verwendet wird. Die Station, die in
Stromrichtung als erste einen Belegungswunsch hat und ein Token erhält, gibt es
nicht mehr im Ring weiter, sondern sendet an dessen Stelle seine Daten.
Vergleich des Netzverhaltens im Ethernet und im Token Ring
Bild 4.21 vergleicht grundsätzlich zwei Leistungsmerkmale des nicht-deterministischen Ethernet-Standards mit denen des deterministischen Token-Ring-Standards.
Die Netzlast gibt den Bruchteil der Bits an der maximalen Datenrate an, die pro
Sekunde von den Stationen zusammen angefordert werden.
Der Durchsatz gibt den Bruchteil der Bits an der maximalen Datenrate an, die pro
Sekunde tatsächlich übertragen werden. Die mittlere Verzögerung gibt an, wie lange
die Anforderungen der Stationen im Mittel auf Bedienung warten.
Ein Token-Ring-Netz behandelt die Anforderungen bei größer werdenden Netzlasten
fairer als das Ethernet-Netz.
Computertechnik
129
Jacob
Typische Twisted-Pair-Verkabelung
Das Ethernet-Netz bricht sogar zusammen, weil es sich immer mehr mit der
Entscheidung auf Zuteilung des Übertragungsmediums beschäftigt als mit der
eigentlichen Datenübertragung. Bei Niedriglast bringt der Zeitaufwand zum
Weiterreichen des Token eine größere mittlere Verzögerung als beim Ethernet.
Bild 4.21: Vergleich des Netzverhaltens von Ethernet und Token-Ring
4.4 Typische Twisted-Pair-Verkabelung
Zunächst ein Blick auf das Verkabelungsschema eines Signalpfades und das Kabel
selbst (Bild 4.22).
Bild 4.22: Typisches Verkabelungs- und Steckerschema eines Twisted Pair Netzes
links unten: elektronische Verteilereinheit (z.B. Switch oder Router),
links oben: Verteilereinheit mit Hilfe steckbarer Kabel (Patch-Panel),
Mitte: beispielhafte Wand-Steckdose mit fest verlegter Leitung zum Patch-Panel, alle übrigen
Verbindungen sind frei steckbare Patch-Kabel
Für den Nutzer bzw. seinen Computer steht eine Netzsteckdose an einer Wand
seines Arbeitszimmers zur Verfügung. Für die Verbindung zwischen der Steckdose
und der Netzkarte des Computers gibt es ein flexibles Twisted Pair Kabel, das an
beiden Enden mit einem RJ45-Stecker mit 8 Kontaktfahnen abgeschlossen ist.
Das leicht steck/lösbare Kabel heißt Patch-Kabel (patch cable, patch cord).
Über fest montierte Kabelkanäle werden die Kabel der einzelnen Nutzer gebündelt
und in einen zentralen Raum mit einem sog. Patchpanel geführt (Bild 4.23).
Bild 4.23: Vorderseite eines Patchpanel-Rahmens mit zwei Zeilen für RJ45-Sockets:
weitere Patchpanel-Rahmen und die Switches würden darunter montiert.
Computertechnik
130
Jacob
Aufbau der Switches (Router)
Man geht davon aus, dass die Verlegung der Kabelbündel in den Kabelkanälen
einmalig ist. Im Patchpanel wird jedes Einzelkabel eines Nutzer-Computers mit
einem RJ45-Sockel „terminiert“, indem die 8 einzelnen Leitungen des fest verlegten
Kabels an die dafür vorgesehenen 8 Montage-Pins an der Rückseite des Sockels
angeschlossen werden. Jeder RJ45-Sockel nimmt an der Vorderseite den Stecker
eines Kabels auf, das mit einem frei bestimmten Sockel am Switch verbindet.
Für eine Verbindung zwischen einem Stecker-Aufnehmer am Patchpanel und einem
am Switch verwendet man wieder ein Patch-Kabel als leicht steckbare/lösbare
Verbindung. Der Sinn dieser Flexibilität liegt in leichten Austausch des Switchs und in
der flexiblen Bündelung der einzelnen Anschlüsse zu geeigneten Arbeitsgruppen.
4.5 Aufbau der Switches (Router)
Prinzipielle Funktionen in einem Switch
Verteilereinheiten mit Switch- bzw. Router-Funktion werden im Folgenden vereinfachend mit
Switch bezeichnet.
Eines der maßgeblichen Strukturmerkmale von Switches ist die Teilnehmerbezogene Zwischenspeicherung der Datenpakete. Dadurch können die Computer
der Teilnehmer, die über je eine eigene Leitung mit dem Switch verbunden sind,
unabhängig voneinander Datenpakete von/zum Switch übertragen.
Ist der Teilnehmer-Computer die Datenquelle, dann ist der Zwischenspeicher (Puffer)
die Datensenke. Der Zwischenspeicher ist umgekehrt die Datenquelle, wenn eine
Übertragung zu einem Teilnehmer-Computer hin erfolgen soll. Im Switch selbst wird
dafür gesorgt, dass die Datenpakete, die gemäß der Zieladresse (im Datenpaket) zu
einem bestimmten Zielteilnehmer gelangen müssen, in den entsprechenden
Zwischenspeicher gelangen, der dann als Datenquelle dient (Bild 4.24).
Zentrale unterstützende
Funktionen,
z.B. Bestimmung der
Benutzungsreihenfolge
des internen
Leitungssystems
Prozessor zum Management der adreßgerechten
Weiterleitung der Pakete
internes Leitungssystem zur Verteilung der Pakete von Teilnehmer zu Teilnehmer
PaketZwischenspeicher
Sender/EmpfängerFunktionen mit Zwischenspeicherung der Pakete
für den angeschlossenen
Teilnehmer
Leitung
zum Teilnehmer 1
Leitung
zum Teilnehmer i
PaketZwischenspeicher
Leitung
zum Teilnehmer n
Momentaufnahme einer Verbindung zwischen Teilnehmer 1 und Teilnehmer n
Bild 4.24: Prinzipielle Aufteilung der Funktionen in einem Switch
Die Momentaufnahme in Bild 4.24 veranschaulicht eine Verbindung, während der
mehrere Datenpakete nacheinander zwischen Teilnehmer 1 und Teilnehmer n fließen. Ein (herkömmliche analoge) Telephonverbindung musswährend des gesamten
Gespräches unterbrechungsfrei aufrechterhalten werden.
Computertechnik
131
Jacob
Aufbau der Switches (Router)
Im Gegensatz dazu wird hier das interne Leitungssystem nicht dauernd belegt,
sondern nur für die sehr kurze Zeit der Übertragung eines Datenpakets oder einer
kurzen Aneinanderreihung von mehreren aufeinander folgenden Datenpaketen.
Dann entsteht eine Pause, bis das nächste Datenpaket/folge dieser Verbindung zur
Übertragung bereit steht; denn die Übertragung eines Datenpaketes/folge auf der
Leitung zum Teilnehmer-Computer dauert wesentlich länger als auf dem internen
Leitungssystem. In dieser Pause können nun die Datenpakete/folgen anderer
Verbindungen auf dem internen Leitungssystem übertragen werden. Die
verschränkte Nutzung des internen Leitungssystems bewirkt, dass mehrere
Verbindungen „gleichzeitig“ bedient werden können.
Die entscheidende Maßnahme, die das ermöglicht, ist die Einführung von Zwischenspeichern (Puffern), die es ermöglichen, den Übertragungspfad in drei Punkt-zuPunkt-Abschnitte „aufzubrechen“, die zeitlich unabhängig voneinander ablaufen
können.
Beispiel für die Gerätetechnik von Switches der mittleren Leistungsklasse
Die prinzipiellen Merkmale sollen am Beispiel des Switches CISCO Catalyst 2900
verdeutlicht werden (Bild 4.25, Bild 4.26).
Bild 4.25: Beispielhafter Switch (CISCO Catalyst 2900)
Bild 4.26: Struktur des beispielhaften Switch (Catalyst 2900)
Modul bedeutet eine Baueinheit als gedruckte Karte. Man erkennt also, wie die
Funktionseinheiten als Baueinheiten realisiert werden.
Computertechnik
132
Jacob
Aufbau der Switches (Router)
Das interne Leitungssystem wird in zwei Funktionsgruppen aufgeteilt, die jeweils als
Bus ausgeführt sind.
Die Datenpakete selbst werden über den sog. Switching Bus übertragen.
Die Benutzungsreihenfolge für den Switching-Bus wird durch den Busarbiter
festgelegt.
Der Management-Bus sorgt dafür, dass der Network-Prozessor die Teilnehmerbezogenen Schaltungen (mit ASICs realisiert) im Sinne der Anforderungen der
Datenpakete steuern kann.
•
•
•
•
•
•
Datenpakete können an mehrere Ziel-Teilnehmer gleichzeitig verschickt werden
(broadcast) oder gezielt an einen (explizite Zieladresse im entsprechenden
Adressfeld). Entsprechend den Adressen müssen die Ziel-Ports bestimmt werden.
Die Bestimmung der Zielports aus den kodierten Adressinformationen in den
Datenpaketen wird in der EARL-Funktionseinheit ausgeführt.
Das kostet Zeit. Um den Fortschritt der Übertragung nicht darauf warten zu
lassen, überträgt man vom Puffer des Sender-Teilnehmers in die Puffer der möglichen Ziele, also alle anderen. Gleichzeitig erfolgt die Bestimmung der tatsächlichen Ziele.
Der Network-Prozessor wertet das Ergebnis der EARL-Funktion zu Steuermaßnahmen aus, die über den Management-Bus zu den Port-Schaltungen gelangen.
Bei gezielter Adressierung im Datenpaket fordert er alle nicht betroffenen PortSchaltungen auf, die Puffer zu ignorieren (flush). Dann bleibt praktisch verzögerungsfrei nur der richtige übrig.
Bei Broadcast sind alle schon im richtigen Zustand.
Der Switch verfügt über eine RS232-Schnittstelle, um ein StandardPeripheriegerät anzuschließen.
4.6 Fastethernet-Controller
Hier sollen nur die Funktionen für die Signalübertragung interessieren (Bild 4.27).
Bild 4.27: Transmitter/Receiver-Funktionen in einem Fastethernet-Controller
Abkürzungen zur Beschreibung der Signalformen:
NRZ = non return to zero,
NRZI = inverted non return to zero
MLT3 = multi level transfer, 3 levels
Computertechnik
133
Jacob
Fastethernet-Controller
Bild 4.28: Signalkodierung NRZ – NRZI – MLT3
Alle drei Signale sind symmetrisch um das Bezugspotential 0 Volt definiert.
Offensichtlich kodiert man auch im NRZI-Signal die log. 1 mit einem Pegelübergang,
wie das auch im Manchestercode gilt, aber nicht immer den gleichen Pegelübergang.
Hier codiert man eine log. 1 dadurch, dass man den Pegel, der durch die letzte log. 1
entstanden ist, invertiert. Eine log. 0 verändert den Pegel nicht (Bild 4.28).
Man erkennt aus den Codierungsregeln, dass lange 0- oder 1-Folgen keine Pulse
erzeugen. Das wird beim Empfang zu einem Problem, weil es schwer wird, sich auf
den Takt einzustellen, der vom Sender eingeprägt wird. Man muss irgendwie dafür
sorgen, dass keine längeren 0- oder 1-Folgen entstehen. Die Lösung liegt in einer
geeigneten Wortcodierung. Man fasst 4 Bit zu einem Wort zusammen und ordnet
diesem ein 5Bit-Wort mit einer gewünschten Eigenschaft zu. Mit 4 Bit kann man 2^4
Wörter bilden, mit 5 Bit 2^5. Dadurch, dass man das weitere Bit hinzufügt, bekommt
man die Möglichkeit zur Auswahl geeigneter Bitmuster (Tabelle 4.1).
Tabelle 4.1: Zuordnungstabelle für die 4B/5B-Kodierung
Beim Scrambling wird ein Datenstrom nach einem festgelegten mathematischen
Polynom verwürfelt. Die Verwürfelung wird im Prinzip durch einen Pseudozufallsgenerator mit der Länge 2^(n – 1) mit n-Rückkopplungsstufen ausgeführt.
Computertechnik
134
Jacob
Fastethernet-Controller
Durch das Scrambling wird eine Konzentration der Signalenergie auf ein schmales
Frequenzband mit hoher Amplitude verhindert, wie es bei langen, sich wiederholenden Bitmustern, wie beispielsweise beim Idle-Signal, ohne Scrambling auftreten
würde. Das Descrambling macht das Ganze wieder eindeutig rückgängig.
Vergleich der Signalmerkmale des Fast- und des Gigabit- Ethernet
Im 10Base-T Ethernet ist der Signalhub zwischen dem niedrigsten Wert 0 Volt und
dem höchsten Wert 2,2 Volt. Für das MLT3-Signal des 100BaseT (Fastethernet)
gelten +1 Volt und –1 Volt als der höchste und der niedrigste Wert. Es ergibt sich das
Augenmuster gemäß Bild 4.29.
Man beachte, dass das Fastethernet mit 125 MHz getaktet wird, um eine effektive
Bitrate von 100 MBit/sec zu erreichen. Zum Vergleich wird das Augenmuster für das
Gigabit-Ethernet, angegeben. Seine Taktrate ist – wie beim Fastethernet – 125 MHz.
Bild 4.29: Augenmuster im Fastethernet (links) und Gigabit Ethernet (rechts)
Die Codierung der Bits erfolgt mit dem sog. PAM-5 Verfahren (pulse amplitude
modulation). Dieses verwendet 5 Signal-Pegel, vier davon für die Übertragung der
Datenbits und einen für die Fehlerkontrolle. Je ein Daten-Signal-Pegel wird für die
Darstellung einer Wertekombination von zwei Bit genommen(Bild 4.30).
Pro Taktperiode von 8 nsec werden also 2 Bit übertragen, was eine Bitrate von 250
MBit/sec pro Übertragungskanal bedeutet.
Bild 4.30: PAM-5 codiertes Signal für eine beispielhafte Bitfolge
Computertechnik
135
Jacob
Fastethernet-Controller
Im Gigabit-Ethernet mit Twisted-Pair-Kabeln werden alle 4 Leitungspaare verwendet.
Auf jedem Leitungspaar (Strang) können zwei Transmitter gleichzeitig senden. Für
jeden ist die Taktrate 125 MHz, was durch die PAM5-Codierung eine Bitrate von
250MHz erzeugt.
Wenn alle Transmitter senden, ergibt sich eine Summenbitrate von 2·250·4 MBit/sec.
Man gibt das üblicherweise als vollduplex 1 Gigabit/sec an.
Bild 4.31: Sender-Empfänger-Paare an den vier Leitungspaaren eines 1000Base-TEthernets
Wenn an einem Strang zwei Sender gleichzeitig senden, „hören“ sie sich jeweils selbst als
Echo; das H-Element unterdrückt das Echo.
Die Augenmuster kann man nur am Transmitter messen. Das überlagerte Signal aus
dem Paar ist viel komplexer. Die gesendeten Pulse, die sich durch die Codierung
ergeben, werden für die Übertragung „glockenförmig“ geformt, um die Empfindlichkeit
gegenüber Störungen zu reduzieren. Man erkennt, dass die Öffnung des Auges nur
noch die Hälfte dessen beträgt, das mit MLT3 realisierbar ist. Damit dürfen auch die
zulässigen Störungen auch höchstens halb so groß sein: eine Herausforderung an
die Übertragungstechnik, die letztlich dazu führt, dass die Grenze der
Leistungsfähigkeit von Kupferleitungen erreicht ist und die Glasfasertechnik
angemessener ist.
Netze sind heute ein wichtiger Teil der Computerarchitektur. Im Grunde haben sie
(zusammen mit der Entwicklung von Hochleistungs-Workstations) den Bedarf an
zentralen Höchstleistungs-Computern auf wenige Anwendungen im technischwissenschaftlichen Bereich reduziert. Sie sind damit ein wesentliches Merkmal für die
grundsätzliche Umwälzung in der Welt der Computer.
Um die Struktur des Computertyps, der wohl am häufigsten eingesetzt wird, den
Personal Computer, geht es im Folgenden.
Computertechnik
136
Jacob
Das prinzipielle Aufbaukonzept von PC-Motherboards
5 Merkmale von PC-Motherboards
Jeder Konstrukteur eines Gerätes bemüht sich, sein Gerät so aufzubauen, dass es
möglichst einfach an unterschiedliche Anwendungsfälle angepasst werden kann.
Deshalb teilt er die Funktionen seines Gerätes so auf, dass die Anpassung durch
den einfachen Austausch von Baueinheiten an Steckerschnittstellen möglich ist. Man
bezeichnet dies als modularen Aufbau.
Das Motherboard dient dem modularen Aufbau eines PC als Basiseinheit.
5.1 Das prinzipielle Aufbaukonzept von PC-Motherboards
Das Aufbaukonzept eines PC-Motherboards ist das Ergebnis einer Entwicklung von
PC-Generation zu PC-Generation. Dieses Ergebnis soll zunächst an typischen aktuellen Produkten beispielhaft deutlich gemacht werden.
Ein Zweck von funktionalen Blockschemata ist es, von bautechnischen Details zu
abstrahieren und schwerpunktartig prinzipielle Zusammenhänge darzustellen. Das ist
auch der Zweck der Darstellung der grundsätzlichen Aufteilung der Funktionen auf
einem Motherboard, die schon in Kapitel 2 angegeben wurde (Bild 5.1).
SpeichermodulSchnittstelle
Host-BusSchnittstelle
steckbares
Prozessormodul
ProzessorSchnittstellen
anpassung
Speichersteuerung
steckbares
Speichermodul
Ein/AusgabeSchnittstellenanpassung
Ein/AusgabebusSchnittstelle
als Adapterkarten
als verlötete ICs
gerätespez.
Anpassung bzw.
Steuerung
gerätespez.
Anpassung bzw.
Steuerung
gerätespezifische
Schnittstellen
Bild 5.1: Prinzipielle Funktionen eines Motherboards mit seinen Steckerschnittstellen
Dieses Schema bleibt unabhängig davon erhalten, wie sich die Schnittstellen und die
Realisierung der inneren Funktionseinheiten durch großintegrierte ICs verändern.
Als Beispiel soll zunächst ein herkömmliches Motherboard dienen (Bild 5.2).
• Die Hostbus-Schnittstelle wird durch den Stecksockel für den Prozessor Pentium4
bestimmt,
• die Speichermodul-Schnittstelle durch die Stecksockel der standardisierten 184-Pin
Speichermodul-Schnittstelle,
• die universelle Ein/Ausgabeschnittstelle durch die Stecksockel gemäß dem PCI-Standard
2.0 und durch den Stecksockel gemäß dem AGP-Standard und durch den Stecksockel
gemäß dem USB-Standard und durch den Stecksockel gemäß dem Ethernet-Standard.
• Die gerätespezifischen Schnittstellen bilden eine Gruppe für Massenspeicher (Disks) und
eine Gruppe für andere: für herkömmliche serielle (COM) und herkömmliche parallele
(LPT) Anschlüsse sowie für Mouse und Keyboard-Anschluss und andere.
Computertechnik
137
Jacob
Das prinzipielle Aufbaukonzept von PC-Motherboards
Bild 5.2: Beispiel für ein Motherboard (ASUS P4B266)
ein 478 Pin Stecksockel für einen Prozessor Pentium 4 (2),
drei 184 Pin Stecksockel für Synchronous-Dynamic-Ram Memory-Module (4),
sechs Stecksockel für PCI-Erweiterungskarten (17), ein Stecksockel für eine AGPErweiterungskarte der Graphikeinheit (22),
zwei Stecksockel für IDE-Festplatten (8), ein Stecksockel für eine Floppy Disk (9),
ein Stecksockel für das PS/2 Mouse Port (23), ein Stecksockel für einen RJ-45
Netzanschluss (24), ein Stecksockel für ein Paralleles Port LPT z.B. zu einem Drucker oder
Scanner (25), ein Stecksockel für ein Game/Midi Port (26), Stecksockel für akustische
Signale (27,28,29), zwei Stecksockel für Serielle Ports COM (30), ein Stecksockel für ein
Serielles Port USB, ein Stecksockel für ein PS/2 Keybord Port (32)
Wenn man die Funktionen gemäß Bild 5.1 kennt, fragt man sich natürlich, wodurch
sie auf dem Motherboard in Bild 5.2 realisiert werden.
Die Funktionen der Prozessor-Schnittstellen-Anpassung und der Ein/AusgabeSchnittstellen-Anpassung und der Speichersteuerung werden im Bauelement (3)
realisiert. Dieses Bauelement ist also die zentrale Verteilereinheit der Datenflüsse auf
dem Motherboard.
Die universelle Ein/Ausgabe-Schnittstellenanpassung für den PCI-Bus und den USBBus und den Ethernet-Anschluss sowie die Disk-spezifische Ein/Ausgabe-Schnittstellen-Anpassung werden in (14) realisiert; die gerätespezifischen Anpassungen/Steuerungen für die Floppy-Disk, das Parallele Port LPT, die Seriellen Ports
COM und das game/Midi-Port werden in (10) realisiert.
Computertechnik
138
Jacob
Das prinzipielle Aufbaukonzept von PC-Motherboards
Das Bauelement zur Realisierung der zentralen Verteilerfunktionen der Datenflüsse
sowie der Speichersteuerung (memory controller) und das Bauelement zur
Steuerung der Festplatten und anderer Standard-Ein/Ausgabegeräte bilden praktisch
den zentralen Kern der Steuerung der Datenflüsse. Sie werden zusammen als
Chipsatz bezeichnet.
Leider haben sich für die beiden Bauelemente eines Chipsatzes Bezeichnungen
eingebürgert, die sich von der geometrischen Lage auf dem Motherboard ableiten,
nicht aber von den Funktionen, nämlich Northbridge und Southbridge. - Man sollte
aber funktionale Bezeichnungen vorziehen, z.B. MCH (memory controller hub) für die
zentrale Verteilereinheit und ICH (input/output controller hub) für die Steuerung des
Datenverkehrs zu ausgewählten Standard-Ein/Ausgabe-Geräten (Bild 5.3).
Bild 5.3: Die wichtigen großintegrierten Einheiten auf dem Motherboard P4B266
Zum Vergleich wird nun ein Motherboard der neuesten Generation herangezogen.
USB-, Parallel
LAN-Ports Port
Standard PCI
Serial ATA
RAID 1-4
COM1Port
Primary IDERAID-Laufwerk
Secondary IDERAID-Laufwerk
Serial ATA1-4
Primary
IDE-Laufwerk
Bild 5.4: Motherboard mit den aktuellsten Schnittstellen (ASUS P5AD2)
Computertechnik
139
Jacob
Das prinzipielle Aufbaukonzept von PC-Motherboards
Aktuellere Motherboards berücksichtigen natürlich die Weiterentwicklung der
Schnittstellen-Standards. Am Beispiel im Bild 5.4 kann man feststellen:
• Die Bedeutung des herkömmlichen PCI-Standards 2.0 nimmt ab.
• Eine AGP-Schnittstelle (die im Prinzip eine auf einen einzigen Steckeranschluss
eingeschränkte PCI 2.0 Schnittstelle ist) ist nicht mehr ausgewiesen.
• Neue PCI-Varianten (PCI Express) verdrängen beide Standards.
• Bei den Disk-spezifischen Schnittstellen wurden bitserielle Varianten geschaffen
(serial ATA).
• Außerdem wurden Disk-Schnittstellen-Varianten geschaffen, die Disk-Cluster
unterstützen, damit bei Ausfall einer Disk-Einheit keine Daten verloren gehen bzw.
damit das Computersystem nicht zum Stillstand kommt (Redundant Array of
Inexpensive Disks).
• Die Schnittstelle zu den Speichermodulen hat Stecksockel mit der standardisierten
240Pin Speichermodul-Schnittstelle.
Es gilt die gleiche Aufteilung der Funktionen auf die beiden Chips des Chipsatzes wie
früher (Bild 5.5). Die einzelnen Leistungen haben sich aber vermehrt und verbessert.
Bild 5.5: Die wichtigen großintegrierten Einheiten auf dem Motherboard P5AD2
Computertechnik
140
Jacob
Die zentrale Takterzeugung und -verteilung
5.2 Die zentrale Takterzeugung und -verteilung
Die Erzeugung und Verteilung der Taktsignale auf dem Motherboard
Alle wichtigen Funktionen eines Motherboards werden synchron zu Taktsignalen
ausgeführt. Dabei werden die Taktsignale der einzelnen Funktionseinheiten von
einem einzigen Grundtakt abgeleitet, der durch die Schwingung eines Quarzes
vorgegeben wird.
Aus dieser Schwingung erzeugt die Schaltung des Clock-Generators (andere
Bezeichnung: Clock-Synthesizer ) die notwendigen Taktsignale, die durch sorgfältig
konzipierte und realisierte Leitungen an die Einheiten auf dem Motherboard verteilt
werden. Bild 5.6 zeigt ein Verteilschema von zentral erzeugten Taktsignalen.
FSB
(CPU)
Prozessor
Clock
generator
SATA
FSB
(MCH)
Mem
Memory
controller
Memory
Hub
Clock
Reference
PCI
(PCIE)
Express
Graphik
USB
System
IO
14MHz
Controller
PCI Express Slot
für Graphik
Hub
PCI
PCI
Einheiten
PCI
Express
Slots
PCIExpress
Einheiten
Bild 5.6: Beispiel für eine zentrale Takterzeugung und Verteilung
einige beispielhafte Werte: Quarz: 14,318 MHz; CPU: wählbar 100, 133, 166, 200, 266, 333
und 400MHz; PCI: 33 MHz; PCI Express(Clock Reference): 100MHz; USB: 48 MHz; SATA:
100 MHz;
Die Taktsignale für das Memory werden aus einem zentral erzeugten Taktsignal vom
Memory Controller Hub erzeugt (z.B. 133MHz oder 200MHz oder 266MHz)
Eines der Taktsignale ist das des Host-Bus (Front Side Bus). Aus diesem macht der
Prozessor seinen eigenen Arbeitstakt, der möglichst unverfälscht zu den
Schaltungen auf der Chipfläche des Prozessors verteilt werden muss.
Computertechnik
141
Jacob
Die zentrale Takterzeugung und -verteilung
Die Erzeugung des hochfrequenten Prozessor-Takts auf dem ProzessorChip (Ein Angebot an physikalisch Interessierte, kein Prüfungsstoff)
Der hochfrequente globale Takt für die Prozessor-Schaltungen wird von einem
phasengekoppelten Oszillator (PLL, phase locked loop) erzeugt (Bild 5.7).
Der Kern der Schaltung ist ein Oszillator, der mit einer Frequenz schwingt, die ein
ganzzahliges Vielfaches der Frequenz des von außen eingeprägten FSBTaktsignals ist.
Man erzeugt aus dem Signal mit der Frequenz K · fFSB durch Division ein Signal
mit der Frequenz fFSB. Dieses kann man mit dem von außen eingeprägten Signal
vergleichen und aus dem Vergleichsergebnis eine Korrektur bilden, die den
Unterschied zu verkleinern versucht. Man hat also einen rückgekoppelten
Regelkreis, der die Frequenz des Oszillators so korrigiert, dass sie immer
möglichst nahe an der Frequenz des eingeprägten Signals liegt. Dessen Frequenz
kann also in kleinem, aber unvermeidbarem Maße schwanken; der Oszillator führt
seine eigene Frequenz entsprechend nach.
Division
VCO
fOUT= K x fFSB
Rückgebildetes
Taktsignal mit fRÜCK
PhasenVergleich
Bestimmung
der Korrektur
der Steuerspg.
FSB-Taktsignal
mit fFSB
Frequenz fOUT der
Ausgangsspannung
ist ein Vielfaches
der Frequenz fFSB
Steuerspannung stellt die
Frequenz fOUT des VCO so ein,
daß die Abweichung der
rückgebildeten Frequenz fRÜCK von
der angelegten Frequenz fFSB
möglichst gering wird.
Bild 5.7: Prinzip eines Phase Locked Loop mit VCO
Eine beispielhafte VCO-Schaltung
Die wesentliche Komponente zur Erzeugung des hohen Taktes ist eine VCOSchaltung (voltage controlled oscillator). Es gibt mehrere Schaltungstypen,
diesen zu realisieren. Bei einem wichtigen Typ schaltet man mehrere
Verzögerungsstufen in einem Ring hintereinander (Bild 5.8).
Als schnelle Schaltkreis-Technologie bietet sich die Current-Mode Logik (CML)
an. Bild 5.8 zeigt ein Entwurfsbeispiel für CML.
Die Verzögerungszeit des Verzögerungselementes (delay element) ist durch eine
Steuerspannung beeinflussbar. Als Verzögerungselemente benutzt man Inverter,
die mit einem positiven und einem dazu invertierten (als negativ zählenden) Signal
angesteuert werden und entsprechende Signale liefern. Durch die entsprechende
Verschaltung in der Kette erhält man von Stufe zu Stufe die invertierende Wirkung
in jedem der beiden Signalstränge.
Die Signale am Ende der Kette werden „gegensinnig“ rückgekoppelt, d.h. der
positiv zählende Ausgang auf den als negativ zählenden Eingang und umgekehrt.
Computertechnik
142
Jacob
Die zentrale Takterzeugung und -verteilung
Für eine stabile Schwingung des Ring-Oszillators gilt u.a. die im Folgenden diskutierte notwendige Bedingung.
Delay
Element
Delay
Element
Delay
Element
Delay
Element
Delay
Element
Delay
Element
Ausgangsspannungen
Steuerspannung
OUTn
OUTp
Vcp, Vcn
Vcp
OUTn
OUTp
INn
INp
Vcn
Bild 5.8: Prinzipieller Aufbau eines Voltage-Controlled-Oscillator (VCO) als n-stufiger
Ring (hier n = 6, ein beispielhafter Typ eines Delay-Elementes)
An der Schnittstelle zwischen zwei beliebigen benachbarten Stufen kann man ein
Signal betrachten, das in den Ring eingeprägt wird, und ein Signal, das aus dem
Ring an der Schnittstelle ankommt. Ein Signal, das in den Ring eingeprägt wird,
kommt nach einem einzigen Ringdurchlauf invertiert an, weil die Rückkopplung
einmal invertiert. Erst nach dem zweiten Durchlauf kommt es positiv an.
Eine notwendige Bedingung für Stabilität ist nun, dass das eingepägte Signal und
das durch die beiden Durchläufe gebildete Signal gleich sind. Hat der Ring n Stufen
und hat jede Stufe eine Verzögerungszeit D, muss sich nach der Zeit 2 · n · D der
gleiche Wert ergeben. Das ist dann die Periodendauer der sich ergebenden
Schwingung.
Beispiel für die Struktur in: Bei 33 psec Verzögerungszeit ergibt sich eine Periodendauer von
400 psec, also eine Frequenz von 2,5 GHz.
Die Verzögerungszeit der Verzögerungselemente ist durch die Steuerspannung in
bestimmten Grenzen veränderbar. Damit ist die Periodendauer und damit ist die
Frequenz des VCO in gegebenen Grenzen veränderbar.
Zur Verteilung des Taktsignals auf dem Chip: Bei einer Taktrate von 2,5 GHz beträgt die
Periodendauer 400 psec. Das zulässige Vor- bzw. Nacheilen der Taktflanken der Taktsignale
in den lokalen Schaltkreisen darf nur einige 10 psec betragen. Entsprechend aufwendig ist
das Konzept der Verteilung.
Computertechnik
143
Jacob
Die zentrale Takterzeugung und -verteilung
Taktrate und Datenwortbreite als entscheidende Merkmale für die Transferrate
auf einer Schnittstelle
Auf Schnittstellen, die wortweise übertragen, legen die Taktsignale die Zeitpunkte der
Gültigkeit der Datenwörter fest. D.h., die Übertragung der Datenwörter wird auf das
Taktsignal der Schnittstelle synchronisiert.
Front Side Bus
Eine der zentralen (wortweise übertragenden) Schnittstellen ist die am Prozessor.
Leider sind die Bezeichnungen für die Prozessor-Schnittstelle uneinheitlich. Üblich
sind die Bezeichnungen System-Bus oder Host-Bus oder Front Side Bus (FSB),
der in den neueren Veröffentlichungen überwiegt.
Markante Merkmale eines FSB sind seine Taktrate bzw. die Rate der Übertragung
der Datenwörter. Man spricht von Transferrate, also Transfers pro Sekunde, und
kürzt mit T/sec ab. Beim Pentium4 sind es 8 Byte pro Transfer.
Mit einem geschickten Timing kann man das Einfache, Zweifache oder Vierfache der
Taktrate als Transferrate erreichen. Bild 5.9 zeigt die aktuellen Spitzenwerte für die
Taktraten/Transferraten des FSB des Pentium 4 (Extreme Edition)
Bei der einfachen Transferrate nutzt man nur eine Flanke des Taktsignals. Die
Verdopplung der Transferrate gelingt dadurch, dass man die zweite Flanke zusätzlich
nutzt. Die Vervierfachung gelingt dadurch, dass man ein zweites Taktsignal aus dem
Basissignal erzeugt, das zeitlich um eine Viertel-Periode verschoben ist. Dann
ergeben sich vier (um eine Viertel-Periode) aufeinander folgende Flanken pro
Periode, die den Transfer synchronisieren.
FSB-Takt: 200 MHz
Datenrate:
100 MT/sec
FSB-Takt: 266 MHz
Datenrate:
266 MT/sec
FSB-Takt: 200 MHz
Datenrate:
400 MT/sec
FSB-Takt: 266 MHz
Datenrate:
532 MT/sec
FSB-Takt: 200 MHz
FSB-Takt: 266 MHz
Datenrate:
800 MT/sec
Datenrate:
1064 MT/sec
Bild 5.9: Transferraten auf einem FSB (Pentium4, Extreme Edition)
Das Busprotokoll des FSB wird von den Prozessorherstellern als Eigentum
angesehen und damit der Lizenzpflicht unterworfen.
Chipsatzhersteller müssen sich mit dem Eigentümer über eine Lizenz einigen.
Die Hauptspeicher-Schnittstelle
Die maßgebliche Institution zur Standardisierung der Schnittstelle der SpeicherModule ist JEDEC (Joint Electronic Devices Engineering Council):
http://www.jedec.org
Computertechnik
144
Jacob
Die zentrale Takterzeugung und -verteilung
Heute kommen nur noch Speicher zum Einsatz, deren Funktionen auf einen Takt
synchronisiert werden (synchrone dynamische RAMs, SDRAMs). Dabei gibt es (wie
beim FSB) die Taktung auf nur eine oder auf beide Flanken.
Der Begriff Single Data Rate (SDR) entspricht dem Verfahren, nur eine Flanke des
Taktsignals zu nutzen, während der Begriff Double Data Rate (DDR) die Nutzung der
beiden Taktflanken angibt.
JEDEC-Bezeichnungen für SDR-DRAMs: JEDEC spezifizierte Speichermodule mit einer
Taktrate von 100 MHz bzw. 133 MHz unter der Kurzbezeichnung PC100 und PC133.
JEDEC-Bezeichnungen für DDR-DRAMs: DDR Speicher-ICs haben Bezeichnungen mit
einem Hinweis auf die Taktrate: DDR200 bei 100 MHz, DDR266 bei 133 MHz, DDR333
bei 167 MHz. - Aber die Speichermodule, die mit den entsprechenden Chips aufgebaut
sind, werden mit Merkmalen der Datenrate ergänzt (8 Byte pro Transfer) :
PC1600: Modul mit DDR200 und einer Datenrate von 1,600 GByte/sec bei 100 MHz,
PC2100: Modul mit DDR266 und einer Datenrate von 2,128 GByte/sec bei 133 MHz,
PC2700: Modul mit DDR333 und einer Datenrate von 2,664 GByte/sec bei 166 MHz.
Diese Speichermodule haben vorwiegend eine 184-Pin-Schnittstelle.
Die Speichertechnologie ist mittlerweile bei dem Typ DDR2 angekommen. Für die
Speichermodule gelten weiterhin 8 Byte pro Transfer Die Bezeichnungen sind:
PC23200: Modul mit DDR2-400 und einer Datenrate von 3,200 GByte/sec bei 200 MHz,
PC24300: Modul mit DDR2-533 und einer Datenrate von 4,264 GByte/sec bei 266 MHz,
PC25300: Modul mit DDR2-667 und einer Datenrate von 5,328 GByte/sec bei 333 MHz.
Diese Module haben vorwiegend eine 240-Pin Schnittstelle.
Standards für Speichermodule sind im JEDEC-Standard 21-C zusammengefasst.
Die Peripherie-Schnittstelle
Für die Schnittstelle zur Peripherie ist die PCI Special Interest Group zuständig:
http://www.pcisig.com/. PCI steht für peripheral component interconnect.
Der PCI-Standard 2.0 ist der klassische Standard, der immer noch seine
Anwendung auf Motherboards hat. Es arbeitet mit einem Takt von 33 MHz mit 4 Byte
pro Transfer.
Die Entwicklung der PCI-Standards verlief in zwei Richtungen:
• Die Vergrößerung der Wortbreite auf 8 Byte pro Transfer und die Erhöhung
der Taktrate auf die Varianten 64 MHz oder 100 MHz oder 133 MHz sind die
maßgeblichen Leistungsmerkmale des PCI-X Standards. Er setzte sich im
PC-Computerbereich nicht durch, aber im Server-Bereich.
•
Der Übergang zu bitserieller Datenübertragung mit sehr hohen Taktraten
führte zu den PCI-Express-Varianten. Die Frequenz des Referenztakts für
den PCI-Express ist 100 MHz. Die steuert einen PLL, um den an die Referenz
angepassten PCI-Express-Takt zu erzeugen.
Die x1 Variante erzeugt einen reinen bitseriellen Datenstrom mit einer Taktrate
von 2,5 GHz, was eine Bitrate von 2,5 GBit/sec ergibt.
Da man (aus übertragungstechnischen Gründen) jedes Byte als ein 10 BitWort codiert (der gleiche Zweck wie 4Bit/5Bit im Ethernet), ergibt sich eine
wirksame Datenrate von 250 MByte/sec pro Übertragungsrichtung.
Computertechnik
145
Jacob
Das Chipsatz-Konzept
Tx
Rx
Rx
Tx
Da ein Strang aus zwei voll-duplex betriebenen Punkt-zu-Punkt-Verbindungen
besteht und beide Transmitter gleichzeitig übertragen können, gibt man das mit
vollduplex 250 MByte/sec an.
Die x16-Variante verschränkt die Bits der zu übertragenden Bytes auf 16 parallele
Stränge, die einzeln bitseriell übertragen. Es entsteht eine 16 Mal größere
Transferrate, also 4 GByte pro sec und Übertragungsrichtung.
Für die Varianten x2, x4, x8 gilt sinngemäß das Gleiche.
5.3 Das Chipsatz-Konzept
Die technische Entwicklung hat von Generation zu Generation die Aufteilung auf
zwei ICs mit folgenden Leistungsschwerpunkten bestätigt:
• den Schwerpunkt der Abwicklung des Datenverkehrs mit dem Speicher und
dem Graphiksystem: die Einheit wird bei Intel als Memory Controller Hub
(MCH) bezeichnet;
• den Schwerpunkt der Abwicklung des Datenverkehrs mit den StandardPeripherie-Geräten: bei Intel IO-Controller-Hub (ICH) genannt.
Auf dem Motherboard ASUS P5AD2 wird der Chipsatz i925XE eingesetzt (Bild 5.10).
Bild 5.10: Intel-Original des Chipsatzkonzepts i925XE
(FSB-Takt 266 MHz entspricht 1064 MT/s entspricht 8,5 GB/s)
Zum Vergleich kann man das Chipsatz-Konzept (Bild 5.11) des älteren Motherbords
heranziehen, das oben als Beispiel genommen wurde.
Computertechnik
146
Jacob
Das Chipsatz-Konzept
Bild 5.11: Intel-Original des Chipsatz-Konzepts i845
(FSB-Takt 100 MHz entspricht 400 MT/s entspricht 3,2 GB/s)
Der technische Fortschritt bedeutet also nicht nur eine Verbesserung der Leistungsfähigkeit der Prozessoren, sondern auch eine genauso wichtige Verbesserung der
Leistungsfähigkeit der Chipsätze, die mit dem Fortschritt der Schnittstellen-Standards
Schritt halten muss.
Eine der wichtigsten Aufgaben des Chipsatzes ist es, die Daten - wie vom Programm
gewünscht - von den Datenquellen zu den Datensenken zu transferieren. Im Grunde
wirkt der Chipsatz als der zentrale Verteilerknoten für die Datenströme auf dem
Motherboard (Bild 5.12), unabhängig davon, wie die einzelnen Funktionen den
beiden ICs zugeordnet werden.
Prozessor
Daten vom Prozessor
an die I/O-Geräte bzw.
von den I/O-Geräten
zum Prozessor
Host
Interface
Befehle
Daten
Mem
Interface
IDE
/ATA
Interface
Grafik
Interface
Memory
(Hauptspeicher)
Daten von den I/OGeräten in den Hauptspeicher bzw. von
dort in die I/O-Geräte:
direct memory access
PCI
Interface
USB
Interface
Bild 5.12: Chipsatz als zentraler Verteilerknoten der Datenströme
Schnittstelle heißt im Englischen Interface. Dieser Begriff wird im Folgenden verwendet.
Die Aufteilung der Funktionen auf zwei ICs (Bild 5.13) hat auch praktische Gründe:
Computertechnik
147
Jacob
Das Chipsatz-Konzept
•
•
Durch die vielen Pins der verschiedenen Interfaces ergäbe sich bei einer Ein-ICLösung eine große Pinzahl mit entsprechend höherem Aufwand für Realisierung der
Leitenbahnen auf dem Motherboard.
Man kann die Funktionen der ICs voneinander getrennt optimieren. Beispielsweise
kann man den MCH an eine neue Speichertechnologie anpassen, den ICH aber
weiter wie vorhanden einsetzen. Die Anpassung der ICs in einer neuen Chipsatzversion erfolgt in aller Regel erst dann, wenn sich neue Standards geklärt haben. Die
Strategie der unabhängigen Optimierung nützt nur dann etwas, wenn das
(firmeninterne) Interface zwischen den beiden ICs gleich bleibt.
Prozessor
Host
Interface
Mem
Hub zur Einstellung des
Interbefehlsgemäßen Datenpfads
face
zwischen den Interfaces und
interface-spezifische Unterstützung,
z.B. Memory-Controller
Grafik
Interface
Memory
(Hauptspeicher)
Hub
Interface
IDE
Hub zur Einstellung des
/ATA
befehlsgemäßen Datenpfads
zwischen den Interfaces und
interface-spezifische Unterstützung,
z.B. Interrupt-Controller
PCI
Interface
USB
Interface
Bild 5.13: Funktionsschwerpunkte im Chipsatz
Teilt man die Funktionsschwerpunkte weiter in Teilfunktionen auf, ergibt sich das
Schema in Bild 5.14.
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Prozessor
Interface
Memory
Controller
Graphik
Interface
Hub
Interface
AGP
Hub
Interface
RAID
Hub
Interface
Disk-Interface
oder
PCIEx16
PCI
Interface
PCIE
x1
PCI
Bus
Mem
Bus
Int
contr
IDE
/ATA
USB
Interface
USB
Bild 5.14: Interface/Controller-Funktionen innerhalb des Chipsatzes
Computertechnik
148
Jacob
Das Chipsatz-Konzept
Die Details der Funktionen eines Chipsatzes füllen sehr umfangreiche Datenblätter.
Hier interessieren nur einige prinzipielle Merkmale. Im Folgenden werden diese
prinzipiellen Merkmale zunächst aus der Sicht diskutiert, wie der Prozessor eindeutig
die diversen Datenquellen/senken im System identifizieren kann.
Die Adressierung bei den Datentransfers des Prozessors
Die Zuordnung eindeutiger Adressen zu den Speicherzellen im System ist eine
notwendige Bedingung, um den Datenpfad vom Prozessor durch den Chipsatz zum
betroffenen Interface und zur Speicherzelle in der betroffenen Einheit zu bilden.
Der Hauptspeicher besteht aus Speicherzellen. Auch jede I/O-Einheit verfügt über
eine bestimmte Anzahl von Speicherzellen (Registern). Jeder dieser Speicherzellen
muss eine eindeutige Adresse zugeordnet sein, damit man gezielt auf sie zugreifen
kann (Bild 5.15).
Memory
(Hauptspeicher)
Adresse Zelle
topMEM
Prozessor
Front
side
Bus
Prozessor
Interface
Graphik
Interface
Memory
Controller
Mem
Bus
0
Hub
Interface
Adresse
top RAID
Hub
Interface
AGP
oder
PCIEx16
Zelle
Adresse
Hub
Interface
top PCIEx 16
top MEM+1
Zelle
Adresse
top PCIEx 1
top PCIEx 16+1
PCIE
x1
PCI
Interface
top ATA+1
RAID
Disk-Interface
Int
contr
PCI
Bus
Adresse
top PCI
top PCIEx 1+1
Zelle
IDE Adresse
top ATA
/ATA top USB+1
Zelle
USB
Interface
USB
Zelle
Adresse
top USB
Zelle
top PCI+1
Bild 5.15: Die Zuordnung eindeutiger Adressen zu den Speicherzellen im System
Beim Verfahren der konkreten Zuordnung der Adresswerte muss man berücksichtigen, dass man die Gerätekonfiguration ändern kann und die Zuordnung sich automatisch anpasst (plug and play).
Ein übliches Verfahren ist, den Speicherzellen des Hauptspeichers von 0 bis zur
letzten (Adresse topMEM) nacheinander je eine Adresse zuzuordnen und dann in
einer (im Boot-Programm festgelegten) Reihenfolge die einzelnen Interfaces/Geräte
abzufragen und deren Speicherzellen nacheinander so Adressen zuzuordnen, dass
eine Kettung der Adressen der einzelnen Interfaces/Geräte entsteht.
Die Reihenfolge ist unwichtig. Entscheidend ist, dass jede Speicherzelle eine nur
einmal verwendete Adresse bekommt.
Computertechnik
149
Jacob
Das Chipsatz-Konzept
Auf diese Art ergibt sich, dass jeder Speicherzelle (also Hautspeicherzelle oder IOZelle) eine Adresse aus einer durchgehenden Adressmenge (man sagt auch
Adressraum) zugeordnet ist. Bezogen auf die IO-Adressierung sagt man: memory
mapped IO.
Das ist das heute übliche Verfahren. Aus Kompatibilitätsgründen gibt es noch das
Verfahren, dem Hauptspeicher und den IO-Registern getrennte Adressmengen
(Adressräume) zuzuordnen. Den Adressbits zur Angabe des numerischen Adresswerts
wird ein zusätzliches Bit hinzugefügt, dessen Wert entscheidet, ob der Hauptspeicher oder
die IO-Register adressiert werden.
Auf der Basis dieser Adresszuordnung kann ein eindeutiger Pfad zwischen der
Einheit, die eine Adressierung zum Zwecke eines Datentransfers initiiert, und der
adressierten Zieleinheit ermittelt werden.
Angenommen, der Prozessor initiiert einen solchen Vorgang. Dann führt ein
eindeutiger Entscheidungsbaum durch den Chipsatz, so dass das Interface zur
Zieleinheit gefunden wird. An den Entscheidungsknoten entscheiden die
entsprechenden Top-Werte darüber, welche Verzweigung gültig wird (Bild 5.16).
Memory
(Hauptspeicher)
Adresse Zelle
topMEM
Prozessor
Front
side
Bus
Prozessor
Interface
Graphik
Interface
Memory
Controller
Mem
Bus
0
Hub
Interface
Adresse
top RAID
Hub
Interface
AGP
oder
PCIEx16
Zelle
Adresse
Hub
Interface
top PCIEx 16
top MEM+1
Zelle
Adresse
top PCIEx 1
top PCIEx 16+1
PCIE
x1
PCI
Interface
top ATA+1
RAID
Disk-Interface
Int
contr
PCI
Bus
Adresse
top PCI
top PCIEx 1+1
Zelle
IDE Adresse
top ATA
/ATA top USB+1
Zelle
USB
Interface
USB
Zelle
Adresse
top USB
Zelle
top PCI+1
Bild 5.16: Der Adress-Entscheidungsbaum zur Bestimmung des adressierten Ziels
bei einem vom Prozessor initiierten Datentransfer
Ist die Weiterleitung der Adresse (evt. mit protokollbedingter Anpassung) am
adressierten Interface angekommen, dann sorgen die Adressdecoder in den (am
Interface angeschlossenen) Einheiten für die endgültige Auswahl der adressierten
Speicherzelle.
Der Verlauf des Adresspfads bestimmt auch den Verlauf des Datenpfads, der parallel
dazu verläuft.
Computertechnik
150
Jacob
Das Chipsatz-Konzept
Memory
(Hauptspeicher)
Adresse Zelle
Prozessor
Front
side
Bus
Prozessor
Interface
Graphik
Interface
oder
PCIEx16
Zelle
Adresse
Adressdecoder
Hub
Interface
Adresse
Hub
Interface
Adressdecoder
Adresse
Mem AdressBus decoder
Adressdecoder
Hub
Interface
AGP
Zelle
Memory
Controller
PCIE
x1
PCI
Interface
RAID
Adressdecoder
IDE Adresse
Adress/ATA decoder
Disk-Interface
Int
contr
PCI
Bus
Adresse
Zelle
Zelle
USB
Interface
USB
Zelle
Adresse
Adressdecoder
Zelle
Bild 5.17: Adressdecoder zur endgültigen Bestimmung der adressierten
Speicherzelle
Ist die Adresse > topMEM und > topUSB, aber <topATA, dann wird der Pfad zum
ATA-Bereich wirksam (Bild 5.18).
Memory
(Hauptspeicher)
Prozessor
Front
side
Bus
Prozessor
Interface
Memory
Controller
Mem
Bus
Adressdecoder
Zelle
Hub
Interface
Graphik
Interface
Hub
Interface
Hub
Interface
PCI
Interface
Int
contr
Disk-Interface
AdressIDE
decoder
/ATA
Zelle
USB
Interface
Bild 5.18: Adressierungspfad zu einem IDE/ATA-Diskcontroller
Das ist der Adressierungs-Pfad, der bei der Übertragung der Command-Daten eines
dma-Auftrags an den Diskcontroller benutzt wird. Der Datenpfad verläuft parallel
dazu. Die Command-Daten geben u.a. an, welche Sektoren der Disk in einen
angegebenen Bereich des Hauptspeichers oder von dort in die Sektoren zu
übertragen sind.
Sobald der Disk-Controller alle Command-Daten hat, beginnt er mit der selbständigen Ausführung des Commands, d.h. mit dem dma-Datenverkehr. Steuerzentrale im
Disk-Interface ist ein dma-Controller (Bild 5.19).
Die Adressierung des Hauptspeichers wird vom dma-fähigen Controller vorgegeben,
d.h. die Richtung der Adressierung ist der des Prozessors entgegengesetzt.
Computertechnik
151
Jacob
Das Chipsatz-Konzept
Ein zusätzlicher Unterschied zum Datenverkehr des Prozessors ist, dass es beim
dma-Datenverkehr der IO-Controller nur einen einzigen Adressaten gibt: den
Hauptspeicher.
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Zelle
Adressdecoder
Prozessor
Interface
Memory
Controller
MemBus
Hub
Interface
Graphik
Interface
Laufwerk
dma-controller
Hub
Interface
Int
contr
PCI
Interface
IDE/ATA
Adressdecoder
Zelle
Disk-Interface
USB
Interface
IDE/ATA-DiskController
Bild 5.19: Beispiel eines Adressierungspfads bei einem dma-Zugriff (liest von Disk,
schreibt in Hauptspeicher)
Die Konkurrenz um den Hauptspeicher
Mit der dma-Fähigkeit einiger Peripherie-Controller ergibt sich ein besonderes
Problem: die Speicherzugriffe dieser Geräte und die Zugriffe des Prozessors
konkurrieren um den Zugang zum Hauptspeicher, wenn beide gleichzeitig Daten
übertragen wollen.
Es ist unzweckmäßig, den Zugang für andere so lange zu blockieren, bis einer mit
seiner Gesamtübertragung fertig ist. Sinnvoller ist es, dass man kurze elementare
Übertragungsvorgänge bildet, die einen Block mit einer begrenzten Anzahl von
Transfers umfassen, so dass die nicht unterbrechbaren Übertragungen die anderen
nicht zu lange warten lassen.
Dadurch kann man die einzelnen kurzen elementaren Übertragungsvorgänge der
Konkurrenten, die gleichzeitig zum Hauptspeicher zugreifen wollen, abwechselnd
zeitlich hintereinander ordnen. Man spricht von zeitlichem Verschränken.
Dadurch entsteht der Effekt, dass die Konkurrenten „gleichzeitig bedient“ werden.
Bild 5.20 stellt die Konkurrenzlage mit Hilfe eines Graphen dar. An jedem
Ausgangspunkt einer Pfeilkette wirkt eine Einheit, die Datentransfers mit dem
Hauptspeicher initiieren kann. An den Ausgangspunkten liegen also die möglichen
konkurrierenden Einheiten.
Jeder Pfeil definiert die notwendige Belegung eines Adress/Datenpfad-Abschnitts
zum Hauptspeicher. Jede Pfeilkette, die von einem Ausgangspunkt (=initiierende
Einheit) zum Memory-Controller führt, definiert die Belegungskette für den
Adress/Datenpfad zum Hauptspeicher, über den die Einheit einen elementaren
Datenblock von/zum Hauptspeicher übertragen kann.
Es ergibt sich ein Pfeil-Graph mit Baumstruktur, weil es von mehreren genutzte
Adress/Datenpfad-Abschnitte gibt. An den Knoten, auf die mehrere Pfeile gerichtet
sind, beginnt ein gemeinsam genutzter neuer Pfadabschnitt.
Computertechnik
152
Jacob
Das Chipsatz-Konzept
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Zelle
Adressdecoder
Prozessor
Interface
Memory
Controller
MemBus
Hub
Interface
Graphik
Interface
Hub
Interface
Int
contr
Disk-Interface
PCI
Interface
USB
Interface
Bild 5.20: Graph der konkurrierenden Belegungen der dma-Adress/Datenpfade
Wenn es zwischen dem Initiator und dem Memory Controller keine Zwischenpuffer
gibt, die den Pfad in unabhängig voneinander belegbare Pfadabschnitte auftrennen,
dann muss der Pfad als Ganzes belegt werden. Die Entscheidung über die Belegung
des Zugangs zum Hauptspeicher bedeutet dann auch, dass über den gesamten
Adress/Datenpfad entschieden wird.
Der Graph gibt die Überlagerung aller Alternativen der dma-Belegungen an. Zu
einem bestimmten Zeitpunkt werden aber nicht alle Einheiten gleichzeitig
Datentransfers mit dem Hauptspeicher ausführen wollen, sondern nur einige davon.
Der Graph gibt nur die dma-Konkurrenz an. Will man die gesamte Konkurrenz
beschreiben, dann muss man zusätzlich die notwendigen Belegungen berücksichtigen, die durch die Datentransfers des Prozessors von/zur Peripherie entstehen. Die
Überlagerung beider Graphen zeigt Bild 5.21.
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Zelle
Adressdecoder
Prozessor
Interface
Memory
Controller
MemBus
Hub
Interface
Graphik
Interface
Hub
Interface
PCI
Interface
Int
contr
Disk-Interface
USB
Interface
Bild 5.21: Überlagerung des dma-Belegungsgraphen (durchgezogen) mit dem IOBelegungsgraphen des Prozessors (gestrichelt)
Computertechnik
153
Jacob
Das Chipsatz-Konzept
Damit sind immer noch nicht alle Belegungen erfasst. Bei den dma-Zugriffen ist noch
etwas Besonderes zu beachten. Wenn nämlich bei dma-Zugriffen Hauptspeicherzellen verändert werden, von denen im Augenblick eine Kopie im Cache im Prozessor steht, dann würde ein Unterschied zwischen Cache und Hauptspeicher entstehen. Diese Inkonsistenz darf nicht sein.
Es gibt verschiedene Verfahren, sie zu vermeiden. Eines davon ist das SnoopVerfahren.
Zum Hauptspeicher kann immer nur eine Einheit zugreifen. Wenn eine dma-fähige
Einheit zum Hauptspeicher zugreift, kann der Prozessor nicht zugreifen. Damit belegt
er auch nicht den Front-Side-Bus. Aber der Prozessor kann passiv am FSB
„mithören“, was man als Snoop-Zustand bezeichnet.
Wenn nun der dma-Zugriff zum Hauptspeicher erfolgt, kann das Prozessor-Interface
des Chipsatzes den FSB belegen, d.h. eine FSB-Transaktion mit der Adresse und
dem Datenwort des dma-Zugriffs veranlassen. Der snoopende Prozessor kann mit
Hilfe der Adresse feststellen, ob sein Cache eine Kopie enthält und diese, wenn
vorhanden, gemäß Datenwort aktualisieren.
Soweit das Prinzip. Die Details sind komplexer.
Das Snoop-Verfahren bedeutet also, dass der Memory-Controller den
Adress/Datenpfad zum Front-Side-Bus belegen kann. Diese Belegung ist in Bild 5.22
zusätzlich berücksichtigt.
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Zelle
Adressdecoder
Prozessor
Interface
Memory
Controller
MemBus
Hub
Interface
Graphik
Interface
Hub
Interface
PCI
Interface
Int
contr
Disk-Interface
USB
Interface
Bild 5.22: Vollständiger Belegungsgraph (strich-punktiert: Belegung zum Zweck des
Snoopens)
Die Chipsatz-Hersteller veröffentlichen ihr Chipsatz-Konzept nicht im Detail. Das ist auch
nicht notwendig, um die Prinzipien zu erkennen. Im Folgenden wird ein beispielhaftes
Konzept für eine Strategie plausibel gemacht, mit der die Entscheidungen über die Belegung
der Adress/Datenpfade getroffen werden können.
Computertechnik
154
Jacob
Das Chipsatz-Konzept
Eine beispielhafte Entscheidungsstrategie bei der Belegung der
Adress/Datenpfade
Auf dieser Basis des vollständigen Belegungsgraphen kann man beispielhaft eine
Entscheidungsstrategie bei der Belegung der Adress/Datenpfade konzipieren.
Wenn bei den dma-Zugriffen grundsätzlich der FSB mitbeteiligt ist, dann ist die
Entscheidungsstelle, die über die Belegung des FSB entscheidet, von zentraler
Bedeutung.
Der Memory-Controller meldet den Bedarf nach einem kombinierten dma-FSB-Zugriff
beim Prozessor-Interface an, das es bei der FSB-Vergabestelle (FSB-Arbiter)
anmeldet. Der Prozessor meldet seinen Bedarf davon unabhängig ebenfalls beim
FSB-Arbiter an.
Das Entscheidungsverfahren im FSB-Arbiter kann ein Umlaufverfahren mit
Gleichverteilung der Chancen oder ein Verdrängungsverfahren sein. Beim
Umlaufverfahren werden die Anforderungen zyklisch in immer gleicher Reihenfolge
abgefragt und bewilligt. Beim Verdrängungsverfahren gibt es eine Rangfolge, so
dass immer die höchstrangige Anforderung in einer Warteschlange bewilligt wird.
Bei zwei Konkurrenten bedeutet das Umlaufverfahren, dass die beiden
abwechselnd ihre Chance bekommen; das Verdrängungsverfahren bedeutet, dass
sich im Konfliktfall die Anforderung mit der höheren Priorität durchsetzt.
Gibt man z.B. den dma-Transfers die höhere Priorität, dann würden die ProzessorTransfers verdrängt. Das bewirkt tendenziell eine Verlangsamung des Programmdurchsatzes, so dass tendenziell weniger dma-Aufträge an die dma-fähigen
Controller nachrücken. Die angenommene Verdrängungsstrategie unterstützt also
die Anpassung der Programmlast an die Belastbarkeit des Systems durch dmaDatentransfers.
Im FSB-Arbiter muss auf die eine oder die andere Art eine Entscheidung fallen.
Wenn der Prozessor den Zuschlag bekommt, dann hat er die Initiative beim
Datentransfer und das Prozessor-Interface sorgt dafür, dass der Adress/Datenpfad
im Sinne des Prozessors im Chipsatz eingestellt werden kann. In diesem Fall erhält
der Memory-Controller keine Freigabe für einen dma-Transfer.
Wenn aber das Prozessor-Interface vom FSB-Arbiter freigegeben wird, gibt es dem
Memory Controller ein dma-Freigabe-Signal.
Dieser entscheidet zuerst, ob er das Graphik-Interface oder das Hub-Interface frei
gibt. - Wenn er das Hub-Interface frei gibt, dann muss das Hub-Interface im IO
Controller Hub entscheiden, welche der Anforderungen es frei gibt, die bei ihm
anliegen. - Wird das PCI-Interface frei gegeben, muss dieses darüber entscheiden,
welcher seiner PCI-Controller frei gegeben wird. Sinngemäß Gleiches gilt für das
Disk-Interface.
Auf diese Art wird eine der anliegenden dma-Anforderungen bewilligt und die
bewilligte Einheit wird als Initiator eines dma-Datentransfers aktiv. Der
Adress/Datenpfad wurde bei der Entscheidungsfindung eindeutig festgelegt.
Computertechnik
155
Jacob
Das Chipsatz-Konzept
Der Memory-Controller stellt – zusätzlich zum und unabhängig vom bewilligten
Initiator - auch das Ende des Datentransfers fest und meldet dem FSB-Arbiter das
Ende seiner aktuellen FSB-Belegung. Was nicht heißt, dass er nicht noch eine
weitere Anforderung beim Prozessor-Interface anmeldet, die noch auf Bedienung
wartet.
Spätestens nach dem Ende des Datentransfers muss es zu einer neuen
Entscheidung im FSB-Arbiter kommen, wenn man keine Zeit verlieren will. Bei der
Entscheidung, die der vorausgegangenen folgt, gelten die neuen aktuellen
Anforderungen.
Ob dieses Verfahren oder ein anderes eine optimale Ausbalancierung des
Datenverkehrs des Prozessors und der dma-fähigen Controller bedeuten, muss man
mit Hilfe von Simulationen gemäß repräsentativen Programmprofilen zeigen. Das ist
eine typische Aufgabe des Computerentwurfs.
Interrupt-Controller
Zu den Leistungen des Chipsatzes gehört auch die Bereitstellung des InterruptControllers, der in IO-Controller-Hub realisiert wird (Bild 5.23).
Prozessor
Front
side
Bus
Memory
(Hauptspeicher)
Prozessor
Interface
Memory
Controller
Graphik
Interface
Hub
Interface
AGP
Hub
Interface
RAID
Hub
Interface
Disk-Interface
oder
PCIEx16
Sammel-Interrupt-Request
PCIE
x1
PCI
Interface
PCI
Bus
Mem
Bus
Int
contr
IDE
/ATA
USB
Interface
USB
Bild 5.23: Interrupt-Controller als zentrale Anlaufstelle für die Interrupt-Requests
Request-Signalpfade rot, Acknowledge-Adressierungs-Pfad grün, Interrupt-Vektor-Pfad
schwarz
Man beachte das, was im Kapitel 2 über die Veroderung der Interrupt-Requests
gesagt wurde: auf dem PCI-Bus wird das mit dem wired-OR-Verfahren gemacht; im
PCI-Interface bzw. Interrupt-Controller durch integrierte Schaltungen.
Der Prozessor initiiert aufgrund des Sammel-Interrupt-Request einen InterruptAcknowledge-Zyklus, mit dem über das Hub-Interface der Interrupt-Vektor aus dem
Interrupt-Controller ausgelesen wird.
Ist es ein PCI-Interrupt, dann folgen die Lese-Zugriffe zu den PCI-Controllern, um
den Verursacher zu bestimmen.
Computertechnik
156
Jacob
Das Konzept des Front Side Bus
6 Der Datenverkehr von/zu den Prozessoren
6.1 Das Konzept des Front Side Bus
Die Schnittstelle des Prozessors bestimmt die Eigenschaften des Front Side Bus. Sie
legt u.a. die Adressbits und die Datenbits fest. Der Pentium4 (Extreme Edition) soll
als Beispiel dienen (Bild 6.1).
Bei einem Datentransfer wird ein Datenwort von 64Bit übertragen. Die Adressierung
erfolgt in zwei aufeinander folgenden Adressierungsphasen. In der ersten Phase
werden die Adressbits A3 bis A35 angelegt, um eine 64Bit-Speicherzelle zu
selektieren. In der folgenden Phase wird u.a. ein 8Bit-Adressmuster, das gezielt
Bytes im Speicherwort auswählen kann.
Bild 6.1: Pad-Schnittstelle des Pentium4 (Extreme Edition) mit Adress-Pads (linke
Markierungen) und Daten-Pads (rechte Markierungen)
Um Datentransfers überhaupt ausführen zu können, braucht man aber mehr als
Adress- und Datenbits. Man braucht klare Regeln über den zeitlichen Ablauf der
Einzelaktionen des Transfers. Die Abfolge der Einzelaktionen eines Transfers sei
Transaktion genannt.
Die Phasen einer Transfer-Transaktion
Wenn man die notwendigen Einzelaktionen einer Transaktion konzipiert, dann muss
man sich zunächst fragen, ob der Prozessor der einzige Initiator von Datentransfers
am Front Side Bus sein soll. Im vorausgehenden Kapitel wurde das schon beantwortet: das Prozessor-Interface des Chipsatzes sollte auch am Front Side Bus als
Initiator agieren können. Damit ist es, wie dort schon im Grundsatz vorgestellt, notwendig, zuerst eine FSB-Arbitrierung vorzunehmen, bevor der eigentliche Transfer
beginnen kann.
Dann aber fragt man sich natürlich, ob man die Arbitrierung nicht gleich so konzipiert, dass
sie zusätzlich mehr als einen Prozessor einbeziehen kann. Das genau ist bei der Festlegung des Intel-P6-Konzepts entstanden, dessen Prinzip hier als Beispiel diskutiert wird.
Nach der Phase der Arbitrierung soll der Initiator, der den Front Side Bus benutzen
darf, möglichst schnell seine Anforderungen spezifizieren.
Computertechnik
157
Jacob
Das Konzept des Front Side Bus
Er legt ein Command-Wort an, das den Zugriffstyp spezifiziert, und die Adresswörter
zur Selektion der Speicherzellen bzw. der Bytes in der Zelle, auf die sich der Zugriff
bezieht.
Ein konsequenter Entwurf achtet darauf, dass in der Adress/Command-Phase Übertragungsfehler entstehen können, gegen die man sich durch Sicherungsmaßnahmen
schützen kann. Also legt man danach eine Fehlererkennungs-Phase ein, die eine
Überprüfung der Sicherungsergebnisse der vorausgegangenen Phase erlaubt.
Angenommen, das Prozessor-Interface im Chipsatz hätte die bisher beschriebenen
Phasen als Initiator bei einem dma-Zugriff des Memory-Controllers ausgeführt.
Währenddessen wäre der Prozessor im Snoop-Zustand und würde die Adresse
übernehmen und auswerten, die das Prozessor-Interface anlegte. Jetzt braucht der
Prozessor Zeit, die Auswertung vollständig zu machen. Die Zeit soll Snoop-Phase
genannt werden.
Das Alles muss abgeschlossen sein, bevor die eigentliche Datentransferphase
beginnen kann. Diese wird so konzipiert, dass diejenigen Übertragungen möglichst
ununterbrochen stattfinden, die am häufigsten vorkommen: die Übertragungen von
Cachelines, die vier Speicherwörter umfassen.
Der jeweilige Initiator erwartet vier Datenwörter, wenn er ein Lese-Command gegeben hat, bzw. liefert vier Datenwörter, wenn er ein Schreib-Command gegeben hat.
Begleitende Statusmeldungen machen den Datentransfer überwachbar.
Für jede Phase ist je eine Schaltung zuständig, die nacheinander eine Transaktion
bearbeiten. Das ergibt für eine einzelne Transaktion folgenden Bearbeitungs-Zeitplan
(Bild 6.2), der auf den FSB-Takt synchronisiert ist.
FSBPipeline
FSBSignale
Arbiter
FSBRequests
Transaktion
Arbitertakte
Transfer-Requesttakte
Datentransfertakte
Adress- und Command
Command
control
Adresse
Errorcontrol
Snoopcontrol
Status- und
Daten
control
Bus error,..
Hit,..
Status
Daten
Takt
Bild 6.2: Zeitplan gemäß dem Protokoll des FSB (Intel P6-Konzept)
Computertechnik
158
Jacob
Das Konzept des Front Side Bus
Gründe für einige Details: Der Zeitplan weist aus, dass die Arbitrierungs- und die
Adress/Command-Phase je zwei FSB-Takte brauchen.
Bei der Arbitrierung werden im ersten Takt die FSB-Request-Signale im angetroffenen Zustand „fixiert“ (d.h. es werden keine Änderungen mehr zugelassen) und gespeichert, wenn
man sicher ist, dass „alles eingeschwungen ist“. Im zweiten Takt wird der gespeicherte Zustand für die Bewilligung ausgewertet, und es werden wieder Änderungen zugelassen.
In der Adress/Commandphase werden im ersten Takt die Adressbits zur Adressierung der
64Bit-Speicherzelle und die Command-Bits angelegt. In der zweiten Phase wird auf den
Adressbits ein 8Bit-Muster angelegt. Jedes Bit wählt ein Byte von den 8 Bytes aus, die in
der adressierten 64Bit-Speicherzelle liegen.
Die Pipeline-Struktur der FSB-Steuerung
Die Schaltungen, die die Aktionen der aufeinander folgenden Phasen ausführen,
bilden eine Kette besonderer Art. Es ist nicht so, dass eine Transaktion, deren Bearbeitung im ersten Glied der Kette begonnen wurde, erst bis zum letzten durchlaufen
muss, bevor man mit der Bearbeitung einer neuen Transaktion im ersten beginnen
kann. Vielmehr kann jedes Glied mit der Bearbeitung einer nachfolgenden Transaktion beginnen, wenn die vorhergehende fertig ist.
Das ist vergleichbar der Bearbeitung eines Werkstücks in einem Fließband (pipeline).
Deshalb spricht man von der Pipeline-Struktur der Kette. So, wie in einem
Fließband mehrere Werkstücke gleichzeitig bearbeitet werden können, können in der
FSB-Pipeline mehrere Transaktionen gleichzeitig bearbeitet werden. Das kann man
mit einem beispielhaften Zeitplan veranschaulichen (Bild 6.3).
Arbiter
Adress- und
Command
control
Errorcontrol
Snoopcontrol
Warten
Status- und
Daten
control
Takt
Bild 6.3: Beispiel-Zeitplan für die gleichzeitige Bearbeitung von zwei Transaktionen in
der FSB-Pipeline
Wenn das erste Glied in der Pipeline-Kette, das Arbitrierungsglied, frei ist, kann es
für eine nachfolgende Transaktion aktiv werden. Die Bearbeitungen der
nachfolgenden Transaktion ordnen sich in den folgenden Gliedern passend hinter die
Phasen der vorhergehenden, bis das Status/Daten-Glied erreicht ist.
Computertechnik
159
Jacob
Das Konzept des Front Side Bus
Dieses ist noch durch die vorhergehende belegt, d.h. die nachfolgende muss warten,
bis das Glied frei gegeben wird. Eine weitere unmittelbar nachfolgende Transaktion
müsste auf die Vorgängerinnen warten usw. Von Fall zu Fall können sich also
Warteschlangen ergeben, die geordnet abgebaut werden müssen.
Prinzipien der FSB-Arbitrierung
(Vertiefung für Interessierte, kein Prüfungsstoff)
Arbitrieren heißt: über einen Benutzer entscheiden. In diesem Fall sind die Benutzer
bewilligte Initiatoren eines Datentransfers auf dem FSB.
Schaltungstechnisch kann man das Arbitrieren dadurch realisieren, dass sich die Initiatoren
mit je einem Anforderungssignal bei einer zentralen Einheit (Arbiter) melden, die die
Anforderungssignale auswertet und gezielt nur ein Bewilligungssignal zu dem anfordernden
Initiator zurückschickt (wenn es mehr als einer ist, zu einem der Initiatoren).
Bei dieser Lösung muss man mit drei Zeitabschnitten rechnen, bis ein anfordernder Initiator
mit dem Datentransfer beginnen kann: der Laufzeit der Anforderung zum Arbiter, der
Entscheidungszeit und der Laufzeit der Bewilligung zum anfordernden Initiator. Das ist eine
grundsätzliche Eigenschaft der zentralen Arbitrierung, die durch die Laufzeiten nicht die
zeitoptimalste Lösung ist.
Eine andere Lösung, die die Laufzeiten vermeidet, geht davon aus, dass jeder Initiator eine
Arbiter-Schaltung (z.B. Agent genannt) enthält, so dass sich die Agenten untereinander
über die Benutzung einigen können.
Angenommen, jeder Agent verfügt über einen Zähler und es gibt vier Agenten. Weiterhin
angenommen, dass die Anfangszustände der Zähler zyklisch verteilt sind und dass alle
Zähler mit dem gleichen Tatsignal getaktet werden. Dann schieben sich die Anfangswerte
zyklisch durch die Zähler, wie die folgende Tabelle mit aufwärts zählenden Zählern zeigt:
Takt
Anfang
1.Takt
2.Takt
3.Takt
4.Takt
usw.
Zähler 0
0
1
2
3
0
Zähler 1
3
0
1
2
3
Zähler2
2
3
0
1
2
Zähler3
1
2
3
0
1
Dieses Zählschema dient der Festlegung der Reihenfolge, in der den Agenten eine
Chance, also das Recht zum Zugriff, gegeben wird. Die Chancen sind gleich verteilt.
Das Merkmal für das Recht zum Zugriff ist ein bestimmter Zählerzustand, der hier die 0
sein soll.
Dieses Verfahren garantiert also, dass die Agenten der Reihe nach eine Belegungschance
bekommen. Damit erkennen die einzelnen aber nicht, ob die anderen einen Bus-Request
haben. Dazu braucht man eine gegenseitige Meldung der Bus-Requests.
Der Initiator i (i =0 bis 3) schaltet im Zählzustand 0 sein eigenes Bus-Request-Signal
BR0#[i] auf eine verteilende Leitung, die mit BREQi# bezeichnet werden soll. Die Leitung
führt zu je einem speziellen Eingang an anderen Initiatoren.
Computertechnik
160
Jacob
Das Konzept des Front Side Bus
BR0#[0]
BR0#[1]
BR0#[2]
BR0#[3]
BREQ0#
BREQ1#
BREQ2#
BREQ3#
Nun muss jeder Initiator in jedem Takt eindeutig die Bus-Requests der anderen finden. Der
Anhaltspunkt, der Eindeutigkeit schafft, ist der Zählerstand.
Die Eingänge werden so nummeriert, dass jeder Initiator den Eingang abfragt, der zum
aktuellen Zählerstand gehört.
BR0#[0]
BR1#[0]
BR2#[0]
BR3#[0]
BR3#[1]
BR0#[1]
BR1#[1]
BR2#[1]
BR2#[2]
BR3#[2]
BR0#[2]
BR1#[2]
BR1#[3]
BR2#[3]
BR3#[3]
BR0#[3]
BREQ0#
BREQ1#
BREQ2#
BREQ3#
In der Nummerierung der Pins erkennt man vom 1. bis zum 4. Takt zeilenweise die
Zählerstände. Jeder Initiator kann in jedem Takt mit dem Zählerstand feststellen, welche
Bus Requests er einzulesen hat, um die gleiche Entscheidung zu fällen wie die anderen.
Die Arbitrierung dauert zwei FSB-Takte. Im ersten werden die Bus-Requests alle „fixiert“.
Im zweiten wird der Agent bestimmt, der den FSB bekommt. Alle Agenten haben sich den
letzten Agenten gemerkt, der den FSB benutzt hat, z.B. dadurch, dass alle ihre Zähler bei
der letzten Entscheidung angehalten haben.
Sobald der zweite FSB-Takt der aktuellen Arbitrierung begonnen hat, inkrementieren alle
Agenten ihre Zähler und prüfen den Bus-Request desjenigen Agenten, der dann bedient
werden kann.
Hat dieser einen Bus-Request, dann stellen das alle fest und halten an. Der betroffene
Agent gibt seine Transaktion frei. Ein noch wartender Bus-Request eines anderen Agenten
wird erst bei der nächsten Arbitrierung bedient. - Hat er keinen Bus-Request, wird das in
allen Agenten festgestellt und in allen Agenten wird sofort weiter gezählt und die
Entscheidungsfindung wie zuvor wiederholt.
Das wiederholt sich, bis entweder ein Bus-Request gefunden ist oder in allen der Agent
wieder angetroffen wird, bei dem das Suchen begonnen hat. Dann war die Suche erfolglos
und man kann sie abbrechen, d.h. man kann die Fixierung der Bus-Requests aufheben.
Die beiden FSB-Takte der danach folgenden Arbitrierung laufen dann in gleicher Weise ab.
Die Folge eines solchen Verfahrens ist, dass in mehreren nacheinander folgenden Arbitrierungen je eine Transaktion gestartet werden kann, weil - aus welchem Grund auch immer Bus-Requests zu dicht aufeinander folgen. Dann laufen die Puffer für die gestoppten, also
wartenden Transaktionen über.
Computertechnik
161
Jacob
Das Konzept des Front Side Bus
Das Konzept sieht eine „Notbremse“ vor. Jeder Agent kann durch Aktivierung des Signals
„block next request“ die Bewilligung weiterer Transaktionen sperren, also das zyklische
Suchen des nächsten Bus-Requests anhalten und das Anhalten wieder aufheben.
Eine weitere ergänzende Funktion betrifft die Notwendigkeit, bestimmte Folgen von
Transaktionen ohne Unterbrechung ablaufen zu lassen. Wenn ein Agent den FSB belegt
hat und eine nicht unterbrochene Folge von Transaktionen durchführen will (z.B. beim
Lesen und Verändern einer Semaphore), kann er die Arbitrierung durch Aktivierung des
Signals „lock“ kurz aussetzen.
Dieses Arbitrierungskonzept ist in 1 Prozessor-, 2-Prozessor- oder 4 ProzessorKonfigurationen anwendbar.
Eine weitere sehr wichtige Ergänzung ist die eines fünften Agenten, der alle Agenten des
zyklischen Umlaufverfahrens von der Benutzung des FSB fernhalten kann. Er kann das
Signal „bus priority“ aktivieren. Die Aktivierung dieses Signals setzt die Vergabe mit dem
Umlaufverfahren außer Kraft, d.h. es stoppt den Zyklus. Der Agent, der es aktivieren kann,
bekommt also vorrangig den FSB.
Im Kapitel 5 wurde der allgemeine Fall einer FSB-Arbitrierung beschrieben, bei der ein
Prozessor und das Prozessor-Interface des Chipsatzes Konkurrenten sind. Im Sinne des
eben entwickelten Arbitrierungskonzepts bedeutet das:
Von den vier möglichen Agenten des Umlaufverfahrens bleibt ein einziger für den einzigen
Prozessor übrig.
Der Agent des Prozessor-Interfaces des Chipsatzes ist derjenige, der das bus-prioritySignal aktivieren kann.
Das bedeutet, dass im Konfliktfall die dma-Transfers den FSB vor den ProzessorTransaktionen belegen.
(Ende der Vertiefung)
Die Balance zwischen der Zahl der Prozessor-Hauptspeicherzugriffe pro Zeiteinheit
und der Zahl der dma-Zugriffe pro Zeiteinheit hängt entscheidend davon ab, wie viele
Prozessor-Transfers aus dem Cache bedient werden können, so dass die
entsprechenden Hauptspeicherzugriffe entfallen können. Im Folgenden soll das
Cache-Konzept genauer untersucht werden. Dabei wird deutlich, wovon die
Trefferchance abhängt.
Computertechnik
162
Jacob
Das Cache-Konzept
6.2 Das Cache-Konzept
Der Nutzen einer geeigneten Speicherhierarchie
In der Regel greift der Prozessor beim Programmablauf nicht nur einmal zu einem
Befehl oder einer Variablen im Hauptspeicher zu, sondern mehrfach: im ersten Fall,
weil z.B. eine Schleife mehrfach durchlaufen wird, im zweiten Fall, weil eine Variable
mehrfach abgefragt oder verändert wird. Findet man den Befehl bzw. die Variable
beim wiederholten Zugriff in einem schnellen Zwischenspeicher, spart man
Zugriffszeit.
Der Nutzen für den Programmdurchsatz ist zweifach:
• Durch die schnellere Zugriffszeit ergibt sich eine kürzere Programmablaufzeit,
• Man hat weniger Zugriffe des Prozessors zum Hauptspeicher und damit weniger
Verdrängungseffekte am Hauptspeicher (in Ein-Prozessor-Systemen behindern
sich die Zugriffe des Prozessors und die dma-Zugriffe weniger, in MehrprozessorSystemen behindern sich die Zugriffe mehrerer Prozessoren und die dma-Zugriffe
weniger).
Das Ziel des Konzepts eines schnellen Zwischenspeichers muss
sein, geeignete „Ausschnitte“ des gerade ablaufenden
Programms bereitzuhalten. Die „Ausschnitte“ müssen mit dem
Programmfortschritt aktualisiert werden.
Aus der Sicht eines Prozessors muss verdeckt bleiben, ob der
Speicherzugriff aus dem Zwischenspeicher oder aus dem
Hauptspeicher „bedient“ wird, was die Bezeichnung Cache für
den schnellen Zwischenspeicher nahe legt.
Zwischenspeicher:
Hauptspeicher-Ausschnitte
Hauptspeicher:
Programm-Ausschnitte
Aus der Sicht eines Prozessors interessiert die kürzeste Zeit, die vom Beginn bis
zum Ende eines Speicherzugriffs vergeht. Je kürzer diese Zeit ist, umso schneller ist
der Fortschritt beim Programmablauf. Deshalb werden zwei Zugriffsvorgänge
gleichzeitig initiiert: der zum Cache und der zum Hauptspeicher. Ein Treffer im
schnelleren Cache macht den zugleich vorbereiteten Zugriff zum Hauptspeicher
bedeutungslos, d.h. er kann vorzeitig beendet werden.
Den schnellsten Cache-Zugriff bekommt man, wenn man den
Cache auf dem Prozessor-Chip realisiert.
Der Entwurf der Prozessor-Schaltungen erlaubt es, den Cache
so zu gliedern, dass ein kleiner, kernnaher, sehr schneller Cache
einen Ausschnitt eines kernferneren, größeren, schnellen Cache
enthält.
Der Cache, der dem Prozessor-Kern am nächsten liegt, wird
Level1-Cache genannt (abgekürzt: L1).
Der Cache, aus dem die Ausschnitte des Level1-Cache gebildet
werden, heißt Level2-Cache (abgekürzt: L2).
Der Level1-Cache enthält eine Untermenge der Speicherwörter
des Level2-Caches, der eine Untermenge der Speicherwörter
des Hauptspeichers enthält.
Computertechnik
163
Level1-Cache:
Level2-CacheAusschnitte
Level2-Cache:
Hauptspeicher-Ausschnitte
Hauptspeicher:
Programm-Ausschnitte
Jacob
Das Cache-Konzept
Der Inhalt des Hauptspeichers ist selbst auch eine Untermenge, und zwar eine
Untermenge der Programm/Daten-Dateien auf der Disk (Massenspeicher).
Die Programmausschnitte sind die Seiten
der Speichereinteilung gemäß dem
virtuellen Adressierungskonzept.
Der Seitenwechselmechanismus des
virtuellen Konzepts sorgt dafür, dass
immer diejenigen Seiten im Hauptspeicher stehen, die beim Programmablauf aktuell sind. Dies als Ergänzung,
damit der Cache als Teil der Gesamthierarchie deutlich wird.
Hauptspeicher:
Programm-Ausschnitte
Massenspeicher:
Programme als Ganzes
Die Cache-Struktur in aktuellen PC-Prozessoren
In aktuellen PC-Prozessoren sind der Level1 und der Level2-Cache zusammen mit
dem Prozessorkern auf dem einzigen Prozessor-Die realisiert.
Das erkennt man an der Basisstruktur eines modernen Prozessors (Bild 6.4).
FSB
Bus Unit
Control Unit
Befehle
L2Cache
Register/
Execution
Unit
L1-Cache
Datenobjekte
Bild 6.4: Basis-Struktur eines modernen Prozessors
•
Die Bus Unit sorgt dafür, dass der Prozessorkern über den FSB mit der
„Außenwelt“ zusammenwirken kann, wenn beim Speicherzugriff kein Treffer in der
L1/L2-Cache-Kombination vorliegt.
• Je mehr Speicherzugriffe durch Treffer im Cache überflüssig werden, umso
kürzer ist der Programmablauf.
• Die Steuereinheit (control unit) macht aus den Maschinenbefehlen geeignete
Sequenzen von internen Steueroperationen, die die Register und die operativen
Einheiten (Execution Units) zur Ausführung der gewünschten Maschinenbefehle
veranlasst.
Im Folgenden geht es zunächst um die Cache-Struktur.
Computertechnik
164
Jacob
Basisverfahren für Caches
6.3 Basisverfahren für Caches
Die Frage ist, wie man die „Ausschnitte“ im Hauptspeicher bildet, die als Kopien im
Cache bereitgehalten werden.
Wiederholungen sind, wie oben schon festgestellt, beim Programmablauf sehr
häufig. Man kann zusätzlich feststellen, dass der Zugriff zu Speicherzellen, die der
aktuellen „benachbart“ sind, häufig vorkommt. Also ist es sinnvoll, nicht nur die
Speicherzelle selbst, sondern gleich mehrere im Cache bereitzustellen. Das ist der
Grund, weswegen immer ein 2n-faches eines Speicherworts bereitgestellt wird. Im
Falle des Pentium4 sind es 4 64Bit-Speicherwörter, die eine Gesamtwortlänge von
256 Bit bilden. Die 256Bit-Wörter werden als Cachelines bezeichnet.
Für die Adressierung eines solchen Gesamtworts im
Hauptspeicher die FSB-Adressbits HA5 bis HAn
zuständig (H für Host).
HA
n
HA
5
Der Transfer einer Cacheline zwischen Cache und Hauptspeicher erfolgt immer als
Burst von 4 Speicherzugriffen. Wenn ein Zugriff zu einem Speicherwort erfolgt, das
nicht im Cache steht, dann führt die Bus-Unit vier Hauptspeicherzugriffe aus: die
Adressbits HA5 bis HAn haben bei den vier Zugriffen die Werte der vorgegebenen
Adresse, die Adressbits (HA4, HA3) bekommen nacheinander die Werte (0,0), (0.1),
(1,0), (1,1).
Cacheline bedeutet Zeile im Cache. Die entsprechende Zeile im Hauptspeicher soll
cachebare Zeile heißen. Ein Cache stellt immer weniger Cachelines zur Verfügung
als es cachebare Zeilen gibt; oder, wie oben ausgedrückt: der Inhalt des Cache ist
eine Untermenge des Inhalts des Hauptspeichers. Die Größe des Cache bestimmt
die maximale Größe der Untermenge.
Neben der Größe des Cache ist die Zugriffszeit zum Cache wichtig. Bei jedem
Adressierungsvorgang muss innerhalb der Zugriffszeit feststehen, ob das adressierte
Wort im Zwischenspeicher steht oder nicht. Das kann man dadurch realisieren, dass
jede Cacheline zusätzlich zur cachebaren Hauptspeicher-Zeile ein Merkmal enthält,
an dem man ihre Identität erkennen kann.
Die Adresse der cachebaren Zeile ist ihr eindeutiges Identifizierungsmerkmal. Also
kann man immer dann, wenn eine cachebare Zeile aus dem Hauptspeicher in eine
Cacheline übertragen wird, auch das Adresswort der cachebaren Zeile als
ergänzendes Wort zur Cacheline hinzufügen.
Bild 6.5 zeigt das in einem Schema. Beispielhaft sind zwei Cachelines mit den
hinzugefügten Adresswörtern belegt.
Es wird ein Belegungsalgorithmus angenommen, der (der Reihe nach) eine freie
Zeile sucht und die erste gefundene freie belegt. Wenn keine frei ist, wird eine frei
gemacht und die adressierte cachebare Zeile wird zusammen mit der Adresse in die
frei gemachte Cacheline geschrieben. Beim Belegen erzeugt man in der Cacheline
eine Kopie der adressierten cachebaren Zeile. Das Kopieren wird als Cacheline-Fill
bezeichnet.
Computertechnik
165
Jacob
Basisverfahren für Caches
HA
n
HA
Adreßraum der
5
cachebaren Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
Hauptspeicher
eingeteilt in cachebare Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
111111111111111111111111000
vollständige Adressen
der cachebaren Zeilen
Kopien
der cachebaren Zeilen
000000000000000000000000101
Bild 6.5: Cache mit Cachelines für Kopien cachebarer Zeilen
Ergänzung jeder Cacheline durch Speicherung des jeweiligen Adressworts der cachebaren
Zeile; zwei willkürliche beispielhafte Einträge
Wie kann man nun mit Hilfe eines schnellen Vergleichs feststellen, ob eine Kopie
vorhanden ist oder nicht?
Einen schnellen Vergleich kann man auf der Basis von besonderen Speichern
realisieren, die inhaltsbezogen adressieren und assoziative Speicher heißen.
Bei der Adressierung geschieht die Auswahl durch Vergleich der angelegten Adresse
mit den zusätzlich gespeicherten Adresswerten im Cache. Sobald Gleichheit festgestellt wird (Treffer, match), wird die entsprechende Cacheline aus dem Cache
ausgegeben (lesen) bzw. in den Cache eingegeben (geschrieben).
Der Cache füllt sich mit der Ausführung der Cacheline-Fills. Wenn er voll ist, müssen
- wie oben beschrieben - Einträge überschrieben werden.
Assoziative Speicher sind sehr komplex und haben eine verhältnismäßig geringe
Speicherkapazität. Sie sind ungeeignet für den Aufbau von Caches mit großer
Speicherkapazität.
Das beschriebene Basis-Verfahren ist zwar geeignet, eine bestimmte Anzahl beliebig
ausgewählter cachebarer Zeilen im Cache zu speichern, aber auf Kosten eines
komplexen Verfahrens der Auswahl. Die Komplexität ergibt sich u.a. daraus, dass in
jeder Cacheline eine beliebige cachebare Zeile stehen kann. Genau da kann eine
Vereinfachung des Verfahrens ansetzen.
In einer Cache-Zeile soll nicht mehr eine beliebige cachebare Zeile stehen können,
sondern eine beliebige aus einer geeigneten kleineren Untermenge von cachebaren
Zeilen.
Computertechnik
166
Jacob
Setadressierte Verfahren
6.4 Setadressierte Verfahren
Prinzip der Untermenge des Hauptspeichers im Cache
Angenommen, man teilt die Adresse in einen Teil mit
niederwertigen und einen Teil mit höherwertigen
Adressbits.
HA
n
HA
m
höherwertig
HA
5
niederwertig
Dann kann man Untermengen von Adressen bilden, die alle den gleichen niederwertigen Adresswert haben. Angenommen, die Adresse einer cachebaren Zeile umfasst
die Adressbits HA5 bis HAn und der niederwertige Teil umfasst HA5 bis HAm. Dann
enthält eine Untermenge 2 n-m Adressen mit unterschiedlichen höherwertigen
Adresswerten. Eine Hauptspeicher-Untermenge der cachebaren Zeilen, die durch
eine solche Adress-Untermenge adressiert wird, wird als Set bezeichnet (Bild 6.6)
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
Alle cachebaren Zeilen
mit demselben niederwertigen
Adreßteil, hier z.B. 000, bilden
ein Set.
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Bild 6.6: Beispiel für ein Set (Annahme: m=7, alle drei niederwertigen Adressbits 0)
Merkmal des Verfahrens: Jedem Set ist eine und nur eine Cacheline zugeordnet.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
111
höherwertiger Adressteil 110
101
zur Identifizierung der
100
Kopie der cachebaren
011
Zeile
010
001
000
Nur eine einzige cachebare
Zeile aus einem Set
hat im Cache Platz.
Bild 6.7: Je eine Cacheline pro Set: höherwertiger Adressteil plus Cacheline-Adresse
ist gleich Gesamtadresse der gespeicherten cachebaren Zeile
Computertechnik
167
Jacob
Setadressierte Verfahren
Jedes Set kann durch den niederwertigen Adressteil eindeutig identifiziert werden.
Diese Setadresse ist auch die Adresse der Cacheline, die im Cache für das Set
vorgesehen ist. Man kann die Cacheline des Sets also direkt adressieren (im
Gegensatz zur inhaltsbezogenen Adressierung der assoziativen Speicher).
Man braucht aber für die eindeutige Identifizierung der cachebaren Speicherzelle, die
als Kopie in der Cacheline steht, die vollständige Adresse. Das gelingt dadurch, dass
man den höherwertigen Teil der Adresse der Kopie, die in der Cacheline steht,
zusätzlich speichert (Bild 6.7). Der höherwertige Adressteil wird Tag genannt. Das
Tag und die Setadresse (gleich Cacheline-Adresse) ergeben die Gesamtadresse der
Kopie der cachebaren Zeile, die in der Cacheline steht. Damit ergibt sich folgender
Adressiervorgang im Cache.
Sobald der Prozessor bei einem Speicherzugriff eine Adresse anlegt, wird sie vom
Cache-Controller gemäß der Adressteilung ausgewertet. Der Controller adressiert mit
dem niederwertigen Adressteil sowohl den Speicher für die „gecacheten“ Zeilen als
auch den für die Tags. Er vergleicht das ausgelesene Tag mit dem aktuell
anliegenden höherwertigen Adressteil.
Sind die beiden identisch, dann ist es ein Treffer (Hit) und der Speicherzugriff wird
aus dem Cache bedient. Die Bus-Unit kann ihre gleichzeitig begonnenen Zugriffsaktionen abbrechen.
Sind sie nicht identisch (Miss), dann muss der Speicherzugriff über die Bus-Unit aus
dem Hauptspeicher bedient werden (es sei denn, es gibt eine L3-Cache-Ebene am
FSB, was hier nicht vertieft wird).
Ein Miss bedeutet im Kontext des Verfahrens, dass entweder gar keine Kopie aus
dem Set in der adressierten Cacheline steht (Zustand: ungültig) oder eine gültige,
aber nicht brauchbare Kopie aus dem Set. Im ungültigen Zustand kann man die
cachebare Zeile aus dem Hauptspeicher einfach laden. Im gültigen Fall muss man
noch einmal differenzieren. Wenn nur die Kopie (und nicht gleichzeitig das Original
im Hauptspeicher) durch Schreiben vom Prozessor verändert wurde (Zustand:
modifiziert), dann darf die Änderung nicht verloren gehen. Das Original der Zeile im
Hauptspeicher muss zuerst den in der Cacheline stehenden Wert bekommen. Im
nicht-modifizierten Zustand ist das nicht notwendig.
Das Alles berücksichtigt, muss der Cache-Controller als Folge des Miss-Ereignisses
letztendlich die aktuell gespeicherte Zeile mit der neu adressierten cachebaren Zeile
überschreiben: Cacheline Fill. Das heißt, dass die gelesenen Hauptspeicherwörter,
die die Bus-Unit liefert, sowohl den Prozessorkern als auch den Cache-Controller
„interessieren“. Der Cache-Controller aktualisiert die betroffene Cacheline; der
Prozessorkern holt sich, was er in der gelesenen Zeile adressiert hat.
Man kann sich den dynamischen Ablauf gemäß dem hier beschriebenen Konzept an
einem Ablauf-Szenario deutlich machen.
Computertechnik
168
Jacob
Setadressierte Verfahren
Demonstration des Nutzens: wiederholtes Durchlaufen einer Schleife
Bild 6.8 macht das an einem stark vereinfachten Beispiel plausibel. Annahme: eine
Schleife wird in der Reihenfolge der nacheinander gespeicherten durchlaufen, bis ein
Verzeigungsbefehl die Verzweigung an den Anfang bewirkt.
Angenommen, der Ablauf startet bei der Hostadresse 0. Zuerst wird Set0, dann Set1
usw. angesprochen. Beim ersten Durchlauf werden also nacheinander die entsprechenden Cachelines im Cache aktualisiert. Im Beispiel bewirkt ein Verzeigungsbefehl
bei der Hostadresse 7 eine Verzweigung zur Hostadresse 0, d.h. wenn eine Wiederholung erfolgt, stehen die richtigen cachebaren Zeilen schon im Cache.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
Set
definitionen
beispielhafte
Wiederholung
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
000000000000000000000000 111
000000000000000000000000 110
000000000000000000000000 101
000000000000000000000000 100
000000000000000000000000 011
000000000000000000000000 010
000000000000000000000000 001
000000000000000000000000 000
Den Sets
zugeordnete
Cachelines
Bild 6.8: Zustand des Cache beim Durchlaufen einer beispielhaften Schleife
Der Farbcode zeigt die Identität von kopierten und originalen Zeilen.
Die Teilung der Adresse in 3 niederwertige Adressbits und n-3 höherwertige Adressbits wurde hier nur zur Erläuterung des Prinzips vorgenommen. Die Cachegröße, die
sich damit ergibt, ist unbrauchbar. Man braucht mehr Sets, also auch entsprechend
mehr Adressbits im niederwertigen Adressteil.
Je größer die Zahl der Cachelines im Cache ist, umso kleiner sind die Sets. Das
bedeutet, dass sich weniger cachebare Zeilen jeweils in ihre Cacheline im Cache
teilen müssen. Das erniedrigt das Risiko, dass ein Cacheline-Fill wegen eines MissEreignisses notwendig wird.
Ergänzung von Zustandsmerkmalen einer Cacheline
Die Prinzipien des Write-Back und des Write-Through-Verfahrens wurden schon in
Kapitel 2 eingeführt. Kritisch für die Konsistenz ist das Write-Back-Verfahren, weil es
einen zeitweisen Unterschied zwischen Original im Hauptspeicher und Kopie im
Cache geben kann und keine Änderung verloren gehen darf.
Computertechnik
169
Jacob
Setadressierte Verfahren
Das Verfahren ist nur dann anwendbar, wenn man für jede Cacheline getrennt
erkennen kann, ob sie modifiziert worden ist oder nicht. Nur dann kann man eine
bedingte Reaktion erzeugen. Das bedeutet, dass man in jeder Cache-Zeile ein
entsprechendes Zustandsmerkmal vorsehen muss.
Man braucht noch ein zusätzliches Zustandsmerkmal. Beim Hochfahren eines
Computersystemes sind die Cachelines in einem undefinierten Zustand und man
muss durch ein entsprechendes Zustandsmerkmal ein Cacheline-Fill erzwingen.
Auch dieses bedingte Verhalten erfordert ein entsprechendes Zustandsmerkmal pro
Cacheline.
Die in den Cachelines anzugebenden Merkmale müssen also (mindestens) folgende
Zustände verschlüsseln: Ungültig; Gültig/nicht modifiziert; Gültig/modifiziert.
Für die Verschlüsselung von drei Zuständen braucht man 2 Bits. Man kann dafür
zwei explizite Merkmalbits mit den Funktionen (valid, modified) vorsehen und z.B. wie
folgt zuordnen: (0,0) = ungültig; (1,0) = gültig, nicht modifiziert; (1,1) = gültig,
modifiziert.
Man kann aber auch davon ausgehen, dass man mit 2 Bits 4 Zustände frei kodieren
kann. Das wird bei komplexeren (als die hier vorgestellten) Cache-Strategien
genutzt.
In jedem Fall braucht man also zwei zusätzliche Bits pro Cachezeile, um darin den
Zustand der Cache-Zeile angeben bzw. erkennen zu können (Bild 6.9).
Cache
111
110
101
Adressen
100
als Anwesenheits-Merkmal 011
010
001
000
Cachelines
als Hauptspeicher
-ausschnitte
2 Bit für Zustandsmerkmale
Bild 6.9: Zustandsmerkmale pro Cacheline
Computertechnik
170
Jacob
Die hierarchische Cache-Struktur
6.5 Die hierarchische Cache-Struktur
Realisierung der Mehrebenen-Struktur eines Cache
Oben wurde eine Mehrebenen-Struktur eines Cache eingeführt: der Level1-Cache ist
eine Untermenge des Level2-Caches, der eine Untermenge des Hauptspeichers ist.
Ein Cache soll als 2-Ebenen-Cache mit Level2- und Level1-Cache strukturiert
werden, und zwar nach dem gleichen Set-Adressierungs-Prinzip, wie für den
Hauptspeicher ein setadressierter Cache definiert wurde.
Dann müssen die
Adressen des Cache in
einen niederwertigen und
einen höherwertigen Teil
geteilt werden.
niederwertig für Cache Hauptspeicher
höherwertig
HA
n
HA
m
HA
l
HA
5
höherwertig niederwertig für L1Cache L2Cache
Die Teilung der Hostadresse erzeugt im niederwertigen Teil die Adressen für den
Level2-Cache und im höherwertigen Teil die Tags für den Level2-Cache.
Die Teilung der Adressen für den Level2-Cache erzeugt im niederwertigen Teil die
Adressen für den Level1-Cache und im höherwertigen Teil die Tags für den Level1Cache (Bild 6.10).
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
Set
definitionen
Den Sets im
Hauptspeicher
zugeordnete
Cachelines im
L2-Cache
Den Sets im
L2-Cache
zugeordnete
Cachelines im
L1-Cache
Bild 6.10: Aufteilung des Cache in einen setadressierten L2- und L1-Cache
Computertechnik
171
Jacob
Die hierarchische Cache-Struktur
Write-Back in einem hierarchisch strukturierten Cache
Ausgangspunkt jeder Aktion in einem Cache ist der Speicherzugriff durch den
Prozessor, der die Adresse und die Übertragungsrichtung angibt. In einem System
mit einem Hauptspeicher und einem (nicht hierarchisch gegliederten) Cache ergibt
sich nur dann ein Zeitgewinn, wenn der Cache eine kürzere Zugriffszeit hat als der
Hauptspeicher.
Wenn man nun den Cache selbst in mehrere Ebenen gliedert, dann hat das nur
einen Sinn, wenn die Zugriffszeit zum Level1-Cache kleiner ist als die zum Level2Cache usw.
Der günstigste Zugriffsfall ist der, bei dem der Level1-Cache ein Hit-Ereignis hat. Hat
dieser ein Miss-Ereignis, dann ist der nächste günstige Fall ein Hit-Ereignis im
Level2-Cache usw. .
In einem solchen Konzept entsteht ein Cacheline-Fill aus dem Hauptspeicher erst
dann, wenn keiner der „gestaffelten“ Caches einen Hit hat.
Das Konzept geht davon aus, dass die cachebare Zeile in der übergeordneten
Cache-Ebene zur Verfügung steht, wenn sie nicht in der untergeordneten angetroffen
wird. Wenn also jede untergeordnete Ebene erwartet, dass die übergeordnete eine
gültige Cacheline enthält, dann muss man gleich zu Beginn beim Cacheline-Fill in
allen Ebenen eine gültige Kopie der originalen cachebaren Zeile eintragen.
Das Cacheline-Fill in alle Ebenen ist eine notwendige Bedingung zur Realisierung
der gestaffelten Untermengen-Bildung.
Nach dem Cacheline-Fill sind die Einträge der adressierten Cachelines in allen
Ebenen identisch. Wenn nun der Prozessor mit der eingetragenen Cacheline arbeitet
und den Eintrag, der z.B. eine Variable realisiert, verändern will, dann können die
Cache-Controller der einzelnen Ebenen gemäß dem Write-Through- oder gemäß
dem Write-Back-Verfahren reagieren.
Beim Write-Through-Verfahren müssten die Cachelines in allen Ebenen und im
Hauptspeicher aktualisiert werden. Da immer der langsamste, nämlich der
Hauptspeicher, die Zugriffszeit bestimmt, entsteht beim Schreiben kein Zeitgewinn.
Der Zeitgewinn würde nur bei den Lese-Vorgängen im Cache entstehen.
Das alternative Write-Back-Verfahren bietet die Möglichkeit, den Zeitgewinn auch
beim Schreiben zu nutzen. Zunächst einmal wird das vom Prozessor geänderte Wort
in die Cache-Ebene geschrieben, die diesem am nächsten ist. Sooft er weiterhin dort
zugreift, entsteht die kürzeste Zugriffszeit. Erst, wenn dieser veränderte Eintrag beim
Cacheline-Fill überschrieben werden soll, wird der veränderte Eintrag in die nächst
übergeordnete Ebene geschrieben (gerettet), und zwar vor dem Cacheline-FillVorgang.
Der Cache-Controller der übergeordneten Ebene erkennt, ob der übernommene
veränderte Eintrag durch das nachfolgende Cacheline-Fill auch überschrieben
würde. Wenn nicht, kann das Cacheline-Fill erfolgen. Wenn der gerettete Eintrag
aber überschrieben würde, muss er zuerst in die nächste übergeordnete Ebene
gerettet werden. Im schlimmsten Fall wird der Eintrag bis zum Hauptspeicher
gerettet.
Das kann man wieder mit einem Szenario verdeutlichen.
Computertechnik
172
Jacob
Die hierarchische Cache-Struktur
Demonstration von Write-Back-Beispielen in einem 2-Ebenen-Cache
1. Eine Variable wird zum ersten Mal adressiert und mit einem Cacheline-Fill aus
dem Hauptspeicher in alle Cache-Ebenen eingetragen.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
2. Der Prozessor verändert durch einen Verarbeitungs-Befehl die Variable. Beim
Write-Back-Verfahren wird sie nur im L1-Cache verändert.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
Computertechnik
173
Jacob
Die hierarchische Cache-Struktur
3. Es ist ein Cacheline-Fill notwendig, weil eine andere Variable geholt werden muss.
Die veränderte Variable in L1-Cache muss dabei überschrieben werden. Folge: der
geänderte Zustand der Variablen muss in den L2-Cache gerettet werden.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
4. Ein weiterer Cacheline-Fill erzwingt das Überschreiben des geretteten Eintrags im
L2-Cache und das Überschreiben im L1 Cache. Da der Eintrag im L1-Cache nicht
verändert wurde, kann er einfach überschrieben werden. Der gerettete Eintrag im L2Cache muss endgültig in den Hauptspeicher gerettet werden. Es folgt Cacheline-Fill.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
Computertechnik
174
Jacob
Mehrwege-Caches
6.6 Mehrwege-Caches
Um die Chance für Treffer zu erhöhen, kann man die Zahl der Cachelines im Cache
erhöhen. Erhöht man die Anzahl der Adressbits für die Set-Adresse um 1 Bit, dann
bedeutet das eine Verdopplung der Anzahl der Cachelines, d.h. eine Halbierung der
Anzahl der cachbaren Zeilen im Set, die um die im Cache zugeordnete Cacheline
konkurrieren.
Es gibt ein alternatives Verfahren: man sieht zwei für jedes Set mehr als eine CacheZeile vor. Man spricht dann von einem Mehrwege-Cache.
HA
Hauptspeicher
5 eingeteilt in cachebare Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
HA
n
Adreßraum der
cachebaren Zeilen
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
2-Wege-Cache
111
110
101
100
011
010
001
000
Zwei Zustandsbits für je ein Cacheline-Paar:
Das Bit der zuletzt adressierten Cacheline wird mit 0 markiert,
das Bit der davor adressierten (least recently used) Cacheline mit 1.
Zwei cachebare
Zeilen aus einem Set
haben im Cache Platz.
Bild 6.11: Struktur-Schema eines 2-Wege Cache
Beim Cacheline-Fill muss man entscheiden, welche der beiden Cachelines bei einer
gegebenen Tag-Adresse überschrieben werden soll.
Man unterstützt diese Entscheidung durch die Hinzufügung von zwei Zustandsbits
pro Cacheline-Paar. Sobald ein Cache-Zugriff erfolgt, wird das Statusbit der
adressierten Cacheline auf Null gesetzt, das Statusbit der anderen wird auf Eins
gesetzt, d.h. als “least recently used” gekennzeichnet. Beim Cacheline-Fill wird die
least recently used Cacheline überschrieben.
Bei Mehrwege-Caches ist die Anzahl der Wege eine Potenz von 2. Der LRUAlgorithmus von Caches mit mehr als zwei Wegen ist zwangsläufig komplexer.
Computertechnik
175
Jacob
Mehrwege-Caches
Computertechnik
176
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
7 Hauptspeicher und Speichermodul-Schnittstelle
Der Datenfluss zwischen dem Prozessor und dem Hauptspeicher ist durchsatzbestimmend. Der Prozessor gibt dabei gewünschte Zugriffszeiten vor, die von seiner internen
Arbeitsgeschwindigkeit abhängen. Der Hauptspeicher kann aber nur bestimmte
Zugriffszeiten realisieren, die von seinem Aufbau abhängen. Bedeutet das, dass der
Prozessor “ausgebremst” wird? Um das zu klären, sollen zunächst die Bedingungen
untersucht werden, welche der Aufbau des Hauptspeichers setzt.
7.1 Strukturprinzipien von DRAM-Speicher-ICs
Man unterscheidet Nur-Lese-Speicher (read only memory = ROM) von Schreib-LeseSpeichern (random access memory = RAM).
ROMs heißen maskenprogrammiert, weil man ihnen die zu speichernde Information
beim Herstellungsprozess einprägt. Die eingeprägte Information ist nach der Herstellung
nicht mehr veränderbar.
Löschbare und wieder programmierbare EPROMs (erasable and programmable ROM)
kann man nach Bedarf programmieren. Programmieren bedeutet in diesem
Zusammenhang, eine elektrisch stabile Struktur einzuprägen.
RAMs speichern Daten flüchtig, d.h. sie speichern mit Hilfe einer elektrisch instabilen
Struktur. Eine Abschaltung der Stromversorgung bedeutet den Verlust der gespeicherten Daten. Man unterscheidet RAMs nach dem Typ ihrer elementaren Speicherzellen.
Speicherelemente der dynamischen RAM-Speicher (DRAM)
Die elementare Einheit eines DRAMs ist der Kondensator, dessen Ladezustand über
den gespeicherten Binärwert entscheidet.
Das Einstellen eines Binärwerts (Schreiben) bedeutet physikalisch, dass eine
schreibende Schaltung eine Ladungsmenge auf dem Kondensator einprägt. Dabei kann
man zwei (einander entgegen gesetzte) Ladungszustände einstellen:
keine Ladung oder entladener Zustand,
maximal mögliche Ladung oder aufgeladener Zustand.
Beim Abfragen eines gespeicherten Binärwerts (Lesen) ist die Wirkungsrichtung
umgekehrt: die gespeicherte Ladungsmenge bestimmt, welcher Binärwert zur lesenden
Schaltung übertragen wird.
Ein Speicherelement besteht aus einem Kondensator und einem Auf/Zu-Schalter. Der
Schalter öffnet oder schließt eine Verbindung zwischen dem Kondensator und einer
Leitung zum Abfluss oder Zufluss von Ladungen beim Schreiben bzw. beim Lesen. Da
der Fluss der Ladungen den geschriebenen bzw. gelesenen Binärwert bestimmt, wird
die Leitung Datenleitung genannt (Bild 7.1).
Der Schaltwert auf der Steuerleitung des Transistor-Schalters bestimmt über die
Verbindung zwischen Datenleitung und Kondensator.
Computertechnik
177
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
Transistor als
Schalter
Kondensator
Auswahlleitung
Datenleitung
Bild 7.1: Aufbau eines Speicherelements eines DRAMs
Ohne die Verbindung ist weder Schreiben noch Lesen möglich. Erst die Verbindung
macht das möglich, d.h. das Speicherelement ist für das Schreiben bzw. Lesen
ausgewählt. Die Steuerleitung wird deshalb Auswahlleitung genannt.
Matrixstruktur der Speicherelemente von DRAMs
Wenn man bei einem Auswahlvorgang mehrere Speicherelemente gleichzeitig
auswählen will, muss man eine Zeile von Speicherelementen bilden, die alle mit der
gleichen Auswahlleitung ausgewählt werden. Um mehr als eine Zeile auswählen zu
können, muss man die Zeilen vervielfachen und erhält insgesamt eine MatrixAnordnung (Bild 7.2).
Daten-Leitungspaar smax
Daten-Leitungspaar 1
Auswahl-Leitung 1
Auswahl-Leitung 2
Auswahl-Leitung zmax-1
Csp
Auswahl-Leitung zmax
Bild 7.2: Matrix-Anordnung der Speicherelemente
An jeder Datenleitung sind gleich viele Speicherelemente angeschlossen, damit keine
ungleichen Auf/Entladezeiten nach der Auswahl einer Zeile entstehen.
Die paarweise Anordnung der Datenleitungen ist maßgeblich für die Lesefunktion, bei
der die Spannungszustände beider Leitungen miteinander verglichen werden, sobald
eine Zeile-Auswahlleitung aktiviert wurde.
Computertechnik
178
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
Vertiefung für Interessierte: kein Prüfungsstoff:
Angenommen, dass die Versorgungsspannung Vcc ist und dass alle Datenleitungen so
eingestellt wurden, dass sie eine Spannung Vcc/2 gegen das Bezugspotential haben. Weiter
angenommen, dass kein Speicherelement ausgewählt ist.
Sobald nun eine Auswahlleitung aktiviert wird, entsteht an jedem Speicherelement der ausgewählten Zeile eine Verbindung zu seiner Datenleitung im betroffenen Daten-Leitungspaar.
Jetzt ist maßgeblich, welchen Ladezustand die ausgewählten Kondensatoren haben:
•
Wenn ein Kondensator auf Vcc aufgeladen ist, herrscht ein Ladungsungleichgewicht
zwischen Kondensator und Datenleitung. Es fließen Ladungen vom Kondensator zur
Datenleitung, so dass deren Spannung, von Vcc/2 ausgehend, steigt;
•
Wenn ein Kondensator keine Ladung enthält, herrscht ebenfalls ein Ladungsungleichgewicht. Da die Leitung auf Vcc/2 aufgeladen ist, der Kondenstor aber keine Ladung enthält,
müssen Ladungen zum Kondensator fließen, d.h. die Spannung auf der Leitung fällt, von Vcc/2
ausgehend.
Die Spannung zwischen der Datenleitung im Paar, die eine Verbindung mit dem ausgewählten
Kondensator hat, und die Spannung Vcc/2 der anderen Datenleitung im Paar bilden nach der
Auswahl eine kleine positive (Kondensator aufgeladen) oder kleine negative (Kondensator
ohne Ladung) Spannungsdifferenz.
Ein Verstärker verstärkt eine kleine positive Differenz, bis sie den Wert +Vcc hat, und eine
kleine negative Spannungsdifferenz, bis sie den Wert –Vcc hat.
Daten-Leitungspaar smax
Daten-Leitungspaar 1
Auswahl-Leitung 1
nicht
geladen
geladen
geladen
Auswahl-Leitung 2
Auswahl-Leitung zmax-1
Csp
Auswahl-Leitung zmax
0
Vcc
Schreib/Lese-Verstärker
Vcc
0
Schreib/Lese-Verstärker
0
Vcc
Schreib/Lese-Verstärker
Bild 7.3: Beispiel für eine Lese-Auswahl mit Verstärkung der Spannungsdifferenzen auf
den Datenleitungspaaren gemäß dem jeweils angenommenen Ladungszustand
Die Verstärkung sorgt dafür, dass die ausgewählten Kondensatoren alle wieder den
ursprünglichen Ladezustand bekommen. Aber alle Datenleitungen verlieren ihren
Spannungswert Vcc/2. (Ende der Vertiefung)
Computertechnik
179
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
Der Vergleich der Spannungszustände besteht in der Bildung der Differenz zwischen
den Spannungen auf den Leitungen des Leitungspaars, die je nach Ladungszustand der
durchgeschalteten Kondensatoren positiv oder negativ ist. Schreib/Lese-Verstärker verstärken auf die positive Spannungsdifferenz Vcc bzw. die negative Spannungsdifferenz
–Vcc.
Dadurch erhalten alle durchgeschalteten Kondensatoren wieder den ursprünglichen
Ladungszustand, aber der ursprüngliche Spannungszustand Vcc/2 geht auf allen
Datenleitungen verloren.
Zwangsläufige Folge: Solange nur die Speicherelemente der ausgewählten Zeile
interessieren, kann der eingestellte Gesamtzustand so bleiben. Wenn aber eine neue
Zeile ausgewählt wird, muss zuerst der Grundzustand eingestellt werden, also:
Auswahl abstellen und alle Datenleitungen in Spannungszustand Vcc/2 bringen. Man
nennt diesen Vorgang Vorladen (Preload).
Nach der Zeilen-Auswahl und der Verstärkung stehen die Spannungswerte
(=Binärwerte) der ausgewählten Speicherelemente zur Verfügung. Es interessiert davon
einer, der beim Lesen auf die Datenleitung zum Memory-Controller geschickt werden
soll. Das muss durch eine ergänzende Auswahl der betroffenen Spalte geschehen.
Die Kern-Struktur von x1Bit-DRAMs
Die Matrix der Speicherelemente muss durch ergänzende Schaltungen zur
Kernstruktur von DRAMs erweitert werden Bild 7.4.
Die Indizierung in der Matrix erfolgt hier, wie es in der mathematischen Literatur üblich ist. Ein
Element in einer Matrix-Struktur wird immer durch die Kombination eines Zeilen- und
Spaltenindex identifiziert. Man benutzt die Bezeichnungen i,j. Die Indizes in einer
Speichermatrix sind die Zeilen- und die Spaltenadresse (row address, column address).
Die Dekodierschaltungen erzeugen aus der entsprechenden dualen Adresse ein
eindeutiges einzelnes Auswahlsignal.
Die Datenpfad-Schaltung schaltet gemäß der Spaltenadresse beim Schreiben das
binäre Signal aus dem Din-Puffer zu dem zuständigen Lese/Schreib-Verstärker.
Beim Lesen schaltet sie den Datenpfad in umgekehrter Richtung zum Dout-Puffer.
Wenn eine Zeile adressiert ist, kann man so oft und so viele Spalten in der Zeile
adressieren, wie man will. Man braucht kein neues Vorladen.
Erst wenn man eine neue Zeile adressiert, muss vorher ein Vorladen mit Hilfe der
Vorlade-Schaltung erfolgen, um alle Datenleitungen wieder in den Grundzustand
bringen.
Computertechnik
180
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
Spalte 1
Spalte 2
Spalte smax
Vcc/2
Steuerung des
Vorladens
VorladeSchaltung
Zeile 1
Zeile 2
Zeilendekoder
Zeile zmax-1
Zeile zmax
Lese/
SchreibVerstärker
DinPuffer
Lese/
SchreibVerstärker
Lese/
SchreibVerstärker
IOSchaltung
DoutPuffer
Spaltendekoder
Bild 7.4: Kern-Struktur eines DRAMs (x1Bit-Struktur) mit Speichermatrix, Dekoder-, IODatenpfad- und Vorlade-Schaltungen
Computertechnik
181
Jacob
Strukturprinzipien von DRAM-Speicher-ICs
Die Kern-Struktur von „mal n“-Bit-DRAMs (x4,x8, x16)
Bild 7.5 kennzeichnet den Bereich, der vervielfacht werden muss, und den Bereich, der
für alle Vielfache gleich ist. Die Parallelisierung für die „mal n“-Bit-Struktur betrifft nur
den Bereich der Speichermatrix und der Datenpfad-Schaltung (IO-Schaltung).
Spalte 1
Spalte 2
Spalte smax
Vcc/2
Steuerung des
Vorladens
VorladeSchaltung
Zeile 1
Zeile 2
Zeilendekoder
Zeile zmax-1
Zeile zmax
Lese/
SchreibVerstärker
DinPuffer
Lese/
SchreibVerstärker
Lese/
SchreibVerstärker
IOSchaltung
DoutPuffer
Spaltendekoder
Bild 7.5: Strukturbereiche für die Vervielfachung und für gemeinsame Schaltungen bei
wortweiser Speicherung
Bei einem Speicherzugriff gelten die Zeilen- und die Spaltenadresse für alle Bits des
transferierten Datenworts gelten. Deshalb gibt es nur einen Zeilen- und nur einen
Spalten-Dekoder. Die Dekoder erzeugen jeweils ein Auswahl-Signalpaar, das das in
seinem Kreuzungspunkt eindeutig ein Speicherelement auswählt. So können zmax · smax
Speicherelemente eindeutig ausgewählt werden. Wenn man die Speichermatrix mit der
IO-Schaltung n-Mal vervielfacht, kann man zmax · smax · n Bit gleichzeitig transferieren
(Bild 7.6).
Computertechnik
182
Jacob
Nicht-synchrone DRAMs: EDO-DRAMs
Vcc/2
Zei
len
de
ko
der
vervielfachte
Speichermatrizen
mit Datenpfadschaltungen
Spaltendekoder
Bild 7.6: Kern-Struktur eines x4-DRAMs
7.2 Nicht-synchrone DRAMs: EDO-DRAMs
Prinzipien des Aufbaus und des Speicherzugriffs
Obwohl dieser Speichertyp in aktuellen PCs nicht mehr angewendet wird, sollte man seine
prinzipiellen Merkmale kennen, um die technologische Entwicklung einschätzen zu können.
Die Kernstruktur wird um die Interfaces zur IC-Pin-Schnittstelle ergänzt (Bild 7.7).
2
MAn/2-1
.
.
.
.
MA0
R
e
g
i
s
t
e
r
n/2
2
Zeilen
Lese-/SchreibVerstärker
Puffer
R HAn/2-1
e
.
g
Spalten.
i
adreß.
s
decoder
.
t
HA0
e
r
WE
adressiertes
Speicherelement
Spalten
HAn-1
.
.
Zeilenadreß.
decoder
.
HAn/2
RAS
CAS
Din
n/2
IOSchaltung
Puf- Dout
fer
WE
Control
Bild 7.7: 2n x1Bit EDO-DRAM-Speicher-IC mit quadratischer Speichermatrix
Computertechnik
183
Jacob
Nicht-synchrone DRAMs: EDO-DRAMs
•
•
•
•
•
Da die Zeilenadresse und die Spaltenadresse nacheinander dekodiert werden, kann
man sie nacheinander an die gleichen Pins anlegen.
Die Begleitsignale /RAS (row address select) und /CAS (column address select)
geben bei ihrer Aktivierung an, welcher Adresstyp gerade angeboten wird.
Bei einer quadratischen Speichermatrix und einer Adresse mit n Bits, ergeben sich
genau n/2 Adresspins. Da man üblicherweise die Adresspins gemäß dem
Exponenten des Stellengewichtes numeriert, ergibt sich die Numerierung von 0 bis
n/2-1. Bei einer nicht-quadratische Matrix ist die Anzahl der Adressbits der
längeren Adresse, in der Regel der Zeilenadresse maßgeblich.
Register sind Wort-Speicher. Die angelegte Zeilenadresse verschwindet in dem
Moment, wenn die Spaltenadresse angelegt wird. Intern braucht man aber eine
stabile Zeilenadresse, um die Zeile ausgewählt zu halten. Deshalb braucht man das
Zeilenadress-Register. Das gilt sinngemäß auch für die Spaltenadresse.
Das Signal /WriteEnable legt die Übertragungsrichtung fest. Sobald es im LowZustand ist, wird der Daten-in-Puffer aktiviert, sonst der Daten-out-Puffer.
Bild 7.8 zeigt den prinzipiellen zeitlichen Ablauf der beteiligten Signale, wobei ein
Lesezyklus als Szenario dient.
Zeilenadresse
gültig
Spaltenadresse
gültig
Daten
Vorladen zu Ende
= neuer Speicherzugriff möglich
gültig
Vorladen (wenn nötig)
RAS
CAS
Zeile
Spalte
Adresspins
Dout
gültig
Bild 7.8: Prinzipielles Signal-Zeit-Diagramm eines DRAM-Lesezugriffs
Die Phasen, in denen ein Signal einen undefinierten Zustand haben kann, sind grau gestrichelt.
Der Beginn der Pulse ist gegen die Aufschalt-Zeitpunkte der Adressen verzögert, damit diese
eingeschwungen sind, wenn der Puls-Beginn ihre Gültigkeit meldet. Das Ende des SpaltenPulses erzeugt nach einer bestimmten Zeit ungültige Daten.
Damit bemerkt man, was bei einem DRAM-Speicherzugriff Zeit kostet:
• Für die beiden aufeinander folgenden Auswahlphasen braucht man jeweils eine
charakteristische Zeit.
• Ohne Zeilenwechsel braucht man je Zugriff nur die Spalten-Auswahlzeit.
• Bei einem Zeilenwechsel braucht man die Vorladezeit und danach die Zeit für die
beiden Auswahlphasen.
Am häufigsten kommt der Zugriff zu einer cachebaren Zeile vor, also vier
Speicherzugriffe als Burst ohne Zeilenwechsel (Bild 7.9).
Computertechnik
184
Jacob
Nicht-synchrone DRAMs: EDO-DRAMs
Bits
gültig
Spalte
gültig
Zeile
Spalte
Spalte
gültig
Spalte
Bits
gültig
Bits
gültig
Spalte
gültig
Spalte
Bits
gültig
RAS
Spalte
gültig
CAS
Spalte
Dout
Bild 7.9: Lese-Burst einer cachebaren Zeile
Spalte gültig erzeugt nach Laufzeit das/die ausgelesenen Datenbit/s (grün).
Bits gültig zeigt das Ereignis zur Übernahme des/der gelesenen Bits und das Neu-Einstellen der
Spaltenadresse an (rot).
Wenn man längere Zeit nicht zu einem DRAM zugreift und damit die Speicherelemente
regeneriert, kommt es zur Kondensatorentladung. Das erzwingt eine automatische
periodische Regeneration aller Speicherelemente (ein typischer Wert ist in eine
Periodendauer von 16 msec, cyclic refresh).
7.3 Statische RAM-Speicher (SRAM)
SRAMs speichern je ein Bit “digital” in einem Flip-Flop.
Ein Flip-Flop ist ein binäres Speicherglied, das durch eine rückgekoppelte
Transistorschaltung realisiert wird.
Vertiefung für Interessierte, kein Prüfungsstoff:
Die Rückkopplungen erkennt man an den gekreuzten
Verbindungen zum Gate des jeweils anderen Transistors. - Die beiden oberen Transistoren realisieren mit
Hilfe von Transistoren ohmsche Widerstände.
Di und /Di (lies Di nicht) liefern zueinander inverse
Schaltzustände.
Die Speicherwirkung liegt im stabilen Schaltzustand
der Schaltung.
+
+
RL
RL
Auswahl-Leitung i
Di
Di
Das erkennt man an folgendem Fall-Beispiel.
Ein High-Pegel (gleich Versorgungsspannung) an Di bedeutet an /Di einen Low-Pegel (gleich
Bezugspotential).
Die Grundfunktion der oben eingeführten Transistoren ist: ein High-Pegel am Gate bedeutet
einen leitenden Transistor, ein Low-Pegel einen nicht-leitenden Transistor.
Wenn die Auswahl-Leitung einen High-Pegel hat, dann sind die Auswahl-Transistoren leitend
und schalten die Pegel von Di bzw. /Di durch.
Computertechnik
185
Jacob
Statische RAM-Speicher (SRAM)
Ein High-Pegel an Di macht durch die Kopplung den rechten unteren Transistor leitend.
Dadurch entsteht ein „Kurzschluss“ zum Bezugspotential. Durch die Kopplung von Di auf den
rechten unteren Transistor entsteht also der Low-Pegel, wie er von /Di durchgeschaltet wird.
Der Low-Pegel auf /Di macht den linken unteren Transistor nicht-leitend. Dadurch entsteht
eine „Unterbrechung“ zum Bezugspotential. Durch die Kopplung von /Di auf den linken unteren
Transistor wird der High-Pegel, der von Di durchgeschaltet wird, nicht beeinflusst, also
bestätigt.
Da die Schaltzustände der rechten und linken Transistorpaare sich durch die Kopplung
gegenseitig bestätigen, bleiben sie auch in dem eingestellten Zustand, wenn man die
Verbindungen zu Di bzw. /Di unterbricht.
Wenn man während der Unterbrechung die Schaltzustände von Di und /Di umkehrt und die
Auswahl-Transistoren wieder durchschaltet, wird die rückgekoppelte Schaltung ihren
Schaltzustand invertieren (kippen), weil sie ja symmetrisch aufgebaut ist. Wenn man die
Auswahl-Transistoren wieder nicht-leitend macht, bleibt der eingestellte Schaltzustand
erhalten, usw.
Die Eigenschaft des Kippens hat zur Bezeichnung Flip-Flop geführt. (Ende der Vertiefung)
Der Platzbedarf für ein SRAM-Speicherelement ist größer als der für ein DRAMSpeicherelement, weil mehr Transistoren zur Realisierung notwendig sind. Auf einer
gegebenen Chipfläche lassen sich also mehr DRAM- als SRAM-Speicherelemente
unterbringen. Die maximal erreichbaren Speicherkapazitäten sind bei DRAMs deshalb
grundsätzlich größer als bei SRAMs.
n/2
MAn-1=HAn-1
.
.
.
MAn/2=HAn/2
Din
2
Spalten
Zeilenadreßdecoder
n/2
2
Zeilen
SchreibVerstärker
LeseVerstärker
MAn/2-1=HAn/2-1
.
Spalten.
adreß.
decoder
MA0=HA0
WE
CS
Speicherelement
Flip-Flop
Dout
WE=L,CS=L
WE-CS
Control
WE=H,CS=L
Bild 7.10: 2n x1Bit SRAM-Speicher-ICs mit quadratischer Speichermatrix
Der Vorteil von SRAMs ist, dass sie schneller sind als DRAMs. Gründe:
• Die Adresse wird in einer einzigen Phase vollständig an den Speicher-IC gelegt.
• Es gibt keinen Vorladevorgang, weil beim Speicherzugriff ein Flip-Flop seinen
Speicherzustand nicht ändert, während der Speicherzustand eines Kondensators
beim Zeilenwechsel zeitaufwendig wieder hergestellt werden muss.
Computertechnik
186
Jacob
Synchrone DRAMs (SDRAMs)
7.4 Synchrone DRAMs (SDRAMs)
Die Phasen eines Transfers beim Speicherzugriff zu SDRAMs
Beim Speicherzugriff wird ein Transfer zwischen dem Initiator des Zugriffs und dem
Hauptspeicher ausgeführt.
Die Kern-Struktur eines DRAMs bestimmt, dass zuerst die Zeile ausgewählt werden
muss und dann die Spalte, und sie bestimmt, wie viel Zeit für jede Phase ablaufen
muss.
Bei asynchronen DRAMs werden der Beginn und das Ende der einzelnen Phasen
durch eindeutig zugeordnete Pulse angezeigt. Ein Speicherzugriff beginnt also, sobald
der Puls der Zeilen-Auswahl-Phase beginnt. Die Gültigkeit der Datenbits wird durch
das Ende der Spaltenpulse markiert. Die Übertragungsrichtung wird durch das WE/Signal bestimmt. Die Signale RAS/, CAS/ und WE/ bestimmen den Ablauf des
Speicherzugriffs
Wenn man keine Pulse hat, deren Beginn und Ende gezielt den Beginn bzw. das Ende
einer Phase anzeigen, dann kann man den Beginn und das Ende der Phasen auch
durch Auszählen von Takten realisieren. Das bedeutet, die Steuerung des Ablaufs der
Phasen geschieht synchron zu einem Takt.
Die Phasen eines Transfers werden synchron zu einem Takt ausgeführt. Dabei sind drei
Phasen zu unterscheiden: die Zeilen-Auswahl-Phase, die Spalten-Auswahl-Phase und
die eigentliche Datentransfer-Phase (Bild 7.11)
Memory
Interface
AdressInterface
CommandInterface
Zeilenadr.
Spaltenadr.
ActivCommand
ReadCommand
tRCD
CL
DatenInterface
Takt
Bild 7.11: Zeilenauswahl, Spaltenauswahl- und Datenübertragungs-Phase beim lesenden Burst-Speicherzugriff zu einem SDRAM
RCD Row Column Delay, CL Column Latency: beide Zeiten sind bedingt durch schaltungstechnische Verarbeitungszeiten und sie sind auf je ein ganzzahliges Vielfaches der Taktzykluszeit aufgerundet.
Beim Ablauf der Phasen muss man erkennen können, ob es sich um eine Zeilenauswahl-Phase oder eine Spaltenauswahl-Phase handelt. Außerdem muss man erkennen
können, ob es sich um einen lesenden oder einen schreibenden Zugriff handelt.
Computertechnik
187
Jacob
Synchrone DRAMs (SDRAMs)
Das wird mit Hilfe eines Command-Worts mit 3 Bit ermöglicht, das die Übertragung des
jeweiligen Adressworts begleitet. In den drei Bits können bis zu 8 unterschiedliche
Commands angegeben werden.
In Bild 7.11 werden die Commands mit ihren Kurzbezeichnungen angegeben: Activ für
das Command zur Zeilenadressierung, Read für das Command zur Spaltenadressierung und die Festlegung der Übertragungsrichtung Lesen. Ein anderes Command ist
z.B. Pre für precharge.
Wenn zwei Speicherzugriffe unmittelbar nacheinander folgen, muss der zweite warten,
bis der vorausgehende beendet ist; denn die Spaltenauswahl darf nicht verändert
werden, bevor nicht der ganze Burst fertig ist (Bild 7.12).
Zeilenadr.
Spaltenadr.
Spaltenadr.
ActivCommand
ReadCommand
ReadCommand
tRCD
CL
CL
Bild 7.12: Zwei lesende Burst-Zugriffe in derselben Zeile nacheinander
Bei einem Zeilenwechsel muss zuerst ein Precharge-Command ausgeführt werden,
bevor der Speicherzugriff mit dem Activ-Command beginnen kann (Bild 7.13).
Zeilenadr.
Spaltenadr.
ActivCommand
ReadCommand
tRCD
CL
Precharge
Command
tRP
Zeilenadr.
Spaltenadr.
ActivCommand
ReadCommand
tRCD
CL
Bild 7.13 Zwei lesende aufeinander folgende Burst-Zugriffe zu verschiedenen Zeilen
RP = repair
Eigentlich ist so kein wesentlicher Vorteil gegenüber den EDO-DRAMs erkennbar. Das
ergibt sich erst, wenn man die Belegungspausen beim Transfer der Datenbits vermeiden
möchte. Wenn man aber in diesen Pausen Datenbits übertragen möchte, dann können
die nur aus einem gleichzeitig wirksamen anderen Speicher kommen, der die gleichen
Eigenschaften hat wie der betrachtete.
Eine Speichereinheit, die Commands empfangen kann und autonom abwickelt, heißt
Speicherbank. Da jetzt die Commands gezielt an eine Speicherbank adressiert werden,
braucht man auch eine Speicherbank-Adresse.
Computertechnik
188
Jacob
Synchrone DRAMs (SDRAMs)
SDRAMs haben vier (interne) Speicherbänke (Bild 7.14).
Je nach Speichertyp
Adresswort
I
n
t
e
r
f
a
c
e
Speicher
-bank 3
Speicher
-bank 2
Speicher
-bank 1
Speicher
-bank 0
I
n
t
e
r
f
a
c
e
ein 1Bit-Datenwort
ein 4Bit-Datenwort
ein 8Bit-Datenwort
pro Taktperiode
Zeit
in Taktperioden
Steuereinheit
Command-Wort
Takt
Bild 7.14: SDRAM-Struktur mit vier internen Speicherbänken
Unter diesen Voraussetzungen müssen die bisherigen Zeitdiagramme ergänzt werden,
was nur für Bild 7.11 geschehen soll (Bild 7.15).
Memory
Interface
Speicherbankadr.
Speicherbankadr.
AdressInterface
Zeilenadr.
Spaltenadr.
ActivCommand
ReadCommand
CommandInterface
tRCD
CL
DatenInterface
Takt
Bild 7.15: Lesender Burst-Speicherzugriff mit ergänzter Speicherbank-Adressierung
Dass sich bei einer Struktur mit mehreren Speicherbänken die Belegungspausen beim
Transfer der Datenbits vermeiden lassen, zeigen Bild 7.16 und Bild 7.17.
Sobald ein nachfolgendes Command sich an eine nicht belegte Speicherbank richtet, ist
eine simultane Bearbeitung unabhängig von den belegten möglich.
Der Memory-Controller steuert den Ablauf der Speicherzugriffe. Er bestimmt, wann
welche Commands gesendet werden und wann und wie die Daten transferiert werden.
Sein Betriebsziel ist, einen Datenstrom ohne Pausen zu erzeugen.
Computertechnik
189
Jacob
Synchrone DRAMs (SDRAMs)
Wenn er ein Activ-Command zur Zeilenauswahl gesendet hat (z.B. an a), kann er
eigentlich sofort ein Activ-Command für eine andere Speicherbank senden (z.B. an b).
Da der Datenpfad aber durch den ersten Speicherzugriff auf a belegt ist, kann ein ReadCommand für den nachfolgenden Zugriff auf b erst dann wirksam werden, wenn die
Kettung an den vorhergehenden Datentransfer möglich ist.
Speicherbank
adr.
a
Speicherbank
adr.
b
Speicherbank
adr.
a
Zeilen-Zeilen-Spaltenadr.
adr. adr.
Activ- ActivCom. Com.
ReadCom.
Speicherbank
adr.
b
Spaltenadr.
ReadCom.
Bild 7.16: Zwei aufeinander folgende lesende Speicherzugriffe zu verschiedenen
SDRAM-Speicherbänken a und b
Man kann auch die Strategie gemäß Bild 7.17 verfolgen, bei der das Activ-Command für
die Speicherbank b erst dann gesendet wird, wenn um die Zeit tRCD später das ReadCommand gesendet werden kann.
Speicherbank
adr.
a
Zeilenadr.
ActivCom.
Spei- Speicher- cherbank bank
adr. adr.
a
b
Spalten- Zeilenadr. adr.
Read- ActivCom. Com.
Speicherbank
adr.
b
Spaltenadr.
ReadCom.
Bild 7.17: Verzögerung des Activ-Commands des nachfolgenden Speicherzugriffs
Computertechnik
190
Jacob
Synchrone DRAMs (SDRAMs)
Struktur von „mal n“ SDRAMs
Ein SDRAM mit „mal n“-Struktur muss n Bits pro Speicherbank bereitstellen (Bild 7.18).
Zeilenoder
SpaltenAdress
-wort
4 D atenbits
bei x4BitStruktur
R
e
g
i
s
t
e
r
Zeilenadreßdecoder
R
e
g
i
s
t
e
r
Spaltenadreßdecoder
Das SpeicherbankAdresswort gibt die Auswahl
der Speicherbank vor.
Steuereinheit
Takt
Command-Wort
Bild 7.18: SDRAM mit x4Bit-Struktur
Die Übertragung der Datenwörter von/zum Speicher-IC erfolgt taktsynchron. Dabei gibt
es zwei Alternativen:
• ein einziges Wort pro Taktzyklus, synchron zu einer der beiden Taktflanken (Single
Data Rate, SDR), und
• zwei Wörter pro Taktzyklus, synchron zu den beiden Taktflanken (Double Data
Rate, DDR).
DDR-SDRAMs
Bei DDR-SDRAMs werden die Übertragungszeiten der Commands und der Daten
darauf angepasst, dass beide Taktflanken genutzt werden. Die Übertragungszeit beträgt
nämlich nur noch die Zeit zwischen zwei Taktflanken, also nur die halbe Periodendauer
des Takts (Bild 7.19).
Die Nutzung der beiden Taktflanken hat nichts zu tun mit den schaltungstechnischen
Verarbeitungszeiten bei der Zeilen- bzw. Spaltenauswahl. Die werden nur dadurch
verkürzt, dass man technologische Fortschritte im Speicheraufbau erzielt. Eine
Verkürzung vor allem von tRCD ist weiterhin ein mühsamer Weg.
Gegenüber einem Memory-Controller für SDR-SDRAMs hat der für DDR-SDRAMs mehr
Möglichkeiten, optimale Command-Folgen zu bestimmen. Durch die Halbierung der
Übertragungszeit für ein Command und die kaum veränderten Laufzeiten für die Zeilenbzw. Spaltenauswahl entstehen größere Command-Übertragungslücken und damit
mehr Variationsmöglichkeiten bei der Zusammenstellung der Command-Folgen.
Computertechnik
191
Jacob
Synchrone DRAMs (SDRAMs)
Speicherbank
adr.
b
Speicherbank
adr.
b
Speicherbank
adr.
b
Zeilen- Spaltenadr. x adr. y
Spaltenadr. z
Spaltenadr. z+4
Spaltenadr. z+8
Activ- ReadCom. Com.
ReadCom.
ReadCom.
ReadCom.
Speicherbank
adr.
a
Speicherbank
adr.
b
Zeilenadr. x
ActivCom.
Speicherbank
adr.
a
tRCD a
CL a
tRCD b
CL b
CL b
CL b
Bild 7.19: Beispiel für eine Folge von lesenden Speicherzugriffen zu zwei
Speicherbänken a und b eines DDR-SDRAMs
(Bank b liefert 12 nacheinander gespeicherte Speicherwörter)
Beispiel für ein DDR SDRAM
Vertiefung für Interessierte, kein Prüfungsstoff
Bild 7.20 zeigt das Schaltbild eines DDR-SDRAMs. Es ist sehr komplex. Man kann es aber
gemäß der prinzipiellen Einführung in die maßgeblichen Einheiten einteilen:
• Die vier internen Speicherbänke mit je einem Row-Address-Register/Decoder und je einem
Column-Address-Decoder und einem Column-Address-Latch und Counter.
(Ein Latch ist ein Register. Mit der Bezeichnung will man auf eine Besonderheit der Taktung
hinweisen: pegelgesteuert.)
• Der Adresspfad mit row address A0 bis A12 und column address A0 bis A9, ergibt 8192
Zeilen x 512 Spalten. Dazu kommen die Signale Bank Select 0 und 1.
• Wenn die Zeit für die Übertragung eines Datenworts halb so groß ist wie die Zeit für den
Speicherzugriff, dann muss man beim Zugriff zur Matrix jeweils zwei Wörter lesen bzw.
schreiben, wie z.B. hier durch Speicherung von 2 mal 8 = 16 Bit.
Im Lesepfad ist das Read-Latch der Puffer zwischen der Speicher-Matrix und der Außenwelt.
Das Read-Latch ist die stabile Datenwort-Quelle für die Treiber (driver) auf die Schnittstelle
nach außen.
Im Schreib-Pfad ist das Input-Latch der Puffer zwischen Außenwelt und Speichermatrix. Es
übernimmt das von der Empfängerschaltung kommende Datenwort und dient danach als
stabile Datenquelle beim Schreiben in die Matrix.
• Das Command wird über WE/, CAS/ und RAS/ eingeben.
Computertechnik
192
Jacob
Synchrone DRAMs (SDRAMs)
Bild 7.20: Blockdiagramm eines DDR1-SDRAMs (32Mx8Bit, IBM
(Ende der Vertiefung)
DDR2-SDRAMs
Im Sinne dieser Bezeichnung sind die Vorgängertypen, die eben beschrieben wurden,
DDR1-SDRAMs. Die folgende Tabelle gibt einen Überblick über die Entwicklung der
letzten Jahre und die Ziele, die man mit DDR2 anstrebt.
Clock Frequency in MHz, Data Rate in MTransfers/sec, Densities in MegaBit bzw. GigaBit, siehe
Kapitel 1: TSOP= Thin Small Outline Package, FBGA= Fine Ball Grid Array.
Die Entwicklung bedeutet nun nicht, dass sich die Zugriffszeiten in der Kern-Struktur
(siehe Bild 7.4) auf die Hälfte oder ein Viertel gegenüber früher verkleinert hätten. Diese
Zugriffszeiten sind aus technologischen Gründen nicht so deutlich reduzierbar.
Computertechnik
193
Jacob
Synchrone DRAMs (SDRAMs)
Trotzdem gelingt es, in der Zeit eines Kern-Zugriffs zwei oder vier Übertragungen
nacheinander entweder von oder zum Memory-Controller ausführen. Der Grund ist,
dass man bei einem Speicherzugriff die beiden oder die vier übertragenen Wörter
zusammen aus den Matrizen liest bzw. in diese schreibt und sie dann einzeln im
schnelleren Takt überträgt.
Das Lesen/Schreiben von zwei übertragenen Wörtern bei einem Kern-Zugriff wird bei
den DDR1-SDRAMs verwendet (siehe Vertiefungsabschnitt), das Lesen/Schreiben von
vier übertragenen Wörtern bei einem Kern-Zugriff wird bei den DDR2-SDRAMs
verwendet.
Die Entwicklung der strukturellen Merkmale, die den Fortschritt der Übertragungsrate
von Speicher-ICs bestimmen, zeigt zusammengefasst Bild 7.21 (Quelle: Elpida)
Bild 7.21: Vergleich der Geschwindigkeits-Merkmale der Speicher-Generationen
(auf der Basis einer Kern-Taktrate von 133 MHz)
Für ein transferiertes Bit bei SDR-SDRAMs werden bei DDR(1)-SDRAMs zwei und bei DDR2SDRAMs 4 übertragen. Deshalb spricht man auch von 1Bit-Fetch bzw. 2Bit-Fetch bzw. 4BitFetch.
Computertechnik
194
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
7.5 Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Im Kapitel1 wurden beispielhaft zwei Module vorgestellt, deren Struktur jetzt genauer
beschrieben werden soll.
Bild 7.22: Typische Memory-Module für DDR(1) bzw. DDR2 SDRAMs
Prinzipieller Aufbau von Dual Inline Memory Modulen
Ein wesentliches Merkmal für den Aufbau ist die Datenwortbreite, die sich nach der
Datenwortbreite des Prozessors richtet. Beim Pentium4 sind es 64 Bit pro Datenwort.
Das bedeutet, dass auch die Speichermodule diese Datenwortbreite haben.
Jeder Speicher-IC auf einem Modul liefert einen gleichen Anteil an dem Datenwort. Der
Anteil wird bestimmt von der Wortbreite, die der IC selbst hat, also entweder x1Bit,
x4Bit, x8Bit oder x16Bit.
Jedes Beispielmodul in Bild 7.22 hat auf der Vorder- und der Rückseite je 8 gleiche ICs.
Die 8 ICs jeder Seite erzeugen je ein 64Bit-Datenwort. Also hat jeder IC eine x8BitStruktur.
Die Schaltung jedes Speichermoduls setzt sich also aus 16 ICs zusammen. Das
Zusammenwirken der ICs bei einem Speicherzugriff soll nun mit Hilfe von Schaltplänen
erläutert werden. Dabei werden die von JEDEC angegebenen Schemata benutzt.
Die Schaltung eines DDR1-Moduls
Da sich ein Datenwort parallel aus den Signalen von 8 ICs zusammensetzt, muss man
die Parallelität auch im Schaltplan erkennen (Bild 7.23).
Die Tatsache, dass sie bei einem Speicherzugriff auch gleichzeitig wirken, wird dadurch
hervorgerufen, dass sie alle gleichzeitig selektiert werden, um ein Command zu
übernehmen. Das Command wird an der Pins RAS/, CAS/ und WE/ empfangen. Die
Aktivierung von S0/ geht gleichzeitig an alle SDRAM-ICs und bewirkt die Übernahme.
Computertechnik
195
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Bild 7.23:Parallel-Schaltung von 8 DDR1-Speicher-ICs mit x8Bit-Struktur zu einer
Speicherbank
Die Adressbits BA0, BA1 für die Selektion der internen Speicherbank und die Adressbits
A0 bis A13 für die Zeilen-/Spaltenadressierung werden an alle SDRAM-ICs angelegt.
Die Selektion einzelner Bytes beim Schreiben wird je ein Auswahlsignal DMi (data
mask) pro Byte gesteuert.
Jedes SDRAM-IC hat ein eigenes
Signal, um das Ab-/Einschalten der
Datenbits zu triggern: DQSi (data
strobe).
Die Taktung kann gruppenweise zuund abgeschaltet werden: CKE (clock
enable).
Computertechnik
196
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Die Parallelschaltung der SDRAM-ICs wirkt als Verbreiterung der Datenwortbreite der
internen Speicherbänke von 8Bit auf 64Bit. Deshalb bildet die Schaltungseinheit in Bild
7.23 eine Speicherbank, die - zur Unterscheidung von den internen Speicherbänken auch physikalische Speicherbank genannt wird..
Würden SDRAM-ICs mit internen Speicherbänken von 214 Zeilen und 214 Spalten eingesetzt,
dann erlaubte die Speicherbank Speicherzugriffe zu maximal 22 · 214 · 214 64Bit-Datenwörtern.
Der Schaltplan in Bild 7.23 stellt die Schaltung der Speicherbank auf der Vorderseite
des Speichermoduls dar. Bezieht man den Schaltplan der Speicherbank auf der
Rückseite mit ein, erhält man den Schaltplan in Bild 7.24.
Bild 7.24: Schaltplan eines x64Bit DIMM mit je einer Speicherbank vorne und hinten
Jede Speicherbank erhält ihr eigenes Selektions-Signal S0/ bzw. S1/.
Jedes Speichermodul enthält ein EEPROM mit den charakteristischen Daten des
Speichermoduls.
Computertechnik
197
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Damit man dieses EEPROM mit wenig Aufwand beim Booten des Computersystems
lesen kann, wird es an ein seriell übertragendes Interface (serial PD) angeschlossen,
das mit dem Memory-Controller verbunden ist. Dieser liest die Daten gemäß dem
standardisierten Protokoll der seriellen Schnittstelle.
Würden SDRAM-ICs mit internen Speicherbänken von 214 Zeilen und 214 Spalten eingesetzt,
dann hätte das Speichermodul eine Speicherkapazität von 2 · 22 · 214 · 214 23 Byte = 234 Byte =
16 GigaByte: ein zweifelhafter Wert.
Tatsächlich muss man die genauen Angaben der Hersteller zu den Modulkonfigurationen
beachten. Der Stand der Technik hat z.Zt. folgende Top-Werte:
Die Signale, die für die Speicherzugriffe zu den physikalischen Speicherbänken
gebraucht werden, müssen über die 184-polige Schnittstelle der Speichermodule
bereitgestellt werden.
Schnittstelle von 184poligen DDR1-DIMMs
Tabelle 7.1 fasst die Signale zusammen.
Funktionsgruppe
Adressierung
Daten
Command
Clock
Pin-Name
A0 - A13
BA0 - BA1
DM0 - DM8
S0/ - S1/
DQ0 - DQ63
CB0 - CB7
DQS0 - DQS8
RAS/
CAS/
WE/
CKE0 - CKE1
CK0 - CK2
Funktion
SDRAM Adress Bus
SDRAM Bank Select
SDRAM Data Mask
Select der physikalischen Speicherbänke
DIMM Memory Data Bus
DIMM ECC Check Bits
SDRAM Data Strobes
SDRAM Row Address Strobe
SDRAM Column Address Strobe
SDRAM Write Enable
SDRAM Clock Enable
SDRAM Clock (positive Signale von 3 differentiellen
Signalpaaren)
SDRAM Clock (positive Signale von 3 differentiellen
Signalpaaren)
IIC Serial Bus Clock
IIC Serial Bus Data Line
IIC Slave Address Select
CK0/ - CK2/
EEPROM
Spannungen, Masse
SCL
SDA
SA0 – SA2
Diverse Pins
Tabelle 7.1: Signalfunktionen der 184-poligen Schnittstelle von DDR1-Speichermodulen
Schnittstelle von 240-poligen DDR2-DIMMs
(Vertiefung für Interessierte, kein Prüfungsstoff)
Zum direkten Vergleich wird in Tabelle 7.2 die 240-polige Schnittstelle für DDR2Speichermodule zusammengefasst.
Computertechnik
198
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Funktionsgruppe
Adressierung
Daten
Pin-Name
A0 - A9,
A10/AP
A11 - A15
BA0 - BA2
DM0 - DM8
S0/ - S1/
DQ0 - DQ63
CB0 - CB7
DQS0 - DCQ8
DQS0/ - DQS8/
Command
Clock
RAS/
CAS/
WE/
CKE0 - CKE1
CK0
CK0/
EEPROM
SCL
SDA
SA0 - SA2
ODT0 - ODT1
Spannungen, Masse
Diverse Pins
Funktion
SDRAM Adress Bus
AutoPrecharge
SDRAM Bank Select
SDRAM Data Mask
Select der physikalischen Speicherbänke
DIMM Memory Data Bus
DIMM ECC Check Bits
SDRAM Data Strobes (positive Signale von 9
differentiellen Signalpaaren)
SDRAM Data Strobes (negative Signale von 9
differentiellen Signalpaaren)
SDRAM Row Address Strobe
SDRAM Column Address Strobe
SDRAM Write Enable
SDRAM Clock Enable
SDRAM Clock (positives Signal von einem
differentiellen Signalpaar)
SDRAM Clock (negatives Signal von einem
differentiellen Signalpaar)
IIC Serial Bus Clock
IIC Serial Bus Data Line
IIC Slave Address Select
je ein On Die Termination Control Signal für die
Speicherbänke vorne und hinten
Tabelle 7.2: Signalfunktionen der 240-poligen Schnittstelle von DDR2-Modulen
Die Zahl der Adressbits ist von 14 auf 16 erhöht: A0 - A15,
die Zahl der Bank-Adressbits um 1 auf 3: BA0 – BA2,
die Zahl der differentiellen Clock-Signalpaare ist auf 1 reduziert.
Zur Verbesserung der Taktung der Daten
sind die Daten-Strobe-Signale differentiell
ausgelegt: DQS0 und DQS0/ - DQS8 und
DQS8/.
Die Signalqualität der Datensignale hängt von den Abschlusswiderständen der Datenleitungen
ab. Auf den SDRAM-ICs sind geeignete Widerstandskombinationen vorbereitet. Mit Hilfe der
Einstellung von Betriebsmodus-Registern in den SDRAM-ICs kann man eine bestimmte
Widerstandskombination auswählen.
Es gibt Standard-Modusregister und Extended-Modusregister, die jeweils mit einem speziellen
Command geladen werden. Die Adresse, die dazu eingestellt wird, definiert gleichzeitig den
Inhalt des Modus-Registers.
Die Einstellung der on-chip-Widerstände wird im Extended Mode Register 1 mit Hilfe von zwei
Adressbits eingestellt:
Wenn bei einem Extended-Mode-Register-Command die Adressbits (BA2,BA1,BA0) = (0,0,1)
sind, dann wird das Extended Mode Register 1 adressiert. Die Adressbits A13 bis A0 werden als
Inhalt des Extended Mode Registers übernommen. Die Adressbits A6 und A2 bestimmen den
wirksamen on-chip-Widerstand Rtt. Die anderen Bits bestimmen andere einstellbare Merkmale.
Computertechnik
199
Jacob
Speichermodule für synchrone DDR SDRAMs (DDR1, DDR2)
Dies ist ein Beispiel für die Einstellung von Betriebsgrößen in den SDRAM-ICs des Moduls.
Bei Aktivierung des ODT-Signals werden die Widerstandswerte der On-Die Termination der
betroffenen physikalischen Speicherbank eingeschaltet. Das Signal wirkt wie ein Strobe-Signal.
DDR2-SDRAM-Struktur
Im Bild 7.25 wird der Schaltplan eines DDR2-SDRAM-ICs angegeben, der 8 interne
Speicherbänke enthält.
Bild 7.25: Strukturplan eines DDR2-SDRAM-ICs (128Mx8Bit, Hynix)
Computertechnik
200
Jacob
Dual-Channel-Konfiguration
Man erkennt den Pfad, mit dem die Adressbits aus dem Adressregister in die Mode Register
übertragen werden. Das ODT-Signal bewirkt mit Hilfe der ODT-Control-Schaltung das Zu- und
Abschalten der Output Buffer.
Beim Lesen und Schreiben von/zur Matrix werden 4 mal 8 = 32 Bit übertragen, während über
die Pin-Schnittstelle 8 Bit übertragen werden. Die Register werden 4bit-Prefetch-Data-Register
genannt.
Bei der gegebenen x8-Struktur der Speichermatrizen bedeutet das, dass beim Lesen vier
Spalten selektiert werden und damit vier 8Bit-Wörter gelesen und in das 4Bit-Prefetch-LeseRegister übertragen werden. Beim Schreiben müssen zuerst vier 8Bit-Wörter in das 4BitPrefetch-Schreib-Register geschrieben werden, bevor es in vier Spalten der Speichermatrix
geschrieben werden kann.
Mit diesem DDR2-SDRAM-IC kann man ein 240-poliges DDR2-DIMM vom Typ im Bild 7.25
herstellen, das eine Speicherkapazität von 1GigaByte hat.
(Ende der Vertiefung)
7.6 Dual-Channel-Konfiguration
Eine bekannte Speicherkonfiguration für Server setzt sich jetzt auch im PC-Bereich
durch: der Dual-Channel-Aufbau des Hauptspeichers. Der Memory-Controller im
Memory Controller Hub des Chipsatzes ist so aufgebaut, dass er zwei Speicherzugriffe
zu zwei Speichern unabhängig voneinander, und damit gleichzeitig ausführen kann
(Bild 7.26).
Das bedeutet, dass doppelt so viele Speicherzugriffe pro Zeiteinheit ausgeführt werden
können, wie in den üblichen Single-Channel-Konfigurationen.
Bild 7.26: Auszug aus dem Manual zum Motherboard P5AD2 (ASUS)
Die Beschreibung der Folgen für den Aufbau des Memory-Controllers sprengt den Rahmen
dieses Skripts. Es soll nur die Umsetzung der Host-Adresse in jedem Kanal diskutiert werden.
Computertechnik
201
Jacob
Die Umsetzung der FSB-Adresse bei der Adressierung der Speichermodule
7.7 Die Umsetzung der FSB-Adresse bei der Adressierung der
Speichermodule
Oben wurden 184-polige DDR1-DIMMs mit der Speicherkapazität von 1GByte
eingeführt. Das Verhältnis der Adressbits für Zeile bzw. Spalte ist 13:11. Die
SDRAM-ICs haben eine x8-Struktur. Das Schema der Umsetzung der Adressen ist in
Bild 7.27 angegeben.
high significant bit
FSB: A31
R
e
g
i
s
t
e
r
Zeilenadresse
Speicherbankadresse
R
e
g
i
s
t
e
r
Spaltenadresse
FSB: A3
low significant bit
R
e
g
i
s
t
e
r
R
e
g
i
s
t
e
r
R
e
g
i
s
t
e
r
R
e
g
i
s
t
e
r
Speicherbank 3
Speicherbank 2
Speicherbank 1
Speicherbank 0
R
e
g
i
s
t
e
r
R
e
g
i
s
t
e
r
andere Steuersignale
FSBadresse
Steuereinheit
IC-Funktionsgrenze
Command-Wort
Takt
Bild 7.27: Umsetzung der FSB-Adressen für ein DDR1-DIMM
SDRAM-ICs haben 13 Zeilen- und 11 Spalten-Adressbits, 4 interne Speicherbänke mit x8Struktur
Das DIMM enthält 8 SDRAM-ICs, die alle wie in Bild 7.27 adressiert werden.
•
•
•
Die FSB-Adressbits A29, A30 und A31 müssen in die Einzel-Selektionssignale
/S0 bzw. /S1 für die physikalischen Speicherbänke der Module in den ModulSockeln umgesetzt werden.
Das Beispiel-DIMM mit 1GByte nutzt das FSB-Adressbit A29 für die Selektion
der physikalischen Speicherbänke auf der Vorder- und Rückseite.
Vier solche 1GByte-DIMMs nutzen den gesamten Adressenraum, der von 32
Adressbits gebildet wird.
Computertechnik
202
Jacob
Die Umsetzung der FSB-Adresse bei der Adressierung der Speichermodule
•
•
In einer Speichermatrix werden zuerst die Spalten durchnummeriert, bevor die
Zeilennummer inkrementiert wird. Deshalb sind die Spaltenadressbits immer
die weniger wertigen und die Zeilenadressbits die höher wertigen.
Das nieder wertige Speicherbank-Adressbit setzt nicht an dem höchst
wertigen Zeilenadressbit fort.
Würde es dort fortsetzen, dann würden die Spalten und die Zeilen der
Speichermatrizen der internen Speicherbänke nacheinander aufsteigend
durchnummeriert.
Bank 0
Zeilenadressen
Bank 1
usw.
usw.
Bank 2
usw.
Bank 3
usw.
Spaltenadressen
Das nieder wertige Speicherbank-Adressbit setzt vielmehr am höchst wertigen
Spaltenadressbit fort.
Der Grund ist, dass damit beim Durchnummerieren die Zeilennummer
konstant bleibt, während die Spaltennummern von Speicherbank zu
Speicherbank inkrementiert werden. Es wird nacheinander eine Kettung der
Spaltennummern der Speicherbänke erzeugt, die zur selben Zeilennummer
gehören.
Die Adressen entsprechen der Nummerierung.
Bank 0
Zeilenadressen
Bank 1
Bank 2
Bank 3
usw.
Spaltenadressen
Wenn man aufeinander folgende Wörter, dieser Kettung folgend, abspeichert,
entsteht ein Wechsel der Zeilenadresse erst, wenn man am Ende der Kettung
ankommt. Man nennt diese Art der Speicherung verschränkte Speicherung.
•
Durch die verschränkte Speicherung entstehen beim Programmablauf im
Mittel weniger Zeilenwechsel als bei der unverschränkten.
Das FSB-Adressformat enthält nicht die drei niederwertigen Adressbits zur
Adressierung der Bytes innerhalb eines 64Bit-Speicherworts. Diese werden als ByteSelektionsmuster in der zweiten Phase der Adressierung auf den FSBAdressleitungen übertragen.
Das Adressformat, das diese enthält und damit die Gesamtadresse für die Adressierung von
Bytes angibt, wird oben zur Unterscheidung Hostadresse genannt.
Computertechnik
203
Jacob
PCI-Bus 2.0
8 I/O-Datenverkehr: PCI-Varianten, Interrupt-Controller
8.1 PCI-Bus 2.0
Das Konzept des PCI-Bus benutzt bestimmte Begriffe, die zuerst erklärt werden
sollen.
Die Programme geben ihre Aufträge an die PCI-Controller, die nach der Übernahme
der Auftragsparameter die Abwicklung eines Übertragungsauftrages selbständig
initiieren (Initiator) und ausführen. Anders ausgedrückt: nur diese Schaltungen
können Busmaster oder Master werden.
Die Schaltung, an die sich der Busmaster zur Datenübertragung wendet, heißt
Target. Es ist entweder ein anderer Busmaster oder eine passive Schaltung, die nur
adressiert werden kann, d.h. die selbst nicht Initiator werden kann.
Targets, die selbst nicht Initiatoren werden können, werden auch Slaves genannt.
Der kürzeste Auftrag ist die Übertragung eines einzelnen Datenworts (Einzeldatenverkehr).
Die Übertragung von Blöcken mit mehreren Datenwörtern (Blockdatenverkehr)
belegt das Übertragungsmedium länger. Die Zahl der Wörter, d.h. die Länge der
Datenblöcke muss verkehrsgerecht bemessen werden. Man nennt die Übertragung
eines Datenblocks auch Burst.
Beide Übertragungsarten erfordern eine genaue Festlegung von Signalen bzw.
Signalfolgen, so dass die Übertragung zuverlässig ablaufen kann. Der genaue
zeitliche Ablauf der Signale heißt Übertragungsprotokoll oder kurz Protokoll. Es legt
die Vorschriften für jeden elementaren Übertragungsvorgang und deren Aneinanderreihung fest.
Wenn mehrere Busmaster einen gemeinsamen Bus als gemeinsames Übertragungsmedium nutzen, dann wird es zu Benutzerkonflikten kommen, da jeweils
nur einer das Medium benutzen kann. Man wird also eine Benutzerregel nach Vorrang festlegen, die den Konflikt löst. Auf dieser Basis kommt es dann zu einer
Reihenfolgebildung der Übertragungen der Master.
Die Arbitrierung
Ein PCI-Controller meldet seinen Übertragungswunsch mit einem individuellen
Request-Signal bei einem PCI-Arbiter an und erhält die Bewilligung seines Übertragungswunsches durch ein individuelles Grant-Signal.
Im Beispiel von ergeben sich für die 4 PCI-Stecker auf den beispielhaften
Motherboards vier Signalpaare am PCI-Arbiter.
Man beachte, dass nicht nur PCI-Controller am PCI-Bus Initiator werden können.
Auch der Prozessor bzw. in seinem Namen das Prozessor-Interface im MemoryController-Hub und in dessen Namen das Hub-Interface des I/O-Controller-Hub
können eine Belegung des PCI-Bus anfordern. Deshalb erkennt man am Arbiter von
Bild 8.1 noch ein zusätzliches Signalpaar.
Computertechnik
204
Jacob
PCI-Bus 2.0
Target
Initiator
PCI-Interface im
I/O-Controller
Prozessor
PCI-Arbiter
Bild 8.1: Beispielhaftes Schema der Request/Grant Signale eines PCI-Arbiters
(mit beispielhafter Bewilligung und nachfolgender Belegung)
Der Rang, den ein PCI-Steckplatz in der Prioritätsreihenfolge der Bedienung hat, wird
durch die Abfrageprozedur im Arbiter festgelegt.
Vertiefung für Interessierte, kein Prüfungsstoff:
Der PCI-Standard legt keine Regeln für die Realisierung des Arbiters fest. Ein beispielhaftes Verfahren gibt Bild 8.2 wider.
PCI0
CPU
PCI1
PCI5
PCI0
PCI5
PCI
PCI4
PCI1
PCI2
PCI3
Hauptabfragezyklus
Eingeschobener
Abfragezyklus
PCI0
PCI5
PCI
PCI4
PCI1
PCI2
PCI3
PCI4
PCI2
PCI0
PCI5
PCI
PCI4
PCI1
PCI3
PCI2
PCI3
Bild 8.2: Graph der Abfragezustände für die Abfrageprozedur eines PCI-Arbiters
Bild 8.2 zeigt einen Graphen, der die Abfragezustände (Kreise) und die ZustandsÜbergänge (Pfeile) einer Abfrageprozedur definiert.
Der Hauptabfragezyklus bestimmt das Verhältnis der Zuordnungen des PCI-Bus für den
Prozessor und für die PCI-Controller. Der eingeschobene Abfragezyklus bestimmt, welcher
PCI-Controller den PCI-Bus belegen darf.
Die PCI-Signalpaare, die der Arbiter verarbeiten kann, sind in der Regel auf eine
angenommene Höchstzahl ausgelegt, hier 6. Auf den Motherboards werden im Standardfall
in der Regel weniger genutzt (z.B. 4 wie in Bild 8.1).
Das Verfahren entspricht der Weitergabe eines Tokens. Angenommen, kein PCI-Controller
wartet auf Bedienung und eine Prozessor-Anforderung liege an und würde abgefragt und
würde bedient und sei fertig. Dann wird das Token an den ersten Abfragezyklus der PCIController weitergegeben, der es von Controller zu Controller weitergibt.
Computertechnik
205
Jacob
PCI-Bus 2.0
Einer habe mittlerweile eine Anforderung, die erkannt und bedient wird. Sobald sie fertig ist,
wird das Token an den nächsten eingeschobenen Abfragezyklus weiter gegeben, und zwar
an den ersten Controller, der dem aktuell bedienten folgt. Wenn ein Abfragezyklus mit oder
ohne Abfrage-Erfolg wieder zum ersten abgefragten Controller zurückgekehrt ist, wird das
Token ebenfalls an den nächsten eingeschobenen Abfragezyklus weiter gegeben, und
zwar an den Controller, der dem ersten Controller des gerade erfolgten Umlaufs folgt.
Das Verfahren verteilt bei Volllast die Chancen im Verhältnis 1 zu 3 an die CPU und die
PCI-Controller, und die Chancen der PCI-Controller untereinander sind gleich verteilt.
(Ende der Vertiefung)
Hat einer der PCI-Initiatoren ein /REQ-Signal aktiviert, dann wird er - je nach Lage
der Requests der anderen - nach einer bestimmten Zeit die Aktivierung seines /GNTSignals durch den Arbiter feststellen. Dann beginnt die Datenübertragungsphase.
Die Datenübertragung
Bild 8.4 stellt die Einzelwort-Datenübertragung an einem Beispiel dar.
PCIInterface
Master Device
AD(31:0)
PCI-Arbiter
Interface
/Request
C-/BE(3:0)
PAR
/FRAME
64 Bit
Extension
Atomic Access
/DEVSEL
IDSEL
Clock Control
Control
/REQ
/GNT
Arbitration
CLK
/RST
System Control
Test Control
/INTA
/INTB
/INTC
Error Report
/INTD
Interrupt
Control
/Grant
Adress/
DatenInterface
CommandInterface
ControlInterface
/Frame
Adresswort Datenwort
Commandwort
Byteauswahl
vom Initiator
/Device
Select
vom Target
Takt
Bild 8.3: Vereinfachtes Zeitdiagramm einer Einzelwort-Übertragung (PCI-Bus 2.0)
• Maßgeblich für den zeitlichen Ablauf ist der Takt von 33MHz/33nsec (2.0).
• Im Einzeldatenverkehr dauert die Datenübertragungsphase mindestens zwei
Buszyklen.
• Im ersten Zyklus der Datenübertragungsphase sendet der PCI-Initiator ein
Commandwort (z.B. Memory Read, Memory Write, I/O Read, I/O Write,
Configuration Read, Configuration Write) auf den Signalleitungen C/BE[3:0].
Computertechnik
206
Jacob
PCI-Bus 2.0
Im zweiten Zyklus sendet der PCI-Initiator auf denselben Signalleitungen ein Wort,
mit dem man einzelne Bytes auswählen kann, wenn kein ganzes Datenwort
gemeint ist.
• Im ersten Zyklus der Datenübertragungsphase sendet der PCI-Initiator zusätzlich
eine 32Bit-Adresse auf den Signalleitungen AD[31:0].
• Im zweiten Zyklus sendet die Datenquelle auf denselben Signalleitungen AD[31:0]
ein 32Bit-Datenwort.
PCIInterface
PCI-Arbiter
Interface
Request/
Grant/
Adress/
DatenInterface
CommandInterface
ControlInterface
Frame/
Adresswort Datenwort
Commandwort
Byteauswahl
vom Initiator
Device/
Select
vom Target
Takt
Bild 8.4: Vereinfachtes Zeitdiagramm einer Burst-Übertragung (PCI-Bus 2.0)
• Mit dem binären Signal /FRAME (Rahmen) zeigt der PCI-Initiator an, ob er die
Datenübertragungsphase verlängern will, d.h. einen Datenblock im Burst-Modus
übertragen will. /FRAME bleibt bis zum Beginn der Übertragung des letzten
Datenwortes aktiv.
Beim Einzeldatenverkehr muss /FRAME also vor dem zweiten Zyklus deaktiviert werden,
weil das erste Datenwort auch das letzte ist.
• Mit dem /DEVSEL-Signal (device select) gibt das adressierte Target an, dass es
die angelegte Adresse als eine eigene erkannt (= dekodiert) hat.
Nach einer Datenübertragungsphase sollte der Bus für andere Teilnehmer freigegeben werden, um die Benutzungschancen fair zu halten.
Das aktivierte /FRAME-Signal zeigt an, dass der Bus benutzt wird. Damit hat jeder
PCI-Controller ein eindeutiges Merkmal, dass der Bus belegt ist.
Computertechnik
207
Jacob
PCI-Bus 2.0
Vertiefung für Interessierte, kein Prüfungsstoff:
Möglichkeit der vorgezogenen Arbitrierung
Der Initiator kann gleichzeitig mit der Aktivierung des /FRAME-Signals das /REQ-Signals
deaktivieren. Das kann der Arbiter als eine Aufforderung nehmen, die aktuelle Bewilligung
zu deaktivieren und die nächste Arbitrierungsentscheidung zu fällen und zu bewilligen. Der
bewilligte PCI-Controller beobachtet die Belegung des Bus, bis alle Belegungsmerkmale
(vor allem das /FRAME-Signal) deaktiviert sind. Dann beginnt er mit seiner Belegung.
Durch die vorgezogene Entscheidung entsteht also kein Warten auf die
Arbitrierungsentscheidung.
Entzug des Bus bei geketteten Bursts
Ein PCI-Initiator kann seine Anforderung aber auch aufrechterhalten, weil z.B. mehrere
Bursts nacheinander auszuführen sind. Das bedeutet nicht, dass ihm die Benutzung des
Bus nach der Bewilligung so lange erhalten bleibt, bis er seine Anforderung zurücknimmt.
Da nur der Arbiter alle aktuellen Anforderungen kennt, darf nur er allein über die Belegung
entscheiden. Wenn andere Anforderungen anliegen, wird er Fairness erzwingen und die
Bewilligung bei der Aktivierung des /FRAME-Signales zurücknehmen und den in der
Reihenfolge folgenden bewilligen. Am Ende der aktuellen Datenübertragungsphase geht
der Bus an den Teilnehmer über, den der Arbiter neu bestimmt hat. Wegen der zyklischen
Abfrage ist sicher, dass jede wartende Anforderung bei jedem Umlauf mindestens einmal
bedient wird.
(Ende der Vertiefung)
Busblockaden
Der Initiator oder das Target können den Bus „monopolisieren“ und die Benutzung
durch andere blockieren, weil Hardware-Fehler den Ablauf blockieren können.
Solange die Steuerschaltung im Initiator fehlerfrei funktioniert, wird sie die Übertragungsaufträge, die sie von dem Betriebssystem im Sinne der Anwendungen erhält,
auch umsetzen. Wenn sie einen besonders langen Übertragungsauftrag erhält, wird
sie diesen auch weisungsgemäß ausführen. Es ist also die Aufgabe des Betriebssystems, die Aufträge so zu „stückeln“, dass keine zu langen Blockaden für andere
entstehen.
Wenn man trotzdem eine davon unabhängige Überwachung haben möchte, so muss
man die Zeit beobachten, die eine Transaktion „verbraucht“. Setzt man dem eine
Grenze und bricht die Transaktion beim Überschreiten des Grenzwertes ab, dann hat
man damit ein Mittel, eine Blockade durch den Initiator zu verhindern.
In diesem Sinne legt die PCI-Spezifikation die Funktion eines master latency timer
im PCI-Controller fest. Der gültige Grenzwert wird durch Laden in ein ControlRegister beim Hochfahren des Computers eingestellt.
Sobald eine Transaktion beginnt, erhält der Timer (= Zähler) diesen Grenzwert als
Anfangswert. Während der Transaktion wird der Zähler mit dem PCI-Bustakt
heruntergezählt. Der Nullzustand bedeutet den Abbruch der laufenden Transaktion.
Wird die Transaktion vorher ordnungsgemäß beendet, ist die Überwachung hinfällig
und wird gestoppt.
Der Anfangswert ist ein Merkmal, das vom Betriebssystem bestimmt wird, genau so,
wie die Größe der Datenblöcke von ihm bestimmt wird. Beides muss aufeinander
abgestimmt sein. Man stellt den Zähler-Grenzwert der Überwachung so ein, dass die
Übertragung „normaler“ Datenblöcke nicht als Blockade behandelt wird.
Computertechnik
208
Jacob
PCI-Bus 2.0
Soweit mögliche Blockaden durch den Initiator. Fehlfunktionen in einem Target
können auch Blockaden hervorrufen. Die Überwachung des Targets erfolgt im
Initiator.
Nach Beginn einer Transaktion erwartet der Initiator als Reaktion die Aktivierung des
/DEVSEL-Signals. Wenn das ausbleibt, ist das adressierte Target nicht erreichbar.
Die Überwachung bricht die blockierte Transaktion ab.
Es gibt noch weitere Regeln zur Überwachung des Targets, die aber hier nicht weiter
diskutiert werden sollen.
Interrupt-Request-Signale auf dem PCI-Bus (2.0)
Ein PCI-Controller muss ein Interrupt-Request-Signal aktivieren, um eine
Ereignismeldung an die Programmsteuerung im Prozessor abzugeben.
Im PCI-Konzept ist vorgesehen, dass ein PCI-Controller bis zu vier voneinander
unabhängige Interrupt-Requests erzeugen kann, je nach der Komplexität der Funktionen, die
er auszuführen hat. Die Funktionen der meisten PCI-Controller sind aber so begrenzt, dass
nur ein einziger Interrupt-Request notwendig ist, der über die Interrupt-Request-Leitung
/INTA übertragen werden muss.
Das Prinzip der Veroderung der Interrupt-Requests der einzelnen PCI-Controller wird
am Beispiel der Interrupt-Request-Leitung /INTA erklärt (Bild 8.5). Es ist auf die
anderen drei Leitungen sinngemäß übertragbar.
PCIController 1
PCIController 2
PCIController n
INTA1
INTA2
INTAn
Interrupt-Controller
INTA = INTA1 oder INTA2... oder INTAn
Oder
Oder
Oder
V
/INTA = /INTA1 und /INTA2... und /INTAn
V
V
INTA = INTA1 oder INTA2... oder INTAn
Bild 8.5: Wired-OR-Verknüpfung am Beispiel der Interrupt-Request-Leitung /INTA
Eine Oder-Verknüpfung von mehreren Variablen kann man durch eine Kettung von
Oder-Verküpfungen realisieren, die zwei Variablen verknüpfen. Eine solche
verkettete Verknüpfung wird notwendig, wenn die Variablen örtlich verteilte
Einzelsignale sind, z.B. an PCI-Steckplätzen.
Alle /INTA-Anschlusspunkte der Steckplätze und der verlöteten PCI-Controller auf
einem Motherboard sind untereinander durch eine Leitung verbunden, an deren
einem Ende der Eingang in den Interrupt-Controller liegt.
Computertechnik
209
Jacob
PCI-Bus 2.0
Sobald eine PCI-Steckkarte in einen Steckplatz gesteckt wird, entsteht eine
Verbindung zwischen dem offenen Ausgang ihres INTA-Interrupt-RequestTransistors und dieser Leitung (rote Knoten in Bild 8.5). Bei verlöteten PCIControllern ist die Verbindung durch das Verlöten entstanden.
Jeder PCI-Controller, dessen Interrupt-Request-Transistor mit der Leitung verbunden
ist, wird in dem Augenblick, in dem er einen Request aktiviert, die Interrupt-RequestLeitung mit Masse verbinden, d.h. „auf 0 ziehen“. Das bedeutet, dass das Signal auf
0 gezogen wird, wenn auch nur einer einen Interrupt Request erzeugt. Invertiert man
das erzeugte Signal im Interrupt-Controller, dann erhält man den Sammel-InterruptRequest INTA.
Vertiefung für Interessierte, kein Prüfungsstoff:
Variable, die die Werte 0 oder 1 annehmen können, werden als Schaltvariable bezeichnet.
Man kann eine Variable positiv angeben, z.B. INTA, oder negiert, z.B. /INTA.
INTA = 1 bedeutet: Es liegt ein Interrupt Request vor.
/INTA = 1 bedeutet: Es liegt kein Interrupt Request vor.
Hier interessiert die Bedingung dafür, dass /INTA = 1 ist, also kein Interrupt Request
vorliegt.
Es liegt kein Request vor, wenn /INTA1=1 und /INTA2=1 und…..und /INTAn=1 sind, d.h.
wenn der Ausdruck /INTA1 und /INTA2 und …und /INTAn = 1 wird. Ordnet man also diesen
Ausdruck der Variablen /INTA zu, hat man eine Funktion, die genau festlegt, bei welchen
Werten der Schaltvariablen INTAi ein Sammel-Interrupt-Request INTA vorliegt und bei
welchen nicht. Die Zuordnung ergibt folgende Schaltfunktion:
/INTA = /INTA1 und /INTA2 und…und /INTAn
Wenn man die Schaltfunktion für INTA haben will, muss man die negierte Schaltvariable
/INTA durch eine Negation in die positive Schaltvariable INTA wandeln.
Die Negation einer Schaltfunktion bedeutet, dass man beide Seiten der Zuordnung negiert:
/ (/INTA)= / (/INTA1 und /INTA2 und…und /INTAn)
Eine doppelte Negation hebt sich auf.
Bei der Negation eines und/oder-verknüpften Ausdrucks werden alle Schaltvariablen
negiert und und in oder und oder in und gewandelt (Inversionssatz der Schaltalgebra). Es
ergibt sich:
INTA = INTA1 oder INTA2 oder …oder INTAn.
(Ende der Vertiefung)
PCI-Interrupt-Sharing
Die Problematik der Offenbarung des Interrupt-Requests, der nach einem SammelInterrupt bedient werden soll, wird im PCI-Umfeld mit dem Begriff Interrupt-Sharing
bezeichnet. Man braucht einen Identifikationszyklus für diese Offenbarung.
Der Interrupt-Request INTA (bzw. INTB, INTC oder INTD) werden zusammen mit
den ererbten Interupt-Requests - die es aus Gründen der Kompatibilität zu früheren
Systemen immer noch gibt - im Interrupt-Controller zu einem Sammel-Interrupt an
den Prozessor verarbeitet. In der Interrupt Acknowledge Phase wird der höchst priore
von diesen zum Prozessor gemeldet. Wird INTA gemeldet, wird zur Interrupt Service
Routine für INTA verzweigt.
Computertechnik
210
Jacob
PCI-Express
Diese Routine hat die Aufgabe, das Statusregister jedes PCI-Controllers abzufragen,
der an der Interrupt-Request-Leitung einen Request auslösen kann. Das Statusregister jedes abgefragten PCI-Controllers enthält pro Request-Leitung /INTi ein
Pending-Interrupt-Request-Bit, dessen Zustand zeigt, ob ein Request anliegt.
8.2 PCI-Express
Der PCI-Express-Standard ist konzipiert als Nachfolge-Standard des PCI-Bus 2.0.
Seine prinzipielle Integration in das System zeigt Bild 8.6.
CPU
PCI Express
Memory
Hub
Graphics
ATA serial
HDD
Mobile
Docking
GByte
Ethernet
Add-in
Memory
USB 2.0
I/O
Hub
Local
I/O
PCI Express
Switch
PCI
PCI Express
Bild 8.6: PCI-Express mit Switch-IC als zentrale Verteiler-Einheit
Man erkennt, dass der Chipsatz beide Standards nebeneinander bestehen lässt.
Offensichtlich geht das PCI-Express-Konzept aber nicht mehr von einer Bus-Struktur
aus, in der ein Arbitrierungsvefahren über die Belegung durch Controller entscheidet,
die dann selbständig die Datentransfers ausführen.
An diese Stelle tritt hier ein Switch-IC, das bitseriell übertragene Datenpakete von
Punkt zu Punkt verteilt. Die Funktion entspricht also genau der, die in den SwitchEinheiten der LANs üblich ist. Das Switch-IC stellt die Verbindungen zwischen den
PCI-Express-Sockeln und dem I/O-Hub her, wirkt also als Verteilerzentrale.
An den Funktionen der Sockel-Pins kann man die Merkmale der Datenübertragung
feststellen (Bild 8.7).
Das wesentlichste Merkmal: drei differentiell übertragende Leitungspaare:
ein Leitungspaar für den gemeinsamen Takt der Datenübertragungs-Paare,
ein Leitungspaar für die Richtung vom Switch zum Stecker (output),
ein Leitungspaar für die Richtung vom Stecker zum Switch (input).
Die beiden Datenübertragungs-Leitungspaare werden zusammen als Lane bezeichnet. In der x1-Version gibt es nur ein Lane, in der x16-Version gibt es 16 Lanes.
Computertechnik
211
Jacob
PCI-Express
HSOn
HSIp
Rx
Tx
HSOp
HSIp
HSIp
HSOn
Rx
Tx
HSIp
HSOp
Bild 8.7: Beispiele für Stecker des PCI-Express mit x1-Datenübertragungspaar
Der Takt hat eine Frequenz von 2,5 GHz. Da (wie im 1 GBit/sec-Ethernet) eine
8zu10-Codierung für die Daten verwendet wird, ergibt sich eine effektive Datenrate
von 250 MBit/sec vollduplex auf jedem Lane. Das gilt für die x1-Version. Die
Versionen mit mehr Lanes haben höhere Datenraten.
Angenommen, man hat eine x16Version und einen Datenblock von n · 16 Bytes.
Wenn man je ein Byte der ersten 16 der Reihe nach auf die 16 Lanes verteilt, dann
kann man in einer Taktperiode die ersten 16 Byte übertragen. Das lässt sich mit den
folgenden 16 Byte wiederholen usw.. Man braucht also n Taktperioden, um n · 16
Bytes zu übertragen. Vorausgesetzt, dass man im Empfänger die Bytes wieder in der
richtigen Reihenfolge aneinander reiht.
Computertechnik
212
Jacob
PCI-Express
Das geschilderte Verfahren ist das der x16-Version. Diese ist also 16mal schneller
als die x1-Version. Das Verfahren gilt sinngemäß auch für die x2, x4 usw. Versionen.
Die Taktrate 2,5 GHz wird gesteigert werden. Man wird versuchen, sie möglichst
nahe an 10 GHz zu erhöhen, der theoretischen Grenze für Datenübertragung auf
Kupfer.
Um einen Einblick in die Bildung der Datenpakete zu bekommen, wird im Bild 8.8 die
systematische Zusammensetzung dargestellt.
http://www.intel.com/technology/pciexpress/devnet/docs/WhatisPCIExpress.pdf
Bild 8.8: Bildung (Transmitter) und Rückbildung (Receiver) der Datenpakete im PCIExpress
Wenn ein Datenpaket auf den Datenleitungen physikalisch übertragen wird
(physikalische Übertragungsebene, physical layer), dann ist das eine Punkt-zuPunkt-Übertragung. Das bedeutet, dass das Paket-Format auf dieser Ebene keine
Weginformation bereithalten muss. Deshalb gibt es nur einen start-of-frame-Delimiter
und einen end-of-frame-Delimiter.
Das Paket wird von der übergeordneten Funktionsebene an die physikalische Ebene
übergeben, damit es dort, mit den frame-Delimitern versehen, übertragen wird. Die
Hauptfunktion der übergeordneten Ebene (link layer) ist es, ein gesichertes Paket zu
bilden.
Die Link-Ebene bekommt ein ungesichertes Datenpaket von der ihr übergeordneten
Funktionsebene. Dieses Paket enthält in einem Header im Wesentlichen die
Datenpfad-Information. Daraus kann die Link-Ebene im Switch die Punkt-zu-PunktDaten ermitteln und entsprechend den Pfad schalten.
Außerdem kann sie dem Paket Sicherungsdaten (packet sequence number, cyclic
redundancy check-Bits) hinzufügen, bevor es das so ergänzte Paket zur Übertragung
weiter gibt. Die Link-Ebene im Empfänger nutzt die Sicherungsdaten zur Prüfung auf
korrekte Übertragung.
Die Transaktions-Ebene (transaction layer) ist dafür zuständig, dass geeignete
Pakete für den dma-Datenverkehr und den Interrupt-bezogenen Datenverkehr
gebildet werden, die den vom Anwenderprogramm gewünschten Pfad realisieren.
Computertechnik
213
Jacob
PCI-X
8.3 PCI-X
PCI-X verfolgt weiter das Konzept der wortweisen Übertragung auf einem Bus
(Bild 8.9).
Die Datenwortbreite ist 64 Bit mit differentieller Übertragungstechnik.
An einem Bus kann immer nur eine maximale Anzahl von Sockeln (slots)
angeschlossen sein (Bus-Segment). Wenn mehr Sockel gebraucht werden, braucht
man eine PCI-X-to PCI-X-Bridge. Dadurch entstehen Bus-Segmente.
Die maximale Anzahl der Sockel wird durch die Taktfrequenz festgelegt:
66 MHz: 4; 100 MHz: 2; 133 MHz: 1.
Für ICs, die auch an den Bus angeschlossen werden können, gelten andere
Belastungsmerkmale als für Sockel. Deshalb können 3 Bridge-ICs an dem Segment
mit 133 MHz angeschlossen sein.
Bild 8.9: Strukturvarianten des PCI-X-Bus
Das ist die PCI-Variante, die in Servern verwendet wird, z.B. im HochleistungsServer von HP in Kapitel 3.
Die PCI-Varianten sind die heute hauptsächlich verwendeten Standards für
universelle I/O-Schnittstellen. Sie dienen dem Datenverkehr, aber auch der
Übertragung der Daten für die Interrupt Requests.
Im Folgenden werden im Rahmen dieses Kapitels auch einige Konzeptmerkmale des
Interrupt Controllers erklärt.
Computertechnik
214
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
8.4 Das Programmable-Interrupt-Controller Konzept (PIC)
Szenarien für programmsteuernde Ereignismeldungen
Sobald beim Ablauf eines Programms ein Auftrag für die Übertragung eines
Datenblocks durch einen PCI-Controller entstanden ist, muss die Fertigmeldung
abgewartet werden. Das Betriebssystem sorgt für ein geordnetes Anhalten und
Fortsetzen des auftraggebenden Programms.
Für den geordneten Ablauf eines Programms schafft man sich in Betriebssystemen
eine Verwaltungseinheit, die man üblicherweise Prozess nennt. Diese Einheit wird
repräsentiert durch Datenstrukturen, die den Bedarf an Betriebsmitteln (resources)
und die Merkmale des aktuellen Programm-Ablaufzustands enthalten. Dort wird das
Anhalten als Zustandsmerkmal festgehalten.
Es kann nun nicht nur einen, sondern mehrere angehaltene Prozesse geben, die auf
eine Fertigmeldung warten. Darunter kann es auch schon welche geben, für die eine
Fertigmeldung anliegt, die aber zugunsten der höheren Priorität des gerade
ablaufenden Prozesses noch nicht zum Zuge kommen können. Erst, wenn dieser
anhält, kann der Wechsel zu einem wartenden erfolgen.
Das ist das übliche Szenario in einem Multiprocessing-Betriebssystem.
Das für die Auflösung des Wartezustandes maßgebliche Ereignis ist die Fertigmeldung. Jede dma-fähige Einheit, die selbständige einen Übertragungsauftrag
abwickelt, kann jederzeit damit fertig werden und eine Fertigmeldung erzeugen.
Die Fertigmeldung geschieht mit einem Interrupt-Request. In der InterruptAcknowledge-Phase kommt es zu einer Verzweigung zu einer Interrupt-ServiceRoutine, deren Ablauf den Ablauf des gerade ablaufenden Prozesses unterbricht.
In Multiprocessing-Betriebssystemen kommt es über den Ablauf der InterruptService-Routine zum Ablauf eines Betriebssystem-Teilprogramms, das InterruptHandler genannt wird.
Hier interessiert nun, wie der Interrupt-Controller die einlaufenden Interrupt-Requests
bewertet und den Start der Interrupt-Service-Routinen unterstützt.
Das ererbte Konzept des Interrupt-Controllers
Der Interrupt-Controller ist die Entscheidungs-Instanz, die den zu bedienenden
Interrupt-Request auswählt und meldet.
Zunächst muss eine geeignete Schnittstelle bereitgestellt werden, an der sich jeder
Interrupt-Request jederzeit melden kann (Bild 8.10).
Das Konzept sieht vor, dass man eine Grund-Einheit mit 8 Eingängen hat, die man
kaskadieren kann. In Bild 8.10 werden nur zwei Grund-Einheiten kaskadiert.
Bei einer vollständigen Kaskade wären die Ausgänge von 8 Grund-Einheiten auf die 8 Eingänge der zweiten Stufe geschaltet, so dass 64 Requests verarbeitet werden könnten.
Computertechnik
215
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
IRQ8
IRQ0
IRQ9
IRQ1
IRQ10
IRQ2
O
D
E
R
IRQ11
IRQ12
IRQ13
O
D
E
R
IRQ3
IRQ4
IRQ5
INTR
CPU
IRQ6
IRQ14
IRQ7
IRQ15
Interrupt
Request
Register
Erweiternder
InterruptController
(slave)
SammelInterruptRequest
Interrupt
Request
Register
BasisInterruptController
(master)
SammelInterruptRequest
Bild 8.10: Kaskadierung von elementaren Interrupt-Controller-Einheiten
Die ankommenden Interrupt-Requests werden einzeln in einem Register gespeichert,
bis die Bedienung durch den Prozessor beginnt und die Anforderung auf Bedienung
zurückgesetzt werden kann. Das Register heißt Interrupt-Request-Register.
Sobald ein beliebiger IRQ am Eingang des Controllers entsteht, löst das einen InterruptRequest am Prozessor aus, der einen Interrupt-Acknowledge-Zyklus auslöst.
Der Interrupt-Acknowledge-Zyklus führt zur Übertragung des Interruptvektors, der
die Nummer des höchstprioren Interrupt-Request angibt.
Die Entscheidung über den höchst-prioren Interrupt-Request
Grundlage der Entscheidung ist eine eindeutige Rangfolge der Interrupt-Requests.
Zusätzlich ist maßgeblich, ob man eine ablaufende Interrupt-Service-Routine wieder
unterbrechen darf.
Nimmt man an, dass eine ablaufende Interrupt-Service-Routine nicht unterbrochen
werden kann, dann wartet man das Ende ihres Ablaufs ab und ermittelt danach,
welcher dann in der Rangfolge der erste ist und meldet seinen Interrupt-Vektor. Im
Interrupt-Request-Register ist eine eindeutige Rangfolge definiert (Bild 8.11).
IRQ0
IRQ1
IRQ8
IRQ9
IRQ10
Im PIC-Konzept legt man die Rangfolge gemäß dem nebenstehenden
Schema fest. IRQ0 hat die höchste Priorität. Durch das Einschieben der
Slave-Kette ergibt sich folgende Prioritätsreihenfolge: IRQ0, IRQ1, IRQ8,
..., IRQ15, IRQ3,.., IRQ7 mit insgesamt 15 Interrupt-Requests.
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Bild 8.11: Rangfolge der Interrupt-Requests
Für das Konzept mit Unterbrechungsmöglichkeit reicht dieser Ansatz nicht.
Computertechnik
216
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
Man braucht eine zusätzliche Struktur, die erkennbar macht, welche InterruptService-Routinen ablaufen und in welcher Reihenfolge sie unterbrochen wurden.
Hierzu kann man das Register, in dem man sich die noch nicht bedienten Requests
merkt, um ein Register ergänzen, in dem man sich die bedienten Requests merkt.
Das hinzugefügte Register wird Interrupt-Service-Register genannt. Die Rangfolge
ist die gleiche wie im Interrupt-Request-Register (Bild 8.12).
IRQ0
Rangfolge in der
Warteschlange
IRQ1
IRQ8
IRQ9
IRQ10
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Merker für die
noch nicht bedienten
Interrupt Requests
Merker für die
bedienten
Interrupt Requests
Bild 8.12: Registerpaar zur „Registrierung“ der bedienten bzw. unterbrochenen
Interrupt-Requests und der noch nicht bedienten Interrupt-Requests; die Ordnung
der aktuellen Einträge nach der Rangfolge ergibt die Bedienungsreihenfolge.
Der Zustand der Einträge (Merker) in den beiden Registern erklärt eindeutig, in
welcher Reihenfolge die wartenden Einträge bearbeitet werden müssen (Bild 8.12).
Alle Einträge ordnen sich in der angenommenen Rangfolge zu einer Warteschlange.
Der oberste Eintrag in der Warteschlange ist derjenige, dessen Interrupt-ServiceRoutine im Augenblick abläuft. Er entscheidet über die Anforderungen, die eine noch
höhere Priorität haben und die aktuell ablaufende Routine unterbrechen können. Sobald der Eintrag am Ende des Ablaufs der Routine aus der Warteschlange
verschwindet, ist der nächste in der Rangfolge eindeutig. Das kann ein wartender
Request sein oder eine unterbrochene Interrupt-Service-Routine.
Vertiefung für Interessierte, kein Prüfungsstoff:
Die Entwicklung der PC-Technik brachte es mit sich, dass bestimmte Interrupt-Requests
IRQi für bestimmte Anwendungsfunktionen reserviert wurden (Bild 8.13).
Das Betriebssystem kann beim Hochfahren des Computersystems feststellen, welche
davon konkret benutzt werden.
Nur die nicht belegten kann und wird es den PCI-Interrupt-Requests zuordnen, die von
INTA bis INTD gebraucht werden.
Computertechnik
217
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
Bild 8.13:
Zweckbestimmung „geerbter“ Interrupt-Requests
generic = allgemein verwendbar, also für PCI-Interrupt-Requests verwendbar
(Ende der Vertiefung)
Ein beispielhaftes Szenario zur Verdeutlichung der Warteschlangenbedienung
IRQ: Interrupt Request, IRR: Interrupt Request Register, ISR: Interrupt Service Register.
Referenz: aktuell höchst priore Anforderung.
IRQ13 entsteht und aktiviert sein Bit in IRR. Der Vergleich
mit der Referenz ergibt, dass er sofort bedient werden
kann.
15141312 1110 9 8
7 6 5 4 3
1 0
15141312 1110 9 8
7 6 5 4 3
Deshalb wird das entsprechende Bit in ISR aktiviert, in
IRR deaktiviert. Die Service-Routine für IRQ13 wird
gestartet.
15141312 1110 9 8
7 6 5 4 3
1 0
15141312 1110 9 8
7 6 5 4 3
IRQ9 entsteht und aktiviert sein Bit in IRR. Der Vergleich
mit der Referenz ergibt, dass er eine höhere Priorität hat.
Damit hat er die Berechtigung zur Unterbrechung der
gerade ablaufenden Service-Routine für IRQ13. Das
entsprechende Bit in ISR wird aktiviert, das in IRR
deaktiviert. Die Service-Routine für IRQ13 wird durch den
Start derjenigen für IRQ9 unterbrochen.
Computertechnik
218
1 0
1 0
15141312 1110 9 8
7 6 5 4 3
1 0
15141312 1110 9 8
7 6 5 4 3
1 0
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
IRQ11 entsteht und setzt sein Bit in IRR. Der Vergleich
mit der Referenz ergibt, dass seine Priorität kleiner ist.
Damit hat er keine Berechtigung zur Unterbrechung. Es
ergibt sich die (nach fallender Priorität geordnete)
Warteschlange: IRQ11 (nicht bedient) und IRQ13
(bedient/unterbrochen).
IRQ4 entsteht und setzt sein Bit in IRR. Der Vergleich
mit der Referenz ergibt, dass seine Priorität kleiner ist.
Damit hat er keine Berechtigung zur Unterbrechung. Es
ergibt sich die Warteschlange:
IRQ11, IRQ13, IRQ4.
15141312 1110 9 8
7 6 5 4 3
1 0
15141312 1110 9 8
7 6 5 4 3
15141312 1110 9 8
7 6 5 4 3
1 0
15141312 1110 9 8
7 6 5 4 3
Die Service-Routine für IRQ9 ist fertig, d.h. das Bit von
IRQ9 in ISR wird deaktiviert. Damit kommt es zur Bildung
einer neuen Referenz und einem neuen Vergleich mit ihr.
Das Ergebnis ist, dass IRQ11 die höchste Priorität hat.
Seine Service-Routine wird gestartet. Es ergibt sich die
Warteschlange IRQ11, IRQ4.
1 0
7 6 5 4 3
7 6 5 4 3
1 0
15141312 1110 9 8
15141312 1110 9 8
1 0
1 0
Erst wenn die Service-Routine für IRQ11 ihr Bit in ISR
deaktiviert, geht es mit dem von IRQ13 weiter. Erst, wenn
dessen Routine beendet ist und sein Bit in ISR deaktiviert
wurde, wird IRQ4 bedient.
Das Verfahren wird von Intel als fully nested mode bezeichnet.
Das diskutierte Beispiel zeigt, dass nieder priore Interrupt Requests durch höher priore beliebig verdrängt werden können. Das ergibt sich zwangsläufig aus der prioritätsabhängigen
Bedienung der Warteschlange.
Ein faireres Verfahren wäre, jedem Request zu garantieren, dass er innerhalb einer gewissen Zykluszeit zur Bedienung käme wie z.B. beim PCI-Arbiter. Auch eine solche Betriebsart
ist im PIC-Konzept vorgesehen, soll hier aber nicht diskutiert werden.
Der prozessorinterne Kontextwechsel bei der Bedienung von Interrupts
Immer dann, wenn man den Ablauf eines Programms unterbricht (d.h. einen gerade
ablaufenden Prozess unterbricht), dann muss die Ablaufsteuerung dafür sorgen,
dass der Ablaufzustand nicht verloren geht. Wie soll man sonst korrekt fortsetzen?
Auf der Register-Transfer-Ebene wird der Programmzustand durch den Zustand der
Prozessor-Register definiert.
Der Registersatz des Pentium4 soll als Beispiel dienen. In jedem Fall ist die Rettung
des Instruction Pointers notwendig. - Die Rettung der anderen Register kann man
davon abhängig machen, ob sie bei Ablauf der Interrupt-Service-Routine verändert
werden.
Deshalb sorgt die Ablaufsteuerung dafür, dass der Instruction-Pointer bei einem
Interrupt automatisch gerettet wird. Die anderen Register muss man bei Bedarf mit
Befehlen retten.
Computertechnik
219
Jacob
Das Programmable-Interrupt-Controller Konzept (PIC)
EAX, EBX, ECX und EDX sowie ESI und EDI können als
Arbeitsregister für Operanden oder als Indexregister für Zeiger
(Pointer auf Variable) verwendet werden.
EAX
EBX
ECX
Das Stackpointer-Register wird ergänzt durch das spezielle
Basepointer-Register, das der Rettung des Stackpointer-Zustandes
unmittelbar nach einem Programm-Kontext-Wechsel dient.
EDX
ESI
EDI
Das Instruction-Pointer-Register enthält das wichtigste Merkmal
des Programmablaufzustandes.
Stackpointer
Das Prozessor Status Wort ist genau so wichtig wie die Register,
die Verarbeitungsergebnisse aufnehmen; denn es enthält
Zustandsbits der Verarbeitung.
Basepointer
Instructionpointer
Processor Status Word
Für die Rettung wird ein Speicher mit einer besonderen Zugriffstechnik verwendet,
der Stack.
Anfangszustand des Stackpointer
Der Stack wird durch Reservierung einer
bestimmten Anzahl von Speicherzellen
(Stacklänge) im Hauptspeicher realisiert.
Man kann den Stack so konzipieren, dass
er ausgehend vom kleinsten möglichen
Adresswert gefüllt wird.
= Basisadresse + Länge des Stack
Der andere Ansatz, von dem höchsten
Adresswert auszugehen und den Stack in
Richtung kleiner werdender Adresswerte
zu füllen, ist genau so brauchbar. (IntelProzessoren für PCs)
Basisadresse
Zu Beginn der Benutzung des Stacks
zeigt der Stackpointer auf den obersten
Rand des Stack.
Der Stackpointer wird dekrementiert
und das erste Wort gespeichert.
Die nächsten Wörter werden auf die
gleiche Art gespeichert.
Wenn man den Prozessorzustand
wieder herstellen will, muss man in der
umgekehrten Reihenfolge lesen (Last
In-First Out). Der Stackpointer wird
nach jedem Lesevorgang durch
Inkrementierung aktualisiert.
automatisches
Retten
Push PSW
Push AX
Push BX
Push CX
Instruction Pointer
PSW
AX
BX
CX
Return
Pop PSW
Pop AX
Pop BX
Pop CX
Die Interrupt-Service-Routine wird mit
dem Return-Befehl verlassen, und das
unterbrochene Programm wird fortgesetzt.
Computertechnik
220
Jacob
Das Advanced Programmable Interrupt Controller-Konzept
Vertiefung für Interessierte, kein Prüfungsstoff:
8.5
Das Advanced Programmable Interrupt Controller-Konzept
Die bitserielle Übertragung von Interrupt-Merkmalen
Das herkömmliche Konzept hat ein besonderes Merkmal: der einzige Interrupt-Controller
und der einzige Prozessor ergeben eine feststehende Punkt-zu-Punkt-Übertragung des
Sammel-Interrupt-Request bzw. des Interrupt-Vektors in der Acknowledge-Phase.
Dieses Konzept ist für Mehrprozessor-Systeme ungeeignet. Dort können Interrupt
Requests auch von den Prozessoren ausgehen. Jeder Prozessor sollte also über eine
Interrupt-Controller-Funktion verfügen, die sowohl die Prozessor- als auch die I/O-Interrupts
verarbeitet. Die Einheit für diese Funktion soll als lokaler Interrupt-Controller bezeichnet
werden.
Um die Interrupt-Requests geeignet zu übertragen, braucht man ein geeignetes Übertragungssystem (Bild 8.14).
Bild 8.14: APIC-Signalführung (Schnittstellen zu zwei Prozessoren und einem IOAPIC)
PICD[0] und PICD[1] sind die Signale zur seriellen Datenübertragung von Interruptmerkmalen zwischen beliebigen Bus-Agenten und PICCLK dient der Taktung der Übertragung.
LINT0 und LINT1 (local apic interrupt) sind zusätzliche lokale binäre Interrupteingänge. Der
Prozessor kann den APIC-Modus ignorieren. Wenn er so eingestellt ist, hat LINT0 die
Bedeutung von INTR (Sammel-Interrupt-Request wie oben eingeführt) und LINT1 von NMI
(nonmaskable interrupt).
Im APIC-Modus werden diese beiden lokalen Interrupts und die über den APIC-Bus über den
lokalen Interrupt-Controller kommenden Interrupts zu den lokalen Eingriffen in die
Programmsteuerung verarbeitet.
Arbitrierung bei einem bitseriellen Bus
Zum ersten Mal erscheint hier ein Beispiel, dass mehrere Busteilnehmer sich über die
Benutzung eines bitseriellen Bus einigen müssen. Die Einigung muss die serielle Arbeitsweise mit einbeziehen.
Die Meldungen heißen hier Messages. Einige Beispiele für das Message-Format:
EOI-message: Rückmeldung zu einem I/O-APIC, dass ein Interrupt Request vom ZielProzessor akzeptiert wurde (14 Bitzyklen).
Short message: Meldung eines Interrupt Requests (21 Bitzyklen).
Remote read message: Ein lokaler APIC interessiert sich für den Inhalt eines Registers in
einem anderen lokalen APIC (39 Bitzyklen).
Computertechnik
221
Jacob
Das Advanced Programmable Interrupt Controller-Konzept
Alle APICs arbeiten synchron, d.h. jeder erkennt zum gleichen Zeitpunkt den Beginn einer
Meldung. Alle müssen danach die Synchronität bewahren, um das Ende der aktuellen
Meldung und damit den Beginn der nächsten zu erkennen. Es gibt keine Übertragungspausen.
Der „Trick“ bei der Bestimmung des höchstprioren Busagenten liegt in der Behandlung der
ersten Bits (genauer Bit 2 bis Bit 5). Während dieser Bitzyklen senden alle Agenten, die den
Bus benutzen wollen, ein Binärmuster, das ihre aktuelle Priorität als Dualzahl angibt. Jeder
Teilnehmer hat eine eindeutige Prioritätszahl, d.h. er teilt sie mit keinem anderen.
Angenommen, die Agenten sind in Sinne eines wired-OR verbunden. Wenn auch nur einer
einen High-Pegel (1 in der Zahl) erzeugt, setzt sich der High-Pegel durch. Alle, die ein Low
(0 in der Zahl) zu erzeugen versuchen, ziehen sich dann (und nur dann) zurück.
Wenn man dieses Verfahren für alle Bits anwendet, bleibt ein einziger Agent übrig. Haben
die gesendeten Bits fortlaufend eine kleinere Stellenwertigkeit, so setzt sich derjenige durch,
der den größten Dualzahlenwert hat, weil fortlaufend die 1en bevorzugt werden.
Im Bild 8.15 wird ein Ablauf-Beispiel gegeben. Es gibt drei Busagenten: den lokalen APIC1
(Priorität 1) und den lokalen APIC2 (Priorität 2) sowie den IOAPIC (Priorität 3). Es ergibt sich,
dass durch das Rückzugsverfahren der IOAPIC übrig bleibt, weil er die höchste Priorität hat.
Wenn er bedient wurde, werden die Prioritäten neu vergeben. Der gerade bediente erhält die
kleinste Prioritätszahl, die Prioritätszahlen der anderen werden um 1 erhöht. Damit „rotiert“
auch hier die Priorität im Sinne einer „gleichmäßigen“ Bedienung.
Selbst wenn keine Anforderungen anliegen, müssen die jeweils höchstprioren doch für die
Sendung einer Meldung sorgen, damit der Zyklus der Arbitrierung immer wieder angeboten
wird.
APIC-Clock
1
2
3
4
Local
APIC 1
0
0
0
Local
APIC 2
0
0
0
1
0
0
0
1
IOAPIC
Rückzug
0
5
1
Rückzug
0
1
Kein
Kein
Kein
Rückzug Rückzug Rückzug
Bild 8.15: Arbitrierungsverfahren zwischen drei APIC-Busagenten mit Hilfe eines wiredOR
(Ende der Vertiefung)
Computertechnik
222
Jacob
Peripherie-Einheiten mit geringen Datenraten und gerätespezifischen Schnittstellen
9 Der gerätespezifische Datenverkehr von/zu den
Peripherie-Einheiten
Jetzt soll genauer untersucht werden, welche Merkmale die Schnittstellen zu den
peripheren Einheiten haben. Für PC-Anwender sind diese Schnittstellen an
entsprechenden Steckern erkennbar, die sich gemäß den gerätespezifischen
Schnittstellen-Standards entwickelt haben.
Gemäß den typischen Datenübertragungsgeschwindigkeiten über diese Stecker
kann man die Peripheriegeräte in zwei Gruppen einteilen:
• Die Geräte, bei denen die Übertragungsgeschwindigkeit ein wichtiges Merkmal
für die Gesamtleistung des Computersystems ist, z.B. Disks, Graphiksysteme.
• Die Geräte, deren Übertragungsgeschwindigkeit von mechanischen Vorgängen
abhängt, z.B. Drucker, Tastaturen, Mäuse, Scanner.
Hier sollen zuerst die ererbten gerätespezifischen Schnittstellen zu Geräten mit
geringer Datenrate besprochen werden.
Solche Geräte schließt man heute über eine universelle Schnittstelle mit bitserieller
Busstruktur an. Die gerätespezifischen Schnittstellen entfallen. Die Ordnung bei der
gemeinsamen Nutzung des Bussystems wird durch ein entsprechendes Übertragungsprotokoll hergestellt (universal serial bus = USB). Dieses heute übliche
Anschlusskonzept für Peripheriegeräte wird danach erklärt.
Dann geht es um Geräte mit großer effektiver Datenrate. Als Beispiel werden die
Funktionen von Festplatten-Laufwerken und Controllern erläutert.
9.1 Peripherie-Einheiten mit geringen Datenraten und gerätespezifischen Schnittstellen
Oder: Das Erbe der vorausgegangenen PC-Generationen (legacy equipment)
9.1.1 Ein- und Ausgaben über die bitparallele Standardschnittstelle (LPT)
Ein typisches Gerät, das eine bitparallele Schnittstelle nahe legt, ist der Drucker.
Den Standard für die Druckerschnittstelle hat ein Druckerhersteller bestimmt:
Centronics. Das Kürzel für die Schnittstelle ist LPT.
Das Signalbelegungsschema und das Registerschema der Schnittstelle sind im
Bild 9.1 erkennbar.
Aus der Sicht der Software stellt sich die Schnittstelle als eine Gruppe von drei 8BitRegistern dar, die im I/O-Adressraum drei Adressen belegen.
Die Funktion der Register und die Bedeutung der einzelnen Signale ergeben sich
aus den sinnfälligen Bezeichnungen und dem Signal-Zeit-Diagramm. Man erkennt
ein Handshakeverfahren auf der Basis von Pulsen (der Mindestlänge 1 µsec).
Die Schaltung zur Realisierung einer LPT-Schnittstelle wird im I/O-Hub des Chipsatzes realisiert.
Computertechnik
223
Jacob
Peripherie-Einheiten mit geringen Datenraten und gerätespezifischen Schnittstellen
I/O-Adressen:
Basisadresse
+0
0
1
2
3
4
5
6
7
Basisadressse.
+1
0
1
2
3
4
1
D1
D2
D3
D4
D5
D6
D7
ACK#
BUSY
Paper End
Datenwort
Übernahme-Moment
Handshake mit Pulsen
18
ACK#
BUSY
Verzögerung,
z.B. wenn die Ausführung
eines carriage return
abzuwarten ist.
Error#
5
6
7
Basisadresse
+2
0
1
2
3
4
19
D0
36
STROBE#
STROBE#
Automatic Line Feed
INIT# Initialization
Drucker Select
Interrupt
Request
5
6
7
Bild 9.1: Register- und Signalschema der LPT-Schnittstelle
9.1.2 Ein- und Ausgaben über die bitserielle Standardschnittstelle (COM)
Die COM-Schnittstelle ist die konventionelle Standardschnittstelle für Geräte, die
bitseriell senden und empfangen.
Die Schaltungen zur Steuerung des bitseriellen Datenverkehrs werden im I/O-Hub
realsiert. Sie entsprechen den sog. USARTs (universal serial asynchronous
receiver/transmitter).
Die seriell empfangenen Datenwörter in bitparallele und umgekehrt die zu
sendenden Datenwörter in serielle umgewandelt. Zusätzlich gibt es eine Schaltung
zur Steuerung des Datenverkehrs mit einem Modem. Dabei gilt der Standard RS232
(Bild 9.2).
Für den reinen bitseriellen Datenstrom braucht man nur drei Signale.
Aus der Sicht der Software stellt sich jede COM-Schnittstelle als eine Gruppe von 9
8Bit-Registern dar, die im I/O-Adressraum 9 Adressen belegen.
Als Stecker-Schnittstelle gibt es den ursprünglichen 25poligen Stecker und den
vereinfachten 9poligen Stecker, der sich für PCs durchsetzte.
Computertechnik
224
Jacob
Peripherie-Einheiten mit geringen Datenraten und gerätespezifischen Schnittstellen
I/O-Adressen:
Basisadresse
+0
Empfänger-PufferRegister
+3
DatenformatRegister
+0 Divisor
Latch
Access
+1 Bit
=1
+4
Received Data
DCE > DTE
Empfänger-Schieberegister
EmpfängerSteuerung
13
Teiler-LatchRegister (LSB)
Teiler-LatchRegister (MSB)
Signal
Ground
Modem-SteuerRegister
+6
9
1
Interrupt-AktivRegister
+2
1
InterruptSteuerung
Interrupt-IDRegister
14
Der PC ist üblicherweise
das Data T erminal Equipment,
das angeschlossene Gerät ist
das Data Carrier Equipment.
+5
SerialisierungsstatusRegister
Sendersteuerung
+0
Sender-PufferRegister
Sender-Schieberegister
Transmitted Data
DTE > DCE
Register- und Signalschema eines beispielhaften USART
Man stellt über Command-Wörter in den Steuerregistern die Betriebsart ein bzw. liest
die Statuswörter in den Statusregistern, die Fertig- oder Fehlermeldungen sind.
Die Unterscheidung von Data Terminal Equipment (Datenendeinrichtung) und Data
Carrier Equipment (Datenübertragungseinrichtung) ist daraus entstanden, dass der
Standard ursprünglich den Anschluss von digitalen Geräten an das Telefonnetz
festlegte.
Das MODEM stellt das „front-end“ des Netzes dar, also der Übertragungseinrichtung.
Deshalb behandelt man den Computer als Datenendeinrichtung.
Bei der Übertragung werden Pegel zwischen -3V bis -13V für die logische 1 und ein
Pegel zwischen +3V und +13V für die logische 0 verwendet. Die Pegelanpassung ist
die Aufgabe der Leitungsempfänger bzw. Leitungstreiber (Bild 9.3).
Takt startet mit dem ersten
minus/plus-Übergang nach
der Pause.
plus
signal
ground
Start
bit
0
0
0
1
0
1
0
0
Stop
bit
minus
ASCII Code
Parity
bit
beliebig lange Pause
bis zum nächsten
minus/plus-Übergang
Bild 9.3: Asynchrone serielle Übertragung eines Beispiel-Wortes gemäß RS232
Computertechnik
6
Stifte am
PC = DTE
Interrupt
Request
ScratchpadRegister
Bild 9.2:
5
ModemSignale
ModemSteuerung
Modem-StatusRegister
+1
25
BaudratenGenerator
225
Jacob
Das Konzept des Universal Serial Bus
Häufig verwendet man die COM-Schnittstelle zur Kopplung von zwei PCs. Dann gelten
beide zunächst als Datenendeinrichtungen. Da die Sendedaten des einen PCs als
Empfangsdaten am anderen PC ankommen müssen und umgekehrt, muss man die
entsprechenden Verbindungen „kreuzen“.
9.2 Das Konzept des Universal Serial Bus
9.2.1 Motivation und Topologie des USB
Der Nachteil der gerätespezifischen Schnittstellen ist, dass die entsprechenden
Sockel alle an der Zentraleinheit des PC-Systems fertig montiert sein müssen, damit
man den Stecker des entsprechenden Peripheriegerätes ohne Montageaufwand
sofort stecken kann (Bild 9.4).
Bild 9.4: Sockel-Schema für Standard-Ein/Ausgabe-Geräte
23: Mouse (PS/2), 24: RJ-45, 25: LPT, 26: Midi, 27-29: Audio, 30: COM (2mal), 31: USB,
32: Keyboard (PS/2)
Wenn man eine einheitliche Schnittstelle für alle Geräte hat, die diese geschickt
kaskadierbar macht, kann man die Anzahl der Sockel an der Zentraleinheit im
Extremfall auf einen einzigen reduzieren.
Der Standard einer solchen Schnittstelle ist seit 1994 unter der Bezeichnung
Universal Serial Bus verfügbar. In Bild 9.4 ist der entsprechende Sockel unter 31
erkennbar.
Die wichtigen Versionen des Standards sind USB 1.1 (1997, 1.5 MBit/sec = Low
Speed oder 12 MBit/sec = Full Speed) und USB 2.0 (2001, 480 MBit/sec= High
Speed).
Die Verbindungsstruktur der USB-Geräte ist eine Baumstruktur, deren Wurzel (Root)
im Host-Computer liegt (Bild 9.5).
Ho st Computer
Hu b
Ra ng 0
Hu b
Hu b
Keyboard
Mo dem
Hu b
Ra ng 1
Lautsprecher
Drucke r
Ra ng 2
Mo use
Bild 9.5: Schema einer beispielhaften USB-Verbindungsstruktur
Computertechnik
226
Jacob
Das Konzept des Universal Serial Bus
Die Verteileinheiten für die Datenströme zwischen dem (Host-) Computer und den
peripheren Geräten sind sternförmig mit Geräten oder anderen Verteileinheiten
verbunden. Sie werden Hubs genannt – wie die entsprechenden Verteileinheiten in
Computernetzen mit twisted-pair-Verkabelung.
Hubs können eigenständige Geräte sein. Sie können aber auch in den (Host-)
Computer bzw. in Standard-Peripheriegeräte integriert sein (Bild 9.6).
Ho st Computer
Root Hub
Mo dem
Hu b
Lautsprecher
Drucke r
Internal Hub
Mo nitor
Internal Hub
Keyboard
Mo use
Bild 9.6: Beispiel einer USB-Konfiguration mit Root- und internen Hubs
Da man bei der Belegung der Hub-Anschlüsse frei ist, könnte man - ohne Beeinträchtigung
der Gesamtfunktion - auch eine andere Belegung wählen.
Im Folgenden werden beispielhaft die Merkmale des USB 1.1 (Full Speed) erklärt.
9.2.2 Die physikalische Ebene des USB
Kabel und Stecker
Zunächst sollen die Eigenschaften der elektrischen Leitungen und ihre Stecker
erklärt werden.
Bild 9.7: Schnitt durch ein USB-Kabel:
Datenleitungen: D+, D- ; Stromversorgung: V+ = + 5 Volt, Ground
Die beiden Datenleitungen sind verdrillt. Die beiden Stromversorgungsadern nicht.
Auf den Datenleitungen wird das nicht-invertierte Signal D+ und das dazu invertierte
Signal D- übertragen.
Die Kabellänge ist maximal 5 m.
Maximal 7 Kabelstrecken können mit Hilfe von Verteilereinheiten (Hubs) hintereinander geschaltet werden. Das ergibt einen Erfassungsbereich von 35 m.
Computertechnik
227
Jacob
Das Konzept des Universal Serial Bus
Jedes Kabel ist durch ungleiche Endstecker abgeschlossen.
Bild 9.8: Endstecker eines USB-Kabels
Typ A: Stecker zum Computer hin (upstream end)
Typ B: Stecker zu den Geräten hin (downstream end)
Die Kaskadierung der eingespeisten Spannungen erfolgt immer nur in einer
Richtung: vom Computer hin zu den Geräten (downstream). Von der Wurzel im
Computer ausgehend, verzweigen sich die Versorgungspfade bis zu den Geräten.
Angenommen, die Stecker an den Enden der Verbindungskabel sind gleich. Dann ist
nicht mit Sicherheit auszuschließen, dass man zwei spannung-treibende Anschlüsse
bzw. zwei spannung-empfangende Anschlüsse zusammen schaltet (Bild 9.9).
Ho st Computer
Root Hub
Mo dem
Hu b
Lautsprecher
Drucke r
Internal Hub
Mo nitor
Internal Hub
Keyboard
Mo use
Bild 9.9: Beispiel für eine fehlerhafte Verschaltung bei gleichen Steckern
Pfeile in Richtung der Spannungsversorgung
Dadurch, dass die Stecker unterschiedlich sind und eine eindeutige Zuordnung
haben, sind Verschaltungsfehler der Spannungsversorgung ausgeschlossen.
Autonome Hubs
Bild 9.10 zeigt ein Hub-Beispiel.
Bild 9.10: Beispiel für einen USB - 4 Port - Hub mit eigener Stromversorgung
4 Sockel für 4 Typ A-Stecker und 1 Sockel für 1 Typ B-Stecker
Computertechnik
228
Jacob
Das Konzept des Universal Serial Bus
Erkennung von Konfigurationsmerkmalen
Um zu erkennen, ob downstream eine Einheit angeschlossen ist, gibt es eine
besondere Beschaltung an der upstream- und der downstream-Seite (Bild 9.11).
+3,3 V
1,5K +/- 5%
Host
oder
Hub
D+
D+
Typ A
Typ B
D-
15K +/- 5%
D-
Gerät
oder
Hub
15K +/- 5%
Bild 9.11: Beschaltung der up- und downstream-Seite zur Erkennung einer
angeschlossenen Einheit
Annahme: Ruhezustand, d.h. keine Sendung.
Annahme außerdem: die downstream-Einheit (rechts) ist nicht vorhanden.
Dann liegen an D+ und D- in der upstream-Einheit (links) 0 V an.
Alternative Annahme außerdem: die downstream-Einheit (rechts!) ist angeschlossen.
Dann liegt an D+ eine Spannung nahe an 3,3 V und an D- weiterhin 0 V. Die
upstream-Einheit kann an den eindeutigen Fällen unterscheiden, ob eine Einheit
angeschlossen ist oder nicht.
Man hat in der downstream-Einheit einen weiteren Freiheitsgrad: man könnte den
Widerstand alternativ an D- schalten, was die upstream-Einheit dadurch bemerkt,
dass D+ gleich 0 V und D- etwa gleich 3,3 V ist. Tatsächlich wird diese alternative
Schaltungsmöglichkeit auch genutzt: der Widerstand an D+ meldet ein Full-SpeedGerät, der Widerstand an D- meldet ein Low-Speed-Gerät beim USB 1.1.
Dieses Erkennen und das eigentliche Senden und Empfangen der Daten erfolgt in
einer Interface-Schaltung, die USB-Tranceiver genannt wird (Bild 9.12).
Computertechnik
229
Jacob
Das Konzept des Universal Serial Bus
USB-Transceiver
Bild 9.12: Transceiver für das serielle Senden und Empfangen von Datenbits des
USB 1.1, Full Speed
Die unteren beiden Empfänger dienen der Erkennung der Pegel, die Leerlauf- und Belastungsfall unterscheiden. Oben erkennt man den Treiber mit dem nicht invertierten Ausgang
D+ und dem invertierten Ausgang D- und den Empfänger.
Angegebene Grenzwerte gemäß http://www.fairchildsemi.com/ds/US/USB1T11A.pdf
Unterer Grenzwert für den Sende-High-Pegel VoH: 2,4 Volt
Oberer Grenzwert für den Sende-Low-Pegel VoL: 0,4 Volt
Man erkennt das sog. Auge im Oszillogramm.
Ein Oszilloskop startet regelmäßig den anzeigenden Strahl in Abhängigkeit von sog.
Triggerereignissen. Das sind hier die Signalübergänge. Im Moment eines Signalübergangs
kann entweder ein Übergang von VoL nach VoH oder ein Übergang von VoH nach VoL
ablaufen. Wenn sich die Übergänge schnell wiederholen, wird also schnell nacheinander mal
der eine, mal der andere - von Beginn an - auf den Bildschirm gezeichnet.
Der Strahl bewegt sich mit einer einstellbaren Zeit vom Startpunkt zum Endpunkt am rechten
Rand des Bildes. Er zeichnet vom Startzeitpunkt bis zum Endzeitpunkt den gemessenen
Signalverlauf auf den Schirm. Wenn diese Zeit größer ist als die Mindestdauer zwischen
zwei Übergängen, sieht man den nächsten Übergang noch im Bild.
Die Nachleuchtdauer und der schnell wiederholte Start durch den Trigger erzeugen ein
stehendes Bild, in dem das wiederholte Aufzeichnen von beliebigen zwei aufeinander
folgenden Übergängen ein „Auge“ bilden.
Je weiter dieses Auge geöffnet ist, umso weniger „verzerrt“ ist die Übertragung, d.h. umso
weniger Übertragungsfehler treten auf.
Die Transceiver sind für die Genauigkeit der gesendeten Signale verantwortlich.
Beim Empfang müssen sie sich in gegebenen Toleranz-Grenzen so verhalten, dass
sie „Pegel-Verzerrungen“ bei der Übertragung korrekt überwinden können. Dabei hat
sich bewährt, die Differenz D+ minus D- als Grundlage der Bewertung der empfangenen Signale zu nehmen. Dabei gilt:
D+ minus D- größer 200 mV = differentiell „1“,
D+ minus D- kleiner 200 mV = differentiell „0“.
Je größer das Auge der Übertragung ist, umso weiter liegen die tatsächlichen Werte
für die differentielle 1 bzw. 0 auseinander, umso sicherer ist ihre Unterscheidbarkeit.
Je höher die Taktrate bei der Übertragung ist, mit umso größeren Verzerrungen der
übertragenen Signale muss man rechnen. Der USB-Standard legt deshalb - wie
Computertechnik
230
Jacob
Das Konzept des Universal Serial Bus
andere Standards für Datenübertragungsprotokolle auch - die Taktrate und die
übertragungstechnischen Bedingungen fest, mit denen dabei eine effektive
Übertragung möglich ist.
Für die Version USB 1.1 gibt es zwei Alternativen für die Taktrate und damit für den
Mindestabstand zwischen zwei Pegelübergängen:
Low-Speed: 1, 5 Mbit/sec ergibt 666 nsec;
Full-Speed: 12 MBit/sec ergibt 83 nsec.
Das Auge in Bild 9.12 bildet einen Zeitrahmen von 83 nsec ab. Man erkennt den Anteil der
Übergangszeiten. Im Datenblatt werden maximal 20 nsec angegeben, d.h. ¼ von 83 nsec.
Man erkennt, dass die gemessene Übergangszeit noch kürzer ist.
Elektrische Codierung
Die elektrische Codierung erfolgt nach dem NRZI-Konzept (non-return-to-zeroinverted), das mit dem Beispiel in Bild 9.13 verdeutlicht wird.
Bitstrom
NRZI-Signal
Bild 9.13: NRZI-Codierung eines beispielhaften Bitstroms
Die NRZI-Codierung ändert beim Senden einer 1 den vom vorhergehenden
Bitfenster übernommenen Signalpegel nicht, beim Senden einer 0 wird er geändert.
Damit entsteht der kürzeste Abstand zwischen zwei Signalpegel-Wechseln beim
Senden einer 0-Folge.
Es entsteht aber das Problem, dass es beim Senden längerer 1-Folgen keine
Signalwechsel gibt.
Deshalb „stopft“ man bei längeren 1-Folgen 0-Bits hinzu (bit stuffing), die einen
Pegelwechsel erzwingen.
Bitstrom
Stuffed 0-Bit
NRZI
Bild 9.14: Bit-Stuffing
Nach jedem 6ten 1-Bit einer 1-Folge wird eine Pseudo-Null eingefügt. Dadurch
verzögert sich jedes Mal das Senden der nächsten Bits um einen Takt. Im
Empfänger kann man jedes eingeschobene 0-Bit wieder entfernen, weil man durch
Mitzählen der 1-Bits den Übergang für die eingeschobene Pseudo-Null erkennt.
Computertechnik
231
Jacob
Das Konzept des Universal Serial Bus
9.2.3 Die logischen Ebenen des USB
Aufteilung der Bandbreite
Der USB ist ein getaktetes Übertragungssystem. Wie bei jedem getakteten Übertragungssystem ist die Rate der Bits pro sec ein maßgebliches Leistungsmerkmal.
Da Taktzeit und Bitübertragungszeit zusammenfallen, sind Taktrate und Bitrate
gleich. Die Bitrate legt für jedes beliebige Zeitintervall fest, wie viele Bits darin
maximal übertragen werden können.
Die geordnete Übertragung von Daten in einem Übertragungssystem erzwingt, dass
man neben den Daten, die man eigentlich übertragen will (Nutzdaten), auch
zusätzliche Daten übertragen muss, die der Einhaltung der Ordnung bei der
Übertragung dienen (Kontrolldaten). Würden nur Nutzdaten übertragen, hätte man
die beste Ausnutzung der vorhandenen Übertragungskapazität, die man auch
Bandbreite nennt und die gleich der Bitrate ist.
Tatsächlich ist das wegen der Übertragung der Kontrolldaten aber nicht möglich. Man
kann die Effektivität der Ordnungsprinzipien (Übertragungsprotokoll) aber daran
messen, wie nahe man an die Bandbreite kommt.
Einige Peripherie-Geräte übertragen einzelne Datenwörter in einem zur Taktzeit
großen zeitlichen Abstand. Diese Geräte erzeugen einen beschränkt zeitkritischen
Einzeldatenverkehr. Es gibt aber auch online betriebene Geräte mit Audio- und/und
Videodaten, die einen zeitkritischen Blockdatenverkehr erzeugen. Dann gibt es
noch Geräte, die Daten in Zwischenspeichern puffern können und solange ihre
Aktionen anhalten können, wie keine Übertragung möglich ist. Das sind Geräte mit
zeitunkritischem Blockdatenverkehr (Bild 9.15).
Bild 9.15: Beispiel für eine USB-Konfiguration:
Video und Telefon: zeitkritischer Blockdatenverkehr; Keyboard und Mouse: beschränkt
zeitkritischer Einzeldatenverkehr; Printer und Plotter und Scanner: zeitunkritischer
Blockdatenverkehr.
Computertechnik
232
Jacob
Das Konzept des Universal Serial Bus
Die Bandbreite des USB-Übertragungssystems wird geeignet auf den zeitkritischen
und zeitunkritischen Datenverkehr aufgeteilt.
Audio- bzw. Videoübertragung sind deshalb zeitkritisch, weil sie mit der realen Zeit
Schritt halten müssen (Merkmal eines online-Betriebes). Also muss auch die
Übertragung zwischen dem Host-Computer und den Geräten synchron zur realen
Zeit ablaufen. Das kann das Übertragungssystem nur dann leisten, wenn es
periodische Bedienintervalle gibt. In diesen Bedienperioden muss die Bedienung der
zeitkritischen Übertragungen den Vorrang vor den zeitunkritischen Bedienungen
haben (Bild 9.16).
Bedienperiode i-1 Bedienperiode i Bedienperiode i+1
Zeit
frame i-1
frame i
Bedienung des
zeitunkritisch en Beda rfs
Bedienung des
zeitkri tischen Bedarfs
isochronous
transfer
ereign is gesteuerter
Einze ldatenverkehr
interrupt transfer
frame i+1
Datenv erkehr z ur Steuerung des USB- Systems
zeitunkritis cher Blockdatenverkehr
contro l transfer
bulk transfer
Bild 9.16: Aufteilung der Bandbreite durch zyklische Bedienintervalle
Die gleich langen Bedienperioden heißen hier Frames.
Nach dem Beginn eines Frames werden zuerst die Geräte mit zeitkritischem Bedarf
bedient (isochronous transfer).
Die Bedienung des zeitunkritischen Bedarfs gliedert sich nach
• ereignisgesteuertem Einzeldatenverkehr (z.B. Keyboard und Mouse): interrupt
transfer; die Bezeichnung greift das Merkmal herkömmlichen Konzeptes auf,
das diesen Datenverkehr interrupt-request-getrieben abwickelte; das darf nicht
zu der Annahme verleiten, dass dies hier genauso ist; die Geräte melden hier
ihren Bedarf nicht mit Interrupts an und werden dann durch Interrupt-ServiceRoutinen bedient; hier fragt der zentrale Controller des USB die einzelnen
Geräte ab (polling), um Ein- bzw. Ausgaben zu regeln;
• Datenverkehr zur Steuerung des USB-Bussystems: control transfer;
• zeitunkritischer Blockdatenverkehr für alle Geräte, die ihre Aktionen anhalten
können, wenn keine Datenübertragung möglich ist (z.B. Drucker, Plotter,
Scanner): bulk transfer.
Computertechnik
233
Jacob
Das Konzept des Universal Serial Bus
Eine Ergänzung zur Begriffsbildung der Übertragungstechnik
Aus einem prinzipielleren Blickwinkel stellt man fest, dass sich mehrere Geräte in die
Nutzung des Übertragungssystems teilen. Das erzwingt eine ordentliche Reihenfolge
der Nutzung, was sich auf der Zeitachse darin zeigt, dass das Übertragungsmedium
einem Sender-Empfänger-Paar mit Übertragungswunsch nur für einen abgegrenzten
Zeitrahmen zur Verfügung steht. Man nennt diese Möglichkeit zur Übertragung auch
Übertragungskanal (oder einfach Kanal) auf der Basis eines Zeit-MultiplexVerfahrens.
Die Sender-Empfänger-Paare mit Geräten mit zeitkritischem Übertragungsbedarf
erhalten einen zeitlich gesicherten Zugriff, d.h. sie können zu genau definierten Zeiten
mit Nutzungsintervallen rechnen. Man nennt das auch fest zugeordnete Kanäle.
Die Sender-Empfänger-Paare mit Geräten mit zeitunkritischem Übertragungsbedarf
werden nicht so komfortabel bedient. Die Kontrollinstanz des Übertragungssystems
bewilligt ihre Übertragungswünsche im Rahmen eines geeigneten Bewilligungsverfahrens, das die einzelnen Anfragen nach einer vorgegebenen Reihenfolge bedient
und Verzögerungen der Bedienung zeitunkritischer Sender-Empfänger-Paare zulässt.
In der Übertragungstechnik spricht man von synchroner Übertragung, wenn über
längere Zeit ein taktsynchroner Gleichlauf zwischen Sender und Empfänger vorliegt.
Es ist die technisch schnellste Übertragungsmethode, die immer dann angewendet
wird, wenn sehr schnell sehr viele Daten zu übertragen sind. Zu Beginn der
Übertragung müssen sich Sender und Empfänger in der Regel synchronisieren. Um
diese Verlustzeit gegenüber der eigentlichen Nutzzeit klein zu halten, wechselt man die
Sender-Empfänger-Paar möglichst wenig.
Man spricht von asynchroner Übertragung, wenn das Sender-Empfänger-Paar schon
nach kurzen Übertragungszeiten wechseln kann. Bei einem unveränderlichen SenderEmpfänger-Paar spricht man von asynchroner Übertragung, wenn kurze
Übertragungen zu willkürlichen Zeitpunkten entstehen, zwischen denen beliebig lange
Pausen liegen können. Der Sender muss dem Empfänger dann zu Beginn ein
Startmerkmal senden, damit der Empfänger die logische Synchronisation einstellen
kann, und am Ende ein Endemerkmal, damit der Empfänger sich auf die mögliche
folgende Pause einstellen kann.
Der Teil jedes Frames, der auf die Bedienung der bevorzugten Sender-EmpfängerPaare folgt, wird im Sinne einer asynchronen Übertragung genutzt.
Die zyklisch wiederholbare Bedienung im ersten Teil erzeugt keine echte synchrone
Übertragung über eine längere Zeit, aber eine in garantierten Zeitschlitzen (time slots).
Das wird hier isochrone Übertragung genannt.
Pakete als elementare Einheiten der Übertragung
Die Einteilung in Frames ist das grundlegendste Merkmal der Übertragung auf dem
USB. Man erkennt diese Einteilung, wenn man den Bitstrom im Leerlauf misst, d.h.,
wenn es keine Sender-Empfänger-Paare gibt, die aktiv Daten übertragen (Bild 9.17).
Die elementaren Übertragungseinheiten auf dem Bus haben eine einheitliche
Struktur, die man hier Pakete (packets) nennt.
Man erkennt folgende grundsätzlichen Elemente eines Paketes:
Computertechnik
234
Jacob
Das Konzept des Universal Serial Bus
•
•
•
•
•
Synchronisierbits vorneweg: hier erzeugen die sieben 0-Bits sieben zyklische
Flankenwechsel, mit denen sich der Empfänger auf den Sendetakt des
Senders einstellen kann.
ein Feld zur Kennzeichnung der Funktion des Pakets (packet identifier): das
Start-Paket eines Frames hat das angegebene Bitmuster; andere Pakettypen
haben ein anderes Muster;
ein Feld zur Ergänzung der Paketfunktion; hier sind es 11 Bit zur Angabe der
Frame-Nummer, die nur das Start-Paket eines Frames enthält;
Bits zur Sicherung der Übertragung der Paket-Bits (ohne die Synch-Bits)
gemäß einer vorgegebenen zyklischen Codierung;
3 Bit zur Kennzeichnung des Paket-Endes: dieses Ende wird mit Hilfe einer
Ausnahme von der normalen elektrischen Codierung angegeben; zuerst
sendet der Sender für zwei Takte auf D+ und D- einen Low-Zustand; danach
wird der Sender an D+/D- hochohmig, d.h. die Signalpegel an D+ und Dstellen sich so ein, wie die Beschaltung an der upstream- und der
downstream-Seite der Kabel erzwingt; das ist der Idle-Zustand, der für
mindestens eine Taktzeit gilt.
Zeit
frame i-1
00000001
8 Bit
Preamble
Synchronisation
frame i
i
dual
A 5
Hexa
8 Bit
Start of Frame-Bits
PaketIdentifizierung
1 D
Hexa “0”
11 Bit
Frame-Number
Zeitstempel
Paket
frame i+1
12000-35 = 11965 Idle-Takte
5 Bit Cyc lic 3 Bit
Redundancy
Sicherung End of Packet
Ende des Übertragungsmodus
= Beginn des Idle-Modus
Bild 9.17: Format des Start-Pakets eines Frames
Solange kein Datenverkehr auf dem Bus stattfindet, werden nur die Start-Pakete der
Frames übertragen, gefolgt von Idle-Takten.
Frames haben eine Länge von 1 msec ( = 12000 Bittakte = default ) nach
Betriebsbeginn eines USB 1.1-Full-Speed-Bus.
Im normalen Betriebsfall werden nach dem Start-of-Frame-Paket die Pakete für die
Übertragung der Sender-Empfänger-Paare mit aktuellem Übertragungsbedarf
hinzukommen. Da dabei die oben erklärte Reihenfolge der Bedienungen gilt, kann
man auch eine entsprechende Reihenfolge der Pakete feststellen.
Computertechnik
235
Jacob
Das Konzept des Universal Serial Bus
Ein beispielhaftes Szenario
Host
SOF
Iso-OUT-transaction
Start Iso
of OUT
frame
Iso
DATA
out
Iso-IN-transaction
Interrupt
Interrupt
OUT-transaction IN-transaction
Inter- Interrupt rupt
OUT DATA
out
Iso
IN
Interrupt
ACK
in
Interrupt
IN
HostPakete
Zeit
Iso
DATA
in
Device
Interrupt
ACK
out
Interrupt
DATA
in
DevicePakete
Bild 9.18: Beispielhafter Ablauf von Transaktionen
•
•
•
•
•
•
Der USB-Controller im Host-Computer ist die Steuerzentrale des USBSystems. Alle Aktivitäten auf dem Bus gehen von ihm aus.
Die Einteilung in Frames ist die elementare Einteilung der Bus-Aktivitäten.
Innerhalb der Frames werden die Übertragungen nach Aufträgen gegliedert,
deren Abwicklung als Transaktionen bezeichnet wird.
Die Abwicklung einer Transaktion bedeutet auf dem Bus eine - gemäß
Auftragstyp - genau festgelegte Reihenfolge von Paketen. In Bild 9.18 werden
Beispiele für den isochronen und den „Interrupt“-Datenverkehr angegeben.
Die anderen Übertragungsarten erfolgen sinngemäß.
Ein wichtiger Unterschied zwischen isochronem und Bulk- Datenverkehr: der
isochrone Verkehr wird nicht so gesichert, dass man eine Wiederholung
ausführen könnte. Das wäre wegen des online-Charakters der Daten sehr
aufwendig. Aber die Bulk-Datenübertragung wird wie üblich gesichert, so dass
man eine Wiederholung anfordern kann.
Bezogen auf den „Interrupt“-Datenverkehr erkennt man, dass Daten nur dann
fließen, wenn der Host-Controller eine Aufforderung gibt, d.h. wenn er
entsprechende IN- bzw. Out-Pakete sendet.
Für das gesamte Frame gilt: wenn mehr Transaktionen in einem Frame
ablaufen, als innerhalb eines Frames möglich sind, dann wird nach dem Ende
des betroffenen Frames eine Überlagerung von Sendungen eintreten: die des
Start of Frame des nächsten Frame und die nicht fertig gewordener
Transaktionen. Diese Unordnung wird hier „babble“-Zustand genannt und führt
zum Abbruch des USB-Betriebes.
Für jedes Frame ist die Reihenfolge der Transaktionen gemäß Übertragungsbedarf
genau fest gelegt. Jede Transaktion wird durch einen genau festgelegten Satz von
Auftragsdaten beschrieben (descriptor). Der Reihenfolge der Transaktionen auf dem
Bus entspricht eine Kettung von (in Listen gespeicherten) Auftragsbeschreibungen
(Deskriptoren).
Computertechnik
236
Jacob
Das Konzept des Universal Serial Bus
Die Auftragslisten für das USB-System
Kettung der Iso-Deskriptoren und der Header der “Interrupt-”, Control- und Bulk-Queues
Liste der Zeiger
zu den Auftragsketten der Frames
2
11
Kettung der
“Interrup t”Deskriptoren
Ze iger
Z eiger zur
Auftragskette
des Frame i-1
Iso-Auftragsbeschreibung
Z eiger zur
Auftragskette
des Frame i
Iso-Auftragsbeschreibung
Iso-Auftragsbeschreibung
Z eiger zur
Auftragskette
des Frame i+1
Iso-Auftragsbeschreibung
Iso-Auftragsbeschreibung
i.0
Kettung der
Contr olDeskriptoren
Kettung der
BulkDeskriptoren
Iso-Auftragsbeschreibung
i.1
“Interrupt”Warteschlangenbeschreibung
Con trolWarteschlange nbeschreib ung
BulkWarteschl angenbeschreibu ng
“Interrupt” i.2
-Auftragsbesch reibu ng
Control i.x+1
Auftragsbeschreibung
i.y+1
Bulk
Auftra gsbeschrei bung
“Inte rrupt” i.3
Auftragsbeschreibun g
Control i.y
Au ftragsbesch reibung
i.end
Bulk
Auftragsbe schreibung
“Inte rrupt” i.x
Auftragsbeschreibun g
i.0
i.1
i.2
i.3
usw.
Zeit
Bild 9.19: Kettungsstruktur der Übertragungsaufträge der Frames
Beispielhafter Pfadabschnitt durch die Auftragskette von i.0 bis i.3 und die entsprechenden
Transaktionen auf dem Bus
•
•
•
•
Eine Frame-Liste enthält 211 Einträge, von denen jeder zum Anfang der
Auftragskette zeigt, die mit dem entsprechenden Frame verbunden ist.
Jeder Auftrag wird durch einen Deskriptor beschrieben. Er enthält die
Parameter der Transaktion, die auszuführen ist, und einen Zeiger auf den in
der Kette folgenden Deskriptor.
Die Kette der Frame-Aufträge beginnt mit einer Folge von isochronen
Aufträgen, gefolgt von je einer Folge von „Interrupt“- , Control- und BulkAufträgen.
Man kann die Kettung vom ersten Eintrag in der Frame-Liste durch dessen
Auftragskette zum nächsten Eintrag in der Frame-Liste und dessen
Auftragskette usw. bis zum letzten Auftrag in der Auftragskette des letzten
Eintrags in der Frame-Liste verfolgen und sie dann zyklisch fortsetzen. Das ist
der Leitfaden, mit dem der USB-Controller die Aktionen auf dem USB-Bus
bestimmt.
Computertechnik
237
Jacob
Das Konzept des Universal Serial Bus
•
•
•
Die Kettungsstruktur (und damit der Leitfaden) wird beim Hochfahren des
Systems zum ersten Mal bestimmt. Wenn dann im Betrieb neue
Betriebsbedingungen entstehen, müssen die Kettungen entsprechend
angepasst werden.
Man erkennt, dass eine isochrone Auftragsfolge, die neu angelegt wurde,
einfach dadurch aktiviert werden kann, dass die Zeiger in der Frame-Liste
entsprechend eingestellt werden. Die Kettung der Auftragsfolgen für die
nachfolgenden nicht-isochronen Aufträge beginnt für alle isochronen
Auftragsfolgen beim gleichen Element. Der Zeiger im letzten isochronen
Auftrag ist also nicht von irgendwelchen Kettungsänderungen abhängig.
Die Änderungen in den Auftragsketten der nicht-isochronen Aufträge betreffen
nur die jeweilige Kette. Wenn sie einmal erfolgt sind, gelten sie für alle
Frames, bis sie widerrufen werden.
Diese Kettungsstruktur ist die logische Schnittstelle zwischen der Hardware und der
Treiber-Software. Die Aufteilung der Aufgaben zwischen der Aufrufebene im
Anwender-Computer und der Hardware des USB-Bus zeigt Bild 9.20. Die
Kettungsstruktur der Auftrags-Deskriptoren ist die maßgebliche Komponente dieser
Schnittstelle.
Für den Programmierer des BIOS des DOS-Betriebssystems waren die Register im
IO-Speicherbereich die maßgebliche Schnittstelle zur Hardware. Für den USBTreiber-Programmierer moderner Betriebssysteme ist es das UHCI (universal host
controller interface).
Bild 9.20: Hierarchische Aufgabenteilung zwischen der Anwender-Software und der
Hardware des USB
ftp://download.intel.com/technology/usb/uhci11d.pdf
Die Treiber-Software sorgt für die Initialisierung, das Management und die
Abwicklung der Schreib- und Leseanweisungen der Anwenderprogramme.
Computertechnik
238
Jacob
Das Konzept des Universal Serial Bus
Als Beispiel einer Auftragskettung dient hier das Verfahren des USB 1.1. Für den
Nachfolger USB 2.0 gilt eine wesentlich komplexere Schnittstelle, die mit EHCI
(enhanced host controller interface) bezeichnet wird. Sie wird hier nicht diskutiert:
http://www.intel.com/technology/usb/download/ehci-r10.pdf
Hier einige pauschale Merkmale:
•
•
•
Die Taktrate des USB 2.0 ist 40mal größer als die 12 MBit/sec bei Full Speed
des USB 1.1, also 480 MBit/sec.
Man unterteilt die 1msec-Frames in 8 Micro-Frames von 125 microsec.
Der USB 2.0 ist abwärts kompatibel zum USB 1.1. Das bedeutet u.a., dass der
USB-Controller 2.0 die Übertragungs-Geschwindigkeit jeweils automatisch an
die Geschwindigkeit des aktiven Gerätes anpasst.
Bild 9.21: Vergleich zwischen Frames (USB 1.1) und Micro-Frames (USB 2.0)
Angenommen, der isochrone Datenbedarf (data payload) belegt ein Frame 500 microsec.
Das entspricht 6000 Bits. Diese 6000 Bits werden innerhalb eines Micro-Frames in 12,5
microsec übertragen.
Computertechnik
239
Jacob
Festplatten und Festplatten-Controller
9.3 Festplatten und Festplatten-Controller
Motherboards haben fest eingelötete Stecker zum Anschluss von Festplatten. Dabei
ist wahlweise der Anschluss von IDE-Disks (intelligent drive electronics) und/oder
SCSI-Disks (small computer system interface) möglich.
Man unterscheidet das eigentliche Laufwerk mit dem Speichermedium von dem Laufwerkscontroller. Heute ist es üblich, beide in einer einzigen Baueinheit zusammen zu
montieren, so dass das „dumme“ Laufwerk durch die „Intelligenz“ des Controllers
„aufgewertet“ wird. Die Schnittstelle der Gesamt-Einheit ist als Bussystem-Anschluss
konzipiert, der entweder vom PC-Systembus abgeleitet ist (IDE-Schnittstelle) oder
ein speziell konzipierter Peripherie-Bus ist (SCSI-Schnittstelle).
9.3.1 Aufbau von Festplattenlaufwerken
Das Laufwerk
Bild 9.22: Aufbau eines Festplattenlaufwerks
Man erkennt im Bild 9.22
• den Plattenstapel und seine Antriebsspindel mit dem darin integrierten
Antriebsmotor,
• den Kamm mit den Schreib/Leseköpfen und dem oberen Lagerzapfen für die
Drehachse,
• den Aktuator für die Positionierung des Kammes durch Drehung,
• die Filtersperre für die Filterung mechanischer Feinstteilchen aus dem Luftstrom,
• das verkapselnde Gehäuse.
Bild 9.23 veranschaulicht ein beispielhaftes Ensemble von Aktuator, Kamm und
Schreib/Lese-Köpfen.
Computertechnik
240
Jacob
Festplatten und Festplatten-Controller
Bild 9.23: Aktuator mit Kamm
http://www.storagereview.com/guide2000/ref/hdd/op/act.html
Im erkennt man zwei Köpfe für die Ober- und Unterseite einer Platte. Aus der
Berührung der Köpfe kann man schließen, dass die Köpfe von den Armen mit einer
zulässigen Spannung auf die Platte „gedrückt“ werden. Das gilt nur im Stillstand.
Sobald die Platte rotiert, entsteht durch den Luftstrom ein Gegendruck, der die Köpfe
über die Plattenoberflächen hebt, so dass sie berührungslos darüber schweben. Die
Köpfe sind auf Schlitten-Elementen montiert.
Die Arme sind mit den Schlitten in tangentialer Richtung orientiert. In den
Schlittenflächen, die der Disk zugewandt sind, gibt es am rechten und linken Rand je
eine „Kufe“, die innen einen „Rille“ erzeugen. Durch diese kann der tangentiale
Luftstrom durchziehen und das Abheben erzeugen. Der dadurch erzeugte Abstand
ist „winzig“ (Bild 9.23).
Bild 9.24: Größenverhältnisse bezogen auf die Flughöhe (flying height) von Köpfen
http://www.storagereview.com/guide2000/ref/hdd/op/heads/opHeight.html
Das Aufsetzen eines Kopfes (head crash) bedeutet in der Regel die Zerstörung der
Spur bzw. des Kopfes. Der Hersteller sorgt für die notwendige Ebenheit der Platten,
die notwendige Laufruhe bei der Rotation, die hermetische Verkapselung und das
Filtern des Luftstromes, damit es keine Feinstpartikel im Luftstrom gibt.
Der Anwender des Laufwerks sorgt dafür, dass es während des Betriebs keine
mechanischen Stoßbelastungen gibt.
Computertechnik
241
Jacob
Festplatten und Festplatten-Controller
Das Prinzip der durch eine Spule bestimmten Kopf-Struktur kann man im Bild 9.25
erkennen.
Bild 9.25: Schreib/Lese-Kopf in Thin-Film-Technologie
http://www.storagereview.com/guide2000/ref/hdd/op/heads/techTF.html
Man erkennt am Schlitten die beiden äußeren „Kufen“ und die dadurch innen erzeugte
„Rille“; außerdem erkennt man die Wicklung der Spule sowie die Zuleitungen.
In aktuellen Systemen wird die Spule nicht mehr durch eine echte Wicklung erzeugt,
sondern durch planare Dünnfilm-Windungsstrukturen, die weniger Raumbedarf
haben: http://www.storagereview.com/guide2000/ref/hdd/op/heads/tech.html
Das Speichermedium
Das Speichermedium ist eine kreisförmige Platte, die beidseitig mit magnetisierbarem Material beschichtet ist. Das herkömmliche Konzept zur Speicherung von Daten
geht von einer gleichmäßigen Einteilung in Spuren und Sektoren aus (Bild 9.26).
Bild 9.26: Gleichmäßig sektorisierte Platte
Die Plattenfläche wird in gleich breite, konzentrische Ringe (Spur, track) eingeteilt.
Man nummeriert die Spuren von außen nach innen (Spurnummer, track number)).
Eine bestimmte radiale Linie markiert den Anfang jeder Spur.
Von dort ausgehend wird die Plattenfläche in gleich große radiale Segmente
eingeteilt. Die dadurch entstehenden Spurabschnitte heißen Sektoren.
Computertechnik
242
Jacob
Festplatten und Festplatten-Controller
Man nummeriert die radialen Segmente durch und gibt den Sektoren jedes radialen
Segmentes die zugeordnete Nummer (Sektornummer).
Da Information bitweise gespeichert wird, wird jede Spur, vom Spuranfang
ausgehend hintereinander, in Mikroabschnitte zur Speicherung je eines Bits
eingeteilt, wobei pro Sektor gleich viele Bits vorgesehen sind.
Bild 9.27: Schema der bitseriellen Einteilung am Beispiel eines Sektors
Durch die Positionierung des Kammes mit den Schreib/Lese-Köpfen in eine definierte
Stellung erreicht man, dass alle Köpfe zusammen konzentrisch übereinander
liegende Spuren erfassen, die man zusammen als Zylinder bezeichnet.
Der Vorgang des Lesens und Schreibens
Betrachtet man den Vorgang des Schreibens bzw. Lesens eines einzelnen Kopfes
ergibt sich ein prinzipieller zeitlicher Verlauf wie in Bild 9.28.
Bild 9.28: Prinzipieller Verlauf des Schreib-Stromes und der Lese-Spannung
Ein Strom, den man beim Schreiben in die Spule des Kopfes einprägt, erzeugt im
darunter vorbeilaufenden Spurabschnitt eine Magnetisierung in der zugehörigen
Richtung. Wechselt man die Stromrichtung, dann wird auch die Richtung der
Magnetisierung im darauf folgenden Spurabschnitt umgedreht. Ein Stromrichtungswechsel im zeitlichen Verlauf des Schreibstroms erzeugt also einen Magnetisierungswechsel im örtlichen Verlauf der Spur. Oberhalb der magnetisierbaren
Schicht ergeben sich entsprechende Richtungswechsel des magnetischen Feldes.
Wenn nun der Kopf in den Lese-Betrieb geschaltet wird, durchsetzt das magnetische
Feld die Kopfspule. Nach dem Induktionsgesetz erzeugt eine Änderung des
Magnetfeldes in einer Spule an ihren Endpunkten eine Spannung. In diesem Fall
erzeugt ein vorbeilaufender Richtungswechsel im Magnetfeld der Spur einen
Lesepuls, je nach Richtungswechsel einen positiven oder einen negativen Puls.
Computertechnik
243
Jacob
Festplatten und Festplatten-Controller
Das größte Problem beim Lesen sind Verzerrungen, die die Lage der Hochpunkte
gegenüber dem Taktraster verschieben.
Man versucht, das Taktraster möglichst eng zu machen; denn man möchte ja so
viele Bits wie möglich speichern. Die Grenze für diese Verkleinerung der
Bitabschnitte wird durch die Eigenschaften des magnetisierbaren Materials gegeben.
Angenommen, man könnte den Richtungswechsel im Schreibstrom beliebig schnell
machen. Das magnetisierbare Material müsste die Ausrichtung der Elementarmagnete genau so schnell nachvollziehen können, tut das aber nicht. Je nach Güte
des Materials ist es dabei mehr oder weniger träge. Diese Trägheit ist ein wesentlicher Grund, dass es zu Verzerrungen kommt, die die Hochpunkte der beim Lesen
erzeugten Pulse gegenüber dem Taktraster verschieben.
Ein bekannter Trick, die Verzerrung bereits beim Senden im voraus zu korrigieren, ist
die Vorkompensation (precompensation). Dabei stellt man den Zeitpunkt des
Richtungswechsels so ein, dass der Puls-Hochpunkt in Richtung des Taktrasters
geschoben wird (Bild 9.29).
Bei herkömmlichen Platten mit gleichmäßiger Sektorisierung nehmen die
Verzerrungen zu, je weiter zu den inneren Spuren kommt. Deshalb wird eine Spur
angegeben, ab der – weil nach innen gezählt wird - die Vorkompensation wirksam
werden soll.
Bild 9.29: Anpassung des Schreibstrom-Richtungswechsels bei der Vorkompensation
Die herkömmliche Formatierung von Platten
Die kleinste auf einer Spur adressierbare Einheit ist der Sektor. Um die Sektoren in
einer Spur zu finden, nummeriert man sie von einem Beginn an durch.
Die radiale Linie, die den Beginn des ersten Sektors auf jeder Platte markiert, ist auf
allen Platten in gleicher Position, ebenso die Grenzlinien der folgenden Sektoren.
Computertechnik
244
Jacob
Festplatten und Festplatten-Controller
Zu Beginn jedes Sektors gibt es zunächst ein Feld, das die Nummer des Sektors und
ergänzende Merkmale enthält: Identifikationsfeld (identifier field). Nach dem
Identifikationsfeld folgt das Datenfeld (data field). Zwischen den Sektoren werden
Abschnitte frei gehalten (gap) (
Bild 9.30). Das sind Lücken, die weder für die Adressierung noch für die
Datenübertragung genutzt werden, die aber einen wichtigen Zweck erfüllen.
0 12
Identifikation
Gap
Daten
Gap
3
4
5
6
usw.
Identifikation
Gap
Daten
Gap
Gap
Bild 9.30: Prinzip der herkömmlichen Spurformatierung
Die Identifikationsfelder werden bei der (low level-) Formatierung der Platte
geschrieben und sind danach unveränderlich. Die Datenfelder werden später beim
Betrieb geschrieben. Man kann nie damit rechnen, dass die Taktraster absolut gleich
sind, wenn zu unterschiedlichen Zeiten geschrieben wird. Damit sind die Felder
ungleich lang, was man durch Lücken ausgleichen muss.
Außerdem muss man den Feldern einige Bits vorausschicken, die der LeseElektronik die Möglichkeit geben, sich auf die unterschiedlichen Taktraster der Felder
einzustellen (Synchronisierung der Lesetakte). Einer Lücke folgen deshalb
Synchronisierbits.
Um die Positionierung des Kammes zu unterstützen, wird das Sektor-Format durch
eine besondere Servo-Information ergänzt. - Man legt in gleichem Winkelabstand
radiale Servo-Spuren an, im Bild 9.31 vor jedem Sektor, im allgemeinen nach einem
geeigneten Vielfachen von Sektoren. Die Äquidistanz ist wichtig dafür, dass die
Elektronik die Informationsbits von den Servobits unterscheiden kann
Bild 9.31: Schema der Servo-Bereiche auf einer herkömmlichen Platte
Computertechnik
245
Jacob
Festplatten und Festplatten-Controller
Um den Vorgang beim Suchen eines Sektors zu verstehen, geht man am besten
davon aus, dass der Kamm sich auf den gewünschten Zylinder eingestellt hat und
alle betroffenen Köpfe Pulse empfangen.
Sobald die Elektronik die Bit-Synchronität hergestellt hat, stellt sie die logische
Synchronität her. Die empfangenen Bits werden Takt für Takt durch ein
„Erkennungsfenster“ geschoben. Sobald im Fenster ein vereinbartes, eindeutiges
Wort erkannt wird, ist die logische Synchronität hergestellt.
Von der gefundenen Stelle im Sektorformat ausgehend, kann man den Beginn des
Sektors bestimmen, der als erster vollständig empfangen wird. So werden
nacheinander die Identifikationsfelder der Sektoren bestimmt, bis der gewünschte
Sektor gefunden ist.
Bild 9.32: Format des Identifikationsfeldes
w/r = write/read recovery gap, LBN = logical block number
Moderne Formate sparen sich die Identifikationsfelder (No-ID-Formate) und erzielen
damit eine verbesserte Nutzung des Speichermediums. Der größere Gewinn an
Speicherkapazität entsteht aber durch ein Formatierungskonzept, das von der
Einteilung in gleiche Sektoren mit gleich vielen Bits abgeht.
Zoned Bit Recording
Die Magnetisierung der inneren Spur stellt bei der herkömmlichen Formatierung die
höchste Anforderung an das Speichermaterial. Da die magnetisierbare Speicherschicht über der gesamten Plattenfläche homogen ausgelegt ist und überall die
Qualität hat, die für die innerste Spur gilt, könnte man eigentlich auch die anderen
Spuren mit der gleichen Bitdichte magnetisieren.
Offensichtlich behindert die Bedingung, dass auf jeder Spur gleich viele Sektoren mit
gleicher Bitzahl sind, die bessere Nutzung der Speicherschicht.
Die Sektorisierung beginnt mit der innersten Spur. Diese Sektorisierung bleibt auch in
den nächsten, nach außen folgenden Spuren gültig. Die Nutzung wird dabei aber
umso schlechter, je länger die Spur wird.
Wenn die Spur eine Länge erreicht hat, die mit der Bitdichte der innersten Spur
mindestens einen ganzen Sektor mehr aufnehmen könnte, kann man die Sektorzahl
entsprechend erhöhen.
Computertechnik
246
Jacob
Festplatten und Festplatten-Controller
Das setzt sich dann über die folgenden Spuren sinngemäß fort. Es bilden sich
Spurzonen mit gleicher Sektorisierung.
Bild 9.33: Formatierung mit Zonen gleicher Sektorisierung
Durch dieses Verfahren bleiben die Bitdichten in den Zonen gleich und die
Speicherkapazität nimmt gegenüber dem herkömmlichen Verfahren zu.
Die Servo-Information bleibt, wie in den Einheiten mit „non zoned bit recording“
gleichmäßig verteilt. Der Grund dafür gilt auch hier: nur wenn sie gleichmäßig verteilt
ist, hat die Elektonik ein Kriterium, Servo-Information von Identifikation/DatenInformation zu unterscheiden.
Nur in der innersten Zone liegt die Serverinformation unmittelbar vor dem DatenSektor. In den weiter außen liegenden Zonen werden die Felder der Sektoren
unterbrochen (Bild 9.34).
Bild 9.34: Gleichmäßige Verteilung der Servo-Information auch in Platten mit zoned
bit recording
Computertechnik
247
Jacob
Festplatten und Festplatten-Controller
9.3.2 IDE(ATA) Festplatten
Die Laufwerke werden durch ihre Controller an standardisierte Schnittstellen
angepasst. Im Falle von Festplatten gibt es eine spezielle Festplatten-Schnittstelle,
die entweder mit IDE (intelligent drive electronics) oder ATA (advanced technology
attachement) bezeichnet wird.
Vertiefung für Interessierte, kein Prüfungsstoff
Der Standard legt einen Stecker und die funktionale Bedeutung der Signale auf dessen
Kontaktstiften fest.
Bild 9.35: IDE(ATA)-Steckerschnittstelle und Stromversorgungsstecker
Der Disk-Controller erhält über die 16
Bit Datenschnittstelle zunächst die
Parameter eines Lese- oder SchreibAuftrages, danach erfolgt hierüber die
eigentliche Datenübertragung vom
oder zum Speichermedium.
Für die Synchronisation zwischen
dem Disk-Controller und der Zentraleinheit bei der Datenübertragung
stehen die Handshake-Signale dmaRequest- und dma-Acknowledge zur
Verfügung.
Das Ende der Abwicklung eines
Übertragungsauftrages wird durch
Interrupt Request gemeldet.
Bild 9.36: Daten-, Handshake- und Interrupt-Request-Signale des IDE/ATA-Interface
Computertechnik
248
Jacob
Festplatten und Festplatten-Controller
Die Parameter werden in spezielle
Register des Disk-Controllers
eingetragen.
Die Auswahl der Register erfolgt mit
Hilfe der Auswahlsignale CS0, CS1
(je eine Einzelauswahl) bzw. DA0,
DA1, DA2 (duale Adresse).
Bild 9.37: Adressierungssignale für die Auswahl der Register im Disk-Controller
(Ende der Vertiefung)
Die Gesamtheit der Parameter beschreibt einen Task (Auftrag), was zur
Bezeichnung ATA-Task-File geführt hat.
In der alten Form des ATA-Task-Files hat man die Lokalisierung des Sektors durch
die Sektor-, die Zylinder- und die Kopfnummer angegeben. Heute gibt man die
logische Blockadresse an.
Register
Adresse
Breite (Bit)
Read/Write
Datenregister
1F0H
16
R/W
Fehlerregister
1F1H
8
R
Vorkompensation
1F1H
8
W
Sektorenzahl
1F2H
8
R/W
logische 1F3H
8
R/W
Block- 1F4H
8
R/W
adres- 1F5H
8
R/W
4+4
R/W
Laufwerk/
se 1F6H
Statusregister
1F7H
8
R
Commandregister
1F7H
8
W
Statusreg. alternativ
Ausgaberegister
3F6H
3F6H
8
8
R
W
Computertechnik
249
Jacob
Festplatten und Festplatten-Controller
Laufwerkadr.
3F7H
8
R
Die Logische-Block--Adressierung zählt die Sektoren der Platte von 0 bis zur
maximalen Zahl durch. Im Controller erfolgt Umrechnung in die Parameter gemäß
Laufwerksstruktur:
Die IDE/ATA-Schnittstelle ist eine Geräte-Schnittstelle und keine universelle
Peripheriebus-Schnittstelle, die für eine autonom gesteuerte Abwicklung von
blockweisem dma-Verkehr geeignet ist.
Der Disk-Controller muss durch einen IDE/ATA-Controller ergänzt werden, der
zwischen der IDE/ATA-Schnittstelle und der dma-fähigen Schnittstelle vermittelt, die
der Chipsatz unterstützt.
Der IDE/ATA-Controller wird im IO-Hub des Chipsatzes realisiert.
Die SCSI-Schnittstelle wird als Vertiefung für Interessierte angeboten, kein Prüfungsstoff:
Computertechnik
250
Jacob
Festplatten und Festplatten-Controller
9.3.3 SCSI-Festplatten
Die SCSI-Schnittstelle (small computer system interface) ist ein Standard, der nicht
nur für Festplatten gilt. Sie wurde als universelle Schnittstelle für alle
Peripheriegeräte mit großem und schnellem Übertragungsbedarf konzipiert.
Die SCSI-Anpassung wird in den Controller des Peripherie-Gerätes integriert, also
bei einer Festplatte in den Disk-Controller.
Bild 9.38: Festplattenlaufwerk mit SCSI-Controller und –Stecker-Schnittstelle
Die Standardisierungsgruppe verbessert laufend den Standard (was natürlich auch
für die IDE/ATA-Standardisierung gilt). Einen Überblick zur Entwicklung und zum
Stand verschafft folgende Tabelle:
SCSI
Klasse
SCSI I
SCSI II
SCSI III
SCSI III
SCSI III
Datenwort
in Bits
8
8
8
16
16
Bustyp
NARROW
NARROW
NARROW
WIDE
WIDE
SCSI II und III
Ergänzung
FAST
FAST 20 (ULTRA)
FAST 20 (ULTRA)
FAST 40 (ULTRA2)
Transferrate
MByte/sec
5
10
20
40
80
Max. Anzahl
von Geräten
7
7
7
15
15
Heute gilt die Version SCSI II als auslaufend und die Version SCSI III als aktuell.
Bild 9.39 gibt die Pin-Funktionen der 50poligen Schnittstelle des SCSI II und die
68poligen Schnittstelle des SCSI III wider. Das dient hier dazu, folgende Aussagen
nachprüfbar zu machen:
•
•
•
•
•
Im SCS II werden alle Signale auf Ground bezogen (single ended signals).
Im SCSI III werden alle Signale positiv und dazu invertiert übertragen, so dass
differentiell empfangen werden kann. Das bedeutet geringere Störanfälligkeit.
Im SCSII ist die Datenwortbreite 8 Bit.
Im SCSI III ist die Datenwortbreite 16 Bit. Man kann die Schnittstelle auch mit
8 Bit Datenwortbreite (unterfordert) nutzen.
Die Nicht-Daten-Signale haben auf beiden Schnittstellen die gleichen
Bezeichnungen und es sind keine dazugekommen. Das ist ein Hinweis, dass
die Funktionen und damit das Protokoll gleich sind.
Computertechnik
251
Jacob
Festplatten und Festplatten-Controller
50 polige
SteckerSchnittstelle
des SCSI II
68-polige
SteckerSchnittstelle
des SCSI III
Bild 9.39: Pin-Funktionen der Schnittstellen SCSI II und SCSI III
Computertechnik
252
Jacob
Festplatten und Festplatten-Controller
SCSI-Protokoll
Die SCSI-Schnittstelle ist eine Schnittstelle für mehrere Peripheriegeräte, so dass
z.B. ein Festplatten-Laufwerk und CD-Laufwerk über diese Schnittstelle an die
Zentraleinheit eines Computers angeschlossen werden können.
Die Aufgabe der Vermittlung zwischen der Zentraleinheit und dem SCSI-Bus hat der
sog. Hostadapter (Bild 9.40).
Bild 9.40: Beispielhafte Konfiguration mit dem Hostadapter einer Zentraleinheit,
einem Festplatten- und einem CD-Laufwerk und dem SCSI-Bus als gemeinsamem
Übertragungssystem
Moment der Initiative in der Zentraleinheit: sie schickt ein Kommando an das FestplattenLaufwerk (hard disk): der Hostadapter hat die Rolle des Initiators, das Laufwerk hat die Rolle
des Ziels (Target); die Initiator und Targets sind mit Hilfe von Identifizierungsnummern
erkennbar (ID: identification)
Da Peripheriegeräte nur das tun, was die Programme von ihnen wollen bzw.
erwarten, erhalten sie über den Host-Adapter vom Prozessor Aufträge (Commands).
Busteilnehmer, die Commands verschicken können, heißen Initiatoren. Ein
Auftragnehmer eines Commands heißt Target.
Es sind mehrere Initiatoren am Bus zugelassen. Es ist also möglich, dass mehrere
gleichzeitig Commands übertragen wollen. Diese Initiatoren müssen sich einer BusArbitrierung unterwerfen.
Das Kriterium, dass der Bus frei ist, wertet den Schaltzustand des Select-Signales
SEL und des Belegt-Signals BSY (busy) aus. In der Regel beginnt die Frei-Phase,
wenn eine Bustransaktion durch Deaktivierung des BSY-Signales endet. Die dann
beginnende Bus-Phase wird Bus Free Phase genannt (Bild 9.41) (Bild 9.42).
Computertechnik
253
Jacob
Festplatten und Festplatten-Controller
Bild 9.41: Zustandsdiagramm des SCSI-Bus: aktuell in der Bus-Free-Phase
Bu s Free Ph ase:
Länge mindestens bus free delay nach Freigabe des Bus, höchstens bus set delay,
wenn ein Initiator wartet, bzw. mindestens bus clear delay nach einem Reset.
Bus settle
delay
Die Bus-Free-Phase endet mit der Aktivierung
der ID-Selektionssignale durch anfordernde Initiatoren.
BSY
SEL
C /D
I/O
MSG
R EQ
ACK
ATN
RST
DATA
Anfordernde Initiatoren aktivieren ihre ID-Selektionssignale
auf den Datenleitungen.
Bild 9.42: Busaktionen zu Beginn und Ende der Bus-Free-Phase
Sobald mindestens ein Initiator belegungswillig ist, geht der Bus in den Zustand
Arbitration Phase. In dieser Phase wird entschieden, wer den Bus benutzen darf
(Bild 9.43) (Bild 9.44).
Bild 9.43: Zustandsdiagramm des SCSI-Bus: aktuell in der Arbitration-Phase
Computertechnik
254
Jacob
Festplatten und Festplatten-Controller
Bus Arbitration Phase:
Nach maxim al der arbitration delay time hat ein Initiator
den Bus gewonnen und aktiviert das SEL-Signal.
BSY
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Aktivierung der ID-Selektionssignale
auf den Datenleitungen durch anfordernde Initiatoren.
Bild 9.44: Busaktionen während der Bus-Arbitration-Phase
Jedem Initiator ist eine eindeutige Identifikationsnummer zugeordnet. Eine höhere
Nummer bedeutet höhere Priorität.
Diese Identifikationsnummer sendet der Initiator als 1aus8-Signal (SCSI II) bzw. 1
aus 16-Signal (SCSI III) auf den Datenleitungen aus. Jeder Initiator sendet sein
Anforderungssignal gemäß seinem Rang, das alle anderen gemäß diesem Rang
empfangen.
Dadurch kann jeder feststellen, ob sein Signal durch ein Signal mit einem höheren
Rang überboten wird und kann sich zurückziehen. Der mit dem höchsten Rang zieht
sich nicht zurück.
0
1
2
4
3
5
6
7
Bild 9.45: Senden und Empfang der Anforderungssignale der Initiatoren auf den
Datenleitungen (SCSI II als Beispiel):
6 und 7 melden sich in diesem Szenario; 6 zieht sich zurück; 7 setzt sich durch.
Computertechnik
255
Jacob
Festplatten und Festplatten-Controller
Die Arbitrierungsphase endet damit, dass ein Initiator den Bus gewonnen hat. Dieser
beginnt mit der Selection Phase.
Bild 9.46: Zustandsdiagramm des SCSI-Bus: aktuell in der Selection-Phase
Die Auswahl des Gerätes, das Target sein soll, erfolgt durch Aktivierung einer
Datenleitung, indem die Identifikationsnummer des Targets als 1aus8-Signal (SCSI
II) bzw. 1aus 16-Signal (SCSI III) aktiviert wird.
Zuerst müssen die Initiatoren ihre ID-Signale deaktivieren und der Gewinner-Initiator
muss das ID-Signal des Targets aktivieren.
Das SCSI-Protokolle ist so ausgelegt, dass das ausgewählte Target den Bus übernehmen wird. Wenn der Gewinner-Initiator einen besonderen Wunsch an das Target
hat, meldet er dies mit Hilfe des Attention-Signals (ATN). Außerdem deaktiviert er
nach einer vorgegebenen Verzögerung (delay) das BSY-Signal (Bild 9.47).
Vo rbereitun g der Selektion:
Alle Initiatoren deaktivieren ihre ID-Signale (bus clear delay).
Der Gewinner- Initiator aktiviert das Target-ID -Selektionssignal auf der entsprechenden
Datenleitung (bus settle delay).
Da er eine Message an das Target senden will, aktiviert er das MSG-Signal.
Der Intiator wartet ab (deskew-delay) und deaktiviert BSY.
BSY
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Aktivierung des Target-ID-Selektionssignals
auf den Datenleitungen durch den Gewinner- Initiator.
Bild 9.47: Busaktionen zur Vorbereitung der Selektion
Computertechnik
256
Jacob
Festplatten und Festplatten-Controller
Das aktivierte Selektionssignal wird im entsprechenden Target eindeutig dekodiert.
Sobald das Target das deaktivierte BSY-Signal empfangen hat, steuert es die
Abwicklung der folgenden Aktionen selbständig. Das zeigt es durch Aktivieren des
BSY-Signals an. Daraufhin deaktiviert auch der Gewinner-Initiator das SEL-Signal
und das ID-Signal des Target (Bild 9.48).
Sel ektion:
Alle Targets werten die ID-Signale aus.
Sob ald es erkennt, dass BSY von den Initiatoren deakti viert wurde, a ktiviert es dieses se lbst.
Daraufhin deaktiviert der Gewinner-Initiator auch das SEL-Signal und
das ID-Signal auf der entsprechenden Datenleitung..
BSY
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Deaktivierung Target-ID-Selektionssignals
auf den Datenleitungen durch den Gewinner- Initiator.
Bild 9.48: Busaktionen während und am Ende der Selektion
Das Target bestimmt den Ablauf der folgenden Phasen.
Bild 9.49: Zustandsdiagramm des SCSI-Bus: aktuell die Abwicklung eines
Kommandos
Im Beispielszenario wird einen Message-Phase begonnen, weil der Initiator dazu
aufgefordert hat. Der Zweck einer Message-Phase ist, Kontrollmeldungen zwischen
Initiator und Target auszutauschen. Die Übertragung der Wörter wird begleitet von
den Handshake-Signalen REQ (request) und ACK (acknowledge) (Bild 9.50).
Wenn keine Message-Phase angefordert wird, soll das Target Kommandos
ausführen, die der Initiator vorgibt. Also fordert das Target ihn nach der MessagePhase dazu auf, ein Kommando zu senden (Bild 9.51): Command Phase.
Computertechnik
257
Jacob
Festplatten und Festplatten-Controller
Reaktio n auf Attention:
Das Target fordert den Initiator auf; seine Message zu senden:
C/D = High = command, I/O = Low= out, MSG = High = message geben den Typ der gewünschten
Transaktion an. Die Aktivierung von REQ gibt das Anforderungssignal. S obald der Initiator
REQ = High bemerkt, reagiert er: er sendet das Datenwort und meldet das mit der Aktivierung des
Quittungssignals ACK. Das Target deaktiviert REQ, der Initiator darauf ACK, das Target darauf MSG.
Das Attention-Signal des Initiators gibt dem Inititiator die Möglichkeit, die Anzahl der angeforderten
Message-Wörter zu steuern. Hier ist es nur ein Message-Wort.
Deshalb deaktiviert er das ATN-Signal nach der ersten Aktivierung des REQ.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Bild 9.50: Busaktionen bei der Reaktion auf Attention
Co mmand P hase:
Das Target fordert den Initiator auf; ein Kommando zu senden:
C/D = High = command, I/O = Low= out, MSG = Low = no message geben den Typ der gewünschten
Transaktion an. Die Aktivierung von REQ gibt das Anforderungssignal.
Sobald der Initiator das REQ = High bemerkt, reagiert er: er sendet das Datenwort und meldet
das mit der A ktivierung des Quittungssignals ACK. Das Target deaktiviert RE Q, der Initiator darauf ACK.
Solange das Target C/D = High hält, wiederholt das Target die Anforderung von K ommandowörtern,
bis alle empfangen sind. Dann beginnt es mit der Ausführung des K ommandos.
Deshalb erzeugt es C/D = Low = Daten, weil eine Datenübertragungsphase beginnt.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Bild 9.51: Busaktionen während der Command Phase
Computertechnik
258
Jacob
Festplatten und Festplatten-Controller
Sobald das Target alle Kommandowörter erfasst hat, beginnt es mit der Ausführung
des Kommandos (Bild 9.52): Data Phase.
Data Ph ase:
Das Tar get führt das empfangene Kommando aus:
C/D = Low = data, I/O = High = in, MSG = Low = no message geben den Typ der gewünschten
Transaktion an. Zu jedem Datenwort, das das Target sendet, aktiviert es REQ = High.
Der Initiator antwortet mit der Aktivierung des Quittungssignals ACK = High. Das Target deaktiviert
REQ, der Initiator darauf ACK. S olange das Target C/D = Low hält, wiederholt das Target die Übertragung
von Datenwörtern, bis alle gesendet sind.
Dann beginnt es mit der Anforderung von weiteren Kommandowörtern.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Bild 9.52: Busaktionen während der Data Phase
Wenn das Target die Ausführung des Kommandos beendet hat, folgt die
Übertragung eines Statuswortes: Status Phase.
Status Phase:
Das Target sendet nach der Kommando-Ausführung ein Statuswort als Fertig-Meldung:
C/D = High = status, I/O = High = in, MSG = Low = no message geben den Typ der gewünschten
Transaktion an. Das Senden erfolgt mit dem üblichen Handshake-Verfahren.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Bild 9.53: Busaktionen für die Übertragung des Statuswortes zur Fertigmeldung der
Kommando-Ausführung
Computertechnik
259
Jacob
Festplatten und Festplatten-Controller
Zum Abschluss wird noch eine Command Complete Message vom Target an den
Initiator gesendet.
Co mm and Complete Message Phase:
Das Target sendet zum endgültigen Abschluss noch eine Command Complete Message:
C/D = High = status, I/O = High = in, MSG = High = message geben den Typ der gewünschten
Transaktion an. Das Senden erfolgt mit dem üblichen Handshake-Verfahren.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
Bild 9.54: Busaktionen bei der abschließenden Command Complete Message
Erst wenn diese Phase beendet ist, wird das BSY-Signal vom Target deaktiviert und
der Bus ist für eine neue Aushandlung für die Initiatoren frei.
Nach dieser Demonstration der Prinzipien des SCSI-Protokolls an einem beispielhaften Szenario soll noch das Format eines Kommandos angegeben werden.
Command-Format
http://www.t10.org/
Es gibt 6, 10, 12 oder 16 Byte Kommandos, je nach Zahl und Art der Parameter für
das jeweilige Kommando. In der folgenden Tabelle ist das 6 Byte Format angegeben.
Byte Funktion
0
Command-Code
1
Logical Unit Number(3 Bit) / Logical Block Address (5 Bit, most significant
bits)
2
Logical Block Address
3
Logical Block Address (least significant bits)
4
andere Kommando-abhängige Parameter (z.B. Zahl der Blöcke)
5
Control (für die Verkettung von Kommandos
Die Sektoren der Platte werden von 0 bis maximale Zahl durchgezählt: logical block
address. Der Controller rechnet daraus die Zylinder-, die Kopf- und die Sektornummer aus.
Computertechnik
260
Jacob
Festplatten und Festplatten-Controller
Folgende Tabelle stellt einige Kommandos (mit Byteanzahl) vor:
http://www.t10.org/ftp/t10/drafts/sbc2/sbc2r16.pdf
FORMAT UNIT(6)
READ (6)
READ (10)
READ CAPACITY (10)
VERIFY (10)
WRITE (6)
WRITE (10)
WRITE AND VERIFY (10)
Formatieren, d.h. Struktur für logische Blöcke anlegen
Lesen ab angegebenem logischen Block gemäß kurzer
Angabe der Blockanzahl
Lesen ab angegebenem logischen Block gemäß langer
Angabe der Blockanzahl
Lesen der Speicherkapazität der Festplatte
Vergleichen gesendete Daten mit geschriebenen Daten
ab angegebenem logischen Block gemäß Angabe der
Blockanzahl
Schreiben ab angegebenem logischen Block gemäß
kurzer Angabe der Blockanzahl
Schreiben ab angegebenem logischen Block gemäß
langer Angabe der Blockanzahl
Schreiben und danach sofort Vergleichen ab
angegebenem logischen Block gemäß kurzer Angabe
der Blockanzahl
Der Vergleich mit dem Format des IDE/ATA-Task-File zeigt einen deutlichen
Unterschied: die SCSI-Kommandos enthalten keine Parameter, die hardwarenah
sind. Die SCSI-Disk-Controller setzen die angegebenen logischen Parameter in die
die laufwerksabhängigen Größen um.
(Ende der Vertiefung)
Computertechnik
261
Jacob
Computertechnik
262
Jacob
Herunterladen