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