Computertechnik
Computertechnik
Computertechnik
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.
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 Entwicklung der Computertechnik 1
1.1 Die Herstellung der Waferscheiben 1
1.2 Die Herstellung der Chips bzw. der gebrauchsfertigen ICs 3
1.3 Beispiele für aktuelle Bauformen (packages) 8
1.4 Ausgewählte Grundlagen der Elektrotechnik 12
1.5 Ausgewählte Grundlagen der Halbleitertechnnik 35
1.6 Das Funktionselement Transistor 46
1.7 Gefertigte MOS-Transistoren 51
1.8 Schaltungsbeispiel: SRAM-Speicherzelle 52
1.9 Die minimale auflösbare Strukturbreite 54
1.10 Die Entwicklung der Mikroprozessoren und Speicher-ICs 54
Computertechnik i Jacob
Inhaltsverzeichnis
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.
Der Rohling für die Erzeugung der Waferscheiben ist ein in zylindrischer Form
gezüchteter Siliziumkörper höchster Reinheit (Bild 1.1).
Computertechnik 1 Jacob
Die Herstellung der Wafer-Scheiben
Computertechnik 2 Jacob
Die Herstellung der Chips bzw. der gebrauchsfähigen ICs
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 Kontakt-
träger mit dem „gebondeten Die“ in eine Hohl-Form gelegt, die mit Hilfe eines Spritz-
druck-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 Nachbehand-
lung 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
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)
Bild 1.9: Beispiel für Dual In Line Memory Module (DIMM) mit ihren charakteristi-
schen 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.
Computertechnik 8 Jacob
Beispiele für aktuelle Bauformen (packages)
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 Pin-
Reihen 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 (fine-
pitch ball grid array) zeigt die Eigenschaften der neuen Technologie (Bild 1.12).
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 Prozessor-
Chips nach außen herstellen, sind als bandartiges Gittermuster am Rand des
Substrats angeordnet (PGA, pin grid array)
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.
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 Struktur-
breite.
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 physikali-
sche Grundlagen der Realisierung von Transistoren verständlich gemacht werden.
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 Zustands-
beschreibung 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.
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 ).
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.
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.
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.
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 Erdmittel-
punkt liegt und die die Höhe h bezogen auf die (ebenso gedachte) Meeresniveau-
Kugel 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).
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:
F ~ Q1 . Q2 / r 2
mit r = Abstand der Ladungen.
Das bedeutet im vorliegenden Fall:
F ~ q0 . q1 / r2 ,
mit q0 = Elementarladung.
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
∆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 dar-
stellbar. Die Komplexität erfordert - in dieser oder jener Form - tabellarische Zuord-
nungen. 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:
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
∆W = IF . ds
folgt
∆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).
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 uner-
heblich. 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 Ladungs-
trennung 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 positi-
ven 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 Aufla-
dung ist erreicht, wenn die Spannung zwischen den Platten gleich der angelegten
Spannung ist.
Der aufgeladene Kondensator hat die Ladung Q = N . q0 aufgenommen. Im Folgen-
den 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.
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.
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
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:
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
Strom bedeutet eine zeitliche Änderung der Ladungsdichte an den Platten des Kon-
densators, die mit einer zeitlichen Änderung des elektrischen Felds verbunden ist:
dq / dt /Fläche Kondensatorplatte
= Strom i / Fläche Kondensatorplatte
= Stromdichte Kondensatorplatte = ε . dE /dt
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 wird gedacht als die kontinuierliche Fortsetzung des Teilchen-
stroms 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.
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 Wechselspannungs-
bzw. 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.
• 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).
Computertechnik 24 Jacob
Ausgewählte Grundlagen der Elektrotechnik
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.
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 Ladungs-
trennung daraus zu gewinnen, dass man zwei Stoffe geschickt miteinander kom-
biniert.
Das führt aber nicht zu einer unbegrenzten Erzeugung immer neuer Elektronen/Metall-
Ionen-Paare. Paare können sich auch wieder zu neutralen Atomen vereinigen, d.h. der
Zerteilungsprozess wird von einem Rekombinationsprozess begleitet.
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).
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.
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.
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.
Das tritt in aller Regel ein, bevor die Zelle vollständig entladen ist, also der vorhandene
Ladungsüberschuss vollständig abgebaut ist.
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 Ampere-
Stunden 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.
∆U3=U3-U2
Kupferleitung Kupferleitung
R
∆U2=U2-U1 U2 U3
∆U4=U4-U3
U1 U4
Cu Zn
∆U1=U1-U0 ∆U5=0-U4
+ -
eingeprägte Spannung U0
Computertechnik 28 Jacob
Ausgewählte Grundlagen der Elektrotechnik
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.
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:
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:
Computertechnik 29 Jacob
Ausgewählte Grundlagen der Elektrotechnik
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.
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
∆Ui = Ri . I
Für die Summe aller Spannungsabfälle heißt das:
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
RCu RCu
+
Ri
eingeprägte
tatsächliche
Spannung U0
Spannung + -
zwischen den
Polen
Computertechnik 31 Jacob
Ausgewählte Grundlagen der Elektrotechnik
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.
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.
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
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 zu-
rückführen kann und so für eine Regelung einsetzen kann, dass (in einem bestimm-
ten 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.
Computertechnik 34 Jacob
Ausgewählte Grundlagen der Halbleitertechnik
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.
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.
Computertechnik 35 Jacob
Ausgewählte Grundlagen der Halbleitertechnik
Bild 1.35:
Bänder von Energieniveaus in Festkörpern
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
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).
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.
Computertechnik 38 Jacob
Ausgewählte Grundlagen der Halbleitertechnik
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
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
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
Bild 1.44: Räumliches und ebenes Modell der Elektronenpaar-Bildung eines Silizium-
Atoms
Die Struktur-Regelmäßigkeit, die in der Nah- und der Fernordnung in einem Silizium-
Einkristall 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).
Computertechnik 42 Jacob
Ausgewählte Grundlagen der Halbleitertechnik
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 Silizium-
schmelze oder dadurch, dass man die Wafer-Oberfläche an den gewünschten Stel-
len 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).
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-, Bor-
oder Selen-Atome.
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.
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 NMOS-
Transistors 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 nicht-
belichtete Fotoschicht bleibt erhalten und wirkt als Schutz beim nachfolgenden
Abtragen der Glasschicht, z.B. durch chemisches Ätzen (Bild 1.52).
Computertechnik 47 Jacob
Das Funktionselement Transistor
Das Alles ist die Vorbereitung für den Dotierungsprozess. Die so vorbereitete Wafer-
oberfläche wird einer Atmosphäre mit dem gasförmigen Dotierungsstoff ausgesetzt.
Die Bewegungsenergie der Gasatome bestimmt die Fortschrittsgeschwindigkeit des
Diffusionsprozesses.
Angenommen, man versucht einen Stromkreis zu bilden, der über die beiden n-
dotierten 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 p-
dotierten 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 weg-
gewanderten 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.
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 Hauptstrom-
kreis.
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 Darstel-
lung 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.
Die Schaltung realisiert einen Inverter, ein Beispiel für ein wichtiges Element einer
integrierten Schaltung.
Computertechnik 50 Jacob
Gefertigte MOS-Transistoren
Computertechnik 51 Jacob
Schaltungsbeispiel: SRAM-Speicherzelle
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.
Bei der Festlegung von Schaltungsfunktionen sind die Aufsichten zur Festlegung der
Leiterbahnen (Bild 1.61).
Computertechnik 52 Jacob
Schaltungsbeispiel: SRAM-Speicherzelle
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
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 Struktur-
elemente (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
Die Entwicklung der Transistordichte nach 2002 ist noch zügiger als in der Vergan-
genheit, 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
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ßgeb-
liche 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 Institu-
tionen 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.
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 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).
Computertechnik 57 Jacob
Die Entwicklung der Mikroprozessoren und der Speicher-ICs
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.
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
Prozessor Speicher
Ein/Ausgabe
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.
Die Festlegung der Befehle ergibt eine bestimmte Befehlsreihenfolge, also ein Pro-
gramm. 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 Pro-
grammablaufes 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
usw.
Prozessor letzter Befehl
1. Datenobjekt
usw.
i-tes Datenobjekt
usw.
letztes Datenobjekt
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
Computertechnik 60 Jacob
Die befehlsgesteuerte Arbeitsweise eines Computers
Hier erkennt man zum ersten Mal, wie man die Arbeitsgeschwindigkeit eines Com-
puters 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 Vorder-
grund stehen:
usw.
Prozessor letzter Ass.-Befehl
1. Datendefinition
usw.
In der Assemblersprache gelten
Datendefinition für Variablennamen als Identifikatoren
die Variable x für die Datenobjekte, die
usw. die Variablen realisieren.
letzte Datendefinition
Der beispielhafte Befehl zeigt, dass x der Name eines (in seinem Zustand veränder-
lichen) 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 Intel-
Prozessoren. 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).
Assembler-
Programm
1. Ass.-Befehl
usw.
add x,0004H
usw.
Prozessor letzter Ass.-Befehl
1. Datendefinition Prinzipielles Format
usw. Beispiel: 80x86
Variablen- Definitions- Initiali-
x dw name typ sierung
usw.
db=define byte
letzte Datendefinition 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. Definitionsanwei-
sungen 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
Maschinen-
Programm add x,0004H
1. Masch.-Befehl Operation= aktuellen Wert der Variablen x holen,
Konstante 4 addieren und das Ergebnis
usw. 1000 0001 0000 0110 als neuen Wert der Variablen eintragen.
. . zi . . Identifikator der Variablen x
0000 0100 0000 0000 Konstante= 4
usw.
Prozessor letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw. In der Maschinensprache gelten
Indizes (= Zeiger = Pointer)
letztes Datenobjekt auf die Datenobjekte als Identifikatoren
für die Datenobjekte, die
die Variablen realisieren.
Sehr wichtig ist nun, wie im Befehl der Bezug zum Datenobjekt hergestellt wird.
Computertechnik 63 Jacob
Das Maschinenprogramm
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.
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 vereinbar-
ten Basis) ansehen kann. Davon später noch ausführlich.
. . xi . . x dw
usw. usw.
Computertechnik 64 Jacob
Das Maschinenprogramm
Sobald man sehr komplexe Programme entwickelt, muss man das Gesamtproblem in
überschaubare Teilprobleme aufteilen. Dann hat man einen überschaubaren Auf-
gabenrahmen, 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).
Maschinen- Assembler-
Maschinen- Teilprogramme Teilprogramme
Gesamtprogramm
1. Masch.-Befehl 1. Masch.-Befehl 1. Ass.-Befehl
usw. usw. usw.
1000 0001 0000 0110 1000 0001 0000 0110
. . zi . . . . zi . . add x,0004H
0000 0100 0000 0000 0000 0100 0000 0000
usw. usw. usw.
Binder letzter Masch.-Befehl Übersetzer letzter Ass.-Befehl
(Linker) 1. Datenobjekt (Assembler) 1. Datendefinition
usw. usw.
. . xi . . x dw
usw. usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
Computertechnik 65 Jacob
Das Maschinenprogramm
Teilprogramme
Maschinen- in einer höheren
Maschinen- Teilprogramme Programmiersprache
Gesamtprogramm
1. Masch.-Befehl 1. Masch.-Befehl 1. Anweisung
usw. usw. usw.
1000 0001 0000 0110 1000 0001 0000 0110
. . zi . . . . zi . .
0000 0100 0000 0000 0000 0100 0000 0000 integer x;
usw. usw. usw.
Binder letzter Masch.-Befehl Compiler
(Linker) 1. Datenobjekt
usw. x = x + 4;
usw.
. . xi . .
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
Arithmetische Ausdrücke werden in entsprechende
Maschinenbefehlsfolgen umgesetzt.
. . xi . .
usw.
Datendefinitionen werden in entsprechende
Datenobjekte umgesetzt.
letztes Datenobjekt
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.
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 Speicher-
zelle 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.
i-tes Datenobjekt
usw.
Hauptspeicherende
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 1. Masch.-Befehl usw.
Speicherwortfomat usw.
1. Masch.-Befehl
1000 0001 0000 0110 . . zi . .
0000 0100 0000 0000 usw.
usw. usw.
1000 0001 0000 0110 letzter Masch.-Befehl 1. Datenobjekt
. . zi . . usw. . . xi . .
0000 0100 0000 0000 usw.
usw. letztes Datenobjekt
letzter Masch.-Befehl
1. Datenobjekt
usw. 64-Bit
Speicherwortfomat
. . xi . . 1. Masch.-Befehl usw.
usw.
usw.
1000 0001 0000 0110 . . zi . . 0000 0100 0000 0000 usw.
letztes Datenobjekt usw.
letzter Masch.-Befehl 1. Datenobjekt
usw.
. . xi . . usw.
letztes Datenobjekt
• 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 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 16-Bit
31 0
2 2 Speicherwortfomat
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 1. Masch.-Befehl
usw.
1000 0001 0000 0110
. . zi . .
0000 0100 0000 0000
usw.
letzter Masch.-Befehl
1. Datenobjekt
usw.
. . xi . .
usw.
letztes Datenobjekt
Computertechnik 69 Jacob
Merkmale des Programmablaufs
16Bit 32Bit
Speicherwortformat Speicherwortformat
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 Byte-
Adresse 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 1. Masch.-Befehl usw.
Speicherwortfomat usw.
1. Masch.-Befehl
1000 0001 0000 0110 . . zi . .
0000 0100 0000 0000 usw.
usw. usw.
1000 0001 0000 0110 letzter Masch.-Befehl 1. Datenobjekt
. . zi . . usw. . . xi . .
0000 0100 0000 0000 usw.
usw. letztes Datenobjekt
letzter Masch.-Befehl
1. Datenobjekt
usw. 64-Bit
Speicherwortfomat
. . xi . . 1. Masch.-Befehl usw.
usw.
usw.
1000 0001 0000 0110 . . zi . . 0000 0100 0000 0000 usw.
letztes Datenobjekt usw.
letzter Masch.-Befehl 1. Datenobjekt
usw.
. . xi . . 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 bestim-
men, 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.
Es muss Befehle geben, mit denen man den Programmablauf von Verarbeitungs-
ergebnissen abhängig machen kann.
Hauptspeicheranfang
usw.
usw.
usw.
Adresse des letzten letzter Masch.-Befehl
auszuführenden 1. Datenobjekt
usw.
Befehls
letztes Datenobjekt
usw.
Hauptspeicherende
Computertechnik 71 Jacob
Merkmale des Programmablaufs
letzter Ass.-Befehl
1. Datenobjekt
usw.
. . xi . .
letztes Datenobjekt
Bild 2.17: Beispiel für den bedingten Verzweigungsbefehl jump zero mit zwei Ablauf-
alternativen
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 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.
usw.
usw.
Adresse des letzten letzter Masch.-Befehl
auszuführenden 1. Datenobjekt
usw.
Befehls
letztes Datenobjekt
usw.
Hauptspeicherende
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.
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.
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).
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 usw.
äußeres Ereignis
mit programmsteuernder i-ter Befehl
Wirkung
usw.
letzter Befehl
1. Datenobjekt
usw.
i-tes Datenobjekt
usw.
letztes Datenobjekt
usw.
Hauptspeicherende
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).
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 Anforde-
rung (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 ange-
haltene Programm mit dem Befehl fortzusetzen, der anstelle der unterbrechenden
Verzweigung als nächster geholt und ausgeführt worden wäre.
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 Hol-
Aktionen warten müssen (mit Ausnahme des Widerrufes bei bedingten Verzweigun-
gen). 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 Programmier-
methoden, 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 Hauptspeicher-
zellen mit Befehlen,
die der Prozessor
aktuell bearbeitet hat.
Schnelle Erkennung,
ob ein Befehl
vorhanden ist
oder nicht.
vorhanden
nächsten Befehl nächsten Befehl Befehl
aus Hauptspeicher holen ausführen
holen nicht vorhanden:
nachladen Interrupt Request Meldung
abfragen:
da: spätere Fortsetzung
des aktuellen Programm-
ablaufes vorbereiten,
Verzweigung einstellen;
nicht da: weiter
Computertechnik 76 Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Die Einheit zum Holen der Befehle kann den Lesevorgang anstoßen, ohne zu unter-
scheiden, 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 „ver-
deckt“: 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.
Adressen der
Zeilen im verdeckten
Zwischenspeicher
verdeckter Zwischenspeicher (Cache)
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.
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 Zwischenspeicher
für Maschinen- für Datenobjekte
befehle
vorhanden vorhanden
nächsten Befehl nächsten Befehl Befehl gewünschtes Daten-
aus Hauptspeicher holen ausführen objekt aus Haupt-
holen nicht vorhanden: nicht vorhanden: speicher holen
nachladen nachladen
Interrupt Request
Abfrage und
Ausführung
Computertechnik 78 Jacob
Maßnahmen zur Verkürzung der Programmlaufzeit
Adressen der
Speicherwörter
Haupt-
speicher
Adressen der
Zeilen im verdeckten
Zwischenspeicher
verdeckter Zwischenspeicher (Cache)
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.
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-Program-
mierer 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 Mecha-
nismus, der das automatisch macht wie beim Cache-Konzept.)
Die Register werden auch Arbeitsregister genannt.
Haupt-
speicher
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 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.
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
Befehls-Cache
Zwischenspeicher
für Befehle
Interrupt Request
Abfrage und Instruction Level Parallelism
Ausführung
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 Daten-
austausch 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!
Computertechnik 82 Jacob
Der Einfluss der Anwendung auf die Aufteilung in grundsätzliche Einheiten
Prozessor Datenströme
Speicher
Prozessor Datenströme
Speicher
Computertechnik 83 Jacob
Der Einfluss der Anwendung auf die Aufteilung in grundsätzliche Einheiten
Host-Bus- Speichermodul-
Schnittstelle Schnittstelle
Befehlsstrom
Prozessor-
Speicher-
steckbares Schnittstellen steckbares
Prozessor- Datenströme steuerung Speicher-
modul
anpassung modul
Ein/Ausgabe-
Schnittstellen-
anpassung Ein/Ausgabebus-
Schnittstelle
steckbares verlötetes
Gerätesteue- Gerätesteue-
rungsmodul rungs-IC
gerätespezifische
Schnittstellen
Bild 2.32: Die konkreten zentralen Schnittstellen
Die Konkurrenz auf dem Computermarkt zwingt dazu, Standards für die Schnitt-
stellen 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.
Die Trennung von Befehls- und Datenstrom ist nur für Detailanalysen wichtig. Bei
übergeordneten Analysen fällt sie im Folgenden weg.
Computertechnik 84 Jacob
Elementare Datenübertragungsvorgänge
Host-Bus- Speichermodul-
Schnittstelle Schnittstelle
steckbares Prozessor-
Prozessor- Schnittstellen Speicher- steckbares
modul steuerung Speicher-
anpassung modul
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.
Computertechnik 85 Jacob
Elementare Datenübertragungsvorgänge
Host-Bus-
Schnittstelle
steckbares Prozessor-
Prozessor- Schnittstellen
modul
anpassung
Ein/Ausgabe-
Schnittstellen-
anpassung
Ein/Ausgabebus-
Schnittstelle
verlötetes
Gerätesteue-
steckbares rungs-IC
Gerätesteue-
rungsmodul
Schreib-Zugriff zum Ein Speicherwort mit Hilfe einer eindeutigen Adresse auswählen
Ein/Ausgabe-
Speicherbereich 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.
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 Auftrags-
parameter in die Steuereinheit bzw. zum Auslesen von Statusdaten aus der Steuer-
einheit gebraucht werden.
Der Datenfluss zwischen dem Prozessor und den Steuereinheiten der Ein/Ausgabe-
geräte ist also vernachlässigbar gegenüber dem Datenfluss zwischen den Steuer-
einheiten und dem Hauptspeicher.
Computertechnik 86 Jacob
Elementare Datenübertragungsvorgänge
Speicher- steckbares
steuerung Speicher-
modul
Ein/Ausgabe-
Schnittstellen-
anpassung
Ein/Ausgabebus-
Schnittstelle
verlötetes
Gerätesteue-
steckbares rungs-IC
Gerätesteue-
Die Initiative für einen Zugriff rungsmodul
liegt bei der dma-fähigen
Steuereinheit des Ein/Ausgabe- gerätespezifische
gerätes Schnittstellen
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 verschie-
dene 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
steckbares verlötetes
Gerätesteue- Gerätesteue-
rungsmodul rungs-IC
Ereignismeldungen=
Interrupt-Anforderungen
steckbares verlötetes
Gerätesteue- Gerätesteue-
rungsmodul rungs-IC
Das Auswahlproblem ist nur lösbar, wenn man die gleichzeitig anliegenden Anforde-
rungen 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
Prozessor-
modul mit
Interrupt-Controller
steckbares verlötetes
Gerätesteue- Gerätesteue-
rungsmodul rungs-IC
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
Prozessor-
modul
Sammel-
Interrupt-
Anforderung
Interrupt-Controller
steckbares verlötetes
Gerätesteue- Gerätesteue-
rungsmodul rungs-IC
Computertechnik 89 Jacob
Programmsteuernde Ereignismeldungen
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
Prozessor-
steckbares Speicher-
Prozessor- Schnittstellen steckbares
steuerung Speicher-
modul anpassung modul
Sammel-Interrupt- Interrupt-
Request Acknowledge
Request-Merkmal Ein/Ausgabe-
Schnittstellen-
ISA-Interrupt-Controller anpassung
ODER ISA
ISA-Bus
ISA
Int.
Requ.
steckbare ISA-
Gerätesteue-
rungseinheit
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 Kom-
patibilität zu den Vorgänger-Systemen wahren wollte.
Computertechnik 90 Jacob
Programmsteuernde Ereignismeldungen
Auf dem PCI-Bus sind vier Leitungen zur Übertragung von Interrupt-Anforderungen
(requests) vorgesehen: INTA, INTB, INTC und INTD (die signaltechnisch als avtive-
low-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.
Prozessor-
steckbares Speicher-
Prozessor- Schnittstellen steckbares
modul steuerung Speicher-
anpassung modul
Ein/Ausgabe-
Sammel- Schnittstellen-
Interrupt- anpassung
Request PCI AGP
PCI AGP
Die AGP-Steckkarte
ererbter ISA-Interrupt-Controller PCI
AGP steck-
bares Geräte-
kann die PCI-Interrupt-
mit PCI-Anpassung Anpassung
steuerungs- Requests INTA oder
INTA-INTD modul INTA und INTB
nicht- benutzen.
PCI-Interrupt-Req. PCI
Int.
Übertragung Requ.
Computertechnik 91 Jacob
Programmsteuernde Ereignismeldungen
Host-Bus- Speichermodul-
Schnittstelle Schnittstelle
Prozessor-
steckbares Speicher-
Prozessor- Schnittstellen steckbares
modul steuerung Speicher-
anpassung modul
Ein/Ausgabe-
Sammel- Schnittstellen-
Interrupt- anpassung
Request PCI AGP
PCI AGP
AGP steck-
ererbter ISA-Interrupt-Controller PCI
bares Geräte-
mit PCI-Anpassung Anpassung
steuerungs-
modul
INTA-INTD
nicht-
PCI-Interrupt-Req. PCI
Int.
Übertragung Requ.
Damit gibt es in der Host-Bus-Schnittstelle nicht nur die einzelne Signalleitung für die
Sammelinterrupt-Anforderung, sondern mehrere Signalleitungen für ein mehrprozes-
sor-fähiges Übertragungssystem für Interrupt-Anforderungen (Bild 2.43). Dieses
System muss in der Lage sein, die Merkmale von Interrupt-Anforderungen als Daten-
wörter zu übertragen.
Man hat die Möglichkeit, für jedes Bit des Merkmal-Wortformates je eine Signal-
leitung 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 Leitungs-
aufwand. 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-Bus- Speichermodul-
Schnittstelle Schnittstelle
Prozessor-
Speicher-
steckbares Schnittstellen steckbares
Prozessor- steuerung Speicher-
modul
anpassung modul
Mehrprozessor-fähiger
Ein/Ausgabe-
Bus zur Übertragung der ererbter Schnittstellen-
Interrupt-Merkmale Sammel- anpassung
(Interrupt-Requests und Interrupt- PCI AGP
Quittungen): APIC-Konzept Request Ein/Ausgabe-
PCI AGP Schnittstelle =
PCI-Bus
AGP steck-
ererbter ISA-Interrupt-Controller PCI
bares Geräte-
als universelle Schnittstelle,
mit PCI-Anpassung Anpassung
steuerungs- spezielle PCI-Schnittstelle (AGP)
modul
INTA-INTD für das Graphiksystem
nicht-
PCI-Interrupt-Req. PCI
Int.
Übertragung Requ.
gerätespezifische
Schnittstellen
Computertechnik 93 Jacob
Computerklassen
Computertechnik 94 Jacob
Computer in industriell produzierenden Anlagen
Die technische IT beschäftigt sich mit der Die kommerzielle IT beschäftigt sich
Entwicklung neuer Produkte und der mit der der Planung und Ausführung
Planung und dem Bau neuer Anlagen zu der Produktion in den Anlagen.
ihrer Produktion.
Computertechnik 95 Jacob
Computer in industriell produzierenden Anlagen
Das Segment für die Fertigung/Produktion soll genauer untersucht werden (Bild 3.4).
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
Jede Steuereinheit eines Produktionsmittels realisiert also ein Bündel von Einzel-
Funktionen, 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 Funktionsgruppen-
Steuerungen 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.
Das gleiche gilt für die Verbindung der Steuereinheiten mit den Computern der
Betriebsleitebene (Bild 3.6).
Computertechnik 98 Jacob
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
Ist- Stell-
wert wert
Regler
Soll-
wert Sollw ert
- Istw ert
Computertechnik 99 Jacob
Strukturmerkmale eines Feldbus am Beispiel des PROFIBUS
• Es muss für eine geeignete Auskopplung eines elektrischen Signals zur ange-
schlossenen 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äs-
sigbar groß sein, d.h. die Leitung muss wie „durchgeschleift“ wirken.
Die elektrische Verbindung zwischen Bus und Busterminal richtet sich nach dem
Anwendungsumfeld (Bild 3.10).
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.
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“.
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.
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.
Eine ganz andere Bautechnik ist die sog. Hutschienenmontage (Bild 3.14).
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 Flachbau-
weise, Bild 3.15) von den standort-variablen (Laptop, Notebook)
Das ist das Ergebnis einer geschickten Aufteilung der Funktionen dieser Computer
durch geeignete Schnittstellen (Bild 3.16).
Prozessor-
Speicher-
steckbares Schnittstellen steckbares
Prozessor- anpassung steuerung Speicher-
modul modul
Ein/Ausgabe-
Schnittstellen-
anpassung
Ein/Ausgabebus-
Schnittstelle
verlötetes
Gerätesteue-
steckbares rungs-IC
Gerätesteue-
rungsmodul
gerätespezifische
Schnittstellen
Bild 3.16: Die Funktionsgrenzen eines Motherboards (rote Markierung)
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 Floating-
Point-Variablen (real-Typ), weil naturgesetzlich bestimmte Größen nur in Ausnah-
mefä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.
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, Forschungs-
einrichtungen, 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 Language Category
164.gzip C Compression
175.vpr C FPGA Circuit Placement and Routing
176.gcc C C Programming Language Compiler
181.mcf C Combinatorial Optimization
186.crafty C Game Playing: Chess
197.parser C Word Processing
252.eon C++ Computer Visualization
253.perlbmk C PERL Programming Language
254.gap C Group Theory, Interpreter
255.vortex C Object-oriented Database
256.bzip2 C Compression
300.twolf C 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 Computer-
systems bei rechenintensiven 32-Bit-Anwendungen.
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 Hauptmerk-
mal angegeben.
CINT2000 (193):
Company Name System Name #CPU Base Peak
Advanced Micro Devic Epox 8KHA+ Motherboard, AMD Athlon 1 633 656
Advanced Micro Devic Epox 8KHA+ Motherboard, AMD Athlon 1 648 671
Advanced Micro Devic Gigabyte GA-7DX Motherboard, AMD Ath 1 605 629
Advanced Micro Devic Gigabyte GA-7DX Motherboard, AMD Ath 1 621 644
Dell Precision WorkStation 330 (2.0 GHz P 1 636 659
Dell Precision WorkStation 340 (1.8 GHz P 1 602 620
Dell Precision WorkStation 340 (2.0 GHz P 1 648 664
Dell Precision WorkStation 530 (2.0 GHz X 1 642 663
Intel Corporation Intel D850GB motherboard (1.9 GHz, P 1 619 634
Intel Corporation Intel D850GB motherboard (2.0 GHz, P 1 640 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
Bild 3.19: Ausführliches Einzelergebnis für ein System mit PENTIUM 4 (2 MHz)
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.
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.
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 Broad-
cast. Die Gruppe wird auch als Broadcast-Domäne bezeichnet.
LAN i-1
Switch i-1
LAN i
Switch i
LAN i+1
Switch i+1
Router
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.
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).
Anpas-
sung
Störspannungs-
Quelle
Ausgleichs-
- +
strom
Bild 4.6: Beispiel für eine Masseschleife: eine Störspannungsquelle treibt einen
Ausgleichsstrom durch die Masseschleife
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 entspre-
chenden 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.
Anpas-
sung
Datenpfad in der
Verteilereinheit
(Repeater)
Anpas-
sung
Übertrager
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.
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 FTP-
Kabeln (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.
Network-Interface-Controller
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.
V1
V in 5V Galvanisch
getrennte
PCI- NIC- V2 Spannungs-
Bus Back-Controller Masse erzeugung
Interface
RJ-45
PCI-
Bus
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.13: Beispiel für eine Manchester-codierte Bitfolge: Ideales und tatsächliches
Signal auf einem Koaxkabel
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 Über-
tragers 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.
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 Übertragungs-
mediums 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).
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.
Die sternförmige Verkabelung bewirkt, dass jeder Computer sein eigenes An-
schlusskabel hat und dass damit kein Benutzerkonflikt an einem gemeinsamen Kabel
entstehen kann (Bild 4.16).
Das übliche Verfahren der Adressumsetzung hat folgende Prinzipien: In jedem Computer
gibt es eine Datenstruktur zur Speicherung gesammelter Zuordnungen von Internet-
Adressen 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.
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
Deshalb hat man sich Verfahren ausgedacht, um diesen Nachteil zu umgehen. Das wird hier
nicht vertieft.
Rekonfigurierung im FDDI-Ring
Auch hier unterscheidet man zwischen der Phase der Zuordnung des Übertra-
gungsmediums 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.
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.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.
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.
Zentrale unterstützende
Prozessor zum Manage- Funktionen,
ment der adreßgerechten z.B. Bestimmung der
Weiterleitung der Pakete Benutzungsreihenfolge
des internen
Leitungssystems
Sender/Empfänger-
Paket- Funktionen mit Zwischen- Paket-
Zwischen- speicherung der Pakete Zwischen-
speicher für den angeschlossenen speicher
Teilnehmer
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 Zwischen-
speichern (Puffern), die es ermöglichen, den Übertragungspfad in drei Punkt-zu-
Punkt-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).
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 Teilnehmer-
bezogenen Schaltungen (mit ASICs realisiert) im Sinne der Anforderungen der
Datenpakete steuern kann.
4.6 Fastethernet-Controller
Hier sollen nur die Funktionen für die Signalübertragung interessieren (Bild 4.27).
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).
Durch das Scrambling wird eine Konzentration der Signalenergie auf ein schmales
Frequenzband mit hoher Amplitude verhindert, wie es bei langen, sich wieder-
holenden Bitmustern, wie beispielsweise beim Idle-Signal, ohne Scrambling auftreten
würde. Das Descrambling macht das Ganze wieder eindeutig rückgängig.
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.
Pro Taktperiode von 8 nsec werden also 2 Bit übertragen, was eine Bitrate von 250
MBit/sec pro Übertragungskanal bedeutet.
Wenn alle Transmitter senden, ergibt sich eine Summenbitrate von 2·250·4 MBit/sec.
Man gibt das üblicherweise als vollduplex 1 Gigabit/sec an.
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 technisch-
wissenschaftlichen 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
Prozessor-
Schnittstellen Speicher-
steckbares steckbares
steuerung
Prozessor- anpassung Speicher-
modul modul
Ein/Ausgabe-
Schnittstellen-
anpassung
als verlötete ICs
Ein/Ausgabebus-
Schnittstelle
als Adapterkarten gerätespez.
Anpassung bzw.
Steuerung
gerätespez.
Anpassung bzw.
Steuerung
gerätespezifische
Schnittstellen
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.
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
Standard PCI LAN-Ports Port
Serial ATA
RAID 1-4
COM1-
Port
Primary IDE-
RAID-Laufwerk
Secondary IDE-
RAID-Laufwerk
Primary
Serial ATA1-4 IDE-Laufwerk
Bild 5.4: Motherboard mit den aktuellsten Schnittstellen (ASUS P5AD2)
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
PCI PCI
Einheiten
PCIExpress
Einheiten
PCI
Express
Slots
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.
Division
Für eine stabile Schwingung des Ring-Oszillators gilt u.a. die im Folgenden disku-
tierte notwendige Bedingung.
Steuer-
spannung
OUTn
OUTp
Vcp, Vcn
Vcn
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.
Datenrate: Datenrate:
800 MT/sec 1064 MT/sec
Die Hauptspeicher-Schnittstelle
Die maßgebliche Institution zur Standardisierung der Schnittstelle der Speicher-
Module ist JEDEC (Joint Electronic Devices Engineering Council):
http://www.jedec.org
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.
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.
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.
Tx Rx
Rx Tx
Auf dem Motherboard ASUS P5AD2 wird der Chipsatz i925XE eingesetzt (Bild 5.10).
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.
Befehle
Host Mem Memory
Prozessor Daten
Inter- Inter- (Hauptspeicher)
face face
USB PCI
Inter- Inter-
face face
• Durch die vielen Pins der verschiedenen Interfaces ergäbe sich bei einer Ein-IC-
Lö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 Chipsatz-
version 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.
Grafik Hub
Inter- Inter-
face face
PCI USB
Inter- Inter-
face face
AGP Hub
oder Inter- RAID
PCIEx16 face
PCI
USB
Bus
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.
PCI
Bus USB
Auf diese Art ergibt sich, dass jeder Speicherzelle (also Hautspeicherzelle oder IO-
Zelle) 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
Front Prozessor Memory
Prozessor Mem
side Interface Controller Bus
Bus
Graphik Hub 0
Interface Interface Adresse Zelle
top RAID
PCI
Bus USB
Der Verlauf des Adresspfads bestimmt auch den Verlauf des Datenpfads, der parallel
dazu verläuft.
Front
Prozessor Prozessor Memory Mem Adress-
side Interface Controller Bus decoder
Bus
Graphik Hub
Interface Interface Adresse Zelle
Adress-
AGP Hub decoder
oder Inter-
PCIEx16 face RAID
Zelle Adresse Zelle
Adress- Hub
Disk-Interface IDE Adresse
Adress-
decoder Interface /ATA decoder
Int
contr
Zelle Adresse PCI USB
Adress- PCIE
x1 Interface Interface
decoder
PCI
Bus USB
Graphik Hub
Interface Interface
Hub
Inter-
face
Adress- Zelle
IDE
Hub Disk-Interface
decoder
Interface
/ATA
Int
contr
PCI USB
Interface Interface
Ein zusätzlicher Unterschied zum Datenverkehr des Prozessors ist, dass es beim
dma-Datenverkehr der IO-Controller nur einen einzigen Adressaten gibt: den
Hauptspeicher.
Memory
(Hauptspeicher)
Zelle
Adress-
Front decoder
Prozessor side Prozessor Memory Mem-
Bus Interface Controller Bus
Graphik Hub
Interface Interface
Laufwerk
dma-con- IDE/ATA Adress- Zelle
Hub troller decoder
Interface Int Disk-Interface
contr
IDE/ATA-Disk-
PCI USB Controller
Interface Interface
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.
Memory
(Hauptspeicher)
Zelle
Adress-
Front decoder
Prozessor side Prozessor Memory Mem-
Bus Interface Controller Bus
Graphik Hub
Interface Interface
Hub
Interface Int Disk-Interface
contr
PCI USB
Interface Interface
Graphik Hub
Interface Interface
Hub
Interface Int Disk-Interface
contr
PCI USB
Interface Interface
Damit sind immer noch nicht alle Belegungen erfasst. Bei den dma-Zugriffen ist noch
etwas Besonderes zu beachten. Wenn nämlich bei dma-Zugriffen Hauptspeicher-
zellen verändert werden, von denen im Augenblick eine Kopie im Cache im Prozes-
sor steht, dann würde ein Unterschied zwischen Cache und Hauptspeicher ent-
stehen. Diese Inkonsistenz darf nicht sein.
Es gibt verschiedene Verfahren, sie zu vermeiden. Eines davon ist das Snoop-
Verfahren.
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.
Graphik Hub
Interface Interface
Hub
Interface Int Disk-Interface
contr
PCI USB
Interface Interface
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.
Gibt man z.B. den dma-Transfers die höhere Priorität, dann würden die Prozessor-
Transfers verdrängt. Das bewirkt tendenziell eine Verlangsamung des Programm-
durchsatzes, 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 dma-
Datentransfers.
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.
Interrupt-Controller
Zu den Leistungen des Chipsatzes gehört auch die Bereitstellung des Interrupt-
Controllers, der in IO-Controller-Hub realisiert wird (Bild 5.23).
AGP Hub
oder Inter- RAID
PCIEx16 face
PCI
USB
Bus
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 beant-
wortet: 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, not-
wendig, 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 Fest-
legung 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.
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 Über-
tragungsfehler 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 gege-
ben 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.
FSB- FSB-
Transaktion
Pipeline Signale
Arbitertakte Transfer-Requesttakte Datentransfertakte
Arbiter FSB-
Requests
Adress- und Command
Command
control Adresse
Error-
Bus error,..
control
Snoop-
control Hit,..
Takt
Bild 6.2: Zeitplan gemäß dem Protokoll des FSB (Intel P6-Konzept)
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 Zu-
stand „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 Zu-
stand 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 Schaltungen, die die Aktionen der aufeinander folgenden Phasen ausführen,
bilden eine Kette besonderer Art. Es ist nicht so, dass eine Transaktion, deren Bear-
beitung 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 Trans-
aktion 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
Error-
control
Snoop-
control
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.
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.
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:
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.
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.
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 Arbitrie-
rungen 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.
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.
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-priority-
Signal aktivieren kann.
Das bedeutet, dass im Konfliktfall die dma-Transfers den FSB vor den Prozessor-
Transaktionen belegen.
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.
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.
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 Hauptspeicher:
Programm-Ausschnitte
virtuellen Konzepts sorgt dafür, dass
immer diejenigen Seiten im Haupt-
speicher stehen, die beim Programm-
ablauf aktuell sind. Dies als Ergänzung, Massenspeicher:
damit der Cache als Teil der Gesamt- Programme als Ganzes
hierarchie deutlich wird.
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
Register/ L2-
Execution Cache
Unit
L1-Cache Datenobjekte
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).
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.
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
111111111111111111111111000
vollständige Adressen Kopien
der cachebaren Zeilen der cachebaren Zeilen
000000000000000000000000101
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 festge-
stellt 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.
Dann kann man Untermengen von Adressen bilden, die alle den gleichen niederwer-
tigen 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 Adreßraum der HA Hauptspeicher
n 5 eingeteilt in cachebare Zeilen
cachebaren Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
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 Adreßraum der HA Hauptspeicher
n 5 eingeteilt in cachebare Zeilen
cachebaren Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
111
höherwertiger Adressteil 110
zur Identifizierung der 101
100
Kopie der cachebaren Nur eine einzige cachebare
011
Zeile 010 Zeile aus einem Set
001 hat im Cache Platz.
000
Bild 6.7: Je eine Cacheline pro Set: höherwertiger Adressteil plus Cacheline-Adresse
ist gleich Gesamtadresse der gespeicherten cachebaren Zeile
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 Zugriffs-
aktionen 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.
beispielhafte
Wiederholung
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
Cache
000000000000000000000000 111
000000000000000000000000 110
000000000000000000000000 101 Den Sets
000000000000000000000000 100 zugeordnete
000000000000000000000000 011
000000000000000000000000 010
Cachelines
000000000000000000000000 001
000000000000000000000000 000
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 Adress-
bits 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 Miss-
Ereignisses notwendig wird.
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.
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 Cachelines
als Anwesenheits-Merkmal 011 als Hauptspeicher
010 -ausschnitte
001
000
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 Level1-
Cache (Bild 6.10).
000000000000000000000000111
110
000000000000000000000000101
100
011
010 Den Sets im
001 Hauptspeicher
000000000000000000000000000 zugeordnete
Cachelines im
L2-Cache L2-Cache
111
110
101
100
011
010
001
000
Den Sets im
L2-Cache
L1-Cache zugeordnete
1 Cachelines im
0 L1-Cache
Bild 6.10: Aufteilung des Cache in einen setadressierten L2- und L1-Cache
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
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 Adreßraum der HA Hauptspeicher
n 5 eingeteilt in cachebare Zeilen
cachebaren Zeilen
111111111111111111111111111
110
101
100
011
010
001
111111111111111111111111000
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
L2-Cache
111
110
101
100
011
010
001
000
L1-Cache
1
0
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 Cache-
Zeile vor. Man spricht dann von einem Mehrwege-Cache.
000000000000000000000000111
110
000000000000000000000000101
100
011
010
001
000000000000000000000000000
2-Wege-Cache
111
110
101
100
011
010
001 Zwei cachebare
000 Zeilen aus einem Set
haben im Cache Platz.
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.
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 LRU-
Algorithmus von Caches mit mehr als zwei Wegen ist zwangsläufig komplexer.
RAMs speichern Daten flüchtig, d.h. sie speichern mit Hilfe einer elektrisch instabilen
Struktur. Eine Abschaltung der Stromversorgung bedeutet den Verlust der gespeicher-
ten Daten. Man unterscheidet RAMs nach dem Typ ihrer elementaren Speicherzellen.
Die elementare Einheit eines DRAMs ist der Kondensator, dessen Ladezustand über
den gespeicherten Binärwert entscheidet.
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.
Transistor als
Schalter
Kondensator
Auswahlleitung
Datenleitung
Auswahl-Leitung 1
Auswahl-Leitung 2
Auswahl-Leitung zmax-1
Csp
Auswahl-Leitung zmax
Auswahl-Leitung 1
nicht
geladen geladen geladen
Auswahl-Leitung 2
Auswahl-Leitung zmax-1
Csp
Auswahl-Leitung zmax
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)
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 ver-
stärken auf die positive Spannungsdifferenz Vcc bzw. die negative Spannungsdifferenz
–Vcc.
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).
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.
Steue- Vcc/2
rung des
Vor- Vorlade-
ladens Schaltung
Zeile 1
Zeile 2
Zeilen-
dekoder
Zeile zmax-1
Zeile zmax
Spaltendekoder
Bild 7.4: Kern-Struktur eines DRAMs (x1Bit-Struktur) mit Speichermatrix, Dekoder-, IO-
Datenpfad- und Vorlade-Schaltungen
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
Steue- Vcc/2
rung des
Vorlade-
Vor-
Schaltung
ladens
Zeile 1
Zeile 2
Zeilen-
dekoder
Zeile zmax-1
Zeile zmax
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).
Vcc/2
Zei
len
de vervielfachte
ko Speichermatrizen
der mit Datenpfad-
schaltungen
Spaltendekoder
Die Kernstruktur wird um die Interfaces zur IC-Pin-Schnittstelle ergänzt (Bild 7.7).
n/2
2 Spalten adressiertes
MAn/2-1 Speicher-
R HAn-1
element
. e .
. g . n/2
Zeilen-
. i 2
s . adreß-
. Zeilen
t . decoder
MA0 e HAn/2
r
RAS
CAS Lese-/Schreib-
Verstärker
Din Puf-
fer Puf- Dout
IO-
R HAn/2-1 Schaltung fer
e .
g
. Spalten-
i adreß-
s .
. decoder
t
e HA0
r
WE WE
Control
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
gültig = neuer Speicherzugriff möglich
gültig Dout
Am häufigsten kommt der Zugriff zu einer cachebaren Zeile vor, also vier
Speicherzugriffe als Burst ohne Zeilenwechsel (Bild 7.9).
Dout
Ein Flip-Flop ist ein binäres Speicherglied, das durch eine rückgekoppelte
Transistorschaltung realisiert wird.
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 DRAM-
Speicherelement, 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
2 Spalten Speicher-
MAn-1=HAn-1 element
. Flip-Flop
Zeilen- n/2
. adreß- 2
. decoder Zeilen
MAn/2=HAn/2
Din Schreib-
Verstärker Dout
Lese-
MAn/2-1=HAn/2-1 Verstärker
. Spalten-
. adreß-
. decoder
MA0=HA0
WE=L,CS=L
WE
CS WE-CS WE=H,CS=L
Control
Activ- Read-
Command Command
Command-
Interface
tRCD CL
Daten-
Interface
Takt
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 Spaltenadres-
sierung 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).
Zeilen- Spalten- Spalten-
adr. adr. adr.
tRCD CL CL
Command-Wort
Takt
Activ- Read-
Command Command
Command-
Interface
tRCD CL
Daten-
Interface
Takt
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 Read-
Command für den nachfolgenden Zugriff auf b erst dann wirksam werden, wenn die
Kettung an den vorhergehenden Datentransfer möglich ist.
Spei- Spei- Spei- Spei-
cher- cher- cher- cher-
bank bank bank bank
adr. adr. adr. adr.
a b a b
Zeilen-Zeilen-Spalten- Spalten-
adr. adr. adr. adr.
R
Zeilen- e
g Das Speicherbank-
oder Zeilen-
i Adresswort gibt die Auswahl
Spalten- s adreß-
decoder der Speicherbank vor.
Adress t
e
-wort r
4 D atenbits
bei x4Bit-
Struktur
R
e
g Spalten-
i adreß-
s decoder
t
e
r
Steuereinheit
Command-Wort Takt
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 Zeilen-
bzw. Spaltenauswahl entstehen größere Command-Übertragungslücken und damit
mehr Variationsmöglichkeiten bei der Zusammenstellung der Command-Folgen.
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)
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:
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.
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)
Für ein transferiertes Bit bei SDR-SDRAMs werden bei DDR(1)-SDRAMs zwei und bei DDR2-
SDRAMs 4 übertragen. Deshalb spricht man auch von 1Bit-Fetch bzw. 2Bit-Fetch bzw. 4Bit-
Fetch.
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 x8Bit-
Struktur.
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.
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.
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:
Zum direkten Vergleich wird in Tabelle 7.2 die 240-polige Schnittstelle für DDR2-
Speichermodule zusammengefasst.
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.
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.
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-Lese-
Register übertragen werden. Beim Schreiben müssen zuerst vier 8Bit-Wörter in das 4Bit-
Prefetch-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.
Speicherbank 3
R
e Speicherbank 2
R g
i
e
s Speicherbank 1
R g
i t
high significant bit e e Speicherbank 0
g s
FSB: A31 R
i t r
e e
g s
t r
i
s e
Zeilen- t r
adresse e
r
R
e
R g
i
Speicherbank- e
s
g
adresse R
i t
e e
R g s
t r
Spalten- e i
g s e
adresse i t r
s e
t r
FSB: A3 e
low significant bit r
andere Steuersignale
FSB-
Steuereinheit
adresse
IC-Funktionsgrenze
Command-Wort Takt
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.
Spaltenadressen
Das Adressformat, das diese enthält und damit die Gesamtadresse für die Adressierung von
Bytes angibt, wird oben zur Unterscheidung Hostadresse genannt.
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 (Einzel-
datenverkehr).
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 Aneinander-
reihung fest.
Wenn mehrere Busmaster einen gemeinsamen Bus als gemeinsames Über-
tragungsmedium nutzen, dann wird es zu Benutzerkonflikten kommen, da jeweils
nur einer das Medium benutzen kann. Man wird also eine Benutzerregel nach Vor-
rang festlegen, die den Konflikt löst. Auf dieser Basis kommt es dann zu einer
Reihenfolgebildung der Übertragungen der Master.
Die Arbitrierung
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 Memory-
Controller-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.
Initiator Target
PCI-Interface im
I/O-Controller
Prozessor
PCI-Arbiter
CPU PCI0
PCI5 PCI1
Haupt-
Eingeschobener
PCI0 PCI0
abfrage-
PCI5 PCI1 PCI5 PCI1
PCI3 PCI3
zyklus
PCI4 PCI2
PCI0
PCI5 PCI1
PCI4
PCI PCI2
PCI3
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 PCI-
Controller weitergegeben, der es von Controller zu Controller weitergibt.
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 /GNT-
Signals durch den Arbiter feststellen. Dann beginnt die Datenübertragungsphase.
Die Datenübertragung
Bild 8.4 stellt die Einzelwort-Datenübertragung an einem Beispiel dar.
PCI-
Interface
/Grant
64 Bit
Extension Adress-
wort Daten-
Atomic Access Adress/ wort
/DEVSEL Daten-
Clock Control
IDSEL Interface Command-
Control Command- wort
/REQ Interface
/GNT Control- Byte-
Arbitration Interface auswahl
CLK /Frame
Test Control
/RST vom Initiator
System Control /INTA
/INTB
/Device
Select
/INTC
vom Target
Error Report
/INTD
Interrupt
Control Takt
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.
PCI-
Interface
PCI-Arbiter
Interface
Request/
Grant/
Adress-
wort Daten-
Adress/ wort
Daten-
Interface Command-
Command- wort
Interface
Control- Byte-
Interface auswahl
Frame/
vom Initiator
Device/
Select
vom Target
Takt
Nach einer Datenübertragungsphase sollte der Bus für andere Teilnehmer freige-
geben 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.
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 Übertra-
gungsaufträ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 Betriebs-
systems, 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 Control-
Register 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.
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.
PCI- PCI- PCI-
Controller 1 Controller 2 Controller n Interrupt-Controller
INTA1 INTA2 INTAn
V V
PCI-Interrupt-Sharing
Die Problematik der Offenbarung des Interrupt-Requests, der nach einem Sammel-
Interrupt 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.
Diese Routine hat die Aufgabe, das Statusregister jedes PCI-Controllers abzufragen,
der an der Interrupt-Request-Leitung einen Request auslösen kann. Das Status-
register 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
CPU
PCI Express
Graphics Memory Memory
Hub
ATA serial USB 2.0
I/O Local
HDD Hub I/O
PCI Express
Mobile
Docking
GByte
Switch PCI
Ethernet
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 Switch-
Einheiten 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).
HSOn HSIp
Tx Rx
HSOp HSIp
HSIp HSOn
Rx Tx
HSIp HSOp
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.
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 PCI-
Express
Wenn ein Datenpaket auf den Datenleitungen physikalisch übertragen wird
(physikalische Übertragungsebene, physical layer), dann ist das eine Punkt-zu-
Punkt-Ü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-Punkt-
Daten 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.
8.3 PCI-X
PCI-X verfolgt weiter das Konzept der wortweisen Übertragung auf einem Bus
(Bild 8.9).
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.
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 für die Auflösung des Wartezustandes maßgebliche Ereignis ist die Fertig-
meldung. Jede dma-fähige Einheit, die selbständige einen Übertragungsauftrag
abwickelt, kann jederzeit damit fertig werden und eine Fertigmeldung erzeugen.
Bei einer vollständigen Kaskade wären die Ausgänge von 8 Grund-Einheiten auf die 8 Ein-
gänge der zweiten Stufe geschaltet, so dass 64 Requests verarbeitet werden könnten.
IRQ8 IRQ0
IRQ9 IRQ1
IRQ10 IRQ2
IRQ11 O IRQ3 O
D D INTR
IRQ12 E IRQ4 E CPU
IRQ13 R IRQ5 R
IRQ14 IRQ6
IRQ15 IRQ7
Erweiternder Basis-
Interrupt Interrupt- Sammel- Interrupt Interrupt- Sammel-
Request Controller Interrupt- Request Controller Interrupt-
Register (slave) Request Register (master) Request
IRQ1
Im PIC-Konzept legt man die Rangfolge gemäß dem nebenstehenden
IRQ8
Schema fest. IRQ0 hat die höchste Priorität. Durch das Einschieben der
IRQ9 Slave-Kette ergibt sich folgende Prioritätsreihenfolge: IRQ0, IRQ1, IRQ8,
IRQ10 ..., IRQ15, IRQ3,.., IRQ7 mit insgesamt 15 Interrupt-Requests.
IRQ11
IRQ12
IRQ13
IRQ14
IRQ15
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Man braucht eine zusätzliche Struktur, die erkennbar macht, welche Interrupt-
Service-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.
IRQ14
IRQ15
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
Die Entwicklung der PC-Technik brachte es mit sich, dass bestimmte Interrupt-Requests
IRQi für bestimmte Anwendungsfunktionen reserviert wurden (Bild 8.13).
Bild 8.13:
Zweckbestimmung „geerbter“ Interrupt-Requests
generic = allgemein verwendbar, also für PCI-Interrupt-Requests verwendbar
(Ende der Vertiefung)
15141312 1110 9 8
7 6 5 4 3 1 0
15141312 1110 9 8
7 6 5 4 3 1 0
IRQ9 entsteht und aktiviert sein Bit in IRR. Der Vergleich 15141312 1110 9 8
mit der Referenz ergibt, dass er eine höhere Priorität hat. 7 6 5 4 3 1 0
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 15141312 1110 9 8
deaktiviert. Die Service-Routine für IRQ13 wird durch den 7 6 5 4 3 1 0
Start derjenigen für IRQ9 unterbrochen.
IRQ11 entsteht und setzt sein Bit in IRR. Der Vergleich 15141312 1110 9 8
mit der Referenz ergibt, dass seine Priorität kleiner ist. 7 6 5 4 3 1 0
Damit hat er keine Berechtigung zur Unterbrechung. Es
ergibt sich die (nach fallender Priorität geordnete)
Warteschlange: IRQ11 (nicht bedient) und IRQ13 15141312 1110 9 8
(bedient/unterbrochen). 7 6 5 4 3 1 0
IRQ4 entsteht und setzt sein Bit in IRR. Der Vergleich 15141312 1110 9 8
mit der Referenz ergibt, dass seine Priorität kleiner ist. 7 6 5 4 3 1 0
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
Die Service-Routine für IRQ9 ist fertig, d.h. das Bit von 15141312 1110 9 8
IRQ9 in ISR wird deaktiviert. Damit kommt es zur Bildung 7 6 5 4 3 1 0
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 15141312 1110 9 8
Warteschlange IRQ11, IRQ4. 7 6 5 4 3 1 0
Das diskutierte Beispiel zeigt, dass nieder priore Interrupt Requests durch höher priore belie-
big 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 gewis-
sen 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.
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.
EAX, EBX, ECX und EDX sowie ESI und EDI können als EAX
Arbeitsregister für Operanden oder als Indexregister für Zeiger
(Pointer auf Variable) verwendet werden. EBX
ECX
Das Stackpointer-Register wird ergänzt durch das spezielle
EDX
Basepointer-Register, das der Rettung des Stackpointer-Zustandes
unmittelbar nach einem Programm-Kontext-Wechsel dient.
ESI
Für die Rettung wird ein Speicher mit einer besonderen Zugriffstechnik verwendet,
der Stack. Anfangszustand des Stackpointer
= Basisadresse + Länge des Stack
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
automatisches
Zu Beginn der Benutzung des Stacks Return
Retten Instruction Pointer
zeigt der Stackpointer auf den obersten Push PSW Pop PSW
Rand des Stack. PSW
Push AX Pop AX
Der Stackpointer wird dekrementiert AX
Push BX Pop BX
und das erste Wort gespeichert. BX
Die nächsten Wörter werden auf die Push CX Pop CX
CX
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.
Die Interrupt-Service-Routine wird mit
dem Return-Befehl verlassen, und das
unterbrochene Programm wird fortge-
setzt.
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.
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.
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 Arbeits-
weise 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 Ziel-
Prozessor 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).
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 Übertragungs-
pausen.
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 5
Local Rückzug
APIC 1 0 0 0 0 1
Local Rückzug
APIC 2 0 0 0 1 0
IOAPIC 0 0 0 1 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)
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 Über-
tragungsprotokoll 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.
Aus der Sicht der Software stellt sich die Schnittstelle als eine Gruppe von drei 8Bit-
Registern 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 Chip-
satzes realisiert.
I/O-Adressen:
Basisadresse 1 19
+0 D0
0 D1
1 D2
2 D3 Datenwort
3 D4
4 Übernahme-Moment
D5
5 D6
6 D7 ACK#
Handshake mit Pulsen
7 ACK#
Basisadressse. BUSY
+1 Paper End BUSY
Verzögerung,
0
z.B. wenn die Ausführung
1 eines carriage return
2 abzuwarten ist.
3 Error#
4
5
18 36
6
7
Basisadresse STROBE#
+2 STROBE#
0 Automatic Line Feed
1 INIT# Initialization
2
Drucker Select
3 Interrupt
4 Request
5
6
7
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.
I/O-Adressen:
Basisadresse
+0
Empfänger-Puffer- Empfänger-Schiebe- Received Data
Register register
DCE > DTE
+3 Datenformat- Empfänger-
Register Steuerung
13
+0 Divisor Teiler-Latch- 25
Latch Register (LSB)
Access Baudraten-
+1 Bit Teiler-Latch- Generator
=1 Register (MSB) Signal
+4
Ground
Modem-Steuer- 5
Register 9
Modem- Modem-
+6 Steuerung Signale
Modem-Status-
Register 6
1
+1 Interrupt-Aktiv- 14
1
Register Interrupt-
+2 Steuerung
Interrupt-ID- Stifte am
Register PC = DTE
Interrupt Der PC ist üblicherweise
Request das Data T erminal Equipment,
Scratchpad-
Register das angeschlossene Gerät ist
das Data Carrier Equipment.
+5 Serialisierungsstatus-
Sendersteuerung
Register
plus
Start
signal bit 0 0 0 1 0 1 0 0
ground Stop
beliebig lange Pause
minus
bit bis zum nächsten
minus/plus-Übergang
ASCII Code Parity
bit
Bild 9.3: Asynchrone serielle Übertragung eines Beispiel-Wortes gemäß RS232
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“.
Ho st Computer
Hu b Ra ng 0
Hu b Mo dem Hu b Ra ng 1
Hu b Lautsprecher Drucke r Ra ng 2
Keyboard Mo use
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 nitor
Internal Hub Lautsprecher Drucke r
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.
Ho st Computer
Root Hub
Mo nitor
Internal Hub Lautsprecher Drucke r
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: 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
1,5K +/- 5%
D+ D+
Host Gerät
oder Typ A Typ B oder
Hub Hub
D- D-
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.
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-Speed-
Gerä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).
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 Belas-
tungsfall 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
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 empfan-
genen 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
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
Bitstrom
NRZI-Signal
Bitstrom
Stuffed 0-Bit
NRZI
Der USB ist ein getaktetes Übertragungssystem. Wie bei jedem getakteten Über-
tragungssystem 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.
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.
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 frame i+1
Nach dem Beginn eines Frames werden zuerst die Geräte mit zeitkritischem Bedarf
bedient (isochronous transfer).
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-Multiplex-
Verfahrens.
Der Teil jedes Frames, der auf die Bedienung der bevorzugten Sender-Empfänger-
Paare 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.
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).
Zeit
A 5 i 1 D
00000001 12000-35 = 11965 Idle-Takte
Hexa dual Hexa “0”
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.
Host
SOF Iso-OUT-transaction Iso-IN-transaction Interrupt Interrupt
OUT-transaction IN-transaction
Zeit
Device
Bild 9.18: Beispielhafter Ablauf von Transaktionen
• Der USB-Controller im Host-Computer ist die Steuerzentrale des USB-
Systems. 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).
Kettung der Iso-Deskriptoren und der Header der “Interrupt-”, Control- und Bulk-Queues
Liste der Zeiger
zu den Auftrags-
ketten der Frames Kettung der Kettung der Kettung der
11 “Interrup t”- Contr ol- Bulk-
2 Ze iger Deskriptoren Deskriptoren Deskriptoren
Z eiger zur
Auftragskette Iso-Auftrags- Iso-Auftrags-
des Frame i-1 beschreibung beschreibung
Z eiger zur
Auftragskette Iso-Auftrags- Iso-Auftrags- “Interrupt” i.2 Control i.x+1 Bulk i.y+1
des Frame i+1 beschreibung beschreibung -Auftrags- Auftragsbe- Auftra gsbe-
besch reibu ng schreibung schrei bung
Zeit
• 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 USB-
Treiber-Programmierer moderner Betriebssysteme ist es das UHCI (universal host
controller interface).
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
• 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.
Man unterscheidet das eigentliche Laufwerk mit dem Speichermedium von dem Lauf-
werkscontroller. 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).
Bild 9.23 veranschaulicht ein beispielhaftes Ensemble von Aktuator, Kamm und
Schreib/Lese-Köpfen.
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.
Das Prinzip der durch eine Spule bestimmten Kopf-Struktur kann man im Bild 9.25
erkennen.
Das Speichermedium
Das Speichermedium ist eine kreisförmige Platte, die beidseitig mit magnetisierba-
rem 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).
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.
Betrachtet man den Vorgang des Schreibens bzw. Lesens eines einzelnen Kopfes
ergibt sich ein prinzipieller zeitlicher Verlauf wie in Bild 9.28.
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.
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).
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.
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
3
4
5
6
usw.
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.
Die Magnetisierung der inneren Spur stellt bei der herkömmlichen Formatierung die
höchste Anforderung an das Speichermaterial. Da die magnetisierbare Speicher-
schicht ü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.
Das setzt sich dann über die folgenden Spuren sinngemäß fort. Es bilden sich
Spurzonen mit gleicher Sektorisierung.
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/Daten-
Information zu unterscheiden.
Nur in der innersten Zone liegt die Serverinformation unmittelbar vor dem Daten-
Sektor. 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
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
Laufwerk/ se 1F6H 4+4 R/W
Statusregister 1F7H 8 R
Commandregister 1F7H 8 W
Statusreg. alternativ 3F6H 8 R
Ausgaberegister 3F6H 8 W
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 SCSI-Schnittstelle wird als Vertiefung für Interessierte angeboten, kein Prüfungsstoff:
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.
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.
50 polige
Stecker-
Schnittstelle
des SCSI II
68-polige
Stecker-
Schnittstelle
des SCSI III
SCSI-Protokoll
BSY
SEL
C /D
I/O
MSG
R EQ
ACK
ATN
RST
DATA
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).
BSY
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
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.
6 7
4 5
2 3
0 1
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.
Die Arbitrierungsphase endet damit, dass ein Initiator den Bus gewonnen hat. Dieser
beginnt mit der Selection Phase.
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 über-
nehmen 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).
BSY
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
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.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
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
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
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
Zum Abschluss wird noch eine Command Complete Message vom Target an den
Initiator gesendet.
BS Y
SEL
C/D
I/O
MSG
REQ
ACK
ATN
RST
DATA
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.
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 Sektor-
nummer aus.
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.