-
Die
Erfindung betrifft das Reservieren von Raum für Erweiterungskarten.
-
Wenn
ein Computersystem 1203 mit einer Architektur mit einem
Peripheral Component Interconnect (PCI) Bus hochfährt, lokalisiert
eine zentrale Verarbeitungseinheit (CPU) 1207 PCI-Busse 1217 und
PCI-Vorrichtungen (beispielsweise PCI-PCI-Brückenschaltungen 1215)
des Computersystems 1203 und bestimmt den Typ jeder PCI-Vorrichtung.
Die PCI-Vorrichtung spricht erst dann auf Speicherraum- und Eingabe-/Ausgabe
(I/O)-Raumadressierung auf ihrem PCI-Bus 1217 an, wenn
der Konfigurationsraum der PCI-Vorrichtung durch die CPU 1207 über Konfigurationszyklen
programmiert wird, die einen PCI-Vorrichtungs-Kennungssatz zum Adressieren
der PCI-Vorrichtung verwenden.
-
Der
PCI-Vorrichtungs-Kennungssatz identifiziert eindeutig jede PCI-Vorrichtung
und enthält
eine eindeutige ganzzahlige Bus-Nummer (die den PCI-Bus 1217 identifiziert,
mit dem die PCI-Vorrichtung verbunden ist) sowie eine ganzzahlige
Vorrichtungs-Nummer.
Die Vorrichtungs-Nummern sind eindeutig PCI-Vorrichtungen zugeordnet,
die mit einem gemeinsamen PCI-bus 1217 gekoppelt sind.
Der PCI-Vorrichtungs-Kennungssatz enthält des Weiteren eine ganzzahling
Funktions-Nummer, die verwendet wird, um PCI-Funktionen der PCI-Vorrichtung
zu adressieren.
-
Die
CPU 1207 lokalisiert PCI-Busse 1217 und -Vorrichtungen
beim Hochfahren durch Abtasten oder "Durchlaufen" (walking) des Computersystems 1203.
Die CPU 1207 weist die eindeutige Bus-Nummer jedem PCI-Bus 1217 zu,
der während
des Abtastens des Computersystems 1203 gefunden wird. Die
CPU 1207 weist Speicher- und I/O-Raum für jede PCI-Vorrichtung zu und
programmiert unter Verwendung der Konfigurationszyklen den Konfigurationsraum
jeder PCI-Vorrichtung mit den Adressen des für die PCI-Vorrichtung zugeordneten
Speicher- und I/O-Raums. Wenn die Konfigurationszyklen abgeschlossen
sind, kann dann jeder PCI-Vorrichtung I/O- und/oder Speicher-Raum
zugewiesen werden, und jede PCI-Vorrichtung spricht dann dementsprechend
auf Speicherraum- und
I/O-Raum-Buszyklen an.
-
Die
Nummerierung der PCI-Buss 1217 bildet einen hierarchischen
Baum 1205. Dem primären PCI-Bus 1217a,
d. h. dem, der sich am nächsten
an der CPU 1207 befindet, einem anderen PCI-Bus 1217 befindet
(d. h., in PCI-PCI-Brückenschaltungen 1215 gemessen
weiter von der CPU 1207 entfernt), muss eine höhere Bus-Nummer
haben als der PCI-Bus, der sich weiter vorn befindet (d. h., in
PCI-PCI-Brückenschaltungen 1215 gemessen,
näher an
der PCU 1207).
-
GB 2202348 offenbart ein
Computersystem mit Erweiterungssteckplätzen an einem Motherboard.
Leiterplatten sind so eingerichtet, dass sie in die Steckplätze bzw.
Schlitze passen und mit einem Bus verbunden werden. Jeder Steckplatz
weist eine separate Identifizierungsleitungseinrichtung auf, die
den Steckplatz mit einer Identifizierungsnummer versieht. Jedem
Steckplatz wird ein vordefinierter Adresscodebereich in einem System
mit Speicherbereichszuordnung (memory mapped system) verliehen.
-
In "PCI System Architecture" von Shanley and
Anderson, November 1995, wird die Verwendung von Bus-Kennungen zum
Zuweisen von Adressen erörtert.
-
Im
Allgemeinen stellt die Erfindung in einem Aspekt ein Verfahren zur
Anwendung in einem Computersystem mit Bussen dar, die durch Bus-Kennungen
identifizierbar sind und einen Erweiterungskarten-Steckplatz aufweisen,
der fähig
ist, an einen der Busse angeschleisen zu werden und der eine Erweiterungskarte aufnehmen
kann. Das Verfahren schließt
Zuordnen der Bus-Kennungen zu den Bussen entsprechend einer Zuordnungs- bzw. Zuweisungsreihenfolge,
Bestimmen, ob eine Erweiterungskarte vorhanden ist, auf die über den
Steckplatz zugegriffen werden kann, und falls nicht, Reservieren
wenigstens einer der Bus-Kennungen für den Steckplatz in Übereinstimmung
mit der Zuweisungsreihenfolge ein.
-
Ausführungen
der Erfindung können
einen oder mehrere der folgenden Punkte einschließen. Auf
die Erweiterungskarte kann nicht zugegriffen werden, da der Steckplatz
von dem Bus (beispielsweise einem PCI-Bus) getrennt ist, oder sie
nicht in den Steckplatz eingeführt
ist. Das Bestimmen kann einschließen, dass bestimmt wird, ob
Kommunikation mit einer Busvorrichtung auf der Karte möglich ist.
Das Verfahren kann einschießen,
dass zu einem späteren
Zeitpunkt bestimmt wird, ob eine Karte vorhanden ist, die über den
Steckplatz zugänglich
geworden ist, und wenn dies der Fall ist, einem Bus auf der Karte
eine reservierte Bus-Kennung zugewiesen wird. Das Verfahren kann
einschließen,
dass ein zusätzlicher
Bus auf der Erweiterungskarte gefunden wird, wenn auf die Karte
zugegriffen werden kann, und eine der Bus-Kennungen dem zusätzlichen Bus
entsprechend der Zuweisungsreihenfolge zugeordnet wird. Das Verfahren
kann Programmieren eines griffen werden kann, und eine der Bus-Kennungen
dem zusätzlichen
Bus entsprechend der Zuweisungsreihenfolge zugeordnet wird. Das
Verfahren kann Programmieren eines Konfigurations-Speicherraums
einer Brückenschaltung
einschließen,
die den zusätzlichen
Bus mit dem Bus verbindet, der mit dem Steckplatz verbunden ist.
Das Verfahren kann einschließen,
dass Speicherplatz für
den Steckplatz reserviert wird, wenn auf die Erweiterungskarte nicht
zugegriffen werden kann. Das Verfahren kann einschließen, dass
zu einer späteren Zeit
bestimmt wird, ob eine Karte vorhanden ist, die über den Steckplatz zugänglich geworden
ist, und, wenn dies der Fall ist, Speicherraum oder I/O-Raum für den Schlitz
in dem reservierten Speicherraum und/oder I/O-Raum für den Steckplatz
zugeordnet wird. Das Verfahren kann einschließen, dass I/O-Raum für den Steckplatz
reserviert wird, wenn auf die Erweiterungskarte nicht zugegriffen
werden kann. Das Bestimmen kann bei anfänglicher Konfiguration des
Computersystems stattfinden.
-
Im
Allgemeinen stellt die Erfindung in einem weiteren Aspekt ein Computersystem
dar, das Busse, die durch Bus-Kennungen identifiziert werden können, und
einen Erweiterungskarten-Steckplatz aufweist, der eine Erweiterungskarte
aufnehmen kann und mit einem der Busse verbunden werden kann. Das
Computersystem weist einen Mikroprozessor und einen Speicher auf,
mit dem der Mikroprozessor so konfiguriert wird, dass er die Bus-Kennungen
den Bussen entsprechend einer Zuweisungsreihenfolge zuordnet, bestimmt,
ob eine Erweiterungskarte vorhanden ist, auf die über den
Steckplatz zugegriffen werden kann, und, falls nicht, wenigstens
eine der Bus-Kennungen für
den Steckplatz in Übereinstimmung
mit der Zuweisungsreihenfolge reserviert.
-
Zu
den Vorteilen der Erfindung gehören
einer oder mehrere der im Folgenden Aufgeführten. PCI-PCI-Brückenschaltungen
des Computersystems müssen
nicht neu konfiguriert werden, wenn eine Erweiterungskarte mit einem
zusätzlichen
PCI-Bus in das Computersystem eingeführt wird, das bereits hochgefahren
ist. Es müssen
keine neuen PCI-Bus-Nummern
zugeordnet oder neu zugewiesen werden, wenn eine Erweiterungskarte
mit einem zusätzlichen
PCI-Bus in das Computersystem eingeführt wird, das bereits hochgefahren
ist. Beim Hochfahren des Computersystems werden Speicher- und I/O-Raum
für eine
Erweiterungskarte reserviert, die noch in das Computersystem einzuführen ist.
Das Computersystem, das hochgefahren ist, muß nicht heruntergefahren oder
neu konfiguriert werden, wenn eine Erweiterungskarte eingeführt wird.
-
Andere
Vorteile und Merkmale werden aus der nachfolgenden Beschreibung
und aus den Zeichnungen ersichtlich werden, in denen:
-
1 zeigt
ein Blockdiagramm eines Computersystems.
-
2 zeigt
ein Blockdiagramm eines Erweiterungskastens des Computersystems
der 1.
-
3 zeigt
ein Blockdiagramm der Brücken-Chips
in dem Computersystem.
-
4 zeigt
ein Blockdiagramm eines Taktgenerators in jedem der Brücken-Chips.
-
5 zeigt
ein Blockdiagramm eines Computersystems mit Mehrfach-Schichten von
Bussen.
-
6A zeigt
eine Seitenansicht einer Erweiterungskarte, eingesetzt in einen
Schlitz.
-
6B–6C zeigen
schematische Diagramme einer Hebel-Schaltung.
-
7–10 zeigen
schematische Diagramme einer Schaltung des Erweiterungskastens.
-
11A zeigt ein Zustandsdiagramm von der Schaltung
des Erweiterungskastens.
-
11B zeigt Wellenformen für die Schaltung des Erweiterungskastens.
-
12A zeigt ein schematisches Diagramm einer Schaltung
des Erweiterungskastens.
-
12B zeigt Wellenformen für die Schaltung des Erweiterungskastens.
-
12C–12H zeigen ein Zustandsdiagramm von der Schaltung
des Erweiterungskastens.
-
13 zeigt
ein schematisches Diagramm einer Schaltung des Erweiterungskastens.
-
14A zeigt ein Zustandsdiagramm von der Schaltung
des Erweiterungskastens.
-
14B zeigt Wellenformen von der Schaltung des Erweiterungskastens.
-
15 zeigt
ein schematisches Diagramm einer Schaltung des Erweiterungskastens.
-
16 zeigt
ein Flußdiagramm
eines Programms zum Zuordnen einer Bus-Zahl zu einem eingeschalteten
oder leeren Schlitz.
-
17 zeigt
ein Flußdiagramm
eines Programms zum Zuordnen von Speicherraum für das Computersystem.
-
18 zeigt
ein Flußdiagramm
eines Programms zum Zuordnen eines I/O-Raums für das Computersystem.
-
19 zeigt
ein Flußdiagramm
eines Programms zum Handhaben einer neu eingeschalteten Karte.
-
20 zeigt
ein Blockdiagramm eines Konfigurationsraums für eine PCI-Brückenschaltung.
-
21A zeigt ein Blockdiagramm eines Computersystems.
-
21B zeigt einen Bus-Zahl-Zuordnungs-Baum.
-
22 zeigt
ein Blockdiagramm, das Konfigurations-Transaktionen vom Typ 0 und
Typ 1 darstellt.
-
23 zeigt
eine Tabelle, die eine Auflistung einer Adresse von einem primären Bus
zu einem sekundären
Bus aufweist.
-
24A und 24B zeigen
ein logisches Diagramm einer Schaltung zum Handhaben von Konfigurations-Zyklen
vom Typ 0 und Typ 1.
-
ÜBERSICHT
-
In
der folgenden Beschreibung geben alle Signal-Mnemoniken, gefolgt
durch ein "#", "_" oder "!",
oder diesen vorausgehend, invertierte, logische Zustände an.
-
Wie
in 1 dargestellt ist, umfasst ein Computersystem 10 einen
primären
PCI-Bus 24,
der mit einem Brücken-Chip 26a und
einem Brücken-Chip 26b verbunden
ist, wobei beide davon von einem gemeinsamen Design 26 sind.
Der Brücken-Chip 26a ist
mit einem Brücken-Chip 48a über ein
Kabel 31 verbunden und der Brücken-Chip 26b ist
mit dem Brücken-Chip 48b über ein
Kabel 28 verbunden. Die Brücken-Chips 48a und 48b sind
von einem gemeinsamen Design 48, was gemeinsam zu dem Design 26 ist,
mit der Ausnahme, das das Design 26 ein eingangsseitiger
Mode ist und das Design 48 ein ausgangsseitiger Mode ist.
-
Der
PCI-Bus 24 ist mit einem lokalen Bus 22 über eine
System-Steuereinheit/Host-Brücken-Schaltung 28 schnittstellenmäßig verbunden.
Die Systemsteuereinheit/Host-Brücken-Schaltung 18 steuert
auch einen Zugriff zu einem Systemspeicher 20, der auch mit
dem lokalen Bus 22 zusammen mit der CPU 14 und
einem Level-2-(L2)-Cachespeicher 16 verbunden
ist.
-
Eine
PCI Extended Industry Standard Architecture (EISA) Brücke 15 verbindet
schnittstellenmäßig den
PCI-Bus 24 mit einem ISA-Bus 17. Sowohl eine Tastenfeld-Steuereinheit 21 als
auch ein Read Only Memory (ROM) 23 sind mit dem ISA-Bus 17 verbunden.
Ein nicht-flüchtiger
Random Access Speicher (NVRAM) 70, verbunden mit dem ISA-Bus 17,
speichert Informationen, die das Computersystem übernehmen sollte, wenn es abgeschaltet
wird. Ein automatischer Server-Zurückgewinnungs-Zeitgeber 72 überwacht
das Computersystem hinsichtlich einer Inaktivität. Falls sich das System verriegelt,
wird der ASR-Zeitgeber 72 nach ungefähr 10 Minuten ablaufen. Ein
Tastenfeld 19 wird durch die Tastenfeld-Steuereinheit 21 hinsichtlich
einer Erfassung von niedergedrückten
Tasten überwacht.
-
Wie 2 zeigt,
bildet der Brücken-Chip 48a eine
Schnittstelle zu einem PCI-Bus 32a und der Brücken-Chip 48b bildet
eine Schnittstelle zu einem PCI-Bus 32b. Die PCI-Busse 32a und 32b sind
an zwei Expansionskästen 30a und 30b,
mit einem gemeinsamen Design 30, angeordnet, und jeder
Expansionskasten 30 besitzt sechs Hot-Plug-Schlitze bzw. Steckplätze 36 (36a–f), die
dazu geeignet sind, herkömmliche
Erweiterungskarten 807 aufzunehmen (27A).
Ein Schlitz 34 an dem Expansionskasten nimmt eine Karte 46 auf, die
den Brücken-Chip 26 besitzt.
Jeder Hot-Plug-Schlitz 36 besitzt zugeordnet eine Umschalt-Schaltung 41 zum
Verbinden und Trennen des Schlitzes 36 mit und von dem
PCI-Bus 32. Sechs mechanische Hebel 802 werden
dazu verwendet, selektiv die Karten 807 an entsprechenden
Schlitzen zu sichern (wenn sie geschlossen oder verriegelt sind),
wie weiterhin in der US-Patentanmeldung Serial-Nr. 08/658385, mit
dem Titel "Securing
a Card in an Electronic Device",
angemeldet an demselben Datum wie diese Anmeldung und hier unter Bezugnahme
darauf eingeschlossen, beschrieben ist. Jeder Erweiterungskasten 30 umfasst
Register 52 und 82 zum Überwachen der Hebel 802 und
von Status-Signalen des Erweiterungskastens 30 und ein
Register 80 zum Kontrollieren einer Verbindung und einer
Trennung von Schlitzen 36 und von dem PCI-Bus 32.
-
Wie 3 zeigt,
ist der Brücken-Chip
so ausgelegt, um in Paaren 26 und 48 verwendet
zu werden, um eine PCI-PCI-Brücke
zwischen dem primären
PCI-Bus 24 und dem sekundären PCI-Bus 32 zu
bilden. Das Programmiermodel ist dasjenige von zwei hierar chischen
Brücken.
Zu der Systemsoftware hin erscheint das Kabel 28 als ein
PCI-Bus, der exakt eine Vorrichtung enthält, und zwar den ausgangsseitigen
Brücken-Chip 48.
Dies vereinfacht stark die Konfiguration der 2-Chip-PCI-PCI-Brücke, die
den primären
und sekundären
Bus miteinander verbindet. Der Brücken-Chip 26, der
näher zu
der CPU 14 hin liegt, verbindet den primären PCI-Bus 24 mit
dem Kabel 28. Die zweite PCI-PCI-Brücke 48 ist in dem
Erweiterungskasten 30 vorhanden und verbindet das Kabel 28 mit
dem sekundären
Bus 32. Ein Mode-Stift-Upstream-Chip bestimmt, ob der Brücken-Chip
in dem ausgangsseitigen Mode oder dem eingangsseitigen Mode arbeitet.
Einige Nicht-Brücken-Funktionen, wie beispielsweise
ein Bus-Monitor 106 und eine Hot-Plug-Logik in einem SIO 50,
werden nur in dem Erweiterungskasten 30 verwendet und sind
nicht in dem einlaufseitigen Mode-Chip 26 funktional.
-
Ein
Taktgenerator 102 in dem Brücken-Chip 26 erzeugt
Takte basierend auf dem Takt PCI CLK1 auf dem primären PCI-Bus 24,
wobei einer der erzeugten Takte über
das Kabel 28 zu einem Taktgenerator 122 in dem
ausgangsseitigen Brücken-Chip 48 vorgesehen
wird. Der Taktgenerator 122 erzeugt die PCI-Takte in dem Erweiterungskasten 30 bei
derselben Frequenz des primären
PCI-Busses 24 und steuert ihn an, was dazu führt, dass
beide Brücken-Chips 26 und 48 unter
derselben Frequenz laufen. Der ausgangsseitige Brücken-Chip 48 läuft dem
eingangsseitigen Brücken-Chip 24 in
der Phase mit der Verzögerung
des Kabels 28 hinterher. Eine asymetrische Grenze in dem
eingangseitigen Brücken-Chip 26 an
dem Punkt, wo Daten von dem Kabel 28 abgegriffen werden,
ermöglicht,
dass sich die Phasenverzögerung
bei irgendeinem Wert befindet (und deshalb soll das Kabel von irgendeiner
Länge sein),
wobei das einzige Erfordernis dasjenige ist, dass die Frequenz der
zwei Brücken-Chips
dieselbe ist.
-
Die
Kern-Logikjedes Brücken-Chips
ist der Brücken-Logik-Block
(100 oder 120), der einen PCI-Master (101 oder 123)
zum Arbeiten als ein Master auf dem jeweiligen PCI-Bus, ein PCI-Target
oder eine -Slave (103 oder 121) zum Arbeiten als
eine Slave-Vorrichtung
auf dem jeweiligen PCI-Bus, Konfigurations-Register (105 oder 125),
die die Konfigurations-Informationen des entsprechenden Brücken-Chips
enthalten, und einen Warteschlangen-Block (107 oder 127),
der verschiedene Warteschlangen enthält, in denen Daten, zugeordnet
zu Transaktionen zwischen dem primären PCI-Bus und dem sekundären PCI-Bus 32,
in die Warteschlange gestellt und gemanagt werden, aufweist. Die Daten, übertragen
zwischen dem eingangsseitigen Brücken-Chip 26 und
dem ausgangsseitigen Brücken-Chip 48,
werden durch Kabelschnittstellen 104 und 130 in
den Brücken-Chips 26 und 48 jeweils
gepuffert.
-
Eine
Unterbrechungs-Programm-Logik ist auch in jedem Brücken-Chip
enthalten. Dabei sind 8 Unterbrechungen, 6 von den Sekundär-Bus-Schlitzen,
1 von einer SIO-Schaltung 50 und
1 von dem ausgangsseitigen Brücken-Chip 48,
vorhanden. In dem ausgangsseitigen Chip 48 werden die Unterbrechungen
durch einen Unterbrechungs-Aufnahme-Block 132 aufgenommen
und entlang des Kabels 28 als eine serielle Datenfolge
in sequenziellen Zeit-Stücken
geschickt. In dem ausgangsseitigen Brücken-Chip 26 werden
die Unterbrechungen durch einen Unterbrechungs-Ausgangs-Block 114 empfangen,
der die Unterbrechungen zu einer Unterbrechungs-Steuereinheit weiterleitet.
-
Die
SIO-Schaltung 50 liefert Steuersignale zum Beleuchten von
LED's, zum Steuern
eines Reset und für
ein selektives Verbinden der Schlitze 36 mit dem Bus 32.
Sie umfasst auch eine Logik zum Lesen des Eingriffs-Status der Hebel 802 und
des Status-Zustands
der Karten 807 in jedem Schlitz 36.
-
Die
Brücken-Schaltung 26 umfasst
einen Support für
Unterbrechungen in dem Erweiterungskasten 30, und, wenn
sie in dem Host-System mit der anwendereigenen Schnittstelle zu
einer Mehrfachkanal-Unterbrechungs-Steuereinheit installiert ist,
schickt sie die Status-Zustände
jeder Unterbrechung in einer seriellen Datenfolge. Die Brückenschaltung 26 kann
auch so konfiguriert sein, um standardmäßige PCI-INTA, INTB, INTC und
INTD Signale anzusteuern, falls sie in einem Standard-Schlitz in
dem Host-System installiert ist.
-
Jeder
Brücken-Chip
umfasst auch einen PCI-Arbitrierer (116 oder 124)
zum Steuern eines Zugriffs auf bis zu sieben Bus-Master. Da die
eingangsseitige Brücke 26 in
einem Schlitz installiert ist, wird der PCI-Arbitrierer 116 in
dem eingangsseitigen Brücken-Chip 26 gesperrt.
Jeder Brücken-Chip
umfasst auch eine I2C-Steuereinheit (108 oder 126)
für eine
Kommunikation mit Vorrichtungen, wie beispielsweise EEPROMs, Temperatursensoren,
usw., einen JTAG-Master (110 oder 128) zum Durchführen von
Test-Zyklen, einen Bus-Monitor (106 oder 127)
zum Messen einer Bus-Benutzung und einer Effektivität und der
Effektivität
des Vorabruf-Algorithmus des Brücken-Chips,
und einen Bus-Beobachter
(Bus-Watcher) (119 oder 129) zum Speichern einer Bus-Historie
und von Sta tus-Vektor-Informationen und zum Informieren der CPU 14 über einen
Bus-Hängend-Zustand. Bestimmte
Blöcke
werden in jedem Brücken-Chip
gesperrt, wenn sie nicht verwendet werden. In dem eingangsseitigen
Brücken-Chip 26 werden
Bus-Watcher 119, der SIO 118, der PCI-Arbitrierer 116 und der
Bus-Monitor 106 gesperrt. Zusätzlich werden der die Unterbrechung
aufnehmende Block 112 in dem eingangsseitigen Chip 126 und
der Unterbrechungs-Ausgangs-Block 134 in dem ausgangsseitigen
Chip 48 gesperrt.
-
ERWEITERUNGS-KARTEN-EINSETZEN UND ENTFERNEN
VON VERBINDUNGS-EXPANSIONS-KARTEN
-
Wie
in den 1 und 6A dargestellt ist, besitzen
die zwei Expansionskästen 30a und 30b,
von einem gemeinsamen Design 30, jeweils die sechs Hot-Plug-Schlitze 36 (36a–f), in
denen die herkömmlichen Erweiterungskarten 807 eingesetzt
und entfernt werden können
(Hot-Plugged), während
das Computersystem 10 hochgefahren bzw. eingeschaltet verbleibt.
Die sechs mechanischen Hebel 802 werden dazu verwendet, selektiv
die Expansionskarten 807 zu sichern (wenn geschlossen,
oder verriegelt, ist), die in die entsprechenden Hot-Plug-Schlitze 36 eingesetzt
werden. Zu Zwecken eines Entfernens oder eines Einsetzens der Expansionskarten 807 in
einen der Schlitze 36 muss der entsprechende Hebel 802 geöffnet werden,
oder entriegelt werden, und so lange wie der Hebel 802 geöffnet ist,
verbleibt der entsprechende Schlitz 36 abgeschaltet.
-
Wenn
der Hebel 802, der die Expansionskarte 807 an
seinem Schlitz 36 sichert, geöffnet ist, erfasst das Computersystem 10 dieses
Auftreten und fährt
die Karte 802 herunter (und den entsprechenden Schlitz 36),
bevor die Karte 807 von deren Schlitz bzw. Einsteckplatz 36 entfernt
werden kann. Schlitze bzw. Einsteckplätze 36, die heruntergefahren
sind, ähnlich
anderen Schlitzen 36, die keine Karten 807 halten,
verbleiben heruntergefahren bzw. abgeschaltet, bis eine Software
des Computersystems 10 selektiv die Schlitze bzw. Einsteckplätze 36 hochfährt.
-
Die
Karte 46, eingesetzt in den Kartenschlitz 34,
besitzt den Brücken-Chip 48,
der den Sicherungs-Status (offen oder geschlossen) der Hebel 802 überwacht
und irgendeine Karte 807 (und einen entsprechenden Schlitz 36)
herunterfährt,
der nicht durch seinen Hebel 802 gesichert ist. Eine Software
des Computersystems 10 kann auch selektiv irgendeinen der
Schlitze 36 herunterfahren.
-
Die
Karten 807 werden durch eine Hochfahrsequenz hochgefahren
und durch eine Herunterfahrsequenz heruntergefahren. In der Hochfahrsequenz
(the power up sequence) wird Energie zuerst zu der Karte 807 zugeführt, die
hochgefahren werden soll, und danach wird ein PCI-Takt-Signal (von
dem PCI-Bus 32) zu der Karte 807 geliefert, die
hochgefahren wird. Verbleibende PCI-Bus-Signal-Leitungen der Karte 807 werden dann
mit entsprechenden Leitungen des PCI-Busses 32 verbunden.
Zuletzt wird das Reset-Signal
für die
Karte 807, die hochgefahren wird, weggenommen, was die
Karte 807 außerhalb
eines Reset-Zustands bringt.
-
Die
Hochfahrsequenz ermöglicht
der Schaltung der Karte 807, dass sie hochgefahren wird,
um vollständig
funktional mit dem PCI-Takt-Signal zu werden, bevor die verbleibenden
PCI-Bus-Signale geliefert werden. Wenn das Taktsignal und die verbleibenden
PCI-Bus-Signale mit der Karte 807 verbunden werden und bevor
die Karte 807 zurückgesetzt
wird, besitzt der Brücken-Chip 48 eine
Kontrolle des PCI-Busses 32. Da der Brücken-Chip 48 eine
Kontrolle über
den PCI-Bus 32 während
dieser Zeiten besitzt, stören
potentielle Defekte auf dem PCI-Bus 32 von der Power-up-Sequenz
nicht die Operationen der Karten 807, die hochgefahren
sind.
-
In
der Herunterfahr- bzw. Power-Down-Sequenz wird die Karte 807,
die heruntergefahren werden soll, zuerst zurückgesetzt. Als nächstes werden
die PCI-Bus-Signale, ohne das PCI-Takt-Signal, von der Karte 807 entfernt.
Der Brücken-Chip 48 unterbricht
darauffolgend das PCI-Takt-Signal von der Karte 807, bevor
Energie von der Karte 807 entfernt wird. Die Herunterfahr-
bzw. Power-Down-Sequenz minimiert die Propagation von falschen Signalen
von der Karte 807, die heruntergefahren werden soll, zu
dem Bus 32, da die Schaltung auf der Karte 807 deren
vollständige
Funktion beibehält,
bis die PCI-Bus-Signal-Leitungen
entfernt sind.
-
Wenn
das PCI-Taktsignal und die verbleibenden PCI-Bus-Signale unterbrochen
werden, und wenn die Karte 807 zurückgesetzt bzw. in einen Reset-Zustand
versetzt wird, besitzt der Brücken-Chip 48 eine
Kontrolle des PCI-Busses 32. Da der Brücken-Chip 48 eine
Kontrolle über
den PCI-Bus 32 während
dieser Zeitpunkte besitzt, stören
potentielle Defekte auf dem PCI-Bus 32 von der Power-Down-
bzw. Herunterfahr-Sequenz nicht die Operationen der Karten 807,
die sie hochgefahren haben.
-
Der
Brücken-Chip
48 umfasst
die Seriell-Eingangs/Ausgangs-(S10)-Schaltung
50, die die
Hochfahr- und Herunterfahr-Sequenzen der Schlitze bzw. Einsteckplätze
36 über vierundzwanzig
Steuersignale POUT[39:16] steuert. Die Steuersignale POUT[39:16]
sind ein Untersatz von vierzig Ausgangs-Steuersignalen POUT[39:0],
erzeugt durch die SIO-Schaltung
50.
Die Steuersignale POUT[39:16] sind verriegelte Versionen von Schlitz-Bus-Freigabe-Signalen
BUSEN#[5:0], Schlitz-Energie-Freigabe-Signalen PWREN[5:0], Schlitz-Takt-Freigabe-Signalen
CLKEN#[5:0] und Schlitz-Reset-Signalen RST#[5:0], alle internen
Signale der SIO-Schaltung
50, wie weiter nachfolgend beschrieben
ist. Die Steuersignale POUT[39:0] und deren Beziehung zu den Signalen
BUSEN#[5:0], PWREN[5:0], CLKEN#[5:0] und RST#[5:0] sind in der nachfolgenden
Tabelle beschrieben: PARALLEL-AUSGANGS-STEUER-SIGNALE (POUT[39:01])
SIGNALPOSITION | BESCHREIBUNG | ZUGEORDNETE STEUERSIGNALE | WENN
EIN SIGNAL AKTIV IST |
0–11 | Steuersignale
für LEDs 54 | | |
12–15 | Ausgangssignale
für allgemeine
Zwecke | GPOA[3:0] | |
16 | Reset-Signal
für Schlitz 36a | (RST#[0] | niedrig |
17 | Reset-Signal
für Schlitz 36b | RST#[1] | niedrig |
18 | Reset-Signal
für Schlitz 36c | (RST#[2] | niedrig |
19 | Reset-Signal
für Schlitz 36d | RST#[3] | niedrig |
20 | Reset-Signal
für Schlitz 36e | (RST#[4] | niedrig |
21 | Reset-Signal
für Schlitz 36f | RST#[5] | niedrig |
22 | Takt-Freigabe-Signal
für Schlitz 36a | (CLKEN#[0] | niedrig |
23 | Takt-Freigabe-Signal
für Schlitz 36b | (CLKEN#[1] | niedrig |
24 | Takt-Freigabe-Signal
für Schlitz 36c | (CLKEN#[2] | niedrig |
25 | Takt-Freigabe-Signal
für Schlitz 36d | (CLKEN#[3] | niedrig |
26 | Takt-Freigabe-Signal
für Schlitz 36e | (CLKEN#[4] | niedrig |
27 | Takt-Freigabe-Signal
für Schlitz 36f | (CLKEN#[5] | niedrig |
28 | Bus-Freigabe-Signal
für Schlitz 36a | (BUSEN#[0] | niedrig |
29 | Bus-Freigabe-Signal
für Schlitz 36b | (BUSEN#[1] | niedrig |
30 | Bus-Freigabe-Signal
für Schlitz 36c | (BUSEN#[2] | niedrig |
31 | Bus-Freigabe-Signal
für Schlitz 36d | (BUSEN#[3] | niedrig |
32 | Bus-Freigabe-Signal
für Schlitz 36e | (BUSEN#[4] | niedrig |
33 | Bus-Freigabe-Signal
für Schlitz 36f | (BUSEN#[5] | niedrig |
34 | Power-Freigabe-Signal
für Schlitz 36a | (PWREN[0] | hoch |
35 | Power-Freigabe-Signal
für Schlitz 36b | (PWREN[1] | hoch |
36 | Power-Freigabe-Signal
für Schlitz 36c | (PWREN[2] | hoch |
37 | Power-Freigabe-Signal
für Schlitz 36d | (PWREN[3] | hoch |
38 | Power-Freigabe-Signal
für Schlitz 36e | (PWREN[4] | hoch |
39 | Power-Freigabe-Signal
für Schlitz 36f | (PWREN[5] | hoch |
-
Wie
in den 2 und 7 dargestellt ist, besitzt jeder
Hot-Plug-Schlitz 36 die zugeordnete Umschalt-Schaltung 41 zum
Verbinden und Trennen des Schlitzes 36 mit und von dem
PCI-Bus 32. Die Umschalt-Schaltung 41 für jeden
Schlitz 36 empfängt
vier der Steuersignale POUT[39:16]. Als ein Beispiel wird, für den Schlitz 36a,
wenn das Steuersignal POUT[28] aufgestellt ist, oder niedrig ist,
der Schlitz 36a mit den Bus-Signal-Leitungen des PCI-Busses 32 durch
eine Umschalt-Schaltung 47 verbunden. Wenn das Steuersignal
POUT[28] weggenommen ist, oder hoch ist, wird der Schlitz 36a von
den Bus-Signal-Leitungen des PCI-Busses 32 getrennt.
-
Wenn
das Steuersignal POUT[22] aufgestellt ist, oder niedrig ist, wird
der Schlitz 36a mit einem PCI-Takt-Signal CLK über eine
Umschalt-Schaltung 43 verbunden. Wenn das Steuersignal
POUT[22] weggenommen ist, oder hoch ist, wird der Schlitz 36a von
dem Taktsignal CLK getrennt.
-
Wenn
das Steuersignal POUT[34] aufgestellt ist, oder hoch ist, wird der
Schlitz 36a mit einem Karten-Spannungs-Versorgungs-Pegel
Vss über
eine Umschalt-Schaltung 45 verbunden. Wenn das Steuersignal POUT[34]
weggenommen ist, oder niedrig ist, wird der Schlitz 36a von
dem Karten-Spannungs-Versorgungs-Pegel Vss getrennt.
-
Wenn
das Steuersignal POUT[16] aufgestellt ist oder niedrig ist, wird
der Schlitz 36a zurückgesetzt, und
wenn das Steuersignal POUT[16] weggenommen ist, oder hoch ist, gelangt
der Schlitz 36a aus seinem Reset-Zustand.
-
Wie
in 2 zu sehen ist, kann die SIO-Schaltung 50 selektiv
bis zu einhundertachtundzwanzig (sechzehn Bytes) von verriegelten
Status-Signalen STATUS[127:0], geliefert durch den Erweiterungskasten 30, überwachen.
Die Status-Signale STATUS[127:0] bilden einen "Snapshot" von ausgewählten Zuständen des Erweiterungskastens 30.
Die Status-Signale STATUS[127:0] umfassen sechs Status-Signale STATUS[5:0],
die den Sicherungs-Status (geöffnet
oder geschlossen) jedes der Hebel 802 anzeigen. Die SIO-Schaltung 50 überwacht
die Status-Signale STATUS[31:0] hinsichtlich Änderungen in deren logischen
Spannungspegeln. Die SIO-Schaltung 50 verschiebt seriell
die Status-Signale
STATUS[127:32] in die SIO-Schaltung 50 hinein, wenn durch
die CPU 14 angewiesen ist, dies so vorzunehmen.
-
Die
SIO-Schaltung 50 empfängt
seriell die Status-Signale STATUS[127:0], das am wenigsten signifikanteste
Signal zuerst, und zwar über
ein serielles Daten-Signal NEW_CSID. Das Daten-Signal NEW_CSID wird
durch den seriellen Ausgang des parallelen Eingangs-Verschieberegisters 82 mit
zweiunddreißig
Bits, angeordnet auf einer Leiterplatte des Erweiterungskastens 30,
zusammen mit den Schlitzen bzw. Einsteckplätzen 36, geliefert.
-
Das
Register 82 empfängt, über dessen
parallele Eingänge,
vierundzwanzig Parallel-Status-Signale PIN[23:0], vier zugeordnet
zu jedem der Hot-Plug-Schlitze 36, die in den zweiunddreißig am wenigsten
signifikanten Status-Signalen STATUS[31:0] umfasst sind. Wenn sich
der Status, angezeigt durch eines oder mehrere der Status-Signale
STATUS[31:0], ändert
(der logische Spannungs-Pegel ändert
sich), erzeugt der Brücken-Chip 48 eine
Unterbrechungs-Anforderung zu der CPU 14 durch Aufstellen,
oder Ansteuern auf niedrig, eines seriellen Unterbrechungs-Anforderungs-Signals
SI_INTR#, das über
einen Unterbrechungs-Empfangs-Block 132 empfangen wird.
Die Status-Signale PIN[23:0] umfassen zwei PCI-Karten-Präsenz-Signale (PRSNTI#
und PRSNT2#), zugeordnet zu jedem Schlitz 36.
-
Sechs
Status-Signale PIN[5:0], entsprechend zu deren verriegelten Versionen,
Status-Signale STATUS[5:0], zeigen den Sicherungs- oder Eingriffs-Status
(offen oder geschlossen) jedes der Hebel 802 an. Sechs
Gleit-Schalter 805 (27A–27C) werden durch die Bewegung deren entsprechender
Hebel 802 betätigt
und werden dazu verwendet, elektrisch den Sicherungs-Status des
entsprechenden Hebels 802 anzuzeigen. Jeder Schalter 805 besitzt
ein erstes Terminal, verbunden mit Masse, und ein zweites Terminal,
das das entsprechende eine der Status-Signale PIN[5:0] zuführt. Das
zweite Terminal ist mit einem Versorgungs-Spannungs-Pegel VDD über
einen von sechs Widerständen 801 verbunden.
-
Falls
sich einer der Hebel 802 öffnet und die Karte 807,
gesichert durch den Hebel 802, entsichert wird, wird das
entsprechende eine der Status-Signale PIN[5:0] aufgestellt, oder
auf hoch angesteuert. Als ein Beispiel wird, für den Schlitz 36a,
das Status-Signal PIN[0] weggenommen oder auf niedrig angesteuert,
wenn der entsprechende Hebel 802 geschlossen ist. Wenn
der Hebel 802 für
den Schlitz 36a geöffnet
ist, wird das Status-Signal
PIN[0] aufgestellt, oder auf hoch angesteuert.
-
Das
Register 82 empfängt
auch eine serielle Datenfolge von verriegelten Status-Signalen STATUS[127:32],
die keine Unterbrechungen verursachen, wenn sich der logische Spannungs-Pegel
eines der Signale STATUS[127:32] ändert. Die Status-Signale STATUS[127:32]
werden durch das Verschiebe-Register 52 mit sechzehn Bits,
angeordnet auf der Leiterplatte des Expansionskastens 30,
mit den Schlitzen 36, gebildet. Das Verschiebe-Register 52 empfängt Status-Signale
an seinen parallelen Eingängen
und verriegelt die Status-Signale STATUS[127:32], wenn durch die
SIO-Schaltung 50 instruiert ist, dies so vorzunehmen. Das
Verschiebe-Register 52 serialisiert die Status-Signale STATUS[127:32]
und liefert die Signale STATUS[127:32] zu dem seriellen Eingang
des Registers 82 über
ein serielles Daten-Signal CSID_I.
-
Wenn
durch die SIO-Schaltung
50 instruiert ist, verriegelt das
Register
82 Status-Signale
PIN[23:0], bildet die Status-Signale STATUS[31:0], liefert die Status-Signale
STATUS[31:0] und liefert ein Byte oder mehr der Status-Signale STATUS[127:32]
(wenn dies durch die CPU
14 angefordert ist), in einem
am wenigsten signifikanten Signal einer ersten Art, zu der SIO-Schaltung
50,
und zwar über
das serielle Daten-Signal NEW_CSID. Die Status-Signale STATUS[127:0]
werden durch die nachfolgende Tabelle beschrieben: STATUS[127:0]
BIT | BESCHREIBUNG |
0 | Status-Signal
von Hebel 802 für
Schlitz 36a (PIN[0]) |
1 | Status-Signal
von Hebel 802 für
Schlitz 36b (PIN[1]) |
2 | Status-Signal
von Hebel 802 für
Schlitz 36c (PIN[2]) |
3 | Status-Signal
von Hebel 802 für
Schlitz 36d (PIN[3]) |
4 | Status-Signal
von Hebel 802 für
Schlitz 36e (PIN[4]) |
5 | Status-Signal
von Hebel 802 für
Schlitz 36f (PIN[5]) |
6 | reserviert
für Status-Signal
von Hebel 802 für
einen zusätzlichen
Hot-Plug-Schlitz |
7 | reserviert
für Status-Signal
von Hebel 802 für
einen zusätzlichen
Hot-Plug-Schlitz |
8 | PRSNT2#
Signal für
Schlitz 36a (PIN[6]) |
9 | PRSNT2#
Signal für
Schlitz 36b (PIN[7]) |
10 | PRSNT2#
Signal für
Schlitz 36c (PIN[8]) |
11 | PRSNT2#
Signal für
Schlitz 36d (PIN[9]) |
12 | PRSNT2#
Signal für
Schlitz 36e (PIN[10]) |
13 | PRSNT2#
Signal für
Schlitz 36f (PIN[11]) |
14 | reserviert
für PRSNT#2
Signal für
einen zusätzlichen
Hot-Plug-Schlitz 36 |
15 | reserviert
für PRSNT#2
Signal für
einen zusätzlichen
Hot-Plug-Schlitz 36 |
16 | PRSNTI#
Signal für
Schlitz 36a (PIN[12]) |
17 | PRSNTI#
Signal für
Schlitz 36b (PIN[13]) |
18 | PRSNTI#
Signal für
Schlitz 36c (PIN[14]) |
19 | PRSNTI#
Signal für
Schlitz 36d (PIN[15]) |
20 | PRSNTI#
Signal für
Schlitz 36e (PIN[16]) |
21 | PRSNTI#
Signal für
Schlitz 36f (PIN[17]) |
22 | reserviert
für PRSNT#1
Signal für
einen zusätzlichen
Hot-Plug-Schlitz 36 |
23 | reserviert
für PRSNT#1
Signal für
einen zusätzlichen
Hot-Plug-Schlitz 36 |
24 | Power-Fehler-Status
für Schlitz 36a (PIN[18]) |
25 | Power-Fehler-Status
für Schlitz 36b (PIN[19]) |
26 | Power-Fehler-Status
für Schlitz 36c (PIN[20]) |
27 | Power-Fehler-Status
für Schlitz 36d (PIN[21]) |
28 | Power-Fehler-Status
für Schlitz 36e (PIN[22]) |
29 | Power-Fehler-Status
für Schlitz 36f (PIN[23]) |
30 | reserviert
für Power-Fehler-Status
für zusätzlichen
Hot-Plug-Schlitz 36 |
31 | reserviert
für Power-Fehler-Status
für zusätzlichen
Hot-Plug-Schlitz 36 |
32-127 | Status-Sginale,
die keine Unterbrechungs-Anforderungen verursachen, wenn sich deren
Status ändert |
-
Wie
in den 2 und 9 dargestellt ist, verriegelt,
wenn eine SIO-Schaltung 50 ein Register-Lade-Signal CSIL_O_
aufstellt, oder auf niedrig ansteuert, das Schiebe-Register 52 die
Status-Signale STATUS[127:32] und das Schiebe-Register 82 verriegelt
die Status-Signale STATUS[31:0]. Wenn die SIO-Schaltung 50 das
Signal CSIL_O_ wegnimmt, oder auf hoch ansteuert, verschieben beide
Register 52 und 82 seriell deren Daten zu der
SIO-Schaltung 50 an der positiven Flanke des Taktsignals
CSIC_O, geliefert durch die SIO-Schaltung 50. Das Taktsignal
CSIC_O wird zu der und auf einem Viertel der Frequenz des PCI-Taktsignals CLK
synchronisiert.
-
Wie
in 8 dargestellt ist, verwendet, zu Zwecken einer Überwachung,
oder für
ein Abtasten, der Status-Signale STATUS[31:0], die SIO-Schaltung 50 ein
32-Bit-Unterbrechungs-Register 800,
dessen Bit-Positionen den Signalen STATUS [31:0] entsprechen. Die
SIO-Schaltung 50 aktualisiert die Bits des Unterbrechungs-Registers 800,
um die entsprechenden Status-Signale STATUS[31:0] anzugleichen,
die entprellt (debounced) worden sind, wie weiter nachfolgend beschrieben
ist. Zwei Status-Signale STATUS[7:6] werden für zusätzliche Hot-Plug-Schlitze 36 reserviert,
und das siebte und achte, signifikanteste Bit des Unterbrechungs-Registers 800 werden
auch für
die zusätzlichen
Schlitze 36 reserviert. Das Unterbrechungs-Register 800 ist
ein Teil eines Register-Logik-Blocks 808 der
SIO-Schaltung 50, die mit dem PCI-Bus 32 gekoppelt
ist.
-
Eine
serielle Abtast-Eingangs-Logik 804 der SIO-Schaltung 50 tastet
sequenziell, oder überwacht,
die Status-Signale STATUS[31:0], das am wenigsten signifikante Signal
zuerst, hinsichtlich Änderungen,
wie dies durch Übergänge in deren
logischen Spannungs-Pegeln angezeigt ist. Falls sich der Status
von einem oder mehr der Status-Signale STATUS[5:0], zugeordnet den
Hebeln 802, ändert,
tritt die Seriell-Abtast-Eingangs-Logik 804 in einen langsamen
Abtast-Mode ein, so dass die Status-Signale STATUS[5:0] zweiunddreißigmal innerhalb
eines vorbestimmten Entprell- bzw. Debounce-Zeit-Intervalls abgetastet
werden. Falls sich eines oder mehrere der Status-Signale STATUS[5:0] ändert, aktualisiert
die serielle Abtast-Eingangs-Logik 804 das Unterbrechungsregister 800 (und
stellt das serielle Unterbrechungs-Signal SI_INTR# auf), falls das geänderte Status- Signal STATUS[5:0]
auf demselben, logischen Spannungsniveau für zumindest ein vorbestimmtes
Entprell-Zeit-Intervall verbleibt. Die Seriell-Abtast-Eingangs-Logik 804 ist
mit programmierbaren Zeitgebern 806 gekoppelt, die das
Ende des Entprell-Verzögerungs-Intervalls erzeugen
und anzeigen, initiiert durch die Seriell-Abtast-Logik 804.
Unter Fordern des Status, stabil für die Entprell-Zeit zu bleiben,
minimiert das Intervall das unbeabsichtigte Power-Down von einem
der Hot-Plug-Schlitze 36 aufgrund eines falschen Werts
(d. h. eines "Defekts"), angezeigt durch
eines der Status-Signale STATUS[5:0]. Wenn alle der Status-Signale
STATUS[5:0] auf demselben, logischen Spannungspegel für mindestens
das Entprell-Zeit-Intervall verbleiben, dann schreitet die Seriell-Abtast-Eingangs-Logik 804 fort,
um noch einmal erneut alle zweiunddreißig Status-Signale STATUS[31:0]
in dem schnelleren Abtast-Mode abzutasten.
-
Falls
die Seriell-Abtast-Eingangs-Logik 804 eine Änderung
in einem der Status-Signale
STATUS[31:6] erfasst, instruiert die Seriell-Abtast-Eingangs-Logik 804 die
Zeitgeber 806, ein anderes Debounce- bzw. Entprell-Verzögerungs-Intervall
zu messen, stellt darauf das Seriell-Unterbrechungs-Signal SI_INTR#
auf, aktualisiert das Unterbrechungs-Register 800 mit den Signalen
STATUS[31:6], die sich geändert
haben, und ignoriert weitere Änderungen
in den Status-Signalen STATUS[31:6], bis das Entprell-Zeit-Intervall
abläuft.
Nach Ablaufen des Entprell-Zeit-Intervalls schreitet die Seriell-Abtast-Eingangs-Logik 804 fort,
um Änderungen
in den zweiunddreißig
Status-Signalen STATUS[31:0] zu erkennen.
-
Wenn
das Seriell-Unterbrechungs-Signal SI_INTR# aufgestellt ist, liest
die CPU 14 darauffolgend das Unterbrechungs-Register 800,
bestimmt, welche (es können
mehr als eins sein) Status-Signale STATUS[3:0] die Unterbrechung
verursachten, und nimmt das Seriell-Unterbrechungs-Signal SI_INTR#
durch Schreiben einer "1" zu dem Bit oder
den Bits des Unterbrechungs-Registers 800, die sich geändert haben,
weg.
-
Die
CPU 14 kann selektiv Unterbrechungs-Anforderungen, verursacht
durch die Status-Signale STATUS[31:0], durch Schreiben einer "1" zu einem entsprechenden Bit eines Unterbrechungs-Maskierungs-Registers 810 mit
zweiunddreißig
Bits maskieren. Die CPU 14 kann auch selektiv irgendein
Byte der Status-Signale STATUS[47:0] durch Schreiben einer Byte-Zahl
des ausgewählten
Bytes zu einem Seriell-Eingangs-Byte- Register 812 lesen. Die SIO-Schaltung 50 überträgt dann
das erwünschte
Byte in ein Seriell-Daten-Register 815 hinein.
-
Zum
Beispiel schreibt, um das dreißigste
Byte (Byte-Zahl zwei) der Status-Signale STATUS[23:16] zu lesen,
die CPU 14 eine "2" in das Seriell-Eingangs-Byte-Register 812.
Die Seriell-Abtast-Eingangs-Logik 804 verschiebt dann seriell
Byte zwei der Status-Signale
STATUS[23:16] in das Seriell-Daten-Register 815 hinein. Ein
Busy-Status-Bit BS des Seriell-Eingangs-Byte-Registers 812 ist
gleich zu "1", wenn die CPU 14 zu
Anfang die erwünschte
Byte-Zahl zu dem Seriell-Eingangs-Byte-Register 812 schreibt.
Das Bit BS wird durch die SIO-Schaltung 50 gelöscht, nachdem
das angeforderte Byte in das Seriell-Daten-Register 815 hinein verschoben
worden ist.
-
Die
CPU 14 kann einen der Schlitze 36 durch Schreiben
einer "1" zu einem entsprechenden
Bit eines Schlitz-Freigabe-Registers 817 hochfahren und
den Schlitz 36 durch Schreiben einer "0" zu
diesem Bit sperren. Weiterhin kann die CPU 14 einen der
Schlitze 36 durch Schreiben einer "1" zu
einem entsprechenden Bit eines Schlitz-Reset-Registers 819 zurücksetzen.
Die Inhalte der Schlitz-Freigabe- 817 und der Schlitz-Reset-819 Register
sind durch Signale SLOT_EN[5:0] und SLOT_RST_[5:0] jeweils dargestellt.
-
Um
die Anforderung zu initiieren, angezeigt durch das Schlitz-Freigabe- 817 und
Reset- 819 Register, zu initiieren, schreibt die CPU 14 eine "1" zu einem SO-Bit eines Steuer-Registers 814.
Nachdem das SO-Bit aufgestellt ist (was ein GO_UPDATE Signal aufstellt,
oder auf hoch ansteuert), initiiert die SIO-Schaltung 50 die
rforderlichen Powerdown- und/oder Power-up-Sequenzen und steuert
sie.
-
Die
Seriell-Abtast-Eingangs-Logik 804 ist mit einer EIN/AUS-Steuer-Logik 820 verbunden,
die die Power-up- und Power-down-Sequenzen steuert. Die EIN/AUS-Steuer-Logik 820 liefert
die Signale BUSEN#[5:0], CLKEN#[5:0], RST#[5:0] und PWREN[5:0] zu
einer Seriell-Ausgangs-Logik 824.
-
Jede
Power-up- und Power-down-Sequenz umfasst vier Verschiebe-Phasen,
während
denen ein anderer Schritt der Power-down- oder Power-up-Sequenz
durchgeführt
wird. Während
jeder Verschiebe-Phase instruiert die EIN/AUS-Steuer-Logik 820 die
Seriell-Ausgangs-Logik 824, die Steuer-Signale BUSEN#[5:0], CLKEN[5:0],
RST#[5:0] und PWREN[5:0] zu kombinieren; diese Signale zu verriegeln;
und liefert seriell diese Signale (über ein serielles Daten-Signal
CSOD_O) zu dem seriellen Eingang eines Ausgangs- Verschiebe-Registers 80. An
dem Ende jeder Verschiebe-Phase instruiert die EIN/AUS-Steuer-Logik 820 das
Verschiebe-Register 80, die Steuersignale POUT[35:12] zu
aktualisieren.
-
Die
EIN/AUS-Steuer-Logik 820 wird auch schnittstellenmäßig mit
der Register-Logik 808 und
einer Steuer-Logik 822 für eine Licht emittierende Diode
(Light Emitting Diode – LED)
verbunden. Die LED-Steuer-Logik 122 steuert den Ein/Aus-Status
der sechs LEDs 54, die visuell anzeigen, ob die entsprechenden
Hebel 802 verriegelt sind. oder entriegelt sind. Die LEDs 54 können so
programmiert werden, um dann zu blinken, wenn sie eingeschaltet
sind, und zwar über
LED-Steuerregister (nicht dargestellt) der Register-Logik 808.
-
Wie
in 10A dargestellt ist, umfasst die Seriell-Abtast-Eingangs-Logik 804 eine
Abtast-Zustand-Maschine 840, die das Abtasten der Status-Signale
STATUS[31:0] hinsichtlich Änderungen
steuert und das Verschieben eines ausgewählten Bytes der Status-Signale
STATUS[47:0] in das Seriell-Eingangs-Byte-Register 815 hinein
steuert.
-
Die
Abtast-Zustand-Maschine 840 wird an der negativen Flanke
eines Takt-Signals DIV2CLK getaktet, das zu einem PCI-Taktsignal
CLK synchronisiert ist, und von einer Hälfte der Frequenz des PCI-Taktsignals CLK
ist. Die Last- und Taktsignale, CSIL_O_ und CSIC_O, jeweils, werden
durch die Abtast-Zustand-Maschine 840 geliefert. Das Taktsignal
wird, wenn es freigegeben wird, zu dem Taktsignal CSIC_O synchronisiert.
-
Ein
Bit/Byte-Zähler 841 zeigt, über ein
Zweiunddreißig-Bit-Signal
BIT_ACTIVE[31:0] an, welches Bit der Status-Signale STATUS[3:0]
momentan durch das Seriell-Daten-Signal NEW_CSID repräsentiert
wird. Das aufgestellte Bit des Signals BIT_ACTIVE[31:0] besitzt
dieselbe Bit-Position wie das Status-Signal STATUS[31:0], dargestellt
durch das Daten-Signal NEW_CSID.
-
Der
Zähler 841 liefert
auch ein Drei-Bit-Signal BIT[2:0], das darstellt, welches Bit des
momentanen Bytes der Status-Signale STATUS[31:0] momentan durch
die Abtast-Zustand-Maschine 840 abgetastet
wird. Der Zähler 841 wird
an der negativen Flanke eines Signals SHIFT_ENABLE getaktet. Die
Ausgänge
des Zählers 841 werden
zurückgesetzt,
oder gelöscht,
wenn der Ausgang eines UND-Gates 842, verbunden mit dem Lösch-Eingang
des Zählers 840,
negiert wird.
-
Die
Abtast-Zustand-Maschine 840 liefert ein Signal SCAN_IN_IDLE,
das, wenn es aufgestellt wird, oder auf hoch gesetzt wird, anzeigt,
dass sich die Abtast-Zustand-Maschine 840 in
einem IDLE Zustand befindet, und momentan nicht irgendeines der
Status-Signale STATUS[127:0] abtastet. Das Signal SCAN_IN_IDLE wird
ansonsten weggenommen.
-
Das
Signal SCAN_IN_IDLE wird zu einem Eingang des UND_Gates 842 geliefert.
Der andere Eingang des UND-Gates 842 ist mit dem Ausgang
eines ODER-Gates 843 verbunden. Ein Eingang des ODER-Gates 843 empfängt ein
invertiertes HOLD_OFF Signal, und der andere Eingang des ODER-Gates 843 empfängt ein Signal
GETTING_BYTE.
-
Das
Signal HOLD_OFF zeigt, wenn es aufgestellt ist, oder auf hoch angesteuert
ist, an, dass eine Änderung
in dem einen der Status-Signale STATUS[5:0] erfasst worden ist,
und die Seriell-Abtast-Logik 804 in den Langsam-Abtast-Mode
eingetreten ist. In diesem Langsam-Abtast-Mode bzw. Slow-Scan-Mode
wartet die Seriell-Abtast-Eingangs-Logik 804 auf ein vorbestimmtes
Langsam-Abtast-Intervall, bevor die Status-Signale STATUS[31:0]
erneut weitergeführt
werden. Die Seriell-Abtast-Eingangs-Logik 804 zählt die
Zahl von Malen, für
die die Seriell-Abtast-Signale STATUS[5:0] während des Langsam-Abtast-Modes
abgetastet werden, und verwendet diese Zählung, um zu bestimmen, wenn
eines von dem Status-Signal STATUS[5:0] unverändert für das Entprell-Verzögerungs-Intervall
verblieb, wie weiterhin nachfolgend beschrieben werden wird.
-
Deshalb
werden, wenn sich die Abtast-Zustand-Maschine 840 in dem
IDLE Zustand befindet und entweder das HOLD_OFF Signal weggenommen
ist oder sich die Abtast-Zustand-Maschine 840 beim Lesen
eines ausgewählten
Bytes (ausgewählt
durch die CPU 14) der Status-Signale STATUS[47:0] befindet,
alle Ausgänge
des Zählers 841 gelöscht oder
gleich zu Null gesetzt.
-
Das
Signal SHIFT_ENABLE wird durch den Ausgang eines UND-Gates 844 geliefert.
Ein Eingang des UND-Gates 844 nimmt das Takt-Signal CSIC_O
auf. Ein anderer Eingang des UND-Gates 844 nimmt ein Signal
DIV2CLK# auf. Das Signal DIV2CLK# wird aufgestellt, oder auf niedrig
angesteuert, an der negativen Flanke des Signals CLKDIV4. Der dritte
Eingang des UND-Gates 844 empfängt ein Signal SCAN_IN_PROGRESS,
das, wenn es aufgestellt wird, oder auf hoch angesteuert ist, anzeigt,
dass die Abtast-Zustand- Maschine 840 momentan
die Status-Signale STATUS[127:0] abtastet, und das Signal SCAN_IN_PROGRESS
wird ansonsten weggenommen.
-
Deshalb
wird, wenn die Abtast-Zustand-Maschine 840 nicht die Status-Signale
STATUS[127:0] verschiebt, der Zähler 841 gesperrt.
Weiterhin wird, wenn freigegeben ist, der Zähler 841 an der negativen
Flanke des Taktsignals DIV2CLK getaktet.
-
Das
Unterbrechungs-Register 800 empfängt Eingangs-Signale D_INTR_REG[31:0]
an deren entsprechenden zweiunddreißig Eingängen. Die Last-Freigabe-Eingänge des
Unterbrechungs-Registers 800 nehmen entsprechende Last-Freigabe-Signale
UPDATE_IRQ[31:0] auf. Das Unterbrechungs-Register 800 wird
an der positiven Flanke des PCI-Taktsignals CLK getaktet.
-
Für die Zwecke,
ein Protokoll über
die Status-Signale STATUS[5:0] nach jeder Abtastung beizubehalten,
liefert ein Mehrfach-Bit, D-Typ-Flip-Flop 836 Status-Signale
SCAN_SW[5:0]. Der Lösch-Eingang
des Flip-Flops 836 nimmt das Reset-Signal RST auf, und
das Flip-Flop 836 wird an der positiven Flanke des Taktsignals
CLK getaktet. Der Eingang des Flip-Flops 836 ist mit dem
Ausgang eines Mehrfach-Bit-ODER-Gates 850 verbunden, das
einen Eingang mit dem Ausgang eines Multi-Bit-UND-Gates 846 verbunden
und einen Eingang mit dem Ausgang eines Multi-Bit-UND-Gates 847 verbunden
besitzt. Ein Eingang des UND-Gates 846 nimmt sechs Bit-Freigabe-Signale
BIT_ENABLE[5:0] auf (nachfolgend beschrieben) und der andere Eingang
des UND-Gates 846 nimmt
das Seriell-Daten-Signal NEW CSID auf. Ein Eingang des UND-Gates 847 nimmt
invertierte Bit-Freigabe-Signale BIT_ENABLE[5:0] auf, und der andere
Eingang des UND-Gates 847 nimmt die Signale SCAN_SW[5:0]
auf.
-
Nur
eines der Bit-Freigabe-Signale BIT ENABLE[5:0] wird zu einem Zeitpunkt
aufgestellt (wenn die Abtast-Zustand-Maschine 840 abtastet),
und das aufgestellte Bit zeigt an, welches eine der entsprechenden Status-Signale
STATUS[31:0] durch das Signal NEW_CSID dargestellt wird. Demzufolge
werden, wenn die Abtast-Zustand-Maschine 840 abtastet,
und zwar an jeder positiven Flanke des Taktsignals CLK, die Signale SCAN_SW[5:0]
aktualisiert.
-
Die
Bit-Freigabe-Signale BIT_ENABLE[31:0] werden durch den Ausgang eines
Mehrfach-Bit-Multiplexers 832 geliefert, der die Bits BIT_ACTIVE[31:0]
an seinem einen Eingang empfängt.
Der Null-Eingang des Multiplexers 832 empfängt ein
Zweiunddreißig- Bit-Signal, das für eine logische
Null indikativ ist. Der Auswahl-Eingang des Multiplexers 832 empfängt das
Signal SHIFT_ENABLE.
-
Zu
Zwecken einer Erfassung einer Änderung
in den Status-Signalen STATUS[5:0], liefert ein Multi-Bit-, Exklusiv-Oder-(XOR)-Gate 848 Umschalt-Änderungs-Signale
SW_CHG[5:0]. Wenn eines der Signale SW_CHG[5:0] aufgestellt ist
oder hoch ist, änderte
sich die logische Spannung des entsprechenden Status-Signals STATUS[5:0]
während
aufeinanderfolgender Abtastungen. Ein Eingang des XOR-Gates 848 ist
mit dem Eingang des Flip-Flops 836 verbunden, und der andere
Eingang des XOR-Gates 848 empfängt die Signale SCAN_SW[5:0].
-
Wie
in 10D dargestellt ist, besitzt, zu Zwecken eines
Anzeigens, wenn der logische Spannungs-Pegel eines ausgewählten Status-Signals
STATUS[5:0] bei einem logischen Spannungs-Pegel für mindestens
die Dauer des Debounce-Verzögerungs-Intervalls verblieben
war, die Abtast-Eingangs-Logik 804 sechs Signale LSWITCH[5:0].
Der nicht-invertierende Eingang eines Flip-Flops 900 vom
D-Typ liefert das Signal LSWITCH[5] an seinem nicht-invertierenden
Ausgang. Das Signal LSWITCH[5] wird aufgestellt oder auf hoch angesteuert,
um den vorstehend beschriebenen Zustand anzuzeigen, und wird ansonsten
weggenommen. Das Flip-Flop 900 wird an der positiven Flanke
des Taktsignals CLK getaktet, und der Lösch-Eingang des Flip-Flops 900 nimmt
das RST-Signal auf.
-
Der
Eingang des Flip-Flops 900 ist mit dem Ausgang eines Multiplexers 902 verbunden,
der ein D_LSWITCH[5] Signal liefert. Der Auswahl-Eingang des Multiplexers 902 ist
mit dem Ausgang eines UND-Gates 903 verbunden, der ein
MAX5 Signal und ein SCAN_END Signal aufnimmt. Das SCAN_END Signal
zeigt, wenn es aufgestellt ist, an, dass die Abtast-Zustand-Maschine 840 deren
momentane Abtastung abgeschlossen hat. Fünf Signale (MAX5, MAX4, MAX3,
MAX2, MAX1 und MAX0) zeigen an, ob das entsprechende Status-Signal
STATUS[5], STATUS[4], STATUS[3], STATUS[2], STATUS[1] oder STATUS[0],
jeweils, auf demselben, logischen Spannungs-Niveau für mindestens
die Dauer des Debounce-Zeit-Intervalls verblieben ist. Der Null-Eingang
des Multiplexers 902 empfängt das Signal LSWITCH[5],
und der eine Eingang des Multiplexers 902 empfängt das
Signal SCAN_SW[5]. Das Signal SCAN_END wird durch den Ausgang eines UND-Gates 851 geliefert
(31 B). Das UND-Gate 851 empfängt ein
Signal STOP_SCAN und ein Signal SCAN_DONE. Das Signal STOP_SCAN
wird aufgestellt, oder auf hoch angesteuert, wenn Zustände zum
Beenden des Abtastens durch die Abtast-Zustand-Maschine 840 vorhanden sind,
wie weiter nachfolgend beschrieben ist. Das Signal SCAN_END ist
eine gepulste Version (für
einen Zyklus des CLK-Signals) des Signals STOP_SCAN. Die Signale
LSWITCH[4]-LSWITCH[0] und D_LSWITCH[4]-D_LSWITCH[0] werden in einer ähnlichen
Weise aus den jeweiligen SCAN_SW[4]-SCAN_SW[0] Signalen und den jeweiligen
Signalen MAX4-MAX0 erzeugt.
-
Zu
Zwecken einer Aktualisierung wird der logische Spannungspegel der
Status-Signale STATUS[31:6] als
diese Signale eingetastet, ein Multi-Bit-D-Typ-Flip-Flop 905 (31D) liefert sechsundzwanzig Signale SCAN_NSW[31:6].
Eines der Signale SCAN_NSW[31:6] wird aufgestellt, oder auf hoch
angesteuert, um diesen Zustand anzuzeigen, und wird ansonsten weggenommen.
Das Flip-Flop 905 wird an der positiven Flanke des Taktsignals
CLK getaktet und der Löscheingang
des Flip-Flops 905 nimmt das RST-Signal auf.
-
Der
Eingang des Flip-Flops 905 ist mit dem Ausgang eines Multi-Bit-Multiplexers 906 verbunden.
Der Auswahl-Eingang des Multiplexers 906 nimmt ein invertiertes
CHECK_SWITCH_ONLY Signal auf. Das CHECK SWITCH_ONLY Signal wird
aufgestellt, oder auf hoch angesteuert, wenn die Abtast-Zustand-Maschine 850 nur
die Status-Signale
STATUS[5:0] oder die Status-Signale STATUS[127:32] abtastet (d.
h. Änderungen
in den Signalen STATUS[31:6] ignorieren), und sie ansonsten wegnimmt.
Der Null-Eingang
des Multiplexers 906 empfängt die Signale SCAN_NSW[31:6],
und der eine Eingang des Multiplexers 906 ist mit dem Ausgang
eines Multi-Bit-ODER-Gates 907 verbunden. Ein Eingang des
ODER-Gates 907 ist mit dem Ausgang eines Multi-Bit-UND-Gates 908 verbunden,
und der andere Eingang des ODER-Gates 907 ist mit dem Ausgang eines
Multi-Bit-UND-Gates 872 verbunden.
-
Ein
Eingang des UND-Gates 908 empfängt die Signale BIT_ENABLE[31:6].
Der andere Eingang des UND-Gates 908 ist mit dem Ausgang
eines Multi-Bit-Multiplexers 909 verbunden. Falls das NEW_CSID
Signal aufgestellt ist, oder hoch ist, liefert der Multiplexer 909 ein
Signal mit sechsundzwanzig Bits gleich zu "h3FFFFFF". Ansonsten liefert der Multiplexer
ein Signal mit sechsundzwanzig Bits gleich zu "0".
Ein Eingang des UND- Gates 872 ist
mit dem invertierten Ausgang des UND-Gates 908 verbunden
und der andere Eingang des UND-Gates 872 nimmt die Signale
SCAN_NSW[31:6] auf.
-
Zu
Zwecken eines Speicherns des logischen Spannungs-Pegels der Status-Signale STATUS[31:6] nach
jeder Abtastung liefert ein Multi-Bit-D-Typ-Flip-Flop 871 sechsundzwanzig
Signale LNON_SW[31:6]. Eines der Signale LNON_SW[31:6] wird aufgestellt,
oder auf hoch gesetzt, um diesen Zustand anzuzeigen, und wird ansonsten
weggenommen. Das Flip-Flop 871 wird auf der positiven Flanke
des Taktsignals CLK getaktet, und der Lösch-Eingang des Flip-Flops 871 empfängt das
RST-Signal.
-
Der
Eingang des Flip-Flops 871 ist mit dem Ausgang eines Multi-Bit-Multiplexers 870 verbunden,
der die Signale D_LNON_SW[31:6] liefert. Der Auswahl-Eingang des
Multiplexers 870 empfängt
das Signal SCAN_END. Der Null-Eingang des Multiplexers 870 empfängt die
Signale LNON_SW[31:6], und der eine Eingang des Multiplexers 807 empfängt die
Signale SCAN_NSW[31:6].
-
Wie
in 10B dargestellt ist, umfasst, zu
Zwecken eines Erzeugens der MAX0, MAX1, MAX2, MAX3, MAX4 und MAX5
Signale, die Seriell-Eingangs-Logik 804 sechs Zähler 831a–f, jeweils,
von einem gemeinsamen Design 831. Jeder Zähler 831 wird
initialisiert (auf einen vorbestimmten Zähl-Wert), wenn ein UND-Gate 892 seinen
Ausgang aufstellt, oder auf hoch ansteuert. Für den Zähler 831a empfängt das
UND-Gate 892 das Signal BIT_ENCABLE[0], das Signal SW_CHG[0]
und ein invertiertes Signal QUICK_FILTER. Das Signal QUICK_FILTER
kann, wenn es aufgestellt ist, oder hoch ist, dazu verwendet werden,
das Debounce-Zeit-Intervall zu umgehen. Das QUICK FILTER Signal
wird normalerweise weggenommen oder auf niedrig gesetzt. Der Takt-Eingang
des Zählers 831 ist
mit dem Ausgang eines UND-Gates 893 verbunden. Für den Zähler 831a empfängt das
UND-Gate 893 das BIT_ENABLE[0] Signal, das invertierte
SW_CHG[0] Signal, das invertierte GETTING_BYTE Signal und das invertierte
MAX0 Signal. Deshalb wird, für
den Zähler 831a,
wenn sich einmal die logische Spannung des Status-Signals STATUS[0] ändert, zu
jedem Zeitpunkt, zu dem die Seriell-Abtast-Logik 804 das
Status-Signal STATUS[0]
abtastet, der Zähler 831a erhöht. Wenn
der Zähler 831a seinen maximalen
Wert erreicht, wird das Signal MAX0 aufgestellt, was anzeigt, dass
das Debounce-Zeit-Intervall
abgelaufen ist. Falls sich die logische Spannung des Status-Signals
STATUS[0] während
der Zählung ändert, wird
der Zähler 831a reinitialisiert,
und die Zäh lung
beginnt erneut. Die anderen Zähler 831b–f arbeiten
in einer ähnlich
Weise in Bezug auf deren entsprechende Status-Signale STATUS[5:1].
-
Das
HOLD_OFF Signal instruiert, wenn es aufgestellt ist, einen der Zeitgeber 806,
ein vorbestimmtes Langsam-Abtast-Intervall zu messen, das die serielle
Abtast-Zustand-Maschine 840 in
den Langsam-Abtast-Mode versetzt. Wenn der Zeitgeber 806 eine
Messung dieses Verzögerungs-Intervalls
abschließt,
stellt der Zeitgeber 806 ein FTR_TIMEOUT Signal auf, oder
steuert es auf hoch an, das ansonsten weggenommen wird, oder negiert
wird. Das Produkt dieses Langsam-Abtast-Intervalls und der Zahl
von Zählungen
für den Zähler 831,
um seinen maximalen Wert zu erreichen, ist gleich zu dem Debounce-Zeit-Intervall
(8 ms).
-
Das
HOLD_OFF Signal wird durch den Ausgang eines JK-Flip-Flops 885 geliefert.
Das Flip-Flop 885 wird an der positiven Flanke des CLK
Signals getaktet, und der Lösch-Eingang des Flip-Flops 885 empfängt das
RST-Signal. Der J-Eingang ist mit dem Ausgang eines UND-Gates 883 verbunden
und der K-Eingang ist mit dem Ausgang eines UND-Gates 884 verbunden.
Ein Eingang des UND-Gates 884 ist mit dem Ausgang eines
Flip-Flops 896 vom JK-Typ verbunden, und der andere Eingang
des UND-Gates 893 empfängt
das SCAN_END Signal. Ein Eingang des UND-Gates 884 ist
mit dem invertierten Ausgang des UND-Gates 883 verbunden,
ein Eingang des UND-Gates 884 empfängt das FTR_TIMEOUT Signal,
und ein anderer Eingang des UND-Gates 884 empfängt ein
SCAN_IN_IDLE Signal, das aufgestellt wird, wenn sich die Abtast-Zustand-Maschine 840 in
deren IDLE Zustand befindet, wie dies weiter nachfolgend beschrieben
ist.
-
Das
Flip-Flop 895 wird an der positiven Flanke des CLK Signals
getaktet und der Lösch-Eingang
des Flip-Flops 895 empfängt
das RST-Signal. Der J-Eingang ist mit dem Ausgang eines NAND-Gates 894 verbunden,
der die MAX0, MAX1, MAX2, MAX3, MAX4 und MAX5 Signale aufnimmt.
Der K-Eingang ist mit dem Ausgang eines UND-Gates 826 verbunden,
der mit dem invertierten J-Eingang des Flip-Flops 895 verbunden
ist, und empfängt
ein invertiertes SCAN_IN_PROGRESS Signal, das dann aufgestellt wird,
wenn die Abtast-Zustand-Maschine 840 die Status-Signale
STATUS[31:0] abtastet.
-
Zu
Zwecken einer Erzeugung des CHECK SWITCH_ONLY Signals umfasst die
Seriell-Abtast-Eingangs-Logik 804 ein Flip-Flop 864 vom
JK-Typ, das das CHECK SWITCH_ONLY Signal an dem nicht-invertierendem
Ausgang liefert, und wird an der positiven Flanke des CLK-Signals
getaktet. Der Lösch-Eingang
des Flip-Flops 864 empfängt
das RST-Signal, und der J-Eingang des Flip-Flops 864 empfängt ein
DEBOUNCE Signal, das, wenn es aufgestellt, oder auf hoch angesteuert,
ist, anzeigt, dass sich einer des logischen Spannungs-Pegels eines
oder mehrere der Status-Signale STATUS(31:6] geändert hat. Der K-Eingang des Flip-Flops 864 ist
mit dem Ausgang eines UND-Gates 865 verbunden. Ein Eingang
des UND-Gates 865 nimmt das invertierte DEBOUNCE Signal
auf und ein Eingang des UND-Gates 865 nimmt das SCAN_IN_IDLE
Signal auf.
-
Wie
in 10C dargestellt ist, wird das Debounce-Signal
DEBOUNCE durch den nicht-invertierenden Ausgang eines Flip-Flops 860 vom
JK-Typ geliefert. Das Flip-Flop 860 wird durch die positive
Flanke des Taktsignals CLK getaktet, und der Lösch-Eingang des Flip-Flops 860 empfängt das
Reset-Signal RST. Der J-Eingang des Flip-Flops 860 empfängt ein
Signal CHANGE_ON_INPUT. Das Signal CHANGE_ON_INPUT wird aufgestellt,
oder auf hoch angesteuert, wenn eine Änderung in einem der Status-Signale
STATUS[31:6] an dem Ende einer Abtastung durch die Seriell-Eingangs-Logik 804 erfasst
wird, und wird ansonsten weggenommen. Der K-Eingang ist mit dem
Ausgang eines UND-Gates 861 verbunden,
das ein DB_TIMEOUT Signal an einem seiner Eingänge aufnimmt. Der andere Eingang
des UND-Gates 861 nimmt das invertierte CHANGE_ON_INPUT
Signal auf. Das DB_TIMEOUT Signal wird durch die Zeitgeber 106 für einen
Zyklus des CLK-Signals aufgestellt, wenn die Debounce-Zeit-Verzögerung (initiiert
durch das Aufstellen des DEBOUNCE Signals) abgelaufen ist. Das Aufstellen
des DB_TIMEOUT Signals negiert das DEBOUNCE Signal an der nächsten,
positiven Flanke des CLK-Signals.
-
Das
CHANGE_ON_INPUT Signal wird durch den nicht-invertierenden Ausgang
eines Flip-Flops 866 vom JK-Typ geliefert, das an der positiven
Flanke des CLK-Signals getaktet wird. Der Lösch-Eingang des Flip-Flops
empfängt
das RST-Signal. Der J-Eingang
des Flip-Flops 866 ist mit dem Ausgang eines UND-Gates 869 verbunden,
das das SCAN_END Signal aufnimmt, und der andere Eingang des UND-Gates 869 ist
mit dem Ausgang eines ODER-Gates 867 verbunden. Das ODER-Gate 867 verknüpft logisch
ODER-mäßig alle eines
Satzes von NSW_CHG[31:6] Signalen. Die Bit-Positionen der Signale
NSW_CHG[31:6] entsprechen den Bit-Positionen der Status-Signale
STATUS[31:6] und zeigen an, durch deren Aufstellen, ob sich das
entsprechende Status- Signal
STATUS[31:6] nach der letzten Abtastung geändert hat. Das UND-Gate 869 nimmt weiterhin
das SCAN_END Signal auf. Der K-Eingang des Flip-Flops 866 ist
mit dem Ausgang eines UND-Gates 868 verbunden, der das
invertierte SCAN_IN_PROGRESS Signal und den invertierten Ausgang des
UND-Gates 869 aufnimmt. Die Signale NSW_CHG[31:6] werden
durch den Ausgang eines Multi-Bit-XOR-Gates 862 geliefert,
das die Signale D_LNON_SW[31:6] und LNON_SW[31:6] aufnimmt.
-
Der
nicht-invertierende Ausgang eines Multi-Bit-D-Typ-Flip-Flops 912 liefert
Bits SI_DATA[7:0] für
das Seriell-Daten-Register 815. Der Lösch-Eingang des Flip-Flops 912 empfängt das
Signal RST und das Flip-Flop 912 wird an der positiven
Flanke des CLK-Signals
getaktet. Der Signal-Eingang des Flip-Flops 912 ist mit
dem Ausgang eines Multi-Bit-Multiplexers 916 verbunden.
Der Auswahl-Eingang des Multiplexers 916 ist mit dem Ausgang
eines UND-Gates 914 verbunden, und der Null-Eingang des
Multiplexers 916 nimmt die Bits SI_DATA[7:0] auf. Das UND-Gate 914 nimmt
die Signale GETTING_BYTE und SHIFT_ENABLE auf. Demzufolge werden,
wenn die Seriell-Abtast-Logik 804 nicht ein angefordertes
Byte der Status-Signale STATUS[47:0] verschiebt, die Werte der Bits
SI_DATA[7:0] bewahrt.
-
Der
eine Eingang des Multiplexers 916 ist mit dem Ausgang eines
Multi-Bit-Multiplexers 910 verbunden.
Der eine Eingang des Multiplexers 910 ist mit dem Ausgang
eines Multi-Bit-ODER-Gates 911 verbunden, und der Null-Eingang
des Multiplexers ist mit dem Ausgang eines Multi-Bit-UND-Gates 915 verbunden.
Der Auswahl-Eingang des Multiplexers 910 empfängt das
Signal NEW CSID.
-
Ein
Eingang des UND-Gates 915 empfängt die Bits SI_DATA[7:0],
und ein invertierender Eingang des UND-Gates 915 ist mit
dem Ausgang eines 3X8 Decodierers 913 verbunden. Der Decodierer 913 empfängt das
Signal BIT[2:0]. Ein Eingang des ODER-Gates 911 empfängt die
Bits SI_DATA[7:0], und der andere Eingang des ODER-Gates 911 empfängt den
Ausgang des Decodierers 913.
-
Die
Seriell-Eingangs-Logik 804 liefert fünf Signale RST_SWITCH[5:0]
(entsprechend den Bit-Positionenen der Status-Signale STATUS[5:0])
zu der EIN/AUS-Steuer-Logik 820,
was, durch deren Aufstellen, anzeigt, ob der entsprechende Schlitz 36a–f heruntergefahren
werden sollte. Die EIN/AUS-Steuer-Logik 820 zeigt an, wenn
der Schlitz 36 (angezeigt durch die RST_SWIITCH[5:0] Signale)
durch das darauffolgende Einstellen eines von fünf Signalen CLR_SWITCH[5:0]
heruntergefahren worden ist, deren Bit-Positionen den Signalen RST_SWITCH[5:0]
entsprechen. Nach Empfangen der Anzeige, dass der Schlitz bzw. Einsteckplatz 36 heruntergefahren
worden ist, nimmt die serielle Logik 804 dann das entsprechende
RST_SWITCH[5:0] Signal zurück.
-
Die
Signale RST_SWITCH[5:0] werden durch den nicht-invertierenden Ausgang
eines Multi-Bit-Flip-Flops 891 vom D-Typ (31B)
geliefert. Der Lösch-Eingang
des Flip-Flops 891 empfängt
das Reset-Signal RST und das Flip-Flop 891 wird an der
positiven Flanke des Taktsignals CLK getaktet. Der Eingang des Flip-Flops 891 ist
mit dem Ausgang eines Multi-Bit-ODER-Gates 857 verbunden,
der einen Eingang mit dem Ausgang eines Multi-Bit-UND-Gates 859 verbunden
besitzt und einen Eingang mit dem Ausgang eines Multi-Bit-UND-Gates 855 verbunden
besitzt. Ein Eingang des UND-Gates 859 ist mit dem Ausgang
eines Multiplexers 853 verbunden, und der andere Eingang
des UND-Gates 859 empfängt
verriegelte Schlitz-Freigabe-Signale LSLOT_EN[5:0], die anzeigen,
durch deren Aufstellen, ob der entsprechende Schlitz bzw. Einsteckplatz 36a-f
hochgefahren ist. Ein Eingang des UND-Gates 855 nimmt die
Signale CLR_SWITCH_[5:0] auf. Ein anderer Eingang des UND-Gates 855 nimmt
die Signale RST_SWITCH[5:0] auf. Ein anderer Eingang des UND-Gates 855 ist
mit dem invertierten Ausgang des Multiplexers 853 verbunden.
-
Der
Null-Eingang des Multiplexers 853 empfängt ein Sechs-Bit-Signal, das
für Null
indikativ ist. Der eine Eingang des Multiplexers 853 ist
mit dem Ausgang eines Multi-Bit-UND-Gates 849 verbunden.
Ein Eingang des UND-Gates 849 empfängt die Signale D_LSWITCH[5:0],
und der andere Eingang des UND-Gates 849 empfängt die
invertierten Signale L_SWITCH[5:0]. Der Auswahl-Eingang des Multiplexers 853 empfängt das
SCAN_END Signal.
-
Zu
Zwecken einer Erzeugung des SI_INTR# Signals umfasst die Seriell-Abtast-Logik 804 ein
Flip-Flop 882 vom D-Typ, das das Seriell-Unterbrechungs-Signal
SI_INTR# an seinem invertierenden Ausgang liefert. Das Flip-Flop 882 wird
an der positiven Flanke des CLK-Signals getaktet, und der Löscheingang
des Flip-Flops 882 empfängt
das RST-Signal.
Der Eingang des Flip-Flops 882 ist mit dem Ausgang eines
ODER-Gates 881 verbunden, der zweiunddreißig anhängige Unterbrechungs-Signale
PENDING_IRQ[31:0] aufnimmt, die, durch deren Aufstellen, oder Ansteuern
auf hoch, anzeigen, ob eine Unter brechung für das entsprechende eine der Status-Signale
STATUS[31:0] anhängig
ist. Die Signale PENDING_IRQ[31:0] werden ansonsten weggenommen.
-
Wie
in 10E dargestellt ist, liefert ein Multi-Bit-Flip-Flop 979 vom
D-Typ die Signale PENDING_IRQ[31:0] an seinem nicht-invertierenden
Ausgang. Das Flip-Flop 979 wird an der positiven Flanke des
Signals CLK getaktet und empfängt
das Signal RST an seinem Lösch-Eingang.
Der Eingang des Flip-Flops 979 ist mit dem Ausgang eines
Multi-Bit-UND-Gates 981 verbunden,
das invertierte Unterbrechungs-Maskierungs-Signale. INTR_MASK[31:0]
an einem Eingang aufnimmt. Die Signale INTR_MASK[31:0] sind für ein entsprechendes
Bit des Unterbrechungs-Masken-Registers 810 indikativ.
Der andere Eingang des UND-Gates 981 ist mit dem Ausgang
eines Multi-Bit-ODER-Gates 835 verbunden. Ein Eingang des ODER-Gates 835 ist
mit dem Ausgang eines Multi-Bit-UND-Gates 862 verbunden und der
andere Eingang des ODER-Gates 835 ist mit dem Ausgang eines
Multi-Bit-UND-Gates 834 verbunden.
-
Das
UND-Gate 862 nimmt invertierte PENDING_IRQ[31:0] Signale
auf und signalisiert SET_IRQ[31:0]. Die Signale SET_PIRQ[31:0] werden
aufgestellt, um anzuzeigen, dass eine Unterbrechungs-Anforderung
für das
entsprechende eine der Status-Signale STATUS[31:0] erzeugt werden
sollte. Deshalb werden die Signale PENDING_IRQ[31:0] mit den Signalen
SET_PIRQ[31:0] aktualisiert, falls sie nicht durch die Signale INTR_MASK[31:0]
maskiert sind.
-
Das
UND-Gate 834 empfängt
die Signale PENDING_IRQ[31:0], invertierte Signale SET_PIRQ[31:0] und
invertierte WR_INTR_REG[31:0] Signale. Die Signale WR_INTR_REG[31:0]
zeigen die Schreib-Daten an, geliefert durch die CPU 14,
und zwar zu dem Unterbrechungs-Register 800 hin. Die CPU
löscht
eine Unterbrechung durch Schreiben einer "1" zu
dem entsprechenden Bit des Unterbrechungs-Registers 800.
Deshalb wird, falls dies auftritt, und keine neuen Unterbrechungs-Anforderungen
für das
entsprechende eine der Status-Signale STATUS[31:0] angezeigt werden,
das entsprechende eine der Signale PENDING_IRQ[31:0] gelöscht.
-
Die
Signale SET_PIRQ[31:0] werden durch den Ausgang eines Multi-Bit-UND-Gates 839 geliefert.
Ein Eingang des UND-Gates 839 empfängt die Signale UPDATE_IRQ[31:0].
Der andere Eingang des UND-Gates 839 ist mit dem Ausgang
eines Multi-Bit-XOR-Gates 837 verbunden. Ein Eingang des
XOR-Gates 837 empfängt
die Sig nale D_INTR_REG[31:0], der andere Eingang des XOR-Gates 837 empfängt die
Signale INTR_REG[31:0]. Deshalb wird, wenn die Bits des Unterbrechungs-Registers 800 von
einem logischen Zustand zu einem anderen übergehen, eine Unterbrechungs-Anforderung erzeugt.
-
Zu
Zwecken einer Aktualisierung der Bits des Unterbrechungs-Registers 800 werden
die Signale UPDATE_IRQ[31:0] zu den entsprechenden Last-Eingängen des
Registers 800 geliefert. Wenn eines der Signale UPATE_IRQ[31:0]
aufgestellt ist, oder auf hoch angesteuert ist, wird das entsprechende
Bit mit dem entsprechenden einen der Signale D_INTR_REG[31:0] geladen.
-
Die
Signale UPDATE_IRQ[31:0] werden durch den Ausgang eines Multi-Bit-ODER-Gates 971 geliefert.
Ein Eingang des ODER-Gates 971 ist mit dem Ausgang eines
Multi-Bit-UND-Gates 973 verbunden.
Ein Eingang des UND-Gates 973 ist mit dem Ausgang eines
Multi-Bit-Multiplexers 977 verbunden, und der andere Eingang
des UND-Gates 973 nimmt invertierte PENDING_IRQ[31:0] Signale
auf. Der Auswahl-Eingang des Multiplexers 977 empfängt das
Signal SCAN_END, der eine Eingang des Multiplexers 977 empfängt ein
Zweiunddreißig-Bit-Signal,
indikativ für "hFFFFFFFF", und der Null-Eingang
des Multiplexers 977 empfängt ein Zweiunddreißig-Bit-Signal,
indikativ für "0". Deshalb ermöglichen, an dem Ende einer
Abtastung, die Signale UPDATE_IRQ[31:0], dass die Bits des Unterbrechungs-Registers 800 aktualisiert
werden, die den aufgestellten PENDING_IRQ[31:0] Signalen entsprechen.
-
Ein
anderer Eingang des ODER-Gates 971 ist mit dem Ausgang
eines Multi-Bit-UND-Gates 975 verbunden.
Ein Eingang des UND-Gates 975 empfängt die invertierten INTR_MASK[31:0)
Signale, ein anderer Eingang des UND-Gates 975 empfängt die
Signale PENDING_IRQ[31:0], und der andere Eingang des UND-Gates 975 empfängt die
Signale WR_INTR_REG[31:0]. Deshalb kann die CPU 14 selektive
Bits der Signale PENDING_IRQ[31:0] löschen.
-
Die
Signale D_INTR_REG[5:0] werden durch den Ausgang eines Multi-Bit-Multiplexers 830 geliefert. Wenn
das SCAN_END Signal aufgestellt ist, sind die Signale D_INTR_REG[5:0]
gleich zu den Signalen D_LSWITCH[5:0]. Wenn das SCAN_END Signal
weggenommen ist, sind die Signale D_INTR_REG[5:0] gleich zu den
Signalen LSWITCH[5:0].
-
Die
Signale D_INTR_REG[31:6] werden durch den Ausgang eines Multi-Bit-Multiplexers 845 geliefert. Wenn
das SCAN_END Signal aufgestellt ist, sind die Signale D_INTR_REG[31:6]
gleich zu den Signalen D_LNON_SW[31:6]. Wenn das SCAN_END Signal
weggenommen ist, sind die Signale D_INTR_REG[5:0] gleich zu den
Signalen LNON_SW[31:6]. Das Unterbrechungs-Register 800 nimmt
neue Werte nur dann auf, wenn das Signal SCAN_END aufgestellt ist.
-
Wie
in den 11A–11B dargestellt
ist, tritt die Abtast-Zustand-Maschine 840 in einen IDLE
Zustand nach dem Aufstellen des RESET-Signals RST ein. Wenn sie
sich nicht in dem IDLE Zustand befindet, toggelt die Abtast-Zustand-Maschine 840 die
Zustände
des Seriell-Eingangs-Taktsignals CSIC_O, um das Schiebe-Register 82 zu
takten. Weiterhin stellt, wenn sie sich nicht in einem ersten Lade-Zustand
LD1 befindet, die Abtast-Zustand-Maschine 840 das Lade-Signal
CSIL_O_ auf oder steuert es auf hoch an, um die Register 82 und 52 freizugeben,
um seriell die Status-Signale STATUS[127:0] zu der SIO-Schaltung 50 zu
verschieben. In dem IDLE Zustand setzt die Abtast-Zustand-Maschine 840 das
Signal SCAN_DONE gleich zu Null.
-
Die
Abtast-Zustand-Maschine 840 geht von dem IDLE Zustand zu
dem Zustand LD1 über,
wenn entweder das Signal GETTING_BYTE aufgestellt ist oder das Signal
HOLD_OFF weggenommen ist. Ansonsten verbleibt die Abtast-Zustand-Maschine 840 in
dem IDLE Zustand. In dem LD1 Zustand stellt die Abtast-Zustand-Maschine 840 das
Lade-Signal CSIL_O_ auf oder steuert es auf niedrig an, das die
Register 82 und 52 freigibt, um zu verriegeln
und damit zu beginnen, die Status-Signale STATUS[127:0] aufzunehmen.
-
Die
Abtast-Zustand-Maschine 840 geht von dem LD1 Zustand zu
einem Lade-Zwei-Zustand
LD2 über. In
dem LD2 Zustand wird das Lade-Signal CSIL_O_ aufgestellt beibehalten,
was den Registern 82 und 52 ermöglicht,
seriell die Status-Signale STATUS[127:0] zu verschieben.
-
Die
Abtast-Zustand-Maschine 840 geht darauffolgend zu einem
Abtast-Zustand SCALA über.
In dem SCALA Zustand tastet die Seriell-Abtast-Eingangs-Logik 804 die
Status-Signale STATUS[127:0] an jeder negativen Flanke des Takt-Signals
DIV2CLK ab. Wenn das Signal STOP_SCAN aufgestellt ist, geht die
Abtast-Zustand-Maschine 840 zurück zu dem IDLE Zustand. Das
STOP_SCAN Signal wird aufgestellt, wenn entweder das erwünschte Byte
der Status-Signale STATUS[127:0] in das Seriell-Daten-Register 815 hinein
verschoben worden ist; die Hebel-Status-Signale STATUS[5:0] eingetastet
worden sind und das Seriell-Unterbrechungs-Signal SI_INTR# aufgestellt
worden ist; oder alle Status-Signale STATUS[31:0] hinein verschoben worden
sind. In dem SCALA Zustand wird das SCAN_DONE Signal gleich zu dem
STOP_SCAN Signal gesetzt.
-
Wie
in 12A dargestellt ist, umfasst die EIN/AUS-Steuer-Logik 820 eine
EIN/AUS-Zustand-Maschine 998, die die RST_SWITCH[5:0] Signale,
SLOT_EN[5:0] und SLOT_RST_[5:0] empfängt. Basierend auf den Zuständen, angezeigt
durch diese Signale, zeigt die EIN/AUS-Zustand-Maschine 998 die
geeigneten Hochfahr- und Herunterfahr-Sequenzen an und steuert sie. Die EIN/AUS-Zustand-Maschine 998 liefert
Steuersignale zu der Steuer-Logik 999.
-
Die
EIN/AUS-Zustand-Maschine 998 liefert ein Seriell-Ausgangs-Aktualisierungs-Signal SO_UPDATE zu
der Seriell-Ausgangs-Logik 824. Wenn das Signal SO_UPDATE
aufgestellt ist, oder auf hoch angesteuert ist, beginnt die Seriell-Ausgangs-Logik 824 die
Verschiebe-Phase und verschiebt Seriell-Steuer-Daten, über das
Signal CSOD_O, zu dem Register 80. Die Seriell-Ausgangs-Logik 824 zeigt
einen Abschluss der Verschiebe-Phase
durch Aufstellen eines Signals SO_UPDATE_DONE an, das durch die
EIN/AUS-Zustand-Maschine 998 empfangen
wird. Die EIN/AUS-Zustand-Maschine 998 aktualisiert darauffolgend
die Steuersignale POUT[39:0] durch Negieren, oder Takten, des Verriegelungs-Signals
CSOLC_O, das durch das Register 80 empfangen wird.
-
Die
Steuer-Logik 999 liefert die Signale PWREN[5:0], CLKEN#[5:0],
BUSEN#[5:0] und RST#[5:0] zu der Seriell-Ausgangs-Logik 824.
Die Steuer-Logik 999 liefert auch ein PCI-Bus-Anforderungs-Signal
CAYREQ# zu dem und empfängt
ein PCI-Bus-Erteilungs-Signal
CAYGNT# von dem Arbitrierer 124. Die EIN/AUS-Steuer-Logik 820 stellt
das Signal CAYREQ# auf, oder steuert es auf niedrig an, um den PCI-Bus 32 anzufordern,
wenn der Arbitrierer 124 das Signal CAYGNT# aufstellt,
oder auf niedrig ansteuert, hat der Arbitrierer 124 eine
Steuerung über
den PCI-Bus 32 zu der EIN/AUS-Steuer-Logik 820 erteilt.
-
Wie
in den 12B–12G dargestellt
ist, tritt die EIN/AUS-Zustand-Maschine 998 in einen Idle-Zustand
IDLE unter Aufstellen des Reset-Signals RST ein. Falls kein Leerlauf
vorliegt, steuert die EIN/AUS-Zustand-Maschine 998 eine
von drei Sequenzen: die Power-down-Sequenz, die Power-on-Sequenz
oder die eine Durchgangs-Sequenz, verwendet dazu, die Steuer-Signale
POUT[39:0] zu aktualisieren, wie dies durch das Schlitz-Freigabe- 817 und
das LED-Steuer- (nicht dargestellt) Register angezeigt ist. Die
EIN/AUS-Zustand-Maschine 998 stellt das Lade-Signal CSOLC_O
für einen
Zyklus des Taktsignals CLK des Registers 80 auf, oder steuert
es auf hoch, bis die EIN/AUS-Zustand-Maschine 998 bestimmt,
dass die Steuer-Signale POUT[39:0] aktualisiert werden müssen. Wenn
die Steuer-Signale POUT[39:0] aktualisiert sind, negiert die EIN/AUS-Zustand-Maschine 998 das
Signal CSOLC_O, was die Steuer-Signale POUT[39:0] aktualisiert.
-
Die
EIN/AUS-Zustand-Maschine 998 beginnt die Power-down-Sequenz,
wenn entweder die Software ein energiemäßiges Herunterfahren bzw. Power-down
mindestens eines der Schlitze bzw. Einsteckplätze 36 anfordert,
wie dies durch das Wegnehmen der Signale SLOT_EN[5:0] angezeigt
ist; oder die Seriell-Abtast-Eingangs-Logik 804 bestimmt,
dass mindestens einer der Schlitze bzw. Einsteckplätze 36a–f der Power-down-Sequenz unterworfen
werden sollte, wie dies durch das Aufstellen der Signale RST_SWITCH[5:0] angezeigt
ist. Um die Power-down-Sequenz zu beginnen, stellt die EIN/AUS-Zustand-Maschine 998 das SO_UPDATE
Signal auf, um eine Verschiebe-Phase
und Übergänge von
dem IDLE Zustand zu einem RSTON Zustand zu beginnen.
-
Während des
RSTON Zustands negiert die Steuer-Logik 999 die Reset-Signale
RST#[5:0] für
die Schlitze 36, die energiemäßig heruntergefahren werden
sollen, und die Seriell-Ausgangs-Logik 824 verschiebt seriell
die Reset-Signale RST#[5:0] zu dem Ausgangs-Register 80.
Die EIN/AUS-Zustand-Maschine 998 negiert auch das Signal
SO UPDATE. Wenn einmal alle vierzig Steuer-Signale durch die Seriell-Ausgangs-Logik 824 zu
dem Register 80 verschoben sind, wie dies durch das Aufstellen
des Signals SO_UPDATE_DONE angezeigt ist, geht die EIN/AUS-Zustand-Maschine 998 von
dem RSTON Zustand zu einem OFF_ARB1 Zustand über.
-
In
dem OFF_ARB1 Zustand fordert die EIN/AUS-Zustand-Maschine 998 eine
Steuerung über
den sekundären
PCI-Bus 32 durch Aufstellen des Anforderungs-Signals CAYREQ#
an. Die EIN/AUS-Zustand-Maschine 998 geht dann zu einem
OFF_WGNT1 Zustand über,
wo sie auf die Erteilung des sekundären PCI-Busses 32 wartet.
Wenn der Arbitrierer 124 eine Steuerung über den
Bus 32 erteilt, wie dies durch das Aufstellen des CAYREQ#
Signals angezeigt ist, negiert die EIN/AUS-Zustand-Maschine 998 das
Signal CSOLC_O für einen
Zyklus des Signals CLK, um die Steuer-Signale POUT[39:0] zu aktualisieren,
und geht zu einem OFF_LCLK1 Zustand über.
-
In
dem OFF_LCLK1 Zustand stellt die EIN/AUS-Zustand-Maschine 998 das
Signal SO_UPDATE auf, um so eine andere Verschiebe-Phase zu beginnen.
Die EIN/AUS-Zustand-Maschine 998 geht
von dem OFF_LCLK1 Zustand zu einem Bus-off-Zustand BUSOFF über. Während des
BUSOFF Zustands nimmt die Steuer-Logik 999 die BUS-Freigabe-Signale
BUSEN#[5:0] für
die Schlitze 36 weg oder steuert sie auf hoch an, die energießmäßig heruntergefahren
werden sollen, und die Seriell-Ausgangs-Logik 824 verschiebt
seriell die Bus-Freigabe-Signale BUSEN#[5:0] zu dem Ausgangs-Register 80.
Die EIN/AUS-Zustand-Maschine 998 negiert auch das Signal
SO_UPDATE. Wenn einmal alle vierzig Steuer-Signale durch die Seriell-Ausgangs-Logik 824 verschoben
sind, wie dies durch das Aufstellen des Signals SO_UPDATE_DONE angezeigt
ist, geht die EIN/AUS-Zustand-Maschine 998 von
dem BUSOFF Zustand zu einem OFF_AR62 Zustand über, wo die Zustand-Maschine 998 wieder
erneut eine Kontrolle des sekundären
PCI-Busses 32 anfordert. Die Zustand-Maschine 998 geht
dann zu einem OFF_WGNT2 Zustand über,
wo sie auf die Erteilung des PCI-Busses 32 wartet. Wenn
einmal die Erteilung empfangen ist, geht die Zustand-Maschine 998 zu
einem OFF_LCLK2 Zustand über,
wo die Steuer-Signale POUT[39:0] durch Negieren des Signals CSOLC_O
für einen
Zyklus des Signals CLK aktualisiert werden. Die Zustand-Maschine 998 geht
dann zu einem Takt-Off-Zustand
CLKOFF über.
-
Während des
CLKOFF Zustands nimmt die Steuer-Logik 999 die Takt-Freigabe-Signale CLKEN#[5:0] für die Schlitze 36 weg,
oder steuert sie auf hoch an, die energiemäßig heruntergefahren werden
sollen. Die Bus-Freigabe-Signale BUSEN#[5:0] ändern sich nicht, und die Seriell-Ausgangs-Logik 824 verschiebt
seriell die Takt-Freigabe-Signale
CLKEN#[5:0] zu dem Ausgangs-Register 80. Die EIN/AUS-Zustand-Maschine
998 negiert auch das Signal SO_UPDATE. Wenn einmal alle vierzig
Steuer-Signale durch die Seriell-Ausgangs-Logik 824 verschoben
sind, wie dies durch das Aufstellen des Signals SO_UPDATE_DONE angezeigt
ist, geht die EIN/AUS-Zustand-Maschine 998 von dem CLKOFF-Zustand
zu einem OFF_ARB3 Zustand über,
wo die Zustand-Maschine 998 erneut eine Steuerung bzw.
Kontrolle über
den PCI-Bus 32 anfordert. Die Zustand- Maschine 998 geht dann zu einem
OFF_WGNT3 Zustand über,
wo sie auf die Erteilung des PCI-Busses 32 wartet. Wenn
einmal die Erteilung empfangen ist, geht die Zustand-Maschine 998 zu
einem OFF_LCLK3 Zustand über,
wo die Steuersignale POUT[39:0] durch Negieren des Signals CSOLC_O
für einen
Zyklus des Signals CLK aktualisiert werden. Die Zustand-Maschine 998 geht
dann zu einem Power-Off-Zustand PWROFF über.
-
Während des
PWROFF Zustands nimmt die Steuer-Logik 999 die Energie-Freigabe-Signale
PWREN[5:0] für
die Schlitze 36 weg oder setzt sie auf niedrig, die energiemäßig heruntergefahren
werden sollen. Die Signale REST#[5:0], BUSEN#[5:0] und CLKEN#[5:0] ändern sich
nicht, und die Seriell-Ausgangs-Logik 824 verschiebt seriell
die Energie-Freigabe-Signale PWREN[5:0] zu dem Ausgangs-Register 80.
Die EIN/AUS-Zustand-Maschine 998 negiert
auch das Signal SO_UPDATE. Wenn einmal alle vierzig Steuersignale
durch die Seriell-Ausgangs-Logik 824 verschoben sind, wie
dies durch das Aufstellen des Signals SO_UPDATE_DONE angezeigt ist,
geht die EIN/AUS-Zustand-Maschine 998 von
dem PWROFF Zustand zu einem OFF_LCLK4 Zustand über, wo die Signale POUT[39:0]
durch Negieren des Signals CSOLC_O für einen Zyklus des Signals
CLK aktuallisiert werden. Die Zustand-Maschine 998 geht
dann zu dem IDLE Zustand über, der
die Power-Down-Sequenz abschließt.
-
Falls
eine Power-Down-Sequenz nicht erforderlich ist, dann bestimmt die
EIN/AUS-Zustand-Maschine 998,
ob die Power-Up-Sequenz erforderlich ist. Falls entweder die Software
mindestens angefordert hat, dass mindestens einer der Schlitze 36 energiemäßig hochgefahren
werden soll, oder ein Hochfahren des Erweiterungskastens 30 anhängig ist,
dann geht die EIN/AUS-Zustand-Maschine 998 von dem IDLE
Zustand zu einem Power-On-PWRON Zustand über, um die Power-On-Sequenz
zu beginnen. Um die Power-On-Sequenz zu beginnen, stellt die EIN/AUS-Zustand-Maschine 998 das
SO_UPDATE Signal auf, um eine Verschiebe-Phase zu beginnen, und
geht von dem IDLE Zustand zu einem Power-On-Zustand PWRON über.
-
Während des
PWRON Zustands stellt die Steuer-Logik 999 die Power-Freigabe-Signale PWREN[5:0] für die Schlitze 36 auf,
die energiemäßig hochgefahren
werden sollen, und die Seriell-Ausgangs-Logik 824 verschiebt
seriell die Power-Freigabe-Signale PWREN[5:0] zu dem Ausgangs-Register 80.
Die EIN/AUS-Zustand-Maschine 998 negiert auch das Signal
SO_UPDATE. Wenn einmal alle vierzig Steuersignale durch die Seriell-Ausgangs-Logik 824 verschoben
sind, wie dies durch das Aufstellen des Signals SO_UPDATE_DONE angezeigt
ist, geht die EIN/AUS-Zustand-Maschine 998 von dem PWRON-Zustand
zu einem Initialisierungs-Zustand LDCNTI eines Zeitgebers 806 über und
negiert das Lade-Signal CSOLC_O, um die Steuersignale POUT[39:0]
zu aktualisieren.
-
In
dem LDCNTI Zustand initialisiert die EIN/AUS-Zustand-Maschine 998 die
Zeitgeber 806 so, dass die Zeitgeber 806 eine
Indikation liefern, wenn ein vorbestimmtes Stabil isierungs-Verzögerungs-Intervall
abgelaufen ist. Das Stabil isierungs-Verzögerungs-Intervall ermöglicht eine ausreichende Zeit
für die
Karte 807, die energiemäßig hochgefahren
werden soll, um sich zu stabilisieren, wenn einmal der Spannungspegel
Vss zu der Karte 807 zugeführt ist.
In dem LDCNTI Zustand stellt die EIN/AUS-Zustand-Maschine 998 auch
das Signal CSOLC_O auf. Die EIN/AUS-Zustand-Maschine 820 geht
von dem LDCNTI Zustand zu einem CLKON Zustand über.
-
Während des
CLKON Zustands stellt die Steuerlogik 999 die Taktfreigabesignale
CLKEN#[5:0] für
die Schlitze bzw. Einsteckplätze 36 auf
oder steuert sie auf niedrig an, die energiemäßig hochgefahren werden sollen.
Die PWREN[5:0] Signale verbleiben unverändert, und die Seriell-Ausgangs-Logik 824 verschiebt
seriell die Taktfreigabesignale CLKEN#[5:0] zu dem Ausgangs-Register 80.
Die EIN/AUS-Zustand-Maschine 998 negiert auch das Signal
SO_UPDATE. Wenn einmal das Stabilisierungs-Verzögerungs-Intervall abgelaufen
ist, geht die EIN/AUS-Zustand-Maschine 998 von dem CLKOFF
Zustand zu einem ON_ARB1 Zustand über.
-
In
dem ON_ARB1 Zustand fordert die EIN/AUS-Zustand-Maschine 998 eine
Steuerung bzw. Kontrolle über
den sekundären
PCI-Bus 82 durch Aufstellen des Anforderungs-Signals CAYREQ# an.
Die EIN/AUS-Zustand-Maschine 998 geht dann zu einem ON_WGNT1
Zustand über,
wo sie auf die Erteilung des sekundären PCI-Busses 32 wartet.
Wenn einmal die Kontrolle bzw. Steuerung des Busses 32 erteilt
ist, wie dies durch das Aufstellen des CAYGNT Signals angezeigt
ist, negiert die EIN/AUS-Zustand-Maschine 998 das
Signal CSOLC_0, um die Steuer-Signale POUT[39:0] zu aktualisieren,
und geht zu einem ON_LCLK1 Zustand über, wo die Signale POUT[39:0]
aktualisiert werden.
-
Die
EIN/AUS-Zustand-Maschine 998 geht von dem ON_LCLK1 Zustand
zu einem LDCNT2 Zustand über,
wo die Zeitgeber 806 so initialisiert werden, dass die
Zeitgeber 806 eine Indikation liefern, wenn ein anderes,
vorbestimmtes Stabilisierungs-Verzögerungs-Intervall
abgelaufen ist. Dieses Verzögerungsintervall wird
dazu verwendet, dem Takt-Signal an der Karte 807 zu ermöglichen,
energiemäßig hochgefahren
zu werden, um sich zu stabilisieren, bevor die Power-Up-Sequenz
fortfährt.
Die EIN/AUS-Zustand-Maschine 998 geht von
dem LDCNT2 Zustand zu einem Bus-Ein-Zustand BUSON über.
-
Während des
BUSON Zustands stellt die Steuerlogik 999 die Bus-Freigabe-Signale BUSEN#[5:0]
für die
Schlitze 36 auf, oder steuert sie auf niedrig an, die energiemäßig heruntergefahren
werden sollen. Die Signale CLKEN#[5:0] und PWREN[5:0] verbleiben
unverändert,
und die Seriell-Ausgangs-Logik 824 verschiebt seriell die
Bus-Freigabe-Signale
BUSEN#[5:0] zu dem Ausgangsregister 80. Die EIN/AUS-Zustand-Maschine 998 negiert
auch das Signal SO_UPDATE. Wenn einmal das Stabilisierungs-Verzögerungs-Intervall
abgelaufen ist, geht die EIN/AUS-Zustand-Maschine 998 von
dem BUSON Zustand zu einem ON_ARB2 Zustand über, wo die Zustand-Maschine 998 erneut
wieder eine Kontrolle des PCI-Busses 32 anfordert. Die
Zustand-Maschine 998 geht dann zu einem ON_WGTN2 Zustand über, wo
sie auf die Erteilung des Busses 32 wartet. Wenn einmal
die Erteilung empfangen ist, geht die Zustand-Maschine 998 zu
einem ON_CLK2 Zustand über,
wo die Signale POUT[39:0] durch Negieren des Signals CSOLC_O für einen
Zyklus des Signals CLK aktualisiert werden. Die Zustand-Maschine 998 geht
dann zu einem Reset-Off-Zustand RSTOFF über.
-
Während des
RESTOFF Zustands stellt die Steuerlogik 999 die Reset-Signale
RST#[5:0] für
die Schlitze 36 auf, oder negiert sie, die energiemäßig hochgefahren
werden sollen, und zwar in Abhängigkeit
von deren jeweiligen SLOT_RST_[5:0] Signalen. Die Signale CLKEN#[5:0],
PWREN[5:0] und BUSEN#[5:0] verbleiben unverändert, und die Seriell-Ausgangs-Logik 824 verschiebt
seriell die Reset-Signale RST#[5:0] zu dem Ausgangsregister 80.
Die EIN/AUS-Zustand-Maschine 998 negiert auch das Signal
SO_UPDATE. Wenn einmal alle vierzig Steuersignale durch die Seriell-Ausgangs-Logik 824 verschoben
sind, wie dies durch das Aufstellen des Signals SO_UPDATE_DONE angezeigt
ist, geht die EIN/AUS-Zustand-Maschine 998 von dem RSTON Zustand
zu ei nem ON_ARB3 Zustand über,
wo die Zustand-Maschine 998 erneut wieder eine Kontrolle
des Busses 32 anfordert. Die Zustand-Maschine 998 geht
dann zu einem ON_WGTN3 Zustand über,
wo sie auf die Erteilung des Busses 32 wartet. Wenn einmal
die Erteilung empfangen ist, geht die Zustand-Maschine 998 zu
einem ON_CLK3 Zustand über,
wo die Signale POUT[39:0] durch Negieren des Signals CSOLC_O für einen
Zyklus des Signals CLK aktualisiert werden. Die Zustand-Maschine 998 geht
dann zurück
zu dem IDLE Zustand.
-
Falls
weder die Power-Up-Sequenz noch die Power-Down-Sequenz erforderlich
ist, dann bestimmt die EIN/AUS-Zustand-Maschine 998, ob
eine Ein-Durchgang-Sequenz benötigt
wird, um ausgewählte
solche der Signale POUT[39:0] zu aktualisieren. Falls die GO_UPDATE
Signal aufgestellt ist und falls sich irgendwelche Bits des Schlitz-Freigabe-Registers 817 oder
des Schlitz-Reset-Registers 918 ändern, dann geht die EIN/AUS Zustand-Maschine 998 zu
einem ONEPASS Zustand über
und stellt das SO_UPDATE Signal auf.
-
Die
EIN/AUS Zustand-Maschine 998 verbleibt in dem ONEPASS Zustand,
bis die vierzig Steuer-Signale zu dem Register 80 verschoben
worden sind. Die EIN/AUS-Zustand-Maschine 998 geht
dann zu einem OP_ARB Zustand über,
wo die Zustand-Maschine 998 eine
Kontrolle des PCI-Busses 32 durch Aufstellen des Signals
CAYREQ# anfordert. Die Zustand-Maschine 998 geht dann zu
einem OP_WGNT Zustand über,
wo sie auf die Erteilung des Busses 32 wartet. Wenn einmal
die Erteilung empfangen ist, geht die Zustand-Maschine 998 zu
einem OP_LCLK Zustand über,
wo die Signale POUT[39:0] durch Negieren des Signals CSOLC_O für einen
Zyklus des Signals CLK aktualisiert werden. Die Zustand-Maschine 998 geht
dann zurück
zu dem IDLE Zustand.
-
Wie
in 13 dargestellt ist, umfasst die Seriell-Ausgangs-Logik 824 einen
Verschiebe-Ausgangs-Bit-Zähler 921,
der ein Sechs-Bit-Zähler-Ausgangs-Signal
BIT_CNTR[5:0] liefert, das das Steuer-Signal protokolliert, aus
der Seriell-Ausgangs-Logik 824 über das
Signal CSOD_O heraus verschoben. Wenn das Signal BIT_CNTR[5:0] gleich
zu einer Zahl mit sechs Ziffern gleich zu "39" ist,
dann wird ein Signal MAX_CNT aufgestellt. Das Signal MAX_CNT wird
zu dem Eingang eines UND-Gates 922 geliefert. Das UND-Gate 922 empfängt weiterhin
ein Signal SHIFT4, das aufgestellt wird, wenn die Ausgangs-Verschiebe-Zustand-Maschine 920 in
der SHIFT4 Zustand ein tritt, der weiter nachfolgend beschrieben
wird. Der Ausgang des UND-Gates 922 liefert das Signal
SO_UPDATE_DONE.
-
Die
Ausgangs-Verschiebe-Zustand-Maschine 920 liefert ein Erhöhungs-Zähler-Signal INC_CNTR zu dem
Bit-Zähler 921.
Wenn das INC_CNTR-Signal aufgestellt ist, erhöht der Bit-Zähler 921 den
Wert, dargestellt durch das Signal BIT_CNTR[5:0]. Wenn ein Lade-Zähler-Signal
LOAD_CNTR aufgestellt ist oder wenn das RST-Signal aufgestellt ist,
dann löscht
der Ausgang eines ODER-Gates 925, verbunden mit einem Lösch-Eingang des Bit-Zählers 921,
das Signal BIT_CNTR[5:0].
-
Das
Signal BIT_CNTR[5:0] wird zu dem Auswahl-Eingang eines Multi-Bit-Multiplexers 924 geliefert, der
das Signal CSOD_O liefert. Der nullte bis elfte Eingang des Multiplexers 924 empfangen
die LED-Steuer-Signale LEDS[11:0]. Der zwölfte bis fünfzehnte Eingang des Multiplexers 924 empfangen
Ausgangs-Signale GPOA[3:0] für
allgemeine Zwecke. Der sechszehnte bis einundzwanzigste Eingang
empfangen die Reset-Signale
RST#[5:0]. Der zweiundzwanzigste bis siebenundzwanzigste Eingang
empfangen die Takt-Freigabe-Signale CLKEN#[5:0]. Der achtundzwanzigste
bis dreiunddreißigste
Eingang empfangen die Bus-Freigabe-Signale BUSEN[5:0]. Der vierunddreißigste bis
neununddreißigste
Eingang empfangen die Energie-Freigabe-Signale PWREN[5:0].
-
Wie
in den 14A-14B dargestellt
ist, tritt die Ausgangs-Verschiebe-Zustand-Maschine 920 in einen IDLE
Zustand ein, wenn das Signal RST aufgestellt ist. Falls das Signal
SO_UPDATE aufgestellt ist, dann geht die Ausgangs-Verschiebe-Zustand-Maschine 920 von
dem IDLE Zustand zu einem SHIFTI Zustand über.
-
Da
die Ausgangs-Verschiebe-Zustand-Maschine 920 an der positiven
Flanke des PCI-Takt-Signals CLK getaktet wird, geht die Ausgangs-Verschiebe-Zustand-Maschine 920 über einen
SHIFTI Zustand, einen SHIFT2 Zustand, einen SHIFT3 Zustand und einen
SHIFT4 Zustand hindurch, um das Takt-Signal CSOSC_O zu erzeugen,
das ein viertel der Frequenz des Takt-Signals CLK ist. Während des
SHIFT1- und SHIFT2-Zustands wird das Takt-Signal CSOSC_O negiert
und auf niedrig gesetzt, und während
des SHIFT3 und SHIFT4 Zustands wird das Taktsignal CSOSC_O aufgestellt
oder auf hoch gesetzt. Wenn die momentane Verschiebe-Phase abgeschlossen
ist, wie dies durch das Aufstellen des Signals MAXCNT angezeigt
ist, kehrt die Verschiebe-Zustand-Maschine 920 zu dem IDLE
Zustand zurück
und das Takt-Signal CSOSC_O wird, bis zu dem Beginn der nächsten Verschiebe-Phase,
aufgestellt.
-
Wie
in 15 dargestellt ist, wird ein Signal HANG_PEND
durch den Lösch-Eingang des Registers 80 empfangen.
Das Aufstellen, oder Ansteuern auf hoch, des HANG_PEND Signals asynchron
löscht
die geeigneten Ausgangs-Steuer-Signale POUT[39:0], um alle Schlitze 36 energiemäßig herunterzufahren,
wenn sich der PCI-Bus 32 in einem verriegelten Zustand
befindet, wie dies weiter nachfolgend beschrieben ist.
-
ERWEITERUNGS-KARTEN-RAUM-RESERVIERUNG
-
Im
Gegensatz zu herkömmlichen
Computersystemen reserviert, in der Anfangs-Konfiguration des Computersystems 10,
bei einem Einschalten, die CPU 14 einen Speicherraum und
PCI-Bus-Zahlen für
die Schlitze bzw. Eisteckplätze 36,
die leer sind (keine Karte 807 ist eingesetzt) oder abgeschaltet
sind bzw. heruntergefahren sind.
-
Die
CPU 14 ordnet, wie dies typischerweise vorgenommen wird,
Bus-Zahlen für
PCI-Busse (z. B. PCI-Busse 24, 32a–32b und
PCI-Buse) der Karten 807, die in Schlitze 36 eingesetzt
sind und eingeschaltet sind) zu, die dann vorhanden sind, wenn das
Computersystem 10 zuerst eingeschaltet bzw. hochgefahren wird.
-
Jede
PCI-PCI-Brücken-Schaltung
(z. B. PCI-PCI-Brücke 26, 48)
in diesem Konfigurations-Register-Raum 1252 (49) besitzt ein Neben-Bus-Zahl-Register 1218 und
ein Sekundär-Bus-Zahl-Register 1220.
Das Neben-Bus-Zahl-Register 1218 enthält eine Neben-Bus-Zahl, die
die höchste
PCI-Bus-Zahl ausgangsseitig der PCI-PCI-Brücken-Schaltung ist, und das Sekundär-Bus-Zahl-Register 1220 enthält eine
Sekundär-Bus-Zahl, die die PCI-Bus-Zahl
des PCI-Busses unmittelbar ausgangsseitig der PCI-PCI-Brücken-Schaltung
ist. Demzufolge definieren die Werte, gespeichert in dem Neben- 1218 und
dem Sekundär- 1220 Bus-Zahl-Register,
den Bereich von PCI-Bus-Zahlen, die ausgangsseitig der PCI-PCI-Brücken-Schaltung
vorhanden sind.
-
Der
Konfigurations-Register-Raum 1252 besitzt auch ein Primär-Bus-Zahlen-Register 1222.
Das Primär-Bus-Zahl-Register 1222 enthält die Zahl
des PCI-Busses, angeordnet unmittelbar eingangsseitig der PCI-PCI-Brücken-Schaltung.
-
Die
System-Steuereinheit/Host-Brücken-Schaltung 18 besitzt
auch das Neben- 1218 und
Sekundär- 1220 Bus-Zahl-Register.
Nach einer Konfiguration enthält
das Neben-Bus-Zahl-Register 1218 der Schaltung 18 die
maximale PCI-Bus-Zahl, die in dem Computersystem vorhanden ist.
Das Sekundär-Bus-Zahl-Register 1220 der
Schaltung 18 enthält
die Bus-Zahl Null, da dem PCI-Bus unmittelbar ausgangsseitig der
Schaltung 18 (PCI-Bus 24) immer die Bus-Zahl Null
zugeordnet wird.
-
Im
Gegensatz zu dem bekannten System erkennt die CPU 14, dass
einer der Schlitze 36, der zu Anfang eingeschaltet bzw.
hochgefahren ist oder leer ist, einen oder mehrere zusätzliche
PCI-Bus(e) (vorhanden auf der Karte 802, eingesetzt in
dem Schlitz 36, zu Anfang heruntergefahren) in das Computersystem 10 hinein einführen kann,
nachdem das Computersystem 10 bereits eingeschaltet bzw.
hochgefahren und konfiguriert ist. Dementsprechend reserviert, während einer
anfänglichen
Konfiguration, die CPU 14 Speicherraum, I/O-Raum und eine
vorbestimmte Zahl (z. B. eins oder drei) von PCI-Bus-Zahlen für irgendeinen
Schlitz 36, der heruntergefahren oder leer ist.
-
Demzufolge
müssen
die PCI-PCI-Brücken-Schaltungen
des Computersystems 10 nicht rekonfiguriert werden, um
die Karte 807 aufzunehmen, die vor kurzem eingeschaltet
worden ist. Nur die PCI-PCI-Brücken-Schaltungen
der Karte 807, die vor kurzem eingeschaltet wurde, muss
konfiguriert werden. Der Rest des Computersystems 10 verbleibt
unverändert.
-
Als
ein Teil des Resource-Reservierungs-Prozesses baut ein Basic-Input/Output-System (BIOS), gespeichert
in dem ROM 23 und verdeckt in den Speicher 20 eingegeben
(und schreibgeschützt),
eine Tabelle auf, die Resource-Bereiche spezifiziert, die für die Schlitze 36 reserviert
werden. Diese Tabelle umfasst eine Bus-Zahl, Speicher und I/O-Resource-Bereiche
zur Verwendung beim Konfigurieren einer PCI-Vorrichtung, die neu
zu dem System 10 hinzugefügt worden ist. Das Betriebssystem
verwendet diese Tabelle, um zu bestimmen, welche Resourcen reserviert
worden sind und welche Resourcen für eine Konfigurierung der neu
hinzugefügten
PCI-Vorrichtung verfügbar
sind.
-
Wie
in 16 dargestellt ist, ordnet, in einem rekursiven
PCI-Konfigurations-Programm,
bezeichnet als BUS_ASSIGN, die CPU 14 Konfigurations-Register 1252 für PCI-Bus-Zahlen
und -Programme der PCI-PCI-Brücken-Schaltungen
entsprechend zu. Die CPU 14 nimmt dies durch Abtasten eines
PCI-Busses zu einem Zeitpunkt für
PCI-Vorrichtungen
vor. Das BUS_ASSIGN Programm ist Teil des BIOS, gespeichert in dem ROM 23,
und wird dazu verwendet, zu Anfang das Computersystem 10,
nach einem Einschalten, zu konfigurieren.
-
Die
CPU 14 setzt zuerst 1000, der Wert eines Such-Parameters
PCI-Bus, gleich zu dem Wert eines anderen Such-Parameters CURRENT_PCI_BUS,
und initialisiert 1000 Such-Parameter FCN und DEV. Der Parameter
PCI-Bus zeigt die Bus-Zahl des PCI-Busses an, der momentan durch die CPU 14 abgetastet
wird, und wenn das BUS_ASSIGN Programm zuerst durch die CPU 14 ausgeführt wird,
zeigt der Parameter PCI-Bus die Bus-Zahl Null an.
-
Der
Parameter CURRENT_PCI_BUS zeigt die nächste PCI-Bus-Zahl an, die
zum Zuordnen durch die CPU verfügbar
ist, und wenn das Programm BUS_ASSIGN zuerst durch die CPU 14 ausgeführt wird,
zeigt der Parameter CURRENT_PCI_BUS eine Bus-Zahl Null an. Die Parameter FCN und
DEV zeigen die momentane PCI-Funktion und die PCI-Vorrichtung, jeweils,
an, die momentan durch die CPU 14 abgetastet werden.
-
Die
CPU 14 bestimmt, 1001, ob der Parameter PCI_BUS
eine Bus-Zahl Null anzeigt, und falls dies der Fall ist, stellt
die CPU 14 das Sekundär-Bus-Zahl-Register 1220 der
System-Steuereinheit/Host-Brücken-Schaltung 18 gleich
zu Null ein. Die CPU 14 findet dann, 1004, die
nächste
PCI-PCI-Brücken-Schaltung oder
den Schlitz 36, der heruntergefahren bzw. ausgeschaltet
ist oder leer ist, auf dem PCI-Bus, angezeigt durch den Parameter
PCI_BUS.
-
Zu
Zwecken einer Bestimmung, ob die nächste, gefundene PCI-Vorrichtung
eine PCI-PCI-Brücken-Schaltung
ist oder nicht existiert (ein abgeschalteter oder leerer Schlitz),
versucht die CPU 14, von einem Wert eines EIN-Wort-Vendor-ID-Register,
angeordnet in dem Konfigurations-Raum jeder PCI-Vorrichtung, zu lesen.
Ein Wert von "hFFFF" (wobei die Vorsilbe "h" eine hexadezimale Darstellung bezeichnet)
wird reserviert und nicht durch irgendeinen Vendor bzw. Lieferanten
verwendet. Falls die versuchte Lesung von dem Vendor-ID-Register
zu einem Wert "HFFFF" zurückkehrt,
dann zeigt dies an, dass keine PCI-Vorrichtung vorhanden ist.
-
Falls
die CPU 14 bestimmt, 1006, dass dort keine weiteren,
nicht vorgefundenen PCI-PCI-Brücken-Schaltungen
oder Schlitze 36 vorhanden sind, die heruntergefahren sind
oder leer sind, und zwar auf dem PCI-Bus, angezeigt durch den Parameter
PCI_BUS, wird eine Zurückführung von
dem letzten Aufruf, vorgenommen zu dem BUS_ASSIGN Programm, vorgenommen.
Ansonsten bestimmt die CPU 14, 1008, ob eine andere
PCI-PCI-Brücken-Schaltung
vorgefunden wurde, und falls nicht, erhöht die CPU 14, 1010,
den Parameter CURRENT_PCI_BUS, da ein Schlitz bzw. Einsteckplatz 36,
der eingeschaltet oder leer ist, gefunden wurde, und findet, 1004,
die nächste
PCI-PCI-Brücken-Schaltung
oder einen Schlitz 36, der abgeschaltet oder leer ist.
Demzufolge reserviert, durch Erhöhen, 1010,
des Parameters CURRENT_PCI_BUS, die CPU 14 effektiv eine
Bus-Zahl für
den Schlitz 36, der abgeschaltet oder leer ist. Alternativ
kann die CPU 14 mehr als eine Bus-Zahl für den Schlitz 36 reservieren,
der abgeschaltet oder leer ist.
-
Falls
die CPU 14 eine PCI-PCI-Brücken-Schaltung fand, dann stellt
die CPU 14, 1012, die Primär-Bus-Zahl der PCI-PCI-Brücken-Schaltung
gleich zu dem Parameter CURRENT_PCI_BUS ein. Die CPU 14 erhöht dann, 1014,
den Parameter CURRENT_PCI_BUS und stellt, 1016, die sekundäre Bus-Zahl
der PCI-PCI-Brücke
gleich zu der neuen Bus-Zahl, angezeigt durch den Parameter CURRENT_PCI_BUS,
ein.
-
Die
CPU 14 stellt dann, 1018, die Neben-Bus-Zahl der
gefundenen PCI-PCI-Brücken-Schaltung
gleich zu der maximalen, möglichen
Zahl von PCI-Bussen ein, und zwar durch Schreiben zu dem Neben-Bus-Zahl-Register 1218.
Dieser Wert für
das Neben-Bus-Zahl-Register 1218 ist temporär und ermöglicht der
CPU 14, zusätzliche,
ausgangsseitige PCI-PCI-Brücken-Schaltungen
oder Schlitze 36 zu finden und zu programmieren, die abgeschaltet
oder leer sind.
-
Die
CPU 14 findet zusätzliche,
ausgangsseitige PCI-PCI-Brücken-Schaltungen
oder Schlitze 36, die abgeschaltet oder leer sind, durch
Aufbewahren, 1022, der Parameter PCI_BUS, DEV und FCN und
jeweils aufrufen, 1022, des BUS_ASSIGN Programms. Die CPU 14 speichert
dann wieder, 1024, die Werte für die Parameter PCI_BUS, DEV
und FCN, und kehrt zu dem letzten Aufruf des BUS_ASSIGN Programms
zurück, um
den Parameter CURRENT_PCI_BUS mit der nächsten PCI-Bus-Zahl zu aktualisieren,
die durch die CPU 14 zugeordnet werden sollen.
-
Die
CPU 14 aktualisiert dann, 1026, die Neben-Bus-Zahl
der aufgefundenen PCI-PCI-Brücke durch Einstellen, 1026,
der Neben-Bus-Zahl gleich zu dem Parameter CURRENT_PCI_BUS. Demzufolge
schließt dies
die Zuordnung der PCI-Bus-Zahl zu der gefundenen PCI-PCI-Brückenschaltung
und zusätzlichen,
ausgangsseitigen PCI-PCI-Brücken-Schaltungen
und Einsteckplätzen
bzw. Schlitzen 36 ab, die abgeschaltet oder leer sind.
Die CPU 14 findet dann, 1004, die nächste PCI-PCI-Brücken-Schaltung
oder den Schlitz 36, die abgeschaltet oder leer sind, und
zwar auf dem PCI-Bus, angezeigt durch den Parameter PCI_BUS.
-
Wie
in 17 dargestellt ist, führt, nachdem die PCI-Bus-Zahlen
zugeordnet sind, die CPU 14 ein Speicher-Raum-Zuordnungs-Programm,
bezeichnet als MEM_ALLOC, aus, um Speicher-Raum für die PCI-Funktionen
und Schlitze 36 zuzuordnen, die abgeschaltet oder leer
sind. Die CPU 14 initialisiert zuerst, 1028, Such-Parameter,
verwendet beim Unterstützen
der CPU 14 beim Auffinden der angeordneten PCI-Funktionen
und Schlitze 36, die abgeschaltet oder leer sind.
-
Die
CPU 14, findet dann, 1030, die nächste PCI-Funktion
oder die Schlitze 36, die abgeschaltet oder leer ist. Falls
die CPU 14 bestimmt, 1032, dass alle PCI-Funktionen
und alle Schlitze bzw. Einsteckplätze 36, die abgeschaltet
oder leer sind, einem Speicherraum zugeordnet worden sind, kehrt
die CPU 14 von dem Programm MEM_ALLOC zurück. Ansonsten
bestimmt die CPU 14, 1032, ob eine PCI-Funktion
gefunden wurde.
-
Falls
dies der Fall ist, ordnet die CPU 14 Speicher-Resourcen
zu, 1038, wie dies durch die PCI-Funktion spezifiziert
ist. Ansonsten wird einer der Schlitze bzw. Einsteckplätze 36,
der abgeschaltet ist oder leer ist, vorgefunden, und die CPU 14 ordnet
eine Fehler-Speicher-Größe und eine
Speicher-Ausrichtung für
den Schlitz 36 zu, 1036. Die Fehler-Speicher-Größe kann
entweder eine vorbestimmte Größe sein,
bestimmt vor einem Einschalten des Computersystems 10,
oder eine Größe, die
nach einer Bestimmung der Speicher-Resourcen, erforderlich durch
das Computersystem 10, bestimmt ist.
-
Wenn
Speicherraum zugeordnet wird, programmiert die CPU 14 Speicher-Basis- 1212 und
Speicher-Grenzen- 1214 Register der PCI-PCI-Brücken-Schaltungen,
die eingangsseitig der gefundenen PCI-Funktion vorhanden sind. Die
CPU 14 programmiert geeignet auch Basis-Adressen-Register
der entsprechenden PCI-Vorrichtungen. Die CPU 14 findet
dann, 1030, die nächste
PCI-Funktion oder den Schlitz 36, der abgeschaltet oder
leer ist.
-
Wie
in 18 dargestellt ist, führt, nachdem die PCI-Bus-Zahlen
zugeordnet sind, die CPU 14 ein I/O-Raum-Zuordnungs-Programm,
bezeichnet als I/O_ALLOC, aus, um I/O/Raum für PCI-Funktionen und Schlitze 36,
die leer sind, zuzuordnen. Die CPU 14 initialisiert zuerst, 1040,
Such-Parameter, verwendet beim Unterstützen der CPU 14, die
zugeordneten PCI-Funktionen und Schlitze 36, die abgeschaltet
oder leer sind, zu finden.
-
Die
CPU 14 findet, 1042, die nächste PCI-Funktion oder den
Schlitz 36, der abgeschaltet oder leer ist. Falls die CPU 14 bestimmt, 1044,
dass alle PCI-Funktionen und Schlitze 36, die abgeschaltet
oder leer sind, einem I/O/Raum zugeordnet worden sind, kehrt die
CPU 14 von dem I/O_ALLOC Programm zurück. Ansonsten bestimmt die
CPU 14, 1044, ob eine PCI-Funktion gefunden wurde.
Falls dies der Fall ist, ordnet die CPU 14, 1050,
I/O-Resourcen zu, wie dies durch die PCI-Funktion spezifiziert ist.
Ansonsten ordnen ein Schlitz 36, der heruntergefahren ist
oder leer vorgefunden wurde, und die CPU 14 eine Fehler-I/O-Größe und eine I/O-Ausrichtung
für den
Schlitz 36 zu, 1048. Die Fehler-I/O-Größe kann
entweder eine vorbestimmte Größe, bestimmt
vor einem Abschalten des Computersystems 10, oder eine
Größe, bestimmt
nach einer Bestimmung der I/O-Ressourcen,
erforderlich durch das Computersystem 10, sein.
-
Wenn
ein I/O/Raum zugeordnet wird, dann programmiert die CPU 14 die
I/O-Basis 1208 und begrenzt, 1012, Register der
PCI-PCI-Brücken-Schaltungen,
eingangsseitig der PCI-Funktion oder des Schlitzes 36.
Die CPU 14 programmiert auch Basis-Adressen-Register der entsprechenden
PCI-Vorrichtungen geeignet. Die CPU 14 findet dann, 1042,
die nächste
PCI-Funktion oder den Schlitz 36, der abgeschaltet oder
leer ist.
-
Wie
in 19 dargestellt ist, führt, nach einer anfänglichen
Konfiguration, wenn eine Unterbrechung erzeugt ist, die anzeigt,
dass einer der Hebel 802 geöffnet oder geschlossen ist,
die CPU 14 ein Unterbrechungs-Service-Programm, bezeichnet
als CARD_INT, aus. Die CPU 14 liest, 1052, die
Inhalte des Unterbrechungs-Registers 800, um zu bestimmen, 1053,
ob der Hebel 802 geöffnet
oder geschlossen worden ist. Falls die CPU 14 bestimmt, 1053,
dass der Hebel 802, der die Unterbrechung verursacht, geöffnet wurde,
kehrt die CPU 14 von dem Programm CARD_INT zurück.
-
Ansonsten
schreibt die CPU 14, 1054, zu dem Schlitz-Freigabe-Register 817 und
stellt, 1054, das SO-Bit ein, um das Einschalten des Schlitzes 36 und
der Karte 807, eingesetzt in dem Schlitz 36, zu
initiieren. Die CPU 14 wartet dann (nicht dargestellt)
auf die Karte 807, um einzuschalten. Die CPU 14 greift
dann, 1055, auf den PCI-Bus auf der Karte zu, falls vorhanden.
Die CPU 14 bestimmt dann, 1056, ob die Karte 807,
die gerade eingeschaltet wurde, einen PCI-Bus besaß (und eine
PCI-PCI-Brücken-Schaltung).
Falls dies der Fall ist, bestimmt, 1057, die CPU 14 die
primären,
sekundären
und Unterprogramm-Bus-Zahlen, reserviert für den Schlitz 36,
in dem die Karte 807 eingeschaltet wur de. Die CPU 14 konfiguriert
darauffolgend, 1058, die PCI-PCI-Brücken-Schaltung auf der Karte 807,
die eingeschaltet wurde.
-
Die
CPU 14 bestimmt dann, 1060, die Stelle und die
Größe von I/O-
und Speicher-Räumen, reserviert für den Schlitz 36.
Die CPU 14 schreibt darauffolgend, 1062, zu Basis-Adressen-Registern
in dem PCI-Konfigurations-Header-Raum der Karte 807, die
eingeschaltet wurde. Die CPU 14 liest dann, 1064,
ein Unterbrechungs-Stift-Register in dem Konfigurations-Raum der
Karte 807, um zu bestimmen, 1066, ob die Karte 807 Unterbrechungs-Anforderungen
verwendet. Falls dies der Fall ist, schreibt die CPU 14, 1068,
ein Unterbrechungs-Zeilen-Register in den Konfigurations-Raum der
Karte 807 mit einer zugeordneten IRQ-Zahl.
-
Die
CPU gibt dann, 1070, Befehls-Register der Karte 870 frei,
die in dem Konfigurations-Raum der Karte 807 angeordnet
sind, und ermöglicht
der Karte 807, auf Speicher- und I/O-Zugriffe auf den PCI-Bus 32 anzusprechen.
Die CPU 14 schreibt darauffolgend, 1072, zu dem
Unterbrechungs-Register 800, um die Unterbrechungs-Anforderung
zu löschen,
und lädt, 1074,
einen Software-Vorrichtungs-Treiber für die Karte 807. Die
CPU 14 kehrt dann von dem Programm CARD_INT zurück.
-
BRÜCKEN-KONFIGURATION
-
Funktional
bilden Brücken-Chips 26 und 48 eine
PCI-PCI-Brücke
zwischen PCI-Bussen 24 und 32.
Allerdings umfasst jeder Brücken-Chip
einen Konfigurations-Raum, der unabhängig konfiguriert werden muss. Eine
Lösung
ist diejenige, zwei Brücken
als unabhängige
Vorrichtungen, eine Brücke
bildend, zu behandeln, allerdings würde dies eine Modifikation
des BIOS-Konfigurations-Programms erfordern. Die andere Lösung ist diejenige,
das Kabel 28 als einen Bus zu definieren, so dass das Konfigurations-Programm den eingangsseitigen
Brücken-Chip 26 als
eine PCI-PCI-Brücke
zwischen dem PCI-Bus 24 und dem Kabel 28 und dem
ausgangsseitigen Brücken-Chip 48 als
eine PCI-PCI-Brücke zwischen
dem Kabel 28 und dem PCI-Bus 32 konfigurieren
kann. Ein Vorteil dieser zweiten Lösung ist derjenige, dass Standard-PCI-Konfigurations-Zyklen
laufen können,
um die Brücken-Chips 26 und 48 zu
konfigurieren, falls sie zwei PCI-PCI-Brücken
waren, wenn tatsächlich
die zwei Brücken-Chips
eine PCI-PCI-Brücke
bilden.
-
Dabei
sind zwei Typen von Konfigurations-Transaktionen auf dem PCI-Bus
vorhanden: Typ 0 und Typ 1. Ein Konfigurations-Zyklus vom Typ 0
ist für
Vorrichtungen auf dem PCI-Bus vorgesehen, auf dem der Konfigurations-Zyklus
erzeugt ist, während
ein Konfigurations-Zyklus vom Typ 1 für Vorrichtungen auf einem sekundären PCI-Bus,
auf den über
eine Brücke
zugegriffen wird, vorgesehen ist. 51 stellt
das Adressen-Format
von Konfigurations-Zyklen vom Typ 0 und Typ 1 dar. Ein Konfigurations-Befehl
vom Typ 0 wird durch Einstellen von PCI-Adressen-Bits AD[1:0] auf
00 während
eines Konfigurations-Zyklus spezifiziert. Ein Konfigurations-Zyklus
vom Typ 0 wird nicht über
eine PCI-PCI-Brücke
weitergeführt,
sondern verbleibt lokal auf dem Bus, auf dem die Konfigurations-Transaktion
vom Typ 0 erzeugt wurde.
-
Ein
Kofigurations-Befehl vom Typ 1 wird durch Einstellen von Adressen-Bits
AD[1:0] auf einen binären Wert
01 spezifiziert. Konfigurations-Befehle vom Typ 1 können durch
eine PCI-PCI-Brücke
zu irgendeinem Level in der PCI-Bus-Hierarchie weitergeführt werden.
Schließlich
wandelt eine PCI-PCI-Brücke
einen Befehl vom Typ 1 zu einem Befehl vom Typ 0 um, um Vorrichtungen
zu konfigurieren, die mit der sekundären Schnittstelle der PCI-PCI-Brücke verbunden
sind.
-
Konfigurations-Parameter,
gespeichert in den Konfigurations-Registern 105 oder 125 der
Brücke, identifizieren
die Bus-Zahlen für
deren primäre
PCI-Schnittstelle (Primär-Bus-Zahl) und sekundären PCI-Schnittstelle
(Sekundär-Bus-Zahl)
und eine nebengeordnete Bus-Zahl, die die höchste, nummerierte PCI-Bus-Unterordnung
der Brücke
angibt. Die Bus-Zahlen werden durch ein PCI-Konfigurations-Programm BUS_
ASSIGN ( 45) eingestellt. Zum Beispiel
ist, in dem eingangsseitigen Brücken-Chip 26,
die Primär-Bus-Zahl des Busses 24,
die Sekundär-Bus-Zahl
ist die Zahl des Kabels 28 und die Neben-Bus-Zahl ist die
Zahl des Sekundär-PCI-Busses 32 oder
die Zahl eines tieferen PCI-Busses,
falls ein solcher existiert. In dem ausgangsseitigen Brücken-Chip 48 ist
die Primär-Bus-Zahl
die Zahl des Kabel-Busses 28, die Sekundär-Bus-Zahl
ist die Zahl des PCI-Busses 32 und
die nebengeordnete Bus-Zahl ist die Zahl eines PCI-Busses, angeordnet
tiefer in der PCI-Bus-Hierarchie, falls eine solche existiert.
-
Wie 24A zeigt, wird eine Erfassung von Konfigurations-Zyklen
durch eine Logik in dem PCI-Target-Block 103 oder 121 in
dem eingangsseitigen Brücken-Chip 26 oder
dem ausgangsseitigen Brücken-Chip 48 jeweils
behandelt. Ein Konfigurations-Zyklus vom Typ 0, erfasst auf dem
eingangsseitigen Bus 24, wird durch Aufstellen eines Signals
TYPO_CFG_CYC_US, erzeugt durch ein UND-Gate 276, angezeigt.
Das UND-Gate 276 empfängt
Signale UPSTREAM_CHIP, IDSEL (Chip-Select während einer Konfigurations-Transaktion), CFGCMD
(Konfigurations-Befehl-Zyklus, der erfasst ist) und ADDR00 (Bits
1 und 0 sind beide 0'en).
Ein Konfigurations-Zyklus vom Typ 0, erfasst durch den ausgangsseitigen
Brücken-Chip 48,
wird durch ein Signal TYP0_CFG_CYC_DS, erzeugt durch ein UND-Gate 278,
angezeigt, das ein Signal S1_BL_IDSEL (IDSEL Signal für den ausgangsseitigen
Brücken-Chip 48),
das Signal CFGCMD, das Signal ADDR00, ein Signal MSTR_ACTIVE (anzeigend,
dass der Brücken-Chip 48 der
Master auf einem sekundären PCI-Bus 32 ist),
und den invertierten Zustand eines Signal UPSTREAM_CHIP empfängt.
-
Eine
Erfassung eines Konfigurations-Zyklus vom Typ 1 durch das PCI-Target 103 in
dem eingangsseitigen Brücken-Chip 26 wird
durch Aufstellen eines Signals TYP1_CFG_CYC_US von einem UND-Gate 280 angezeigt,
das Signale CFGCMD, ADDR01 (Bits 1 und 0 sind niedrig und hoch jeweils)
und UPSTREAM_CHIP empfängt.
Eine Erfassung eines Konfigurations-Zyklus vom Typ 1 auf dem ausgangsseitigen
Bus 32 wird durch Aufstellen eines Signals TYP_CFG_CYC_DS
von einem UND-Gate 282, das die Signale CFGCMD, ADDR01
empfängt,
und dem invertierten Zustand des Signals UPSTREAM_CHIP angezeigt.
-
Der
Brücken-Chip,
der eine Transaktion vom Typ 0 aufnimmt, verwendet das Register-Zahl-Feld 250 in
der Konfigurations-Transaktions-Adresse, um auf das geeignete Konfigurations-Register
zuzugreifen. Das Funktions-Zahl-Feld 252 spezifiziert eine
von acht Funktionen, die in einer multi-funktionalen Vorrichtung
während
der Konfigurations-Transaktion
durchgeführt
werden soll. Eine PCI-Vorrichtung kann multi-funktional sein und
kann solche Funktionen haben, wie eine Festplatten-Laufwerksteuereinheit,
eine Speicher-Steuereinheit, eine Brücke, usw..
-
Wenn
der Brücken-Chip 26 eine
Konfigurations-Transaktion vom Typ 1 auf seinem eingangsseitigen Bus 26 sieht,
kann er die Transaktion entweder ausgangsseitig weiterführen, die
Transaktion zu einer Transaktion vom Typ 0 translatieren, die Transaktion
zu einem speziellen Zyklus konvertieren oder die Transaktion ignorieren
(basierend auf den Bus-Zahl-Parametern, gespeichert in den Konfigurations-Registern 105 oder 125).
Falls eine Transaktion weitergeführt
wird, gelangt sie bis zu dem PCI-Master des Bestimmungs-Brücken-Chips,
um die Transaktion vom Typ 1 zu der entsprechenden, geeignten Trans aktion
zu konvertieren. Falls ein Brücken-Chip
die Transaktion selbst handhabt, dann spricht er durch Aufstellen
des Signals DEVSEL_ auf den PCI-Bus an, und handhabt die Transaktion
als eine normale, verzögerte
Transaktion.
-
In
einer Konfiguration-Transaktion vom Typ 1 wählt das Bus-Zahl-Feld 260 einen
eindeutigen PCI-Bus in der PCI-Hierarchie aus. Ein PCI-Target-Block 103 führt einen
Konfigurations-Zyklus vom Typ 1 von dem eingangsseitigen Chip 26 zu
dem ausgangsseitigen Brücken-Chip 48 hindurch,
falls ein Signal PASS_TYP1_DS durch ein UND-Gate 284 aufgestellt
ist. Das UND-Gate 284 empfängt das Signal TYP1_CFG_CYC_US
und ein Signal IN_RANGE (das Bus-Zahl-Feld 260 ist größer als
oder gleich zu der gespeicherten, sekundären Bus-Zahl und geringer als
oder gleich zu der gespeicherten Neben-Bus-Zahl). Der andere Eingang des UND-Gates 284 ist
mit dem Ausgang eines ODER-Gates 286 verbunden,
der einen Eingang mit dem Ausgang eines UND-Gates 288 verbunden
besitzt, und wobei der andere Eingang den invertierten Zustand eines
Signals SEC_BUS_MATCH aufnimmt. Demzufolge wird, falls ein Zyklus
vom Typ 1 erfasst wird, das Signal IN_RANGE aufgestellt ist, und
wenn das Bus-Zahl-Feld 260 nicht die gespeicherte, sekundäre Bus-Zahl
anpasst, das Signal PASS_TYP1_DS aufgestellt. Falls das Bus-Feld 260 nicht
die gespeicherte Sekundär-Bus-Zahl
anpasst, dann werden die Bus-Vorrichtungen
auf oder nach dem ausgangsseitigen Bus 32 adressiert. Das
UND-Gate 288 wird auf hoch gesetzt und das Vorrichtungs-Zahl-Feld 258 zeigt
an, dass das Target des Konfigurations-Zyklus vom Typ 1 der Konfigurations-Raum
des ausgangsseitigen Brücken-Chips 48 ist.
Falls dies wahr ist, wird die Konfigurations-Transaktion vom Typ
1 entlang des Kabels 28 zu dem ausgangsseitigen Brücken-Chip 48 für eine Translation
einer Konfigurations-Transaktion vom Typ 0 weitergeführt. Das
PCI-Target 121 in dem ausgangsseitigen Brücken-Chip 48 spricht
auf die Transaktion an und liest von den und schreibt in die ausgangsseitigen
Brücken-Konfigurations-Register 125 entsprechend
zu der Transaktion vom Typ 0. Die Steuer-Stifte des ausgangsseitigen
Chips werden angesteuert und Lese- und Schreib-Daten erscheinen
auf dem ausgangsseitigen PCI-Bus 32, falls eine Transaktion
vom Typ 0 auf dem ausgangsseitigen Bus läuft (für Debug-Zwecke), obwohl jedes IDSEL auf dem
ausgangsseitigen Bus 32 so blockiert wird, das keine Vorrichtung
tatsächlich
auf eine Transaktion vom Typ 0 anspricht.
-
Falls
der PCI-Target-Block 103 in dem eingangsseitigen Brücken-Chip 26 eine
Konfigurations-Transaktion vom Typ 1 auf seinen eingangsseitigen
Bus 24 erfasst, mit einem Bus-Zahl-Feld gleich zu der gespeicherten
Sekundär-Bus-Zahl
(der Kabel-Bus 28), allerdings nicht eine Vorrichtung 0
adressierend (suchen nach anderen Vorrichtungen auf dem Kabel-Bus 28),
dann irgnoriert der Target-Block 103 die Transaktion auf
dem primären
Bus 26.
-
Falls
das PCI-Target 121 eine Konfigurations-Schreib-Transaktion
vom Typ 1 (WR_hoch) auf dem sekundären PCI-Bus 32 erfasst,
der ein Bus-Zahl-Feld außerhalb
des Bereichs der Sekundär-Bus-Zahl
und der Neben-Bus-Zahl besitzt (IN_RANGE niedrig), und falls die
Vorrichtungs-Zahl 258, die Funktions-Zahl 256 und die
Register-Zahl 254 einen speziellen Zyklus anzeigen (SP_MATCH
hoch), dann wird ein Signal PASS_TYP1_US durch ein UND-Gate 290 aufgestellt.
Das UND-Gate 290 empfängt
das Signal TYP1_CFG_CYC_DS, das Signal SP_MATCH, das Schreib/Lese-Strobe
WR_ und den invertierten Zustand des Signal IN_RANGE. Wenn der PCI-Master 101 in
dem eingangsseitigen Brücken-Chip 26 einen
solchen Zyklus empfängt,
lässt er
einen speziellen Zyklus auf dem primären PCI-Bus 24 laufen.
-
Konfigurations-Transaktionen
werden durch einen Brücken-Chip
unter bestimmten Bedingungen ignoriert. Falls der Target-Block 103 in
dem eingangsseitigen Brücken-Chip 26 eine
Konfigurations-Transaktion vom Typ 1 auf dem PCI-Bus 24 erfasst
(sein eingangsseitiger Bus) und das Bus-Zahl-Feld 260 geringer
als die Sekundär-Bus-Zahl
oder größer als
die Neben-Bus-Zahl, gespeichert in dem Konfigurations-Raum des Brücken-Chips, ist, dann
ignoriert der Target-Block 103 die Transaktion.
-
Falls
der Target-Block 121 in dem ausgangsseitigen Brücken-Chip 48 eine
Konfigurations-Transaktion vom Typ 1 auf dem sekundären PCI-Bus 32 erfasst
(sein ausgangsseitiger Bus), und das Bus-Zahl-Feld 260 größer als
oder gleich zu der Sekundär-Bus-Zahl oder geringer
als oder gleich zu der Neben-Bus-Zahl, gespeichert in dem Konfigurations-Raum
des Brücken-Chips,
ist, dann ignoriert der Target-Block 121 die Transaktion. Zusätzlich werden
Konfigurations-Befehle vom Typ 1, die zu der Eingangsseite hin gehen,
ignoriert, falls ein Befehl vom Typ 1 nicht eine Konversion zu einer
speziellen Zyklus-Transaktion spezifiziert, ungeachtet der Bus-Zahl,
spezifiziert in dem Befehl vom Typ 1.
-
Wie 24B zeigt, überwacht
der PCI-Master 101 oder 123 einen Konfigurationszyklus, übertragen über das
Kabel 28. Falls der PCI-Master 123 in dem ausgangsseitigen
Brücken-Chip 48 eine
Konfigurations-Transaktion vom Typ 1 von dem eingangsseitigen Brücken-Chip 26 erfasst,
vergleicht das Bus-Zahl-Feld 260 mit der Primär-Bus-Zahl
und der Sekundär-Bus-Zahl,
gespeichert in dem Konfigurations-Raum des Brücken-Chips 48. Falls
das Bus-Zahl-Feld 260 entweder die gespeicherte Primär-Bus-Zahl
(d. h. Kabel 28) oder die gespeicherte Sekundär-Bus-Zahl
(Adressieren einer Vorrichtung direkt, verbunden mit dem ausgangsseitigen
Bus 23) anpasst, dann translatiert der ausgangsseitige
Brücken-Chip 48 die
Transaktion zu einer Transaktion vom Typ 0 (durch Einstellen von
AD[1:0] = 00), wenn er die Konfigurations-Transaktion auf dem Bus weiterführt. Die
Transaktion vom Typ 0 wird auf dem PCI-Bus 32 durch den
PCI-Master-Block 123 durchgeführt.
-
Das
nachfolgende sind Translationen, durchgeführt von Feldern in der Konfigurations-Transaktion vom
Typ 1. Das Vorrichtungs-Zahl-Feld 258 in der Konfigurations-Transaktion vom Typ
1 wird durch den PCI-Master 123 decodiert, um eine eindeutige
Adresse in der translatierten Transaktion vom Typ 0 auf dem sekundären Bus 32 zu
erzeugen, wie dies in der Tabelle der 52 definiert
ist. Die Sekundär-Adressen-Bits AD[31:16],
decodiert von dem Vorrichtungs-Zahl-Feld 258, werden durch
den PCI-Master 123 verwendet, um die geeigneten Chip-Auswahl-Signale
IDSEL für
die Vorrichtungen auf dem sekundären
PCI-Bus 32 zu erzeugen. Wenn das Adressen-Bit AD[15] gleich
zu 1 ist, dann behält
der Brücken-Chip 48 alle
Adressen-Bits AD[31:16], gesetzt auf niedrig (kein IDSEL ist aufgestellt),
bei. Das Register-Zahl-Feld 254 und das Funktions-Zahl-Feld 256 des
Konfigurations-Befehls vom Typ 1 werden nicht modifiziert zu dem
Konfigurations-Befehl
vom Typ 0 hindurchgeführt.
Das Funktions-Zahl-Feld 256 wählt acht Funktionen aus, und
das Register-Zahl-Feld 254 wählt ein Doppel-Wort in dem
Konfigurations-Register-Raum
der ausgewählten
Funktion aus.
-
Für eine Konfigurations-Transaktion
vom Typ 1, zielmäßig vorgesehen
zu dem ausgangsseitigen Brücken-Chip 48,
wandelt der Brücken-Chip 48 die
Transaktion vom Typ 1 zu einer Transaktion vom Typ 0 um, als würde sie
eine Vorrichtung auf dem ausgangsseitigen Bus 32 adressieren,
allerdings werden die AD[31:16] Stifte auf 0`en gesetzt, so dass
keine Sekundär-PCI-Bus-Vorrichtung
ein IDSEL aufnimmt. Die PCI-Master- Logik 123 erfasst dies durch
Aufstellen eines Signals TYP1_TO_INT0, angesteuert durch ein UND-Gate 262.
Das UND-Gate 262 empfängt
ein Signal CFG_CMD (einen Konfigurations-Befehl-Zyklus anzeigend),
den Ausgang eines ODER-Gates 264 und den invertierten Zustand
des Signals UPSTREAM_CHIP (Translation Type-1-zu-Type-0 wird in
dem eingangsseitigen Brücken-Chip 26 gesperrt).
Das ODER-Gate 264 stellt seinen Ausgang auf hoch, falls
ein Signal PRIM_BUS_MATCH aufgestellt ist (das Bus-Zahl-Feld 260 passt
die gespeicherte, primäre
Bus-Zahl an), oder falls die gespeicherte, primäre Bus-Zahl CFG2P_PRIM_BUS_NUM[7:0]
gleich zu null ist (anzeigend, dass die Primär-Bus-Zahl in dem Konfigurations-Raum
des Brücken-Chips 48 nicht
durch das System BIOS bis jetzt konfiguriert worden ist und der
momentane Konfigurations-Zyklus vom Typ 1 zu dem internen Konfigurations-Raum
geht, um die Primär-Bus-Zahl
des Brücken-Chips 48 zu
programmieren).
-
Ein
Signal TYP1_TO_EXTO wird durch ein UND-Gate 266 aufgestellt
und spricht auf eine Anpassung zu einer gespeicherten Sekundär-Bus-Zahl
an. Die Eingänge
des UND-Gates 266 empfangen das Signal CFG_CMD, das Signal
SEC_BUS_MATCH, den invortierten Zustand des Signals UPSTREAM_CHIP
und den invertierten Zustand eines Signals SP_MATCH (nicht ein spezieller
Zyklus). Das Signal TYP1_TO_EXTO zeigt an, dass die konvertierte
Konfigurations-Transaktion vom Typ 0 zu einer Vorrichtung zielmäßig auf
dem sekundären
PCI-Bus 32 geführt
wird.
-
Das
Signal TYP1_TO_INT0 wird zu dem 1-Eingang eines 4:1 Multiplexers 274 geliefert.
Der 2-Eingang wird auf niedrig gelegt und der 0- und 3-Eingang des
Multiplexers 274 nehmen ein Signal LTYP1_TO_INT0 von einem
Flip-Flop 270 vom D-Typ auf. Der Auswahl-Eingang S1 des
Multiplexers 274 empfängt
ein Signal CMD_LATCH (FRAME_, aufgestellt für einen neuen Zyklus auf dem
PCI-Bus 32), und der Auswahl-Eingang SO empfängt ein
Signal P2Q_START_PULSE (das anzeigt, wenn es hoch ist, dass eine
Adresse zu dem PCI-Bus 32 geschickt worden ist). Der Ausgang
des Multiplexers 274 wird mit dem D-Eingang eines Flip-Flops 270 verbunden,
das mit dem Signal PCLK getaktet wird und durch das Signal RESET
gelöscht
wird. Die IDSEL-Signale zu den Sekundär-Bus-Vorrichtungen werden durch Aufstellen
eines Signals BLOCK_IDSEL von einem ODER-Gate 272 blockiert,
das an seinen Eingängen
Signale Q2P_AD[15] (keine Konversion wird entsprechend Tabelle 1
der 6 benötigt), TYP1_TO_INT0 und LTYP1_TO_INT0
empfängt.
Das Signal LTYP1_TO_INT0 erweitert das Aufstellen des Signals BLOCK
IDSEL.
-
Wenn
der PCI-Master 123 in dem ausgangsseitigen Brücken-Chip 48 eine
Konfigurations-Transaktion vom Typ 1 von dem eingangsseitigen Brücken-Chip 26 empfängt, in
dem das Bus-Zahl-Feld 260 größer als die gespeicherte, Sekundär-Bus-Zahl
und geringer als oder gleich zu der gespeicherten Neben-Bus-Zahl
ist, dann führt
der PCI-Master-Block 123 die Transaktion vom Typ 1 zu dem
Sekundär-PCI-Bus 32 unverändert weiter. Eine
bestimmte andere Vorrichtung auf dem Sekundär-PCI-Bus 32, z. B.
eine andere Brücken-Vorrichtung 323 (26B), wird die Konfigurations-Transaktion
vom Typ 1 aufnehmen und sie zu dem sekundären Bus (PCI-Bus 325)
weiterführen.
-
Eine
Konfigurations-Transaktion vom Typ 1 zu einer speziellen Zyklus-Translation
wird dann durchgeführt,
wenn der PCI-Master 123 eine Konfigurations-Schreib-Transaktion vom Typ
1 von dem eingangsseitigen Brücken-Chip 26 empfängt und
das Bus-Zahl-Feld 260 die gespeicherte Sekundär-Bus-Zahl
anpasst und falls das Vorrichtungs-Zahl-Feld 258, das Funktions-Zahl-Feld 256 und
das Register-Zahl-Feld 254 einen speziellen Zyklus anzeigen
(SP_MATCH ist hoch). Dies wird durch ein UND-Gate 268 angezeigt,
das ein Signal TYP1_TO_SPCYC auf hoch setzt. Das UND-Gate 268 empfängt SP_MATCH,
und Q2P_CBE_[0] (Befehl-Bit für
einen speziellen Zyklus). Die Daten von der Konfigurations-Transaktion
vom Typ 1 werden die Daten für den
speziellen Zyklus an dem Bestimmungs-Bus. Die Adresse während eines
speziellen Zyklus wird ignoriert.
-
Andere
Ausführungsformen
liegen innerhalb des Schutzumfangs der folgenden Pa tentansprüche.