-
Die
Erfindung betrifft ein Verfahren zum Betreiben eines Computersystems
nach dem Oberbegriff des Anspruchs 1 und ein Computersystem nach
dem Oberbegriff des Anspruchs 8 sowie einen Sekundärbus-Controller
nach dem Oberbegriff des Anspruchs 22.
-
In
vielen Fällen
werden Computernetze verwendet, um ein Mittel für die Verteilung von Daten,
Programmen und dergleichen unter einer Anzahl von Einzelcomputern
vorzusehen. Viele Computernetze verwenden das, was unter der Bezeichnung "Client/Server-System" bekannt ist, wobei
ein Netzwerkserver eine Anzahl von zentralisierten Hardware- und
Software ressourcen für
eine Anzahl von Klienten-Computern in dem Netz bereitstellt.
-
Ein
Nachteil des Klienten/Server-Systems besteht darin, daß dann,
wenn der Server für
irgendeine Zeitspanne stillgelegt wird, der Betrieb des Netzes und
der verschiedenen Klienten-Computer unterbrochen werden kann. Solche
Unterbrechungen stehen im Widerspruch mit einem der fundamentalen
Vorteile des Arbeitsplatzrechners (PC), nämlich die Betreibbarkeit des
PC als eigenständiges
Gerät.
-
Es
gibt eine Anzahl von Gründen,
aus denen Netzwerkserver periodisch stillgelegt werden. Es kann beispielsweise
erforderlich sein, verbesserte Software zu installieren, oder um
verbesserte Hardware zu installieren oder defekte Hardware-Komponenten
auszutauschen. Zusätzlich
kann ein Server stillgelegt werden, um Hardware auszutauschen oder
zusätzliche
Hardware-Komponenten zu installieren. Beispielsweise kann es wünschenswert
sein, einen Datenspeicher anzuschließen (beispielsweise eine tragbare
Festplatte, ein CD-ROM-Laufwerk oder dergleichen), um den Klientencomputern
Zugriff auf in einer solchen Speicheranordnung gespeicherte Daten
zu verschaffen.
-
Ein
Verfahren und eine Vorrichtung, mittels welchen Hardware-Komponenten an einem
Server-Computer installiert bzw. von ihm getrennt werden können, sind
in
US 53 86 567 offenbart.
-
Dabei
werden Anschlußstifte
unterschiedlicher Länge
an einem Adapter vorgesehen, derart, daß dann, wenn der Adapter in
den vollständig
initialisierten Computer eingefügt
wird, längere
Sifte verwendet werden, um dem Wirt-Computer zu signalisieren, daß ein Adapter
eingefügt
wird und um Leistung zu dem Adapter zu übertragen, bevor Signale zu
dem Adapter bzw. von dem Adapter übertragen werden.
-
Dabei
wird ein mechanisch betätigter
Verriegelungsmechanismus für
den Adapter vorgesehen, der den Adapter in dem Wirt-Computer verriegelt,
bis ein Nutzer verlangt, daß der
Adapter freigegeben wird. Darüberhinaus
werden die längeren
Stifte verwendet, um eine Stabilisierung der Leistungsversorgung
zu ermöglichen,
bevor Signale zu der Komponente bzw. von der Komponente übertragen
werden. Ein gespeicherter Identifikationscode wird dann zu dem Wirt-Computer übertragen,
um festzustellen, ob der Adapter mit heißer Einfügung kompatibel ist und zugehörige Information
ausgelesen wird, falls eine solche heiße Einfügung akzeptabel ist.
-
Das
System nach der genannten Druckschrift scheint nicht ohne weiteres
an ein Netzwerk anpaßbar zu
sein, wo eine Mehrzahl von Klienten-Anwendungen während des
Einfügens
und/oder Entnehmens einer Komponente laufen können. In einem Netz kann es
erforderlich sein, den Betrieb der Klienten-Software während Einfügung und/oder
Entnahme einer Hardware-Komponente aufrechtzuerhalten. Bei einigen
bekannten Systemen wird für
das Einfügen
oder Entnehmen von Hardware-Teilen oder -Komponenten der Status
des Systems gespeichert, und der Betrieb des primären Wirt-Prozessors
wird unterbrochen. Der Wirt-Prozessor kann dann mit neuer Software
geladen werden, um die Einfüge- oder Entnahmeprozesse
zu handhaben. Nach Beendigung von Einfügung oder Entnahme werden die
gespeicherten Inhalte der Systemregister wiederhergestellt, und
die Verarbeitung wird wieder aufgenommen.
-
Für einen
unabhängig
arbeitenden oder Klienten-PC kann ein solches System akzeptabel
sein, da der primäre
Nutzer eines solchen PC diesen während
Einfügung
oder Entnahme nicht benutzen wird. Es ist jedoch unakzeptabel für einen
Server-Computer in einem Klienten/Server-System, daß der Server
nicht einmal momentan für
Einfügung
oder Entnahme von Komponenten stillgesetzt werden darf. Wenn ein
Server auch nur momentan stillgelegt wird, können zahlreiche Klienten-Computer
in dem Netz abstürzen.
-
US 4 835 737 offenbart eine
Vorrichtung und ein Verfahren zum Entnehmen und Einfügen von
Komponenten in ein im Betrieb befindliches Computersystem. Die Vorrichtung
umfaßt
einen Bus in Form einer Rückwandverdrahtungsplatte,
welche zur Aufnahme von Steckkarten wie z.B. einer CPU-, Speicher-,
Graphik-, Festplatten- oder Netzwerkkarte ausgestaltet ist, die
untereinander über
den Bus Daten austauschen, sowie einen Bus-Controller auf einer
Steckkarte. Jede der in den Bus einfügbaren Steckkarten umfaßt ein mechanisches
Schaltmittel, das Beginn und Ende des Einfügens bzw. Entnehmens einer
Steckkarte durch Erzeugen eines Signals auf dem Bus anzeigt, in
Form eines Schalters oder verlängerter
Kontaktstifte. Das den Beginn anzeigende Signal wird vom Bus-Controller
empfangen, welcher in Reaktion darauf den Bus durch Abstoppen des
Bustakts abschaltet, woraufhin die Steckkarte eingefügt bzw.
entnommen wird, woraufhin ein das Einfügen bzw. Entnehmen bestätigendes
zweites Signal vom Bus-Controller empfangen wird, der in Reaktion darauf
den Bustakt erneut startet. Ferner ist ein Bus-Controller beschrieben,
der Mittel zum Ankoppeln an den Bus und ein Bus-Taktsteuermittel
zum Steuern von Taktsignalen auf dem Bus zu einer oder mehreren
entnehmbaren Komponente(n) an dem Bus umfaßt.
-
Hierbei
sind die Komponenten des Computersystems über lediglich einen Bus miteinander
verbunden. Folglich wird der Datenaustausch zwischen allen Komponenten
des Computersystems während
des Einfügens
bzw. der Entnahme unterbrochen. Dies kann selbst bei kurzer Unterbrechungszeit
zu einer nicht unerheblichen Beeinträchtigung des Computersystems
führen,
beispielsweise dann, wenn ein Festplattenzugriff oder der Datenaustausch
mit einer Netzwerkkarte unterbrochen werden müssen. Zudem ist der Bus-Controller ausschließlich mit
dem Bus gekoppelt und steht nicht mit anderen Komponenten des Computersystems
in Verbindung. Dadurch ist der Bus-Controller durch andere am Bus
angeschlossene Komponenten weder steuerbar, beispielsweise zum Konfigurieren
oder softwaregesteuerten Ein-/Ausschalten des Busses, noch können andere
am Bus angeschlossene Komponenten Informationen, beispielsweise
betreffend den Status des Einfüge-/Entnahmevorgangs,
vom Bus-Controller
abfragen.
-
EP 0 241 905 A2 offenbart
eine Steckkarte zum Einfügen
in ein in Betrieb befindliches Computersystem, das einen Bus, eine
ein INIT-Signal übertragende
INIT-Leitung für
die Steckkarte und eine Vielzahl von Taktleitungen einschließlich einer
Taktleitung für
die Steckkarte aufweist, wobei auf der Steckkarte Mittel zum Anhalten
des Datenverkehrs auf dem Bus, Mittel zum Entkoppeln der Taktleitung
für die
Steckkarte von den anderen Taktleitungen und Mittel zur Synchronisation
für das
INIT-Signal vorgesehen sind.
-
EP 0 373 773 A1 offenbart
eine Schaltkreisanordnung mit einer einfüg- und entnehmbaren Steckkarte, die
ein getaktetes Schaltkreiselement umfaßt, das mittels eines Schaltmittels
zwischen einem ersten Zustand mit geringer Stromaufnahme und einem
zweiten Zustand mit hoher Stromaufnahme schaltbar ist, wobei die Entnahme
der Steckkarte im ersten Zustand erfolgt, so daß die Gefahr, daß die Anschlußstifte
für die
Stromversorgung der Steckkarte aufgrund von Stromspitzen durch einzelne
Stifte beschädigt
werden, vermindert wird. Da eine Beeinflussung des Taktsignals nur
innerhalb der Steckkarte stattfindet, bleibt der Busbetrieb ungestört. Ferner
ist ein entsprechendes Verfahren zum Entfernen und Einfügen einer
Steckkarte in ein im Betrieb befindliches Computersystem beschrieben,
gemäß welchem
ein vom Bus bereitgestelltes Taktsignal durch auf der Steckkarte
angeordnete Mittel zum Freigeben und Sperren des Taktsignals den
ebenfalls auf der Steckkarte angeordneten aktiven Schaltkreiselementen
zugeführt
oder vorenthalten wird.
-
"Sensing the Presence
of an Expansion Module",
IBM Technical Disclosure Bulletin, Vol. 37, Nr. 10/94, Seite 591,
beschreibt eine Vorrichtung und ein Verfahren zum Erkennen eines
Entfernens bzw. Einfügens
einer Steckkarte in einen Erweiterungsbus eines Computersystems,
wobei die Karte eine Kurzschlußbrücke umfaßt, mittels
welcher zwei voneinander getrennte Kontakte des Erweiterungsbusses
kurzgeschlossen werden, wenn die Karte in dem Erweiterungsbus steckt.
Somit kann eine Hardware-Änderung
erkannt und eine Rekonfiguration des Computersystems veranlaßt werden,
um einen Systemabsturz zu vermeiden.
-
Aus
EP 0 674 275 A1 ist
eine Wirt-Rechnereinheit mit Mikrocontroller und Primärbus bekannt.
Zum Anschließen
einer tragbaren Computereinheit über
einfache Steckverbinder werden der Primärbus der tragbaren Computereinheit
und der Primärbus
des Computersystems unter Bildung eines einzigen Primärbusses
direkt miteinander verbunden, wobei beide Primärbusse während des Ankoppelns angehalten
werden.
-
Aus
US 5 396 602 A ist
ein Computersystem mit mehreren Bussen bekannt. Zum Wechseln einer Komponente
an irgendeinem der Busse ist das gesamte Computersystem abzuschalten.
-
Aufgabe
der Erfindung ist es, ein Verfahren nach dem Oberbegriff des Anspruchs
1 bzw. ein Computersystem nach dem Oberbegriff des Anspruchs 8 bzw.
einen Sekundärbus-Controller
nach dem Oberbegriff des Anspruchs 22 zu schaffen, die das Einfügen von
Komponenten bei einem voll im Betrieb befindlichen Computer unter
weitestgehender Vermeidung von Behinderungen des Betriebs ermöglichen.
-
Diese
Aufgabe wird gemäß den Merkmalen
der Ansprüche
1, 8 und 22 gelöst.
-
Hierdurch
kann eine Komponente, etwa eine Platine oder Karte oder dergleichen,
an ein Computersystem angeschlossen oder von ihm abgetrennt werden,
wobei der Betrieb des Computersystems, der Betriebssoftware oder
eines Netzwerks nicht unterbrochen werden.
-
Weitere
Ausgestaltungen der Erfindung sind der nachfolgenden Beschreibung
und den Unteransprüchen
zu entnehmen.
-
Die
Erfindung wird nachstehend anhand von in den beigefügten Abbildungen
dargestellten Ausführungsbeispielen
näher erläutert.
-
1 zeigt
ein Blockdiagramm zur Darstellung der bevorzugten Ausführungsform
des Computersystems.
-
2 zeigt
eine Wellenformdiagramm zur Illustration von Signalen im Computersystem
aus 1 beim Einfügen
und Entnehmen einer Komponente.
-
3 zeigt
einen ersten Teil eines Flußdiagramms
zur Erläuterung
des Betriebs des Computersystems und zugehöriger Interrupt-Handhabung
während
des Einfügeprozesses.
-
4a zeigt
einen zweiten Abschnitt eines Flußdiagramms zur Darstellung
des Betriebs des Computersystems und der zugeordneten Interrupt-Handhabung
während
des Einfügeprozesses.
-
4b zeigt
einen dritten Abschnitt eines Flußdiagramms nach 3 und 4a.
-
5 zeigt
einen ersten Abschnitt eines Flußdiagramms zur Erläuterung
der Wirkungsweise des Computersystems und zugehöriger Interrupt-Handhabung
während
des Entnahmeprozesses.
-
6a bis 6c zeigen
weitere Abschnitte des Flußdiagramms
nach 5.
-
7 zeigt
ein Statusdiagramm zur globalen Darstellung der Wirkungsweise.
-
8 zeigt
ein Blockdiagramm, das darstellt, wie ein Sekundärbus-Controller in einer Laptop-Andockstation
angewandt werden kann.
-
9 zeigt
eine ähnliche
Anordnung wie 8
-
10 zeigt
eine weitere ähnliche
Anordnung wie 8.
-
11 zeigt,
wie ein Sekundärbus-Controller
in Serie verkettet werden kann, um die Anzahl von Einschubschlitzen
zu expandieren, die für
entnehmbar Komponenten verfügbar
sind.
-
12 zeigt,
wie ein Sekundärbus-Controller
parallel angeschlossen werden kann, um zusätzliche entnehmbare oder festverdrahtete Komponenten
abzustützen.
-
13 zeigt,
wie ein Sekundärbus-Controller
verwendet werden kann, um eine Gruppe von Komponenten mit einem
Computer über
eine Schnittstelle zu koppeln.
-
1 ist
ein Blockdiagramm zur Illustration der bevorzugten Ausführungsform,
installiert in einem Wirt-Computersystem. Gemäß 1 kann der
Prozessor 101 einen Wirt-Prozessor eines Computersystems umfassen
(beispielsweise einen Netzserver-Computer) und irgendeinen Prozessortyp
enthalten (beispielsweise Intel 80x86, Motorola 86xx, Cyrix x86,
AMD x86, MIPS, Alpha oder dergleichen).
-
Ein
Ziel besteht darin, eine Technik zum "heißen" Einfügen-Entnehmen
einer Komponente zu schaffen, die von dem Prozessortyp unabhängig ist.
In der bevorzugten Ausführungsform
können
die Vorrichtung und das Verfahren in einem Windows-NT- oder Windows-9x-Betriebssystem
angewandt werden.
-
Der
Prozessor 101 kann mit anderen Komponeten über den
Wirt-Bus 102 gekoppelt
sein, der irgendeine einer Anzahl bekannter Wirt-Bussen umfassen
kann (beispielsweise Pentium-Bus, Pentium-Pro-Bus oder dergleichen).
Darüberhinaus
kann der Prozessor 101 einen oder alle einer Anzahl von
Prozessoren in einem Multiprozessorsystem umfassen. Der System-Controller 103 kann
einer jener Komponenten sein, die an den Prozessor 101 über den
Wirt-Bus 102 angekoppelt sind. Der System-Controller 103 kann
einen oder mehrere Halbleiterschaltkreise umfassen, etwa einen Teil
eines Chipsatzes für
ein Computersystem. Der System-Controller 103 kann Eingang
und Ausgang zum Prozessor 101 steuern und eine Schnittstelle
des Prozessors 101 zu weiteren Bussen bilden.
-
Der
primäre
PCI-Bus 104 kann eine Schnittstelle zum Prozessor 101 über den
System-Controller 103 bilden. Der primäre PCI-Bus 104 kann
eine Schnittstelle mit irgendeinem einer Anzahl von Geräten bilden,
wobei die Verbindung über
den System-Controller 103 erfolgt, etwa Eingangs/Ausgangs-Controller 105,
der seinerseits einen Eingangs/Ausgangsbus 106 ansteuert.
Obwohl der primäre
PCI-Bus 104 hier als ein PCI-Bus (periphere Kommunikationsschnittstelle)
dargestellt ist, können
andere Bustypen verwendet werden. Der PCI-Bus wird in der bevorzugten
Ausfüh rungsform
angewandt, da er eine in erheblichen Umfang industrielle benutzte
Komponente darstellt und eine Anzahl von Geräten verfügbar ist, die das CPI-Busprotokoll
verwenden.
-
Der
sekundäre
Bus-Controller 120 kann als eine Komponente am primären CPI-Bus 104 angesehen werden,
die über
eine Schnittstelle als Teil des primären CPI-Busses 104 verbunden
und in 1 mit Bezugszeichen 111 dargestellt ist.
Der Primär-PCI-Busabschnitt 111 enthält Daten,
Adressen und Steuerleitungen des PCI-Busses 110. Der Primär-CPI-Bustakt
PCICLKp auf Leitung 109 und das Primär-CPI-Bus-Rücksetzsignal PCIRSTp# auf Leitung 110 können direkt
zum System-Controller 103 geführt sein, wie in 1 dargestellt.
Im Rücksetzsignal
zeigt PCIRST# zeigt # ein aktiv niedriges Signal an.
-
Der
Sekundärbus-Controller 120 kann
einen PCI-Expansionsbus-Controller
umfassen, der wie hier beschrieben modifiziert ist. Eine Mehrzahl
von Sekundärbus-Controllern 120 kann
vorgesehen sein, um eine Expansion für eine Anzahl von Komponenten
zu ermöglichen.
In der bevorzugten Ausführungsform
kann jeder der Sekundärbus-Controller 120 eine
Schnittstelle für
bis fünf
PCI-Komponenten bilden (beispielsweise vier abtrennbare Komponenten
und eine festverdrahtete Komponente). Zusätzliche Sekundärbus-Controller 120 können hinzugefügt werden,
indem solche Controller direkt eine Schnittstelle mit dem System-Controller 103 in
der in 1 dargestellten Weise bilden, oder indem solche
Sekundärbus-Controller 120 in
Serie verkettet werden.
-
Der
Sekundärbus-Controller 120 kann
seinen eigenen Sekundär-PCI-Bus 126 aufweisen,
der seinerseits eine Schnittstelle zu einer Anzahl von PCI-Komponenten
zum Kompressor 101 bildet. Bei einer typischen PCI-Busausgestaltung
können
zehn Komponenten innerhalb eines einzelnen Busses angeschlossen
werden. Eine weitere Anzahl von Komponenten können Ausbreitungsverzögerungen
oder dergleichen einführen,
welche das Verhalten verschlechtern. Natürlich könnten Hardware-Modifikationen
vorgenommen werden, um zusätzliche
Komponenten zu ermöglichen,
doch verlangen typische CPI-Spezifikationen die Anschlußmöglichkeit
von bis zu zehn Komponenten. In der bevorzugten Ausführungsform
können
bis zu vier abtrennbare Komponenten angeschlossen werden, zusammen
mit einer oder meh reren festverdrahteten Komponenten.
-
Jeder
Verbinder für
eine abtrennbare Komponente kann eine zusätzliche Ausbreitungsverzögerungsbelastung
für eine
Gesamtanzahl von acht äquivalenten
Komponentenbelastungen für
vier abtrennbare Komponenten mit sich bringen. In der bevorzugten
Ausführungsform
kann der Sekundärbus-Controller 120 vier
abtrennbare CPI-Komponenten vom SekundärPCI-Bus 126 ansteuern.
Die bevorzugte Ausführungsform
kann expandiert werden, um zusätzliche
abtrennbare oder festverdrahtete Komponenten bereitzustellen, indem
zusätzliche
Registerbits und zugeordnete Logik- und Software-Abstützung vorgesehen
werden. Darüberhinaus kann,
obwohl in der bevorzugten Ausführungsform
als Sekundär-PCI-Bus-Controller
dargestellt, der Sekundärbus-Controller 120 eine
Schnittstelle zu anderen Arten von Expansionsbussen bilden.
-
Die
Registerbits, die in Tabelle I wiedergegeben sind, werden unten
diskutiert. Der Sekundärbus-Controller 120 kann
solche Registerbits benötigen,
um Einfügungs-/Entnahmearchitektur
zu ermöglichen.
Diese Registerbits werden nur beispielshalber wiedergegeben.
-
-
Die
in Tabelle II wiedergegebenen Signalnamen werden unten in Verbindung
mit dem Sekundärbus-Controller 120 diskutiert.
-
-
Der
Sekundärbus-Controller 120 kann
eine Schnittstelle mit der festverdrahteten PCI-Komponente 130 über Sekundär-PCI-Bus 126 bilden.
Die festverdrahtete PCI-Komponente 130 kann eine PCI-Komponente umfassen
(beispielsweise Festplatten-Controller, CD-ROM-Controller, Modem,
Netzwerkkarte, Bildschirmtreiber oder dergleichen), von welcher
nicht erwartet wird, daß sie
entnommen oder eingefügt
wird, während
das Computersystem in Betrieb ist. Die Anwendung einer festverdrahteten
PCI-Komponente kann optional sein, und die Eliminierung einer festverdrahteten
PCI-Komponente an
einem oder mehreren PCI-Expansionsbussen kann eine erhöhte Anzahl
von entnehmbaren PCI-Komponenten hinzuzufügen ermöglichen.
-
Darüberhinaus
können
zusätzliche
festverdrahtete PCI-Komponenten hinzugefügt werden und die Anzahl der
entnehmbaren Einschübe
gesenkt werden. PCI-Komponente 130 kann eine Schnittstelle
zum Sekundärbus-Controller 120 über Sekundär-PCI-Bus 126 und
Sekundär-PCI-Takt
PCICLKs auf Leitung 127 und PIC-Rücksetzsignal PCIRSTs# auf Leitung 128 bilden.
In 1 bezeichnet der Index "s" generell
Signale, die in Verbindung mit dem Sekundär-PCI-Bus 126 stehen,
während
der Index "p" Signale bezeichnet,
die dem Primär-PCI-Bus 104 zugeordnet
sind.
-
Zusätzlich zu
der festverdrahteten PCI-Komponente 130 kann der Sekundärbus-Controller 120 bis
zu vier entnehmbare PCI-Expansionskomponenten über den Verbinder 150 durch
den Sekundär-PCI-Bus 126 ansteuern.
Wiederum sind hier zwar nur vier entnehmbare Expansionskomponenten über Verbinder 150 dargestellt,
doch können
zusätzliche
entnehmbare Expansionskomponenten zugefügt werden durch Abänderung der
Anzahl von Registerbits und/oder durch Eliminieren der Anwendung
einer festverdrahteten PCI-Komponente. Zusätzlich können, wie oben erläutert, multiple
Sekundärbus-Controller 120 verkettet
werden oder parallel vorgesehen werden, um zu ermöglichen,
daß weitere
PCI-Expansionskomponenten einem Computersystem zugefügt werde
können.
-
Um
die Erläuterung
zu vereinfachen, sind in 9 nur ein Verbinder 150 und
zugeordnete Hardware für
entnehmbare Komponenten illustriert. Die Notation (3:0) in 1 illustriert
jedoch, daß der
Verbinder 150 und zugeordnete Hardware für vier entnehmbare
Komponenten repliziert werden können
(d.h. Komponente 0, 1, 2 und 3). Eine weitere Er örterung der Elemente der 1 wird
in Verbindung mit Rücksetzen,
Einfügen
und Entnehmen erläutert.
-
RÜCKSETZSEQUENZ
-
Beim
Einschalten oder Rücksetzen
kann eine Anzahl von Ereignissen innerhalb des Systems der 1 eintreten,
um das Einfügen
bzw. Entnehmen unter Spannung (gemeinsam als "heißer
Austausch" bezeichnet)
zu ermöglichen.
Der System-Controller 103 legt das Primär-PCI-Rücksetzsignal PCIRSTp# auf Leitung 110 und
startet den Primär-PCI-Takt
PCICLKp auf Leitung 109. Der Sekundärbus-Controller 120 kann dann
ein internes Rücksetzen
anlegen und die Konfigurationsbits aus Tabelle i auf die Falschwerte
zurücksetzen.
-
Der
Sekundärbus-Controller 120 kann
dann Sekundär-PCI-Rücksetzsignale
PCIRSTs(3:0)# und PCIRSTs# solange anlegen wie das Primär-PCI-Rücksetzsignal
PCISTp# anliegt. Als solche werden festverdrahtete PCI-Komponente(n) 130 und
entnehmbare PCI-Komponenten, angekoppelt an Verbinder 150 rückgesetzt.
PCIRSTp#-Aktivzeit kann ein Minimum von i ms haben, was es dem internen
Takt und der Phasenverriegelungsschleife (PLL) innerhalb des Sekundärbus-Controllers 120 ausreichend
Zeit gibt, sich zu synchronisieren.
-
Der
Sekundärbus-Controller 120 kann
dann den Sekundär-CPI-Taktsignalen PCICLKs(3:0)
und PCICLKs ermöglichen
umzuschalten, da SLOT CLK EN_(3:0) auf "1111" geht.
Während
des Rücksetzens
tastet der Sekundärbus-Controller 120 das
Signal PRSNTS(3:0)# ab und speichert den Status jener Signale als
Bits PRESENT(3:0) und schaltet die Leistung ein zu den belasteten
Schlitzen durch Anlegen entsprechender SLOT_EN(3:0)-Signale 144.
Für jeden
leeren Schlitz n bringt der Sekundärbus-Controller 120 die
entsprechenden Signale PCICLKs(n), PCIRSTs(n)# und PCIGNTs(n)# auf
hochimpedanten Zustand.
-
Bei
der Überprüfung wird
der BIOS des Sekundärbus-Controllers 120 den
Status von PRESENT(3:0) lesen und eine "1" schreiben,
um SLOT RST_ENs(3:0) dementsprechend zu setzen, um PCIRSTs(3:0)#
für nicht
geladene Schlitze zu aktivieren. Schließlich setzt der BIOS des Sekundärbus-Controllers 120 INSERT_EJECT_EN(3:0),
um das Einfügen
oder Entnehmen zu ermöglichen.
Dieser letzte Schritt kann entsperrt oder gesperrt werden als eine
Sicherheitsmaßnahme,
um nicht autorisiertes Einfügen
oder Entnehmen von herausziehbaren Platinen zu verhindern.
-
EINSETZSEQUENZ
-
Eine "heiße" Einsetzsequenz kann
vier Schritte umfassen, nämlich
Erkennung, Isolierung, Einsetzung und Rekonfiguration. Zum Zwecke
der Erörterung
sind Signale an verschiedenen Stiften zu dem und von dem Sekundärbus-Controller 120 in
Großbuchstaben
gezeigt, während
Registerbits in kursiven Großbuchstaben angegeben
sind. 3, 4A und 4B bilden
ein Flußdiagramm
zur Illustration von Elementen in den vier Schritten der Einsetzsequenz,
beginnend mit dem Startschritt 400.
-
Ein
erster Schritt 410 der Heißeinfügungssequenz ist die Erkennung.
Der Erkennungsschritt 410 kann automatisch oder manuell
ausgeführt
werden. Die automatische Erkennung kann durch die Verwendung von Näherungsschaltern
oder Kontaktschaltern erzielt werden, welche die bevorstehende Einfügugn einer
Platine oder dergleichen erfaßt.
Alternativ können
andere Mittel verwendet werden (beispielsweise eine Anzahl längerer Stifte
oder Kontakte an einer Platine, wie in dem oben beschriebenen Stand
der Technik erläutert),
um die Erkennung auszuführen.
-
Wie
in 1 dargestellt, können der Entnahmeschalter EJECT(3:0)S1 141 und
Einfügeschalter
INSERT(3:0)S2 143 in Serie geschaltet werden. Jeder Schlitz
kann mit entsprechenden Einfüge-
und Entnahmeschaltern versehen werden. Einfügeschalter 143 können einen
Näherungsschalter
oder dergleichen umfassen (beispielsweise optoelektrisch, Kontaktschalter,
Halleffektschalter oder dergleichen), welche geschlossen werden
können,
wenn eine Platine in einen entsprechenden Schlitz eingefügt wird.
-
Jeder
Entnahmeschalter 141 kann einen normalerweise geschlossenen
intermittierenden (beispielsweise federbelasteten) manuellen Benutzerschalter
umfassen in Verbindung mit oder plaziert in der Nähe eines
jeweiligen Schlitzes. Wenn ein Benutzer eine Platine entnehmen möchte, kann
der Benutzer manuell einen entsprechenden Entnahmeschalter betätigen. Das
Schließen
des Einfügeschalters 143 oder Öffnen des
Entnahme schalters 141 können eine Einfüge- oder
Entnahmeanforderung IREQ(3:0)#/EREQ(3:0) erzeugen. Durch Plazieren
des Entnahme- und Einfügeschalters
in Serie kann die Anzahl von Stiften, die der Sekundärbus-Controller für Einfüge- und
Entnahmeanforderung benötigt,
minimiert werden.
-
-
Tabelle
III ist eine Wahrheitstabelle für
das Signal auf Leitung 122 für verschiedene Positionen der Schalter 141 und 143.
Der Entnahmeschalter 141 ist normalerweise geschlossen,
und der Einfügeschalter 143 ist
normalerweise offen. Unter diesen Bedingungen wird die Leitung 122 durch
die Systemspannung 140 über einen
Nebenschlußwiderstand
hoch gezogen. Wenn der Einfügeschalter 143 geschlossen
wird, wird die Spannung auf Leitung 122 heruntergezogen,
wobei der Übergang
das Vorhandensein einer Platine in dem entsprechenden Einschubschlitz
anzeigt. Wenn der Entnahmeschalter 141 aktiviert wird,
während
der Einfügeschalter 143 offen
ist, sollte die Spannung auf Leitung 12 hoch bleiben. Eine
solche Situation ist ein Nullsummenspiel, da ein Verwender nichts
aus einem leeren Einschubschlitz entnehmen kann. Wenn jedoch der
Einfügeschalter 143 geschlossen
ist und der Entnahmeschalter 141 geöffnet wird, wird die Spannung
auf Leitung 122 von niedrig auf hoch gehen. Demgemäß zeigt
der Übergang
von hoch auf niedrig auf Leitung 122 eine Einfügung für einen
entsprechenden Schlitz, während
ein Übergang
von niedrig auf hoch eine Entnahmeanforderung anzeigt.
-
Eine
solche Flankenerkennung ermöglicht,
zwei Signale auf nur eine Leitung 122 zu geben und demgemäß Stifte
am Sekundärbus-Controller 120 zu
sparen. Die Tabelle 4 faßt
das Flankenerkennungsschema für
die Leitung 122 zusammen.
-
-
Es
ist festzuhalten, daß anstelle
der Flankenerkennungstechnik der Tabelle IV eine Pegelerkennungstechnik
verwendet werden kann, bei der unterschiedliche Leitungen für Einfüge- und
Entnahmesignale verwendet werden.
-
Wie
in 1, 3 und 4 dargestellt,
kann der Einfügeanforderungsschalter
S2 143 IREQ(3:0)#/EREQ(3:0) niedrigziehen, um Signal IREQ(3:0)#
auf Leitung 122 für
einen entsprechenden Einschubschlitz zu erzeugen, wie in Schritt 411 dargestellt.
Wenn das Signal IREQ(3:0)# auf Leitungen 122 erscheint
und ein entsprechendes INSERT_EJECT_EN(n)-Bit gesetzt worden ist,
erkennt der Sekundärbus-Controller 120,
daß eine
heiße
Einfügesequenz
zu beginnen ist.
-
Alternativ
kann der Schritt 411 der 3 durch
Software realisiert werden, wie im Schritt 412 illustriert. Beispielsweise
kann ein Benutzer ein "Start/Einfügung"-Symbol in einer
graphischen Benutzeroberfläche
anklicken, wie Windows 95, Windows NT, OS-2 oder dergleichen.
OS-BIOS kann dann
das Bit INSERT(n) im Sekundärbus-Controller 120 setzen,
was anzeigt, daß eine
Software-initialisierte Einfügung
angefordert worden ist.
-
Der
zweite Schritt 420 in der Heißeinfügesequenz ist die Isolation
des Sekundär-PCI-Busses 126 und der
mit ihm gekoppelten Komponen ten. Der Sekundär-PCI-Bus 126 ist
ein synchroner Bus, der den Busbetrieb abstützt. Mit anderen Worten kann
den verschiedenen Komponenten am Sekundär-PCI-Bus 126 die
Steuerung des Sekundär-PCI-Busses 126 durch
den Einfüge-Controller 120 erlaubt
sein, um Daten zu senden oder zu empfangen. Eine solche Busbetriebstechnik
kann verwendet werden, um die Datenbandbreite auf einem Bus zu erhöhen. Als
solche kann sie für
den Sekundärbus-Controller 120 notwendig
sein, um die Kontrolle über den
Sekundär-PCI-Bus 126 wiederzugewinnen,
bevor eine heiße
Einfügung
erfolgen kann.
-
Während des
Isolationsschritts 420 gibt der Sekundärbus-Controller 120 die
PCI-Busverwaltung im Schritt 421 auf, indem die Signale
PCIGNTs# und PCIGNTs(3:0)# auf Leitungen 132 bzw. 131 entfernt
werden. Der Sekundärbus-Controller 120 wartet
darauf, welche Komponente am Sekundär-PCI-Bus 126, die
die Bussteuerung hat, ihren Zyklus beendet hat. Der Sekundärbus-Controller 120 wartet
dann darauf, daß der
Sekundär-PCI-Bus 126 im
Schritt 122 frei wird. Der Sekundärbus-Controller 120 sperrt
dann die Abwägung
auf Sekundär-PCI-Bus 126,
was irgendeine Komponente am Sekundär-PCI-Bus 126 daran
hindert, die Bussteuerung zu übernehmen.
-
Der
Sekundärbus-Controller 120 kann
dann die Adreß-
und Datenleitungen auf dem Sekundär-PCI-Bus 126 im Schritt 423 hochimpedant
machen. Der Sekundärbus-Controller 130 hält dann
den PCI-Takt PCICLKs auf Leitung 127 zu der nicht entnehmbaren
PCI-Komponente 130 im Schritt 425 niedrig. PCI-Takte
PCICLKs(3:0) auf Leitungen 124 zu allen besetzten Schlitzen
am Verbinder 150 werden im Schritt 425 ebenfalls
niedriggehalten. Ob ein bestimmter Einschubschlitz besetzt oder
unbesetzt ist, kann erfaßt
werden, indem das Vorhandensein von PRSNTS(3:0)# Signalen auf Leitungen 123 abgelastet
wird, wie im Schritt 424 illustriert. Falls Signal PRSNTS(n)#
und Signal IREQ(n)#/EREQ(n) niedrig liegt, ist der Schlitz n besetzt. Wenn
das Signal PRSNTS(n)# hoch liegt, ist der Einschubschlitz n leer.
-
Die
PCI-Takte PCICLKs(3:0) auf Leitungen 124 zu unbesetzten
Schlitzen bleiben hochimpedant, und die PCI-Rücksetzsignale PCIRSTs(3:0)#
auf Leitungen 125 zu den besetzten Schlitzen in den Schritten 426 bzw. 427 werden
auf hoch gehalten (deaktiviert). Auf diese Weise können Komponenten,
die gegenwärtig
am Sekundär-PCI-Bus 126 aktiv
sind, zeitweilig in einen statischen Zustand versetzt werden, derart,
daß irgendwelche
Störsignale,
die bei dem Einfügeprozeß auftreten,
ignoriert werden.
-
Wenn
INSERT(n) gesetzt ist (d.h. daß die
Einfügung
von der Software initialisiert wurde), wie im Schritt 428 gezeigt,
geht das Programm zum Schritt 433. Wenn INSERT(n) nicht
gesetzt ist (d.h. die Einfügung
wird durch die Hardware initialisiert), kann der Sekundärbus-Controller 120 ein
entsprechendes INSERT_REQ_STS(n) setzen und den Notifikationsinterrupt
INT# auf Leitung 108 aktivieren, um der Betriebssystem-Software zu notifizieren,
daß eine
Hardware-initialisierte Einfügung
angefordert worden ist. Solche Hardware-initialisierten Einfügeinterrupts
können
gesperrt werden, indem ein Konfigurationsbit innerhalb des Sekundärbus-Controller 120 gesetzt
wird, falls die Erfindung in einem System ohne Hardware-Schalter
anzuwenden ist.
-
Im
Schritt 430 bestimmt das Betriebssystem BIOS die Quelle
des Interrupts. Im Schritt 431 setzt das Betriebssystem
BIOS das INSERT_REQ STS(n)-Bit, und der Sekundärbus-Controller 120 deaktiviert
INT# im Schritt 432.
-
Im
Schritt 433 kann die Betriebssystem-Software oder Anwender-Software eine Benutzeranweisung erzeugen
(z.B. "Karte jetzt
einschieben") und/oder
einen Einschubzeitgeber starten. Ein solcher Einschubzeitgeber kann
verwendet werden, um ein System am Durchhängen zu hindern, wenn keine
Karte eingeschoben wird oder sie unrichtig eingeschoben wird. Wenn
der Einschubzeitgeber im Schritt 434 abgelaufen ist, wird
dem Benutzer notifiziert, daß der
Einschubprozeß unvollständig ist.
Andernfalls ist der Einschubschritt bereit zu erfolgen.
-
Während des
Einschubs kann demgemäß der Notifikationsinterrupt
INT# 108 zweimal eingefügt
werden, anfänglich
für den
Zeitablauf des Einfügens
und später
für die
Systemrekonfigurierung. Der erste Einschubinterrupt kann durch Software
mittels Setzen eines entsprechenden Registerbits gesperrt werden.
-
Während des
Einfügeprozesses 440 bleiben
der Primär-PCI-Bus 104 und
der Wirtsbus 102 aktiv. Versuche, auf Komponenten am Sekundär- PCI-Bus 126 zuzugreifen,
werden während
des Einfügeprozesses
unterbunden. Der Sekundärbus-Controller 120 reagiert
auf Versuche von Komponenten am Primärbus mit einem Neuversuch-Befehl
an Primärbuskomponenten
den Versuch zu unternehmen, auf Komponenten am Sekundär-PCI-Bus 126 während des
Einfügeprozesses
zuzugreifen, wie im Schritt 421 dargestellt. Wenn der Einfügeschalter 143 automatisiert
ist (d.h. ein Näherungsschalter
oder ein anderer Typ von Kartensensorschalter verwendet wird), wird
erwartet, daß der
Einfügeprozeß nicht
mehr als 100 bis 200 ms braucht. Die meisten Anwender-Software sollten
in der Lage sein, eine solche Verzögerung ohne Schwierigkeiten
zu tolerieren.
-
Auf
dem Prozessor 101 laufende Software fährt fort, erneute Zugriffsversuche
vorzunehmen, bis eine Auszeit-Bedingung auftritt. Um Datenverlust
oder Systemabsturz zu verhindern, kann auf dem Prozessor 101 laufende
Software modifiziert werden, um Auszeitperioden zu erstrecken, damit
die Einfügung
von Karten ermöglicht
wird. Der Primär-PCI-Bustakt
PCICLKp auf Leitung 109 während eines Einfügeprozesses
unterbrochen wird und demgemäß der Sekundärbus-Controller 120 über den
Einfügeprozeß hin aktiv
bleibt.
-
Sobald
der Sekundär-PCI-Bus 126 isoliert
worden ist, kann im Schritt 432 das Einfügen erfolgen.
Eine Karte (oder mehrere) oder andere Komponente(n) können in
den Verbinder 150 eingesetzt werden, der, wie oben diskutiert,
vier Verbinderschlitze in der bevorzugten Ausführungsform aufweisen kann.
Für die
Zwecke dieser Anwendung werden die entnehmbaren Komponenten als
Karten oder Platinen oder dergleichen beschrieben. Die Komponenten
können
jedoch andere Formate aufweisen, wie Karten vom Typ PCMCIA (d.h. Komponenten
im Format von Kreditkarten mit spezialisiertem Stecker oder Schnittstelle),
sogenannte "Smart Cards" oder dergleichen.
-
Sobald
eine Komponente in den Verbinder 150 eingefügt worden
ist, dekodiert der Sekundärbus-Controller 120 das
Vorhandensein der neu eingefügten
Komponente durch Erfassen des Präsenz-Signals PRSNTS(3:0)#
auf Leitung 123 im Schritt 443 nach dem Abklingenlassen
der PRSNTS(n)#-Leitung für
zwei Sekunden, um sicherzustellen, daß die Karte richtig gefügt ist.
Das Präsenz-Signal
PRSNTS(3:0)# auf Leitungen 123 kann eine logische Kombination
des Signals PRSNT1S(3:0)# auf Leitungen 145 und PRSNT2S(3:0)# auf
Leitungen 146 sein. In der hier verwendeten Nomenklatur
bezeichnet das Doppelkreuzzeichen ein aktiv niedrig liegendes Signal,
wie dies im Stand der Technik üblich
ist.
-
Die
Signale PRSNT1S(3:0)# und PRSNT2S(3:0)# sind im Stand der Technik
in PCI-Bustypsystemen bekannt. Die Signale PRSNT1S(3:0)# und PRSNT2S(3:0)#
zeigen gemeinsam, welche Art von Leistungserfordernisse eine Komponente
hat. Wenn beide Signale PRSNT1S(3:0)# und PRSNT2S(3:0)# für einen
gegebenen Einschub (d.h. Schlitz 0-3) hoch liegen, ist keine Karte
in den betreffenden Einschubschlitz eingefügt. Andere Kombinationen der
Signale (d.h. 00, 10, 01) zeigen unterschiedliche Leistungspegelerfordernisse
(beispielsweise 5 W für
eine gegebene Komponente an. Die Signale PRSNT1S(3:0)# und PRSNT2S(3:0)#
erfordern keine Leistung, da sie passiv durch eine Komponente erzeugt
werden können
(z.B. An-Masse-Legen eines Stiftes oder Kontaktes).
-
Die
Signale PRSNT1S(3:0)# und PRSNT2(3:0)# können durch eine UND-Funktionslogik 151 UND-verknüpft werden,
um das Präsenz-Signal
PRSNTS(3:0)# auf Leitungen 123 zu erzeugen. Wenn das Präsenz-Signal
PRSNTS(3:0) für
einen gegebenen Einschubschlitz hoch liegt, ist keine Karte in dem
betreffenden Schlitz vorhanden. Wenn das Präsenz-Signal PRSNTS(3:0)# niedrig
liegt, ist entweder eine Einfügung nicht
angefordert worden, oder es ist keine Karte in dem betreffenden
Schlitz vorhanden.
-
Die
UND-Gatterlogik, die in 1 illustriert wurde, ist nur
schematisch. Echte Logik-Hardware-Ausführungen können verändert und andere Signale als
die Signale PRSNT1S(3:0)# und PRSNT2S(3:0)# für die Kartenpräsenz überwacht
werden.
-
2 zeigt
die Wirkungsweise des Präsenz-Signals
PRSNTS(3:0)# auf Leitungen 124 für einen gegebenen Einschubschlitz
und das Einfüge-/Entnahmeanforderungssignal
IREQ(3:0)#/EREQ(3:0) auf Leitung 122 für denselben gegebenen Schlitz.
Sobald eine Einfügeanforderung
durch Schließen
des Einfügeanforderungsschalters 143 eingeleitet
worden ist, kann das Signal IREQ(3:0)#/EREQ(3:0) niedriggehen, wie
in 2 dargestellt. Nach einiger Zeit (beispielsweise
zwei Sekunden), wenn eine Karte eingefügt und eingeschwungen ist,
wird das Signal PRSNTS# für
den betreffenden Einschubschlitz niedriggehen, wie ebenfalls in 2 dargestellt.
-
Nach
Erkennen der Einfügung
der Karte kann der Sekundärbus-Controller 120 das
SLOT_EN(n) für die
neu eingefügte
Karte im Schritt 444 aktivieren. Das Signal SLOT_EN(n)
kann SCR oder eine andere schaltende Komponente 180 schalten,
um die Systemspannung Udd der neu eingefügten Karte zuzuführen. Optional
kann der GPIO-Bus 133 die neu eingefügte Karte an Ort und Stelle
verriegeln.
-
Im
Schritt 445 wird PCICLK(n) für den neu besetzten Schlitz
niedrig gehalten. Im Schritt 446 wird PCIRSTs(n)# für die nun
mit Leistung versorgte neu eingesetzte Komponente ebenfalls niedrig
gehalten. Die Schritte 445 und 446 werden von
der Hardware im Sekundärbus-Controller 120 ausgeführt, nachdem
Leistung über
SCR oder eine andere schaltende Komponente 180 angelegt
worden ist. Die Verwendung einer Hardware-Lösung kann gegenüber Software
bevorzugt sein, um sicherzustellen, daß die neu eingefügte Komponente
in richtiger Weise mit Leistung versorgt und rückgesetzt worden ist.
-
Im
Schritt 447 werden PCI-Takte PCICLKs und PCICLKs(n) für den Sekundärbus neu
gestartet. Der Sekundärbus
PCI 126 kann 1,2 ms leerlaufend gehalten werden.
-
Nach
erfolgter Einführung
kann die Rekonfiguration erfolgen. Die Rekonfiguration beginnt,
wenn der Sekundärbus-Controller 120 den
Interrupthandhaber, der im Betriebssystem oder BIOS des Prozessors 101 wirkt, über die
Notifikation des Interrupt INT# 108 aktiviert, wie im Schritt 451 der 4B dargestellt.
Der Interrupthandhaber dekodiert dann die Quelle des Interrupts
im Schritt 452. Wenn das Bit CHG_STS im Sekundärbus-Controller 120 gesetzt
ist, kann der Interrupthandhaber erkennen, daß ein Änderungsstatusinterrupt erzeugt
worden ist. Wenn ein Einfügeinterrupt
aufgetreten ist, kann der Interrupthandhaber dann den neu besetzten
Schlitz bestimmen, indem er die Bits INSERT_REQ_STS(n) im Sekundärbus-Controller 120 liest,
wie im Schritt 452 dargestellt.
-
Der
Einfügeinterrupt
kann dann den neubesetzten Schlitz über elektromechanische Verriegelung
unter Verwendung der Allgemeinzweck schnittstelle GP-I/O-Bus 133 verriegeln.
Dieser Verriegelungsschritt ist vollkommen optional und kann eliminiert
werden, wenn er nicht benötigt
wird. In der bevorzugten Ausführungsform kann
eine Kartenverriegelung vorgesehen sein, um fehlerhaftes Ausstoßen der
Komponentenkarte oder dergleichen zu verhindern. Die Kartenverriegelungshardware
kann Teil der Erfindung sein.
-
Im
Schritt 453 setzt OS/BIOS das CHG_STS-Bit zurück, und
der Sekundärbus-Controller 120 deaktiviert
die Notifikation des Interrupt INT# 108.
-
Im
Schritt 454 wird das PCI-Taktsignal PCICLKs(n) für den neu
beladenen Einschubschlitz oder neu beladene Einschubschlitze wie
auch (den) vorher besetzte(n) Schlitz(e) gestartet durch Setzen
von SLOT_CLK ENs(3:0)-Bits für
besetzte Schlitze im Sekundärbus-Controller 120.
Der Interrupthandhaber vergleicht die PRESENT(3:0)-Bits mit vorher
gespeicherten Werten im Hauptspeicher, um zu identifizieren, welche(r)
Einschubschlitz(e) neu besetzten worden ist (sind). Obwohl hier
als Software-entsperrter Schritt dargestellt, kann in einer alternativen
Ausführungsform
der Neustart des Sekundär-PCI-Takts
für (einen)
neu besetzte(n) Schlitz(e) in Hardware ausgeführt sein. Im Schritt 454 deaktiviert
OS/BIOS das PCI-Rücksetzsignal PCIRSTs(n)#
für (einen)
neu besetzte(n) Schlitz(e) durch Löschen von SLOT_RST_ENs(n)-Bits
entsprechend dem neu besetzten Schlitz im Sekundär-PCI-Bus-Controller 120.
Der Sekundär-PCI-Bus-Controller 120 kann die
Deaktivierung des PCIRSTs(n)# verzögern, bis der Sekundär-PCI-Bus 126 leerläuft. OS/BIOS
rekonfiguriert das System dann, um die neu eingefügten Komponenten
zu integrieren.
-
Sobald
der Sekundär-PCI-Bus 126 reaktiviert
ist, kann die Sekundärarbitrage
entsperrt werden. Der Sekundär-PCI-Bus-Controller 120 kann
alle internen Konflikte auf dem Sekundär-PCI-Bus 126 anfänglich klären. Die
Betriebssystem-Software auf Prozessor 101 kann dann das
System für
die neue Hardwarekonfiguration rekonfigurieren. Die Arbitrage von
Hardware- und Softsware-Ressourcen kann zugeordnet und Konflikte können eliminiert
werden. Eine solche Konfliktlösung
für Betriebssystem-Software ist beispielsweise
in der Spezifikation mit dem Titel "Plug and Play ISA Specification, Version
1.0a" vom 5. Mai
1994 beschrieben.
-
Die
Ressourcenarbitrage kann die vollständige Rekonfiguration des Computersystems
erfordern oder auch nicht, abhängig
davon, ob ein Ressoucenkonflikt erfaßt wird. Wenn die neu eingefügte Komponente
mit einer vorher vorhandenen Komponente in Konflikt steht, kann
es erforderlich sein, beide oder noch mehr Komponenten zu rekonfigurieren,
um Ressourcenkonflikte zu eliminieren. Sobald das System rekonfiguriert
worden ist, ist der Einfügeprozeß abgeschlossen.
-
ENTNAHMESEQUENZ
-
Die
heiße
Entnahmesequenz kann durch die folgenden fünf Stufen definiert werden:
Erfassen, Ressourcenabschluß,
Isolation, Entnahme und Rekonfigurierung. Die fünf Schritte in der heißen Entnahmesequenz
sind in 5, 6a, 6b und 6c gezeigt. 5 zeigt
die Erkennungs- und Ressourcenabschlußschritte, während die 6a, 6b und 6c die
Isolations-, Entnahme- und Rekonfigurationsschritte darstellen.
-
Gemäß 5 beginnt
die heiße
Entnahmesequenz mit dem START-schritt 500.
Die Erkennung kann erfolgen, wenn das Signal EJECT(3:0) im Schritt 511 aktiviert
wird, indem der Entnahmeanorderungsschalter 141 geöffnet wird.
Der Entnahmeanforderungsschalter 141 kann einen normalerweise
geschlossenen Tastschalter (d.h. federbelastet) umfassen, der von
einem Benutzer aktiviert werden kann. Alternativ kann ein elektrisches
Signal oder dergleichen, das durch EJECT(3:0) repräsentiert
wird, den Entnahmeanforderungsschalter 141 öffnen. Im
Schritt 512 wird das Signal IREQ(n)#/EREQ(n) auf Leitung 122 hochgezogen.
Im Schritt 513 wird das Signal EJECT(3:0) deaktiviert (d.h.
der Entnahmeanforderungsschalter 141 wird losgelassen),
und im Schritt 512 geht das Signal IREQ(n)#/EREQ(n) niedrig.
Wie oben diskutiert, erkennt der Sekundärbus-Controller 120 diese Übergangsflanke
auf Leitung 122 und erkennt in Kombination mit Signal PRSNTS(3:0)#,
daß eine
Entnahmeanforderung vorliegt.
-
Wie
in 5 als Alternative gezeigt, kann ein Benutzer ein "Stop/Eject"-Symbol über Software
im Schritt 517 anklicken. Der Sekundärbus-Controller 120 kann
dann das EJECT(n)-Bit im Sekundärbus-Controller 120 unter
der Voraussetzung, daß eine
Ressource geschlossen worden ist, setzen. Das Verfahren geht dann
im Schritt A in 6a über, wobei der Ressourcenschließschritt übersprungen
wird.
-
Sobald
ein Entnahmeinterrupt erkannt worden ist, kann dann der Interrupthandhaber
im Prozessor 101 Ressourcen, die zu entnehmen sind, schließen. Anwender-Software,
die auf eine zu entnehmende Komponente zugreift, muß abgeschlossen
werden, bevor die Komponente entnommen werden kann, da sonst ein Software-Absturz
erfolgen kann. Anwendungen unter Verwendung der zu entnehmenden
Ressourcen können durch
den Prozessor 101 vorgewarnt werden, daß sie ihre Transaktionen mit
der zu schließenden
Ressource beenden müssen.
Wenn beispielsweise ein Benutzer auf eine Datei von einem entnehmbaren
Festplattenspeicher zugreift, der mit dem Verbinder 150 verbunden
ist, kann der Benutzer aufgefordert werden, diese Datei zu schließen. Welche
Ressourcen zu schließen
sind, kann durch überprüfen der
EJECT_REQ_STS(3:0)-Bits erkannt werden.
-
Nach
Erkennen können
Ressourcen geschlossen werden. Der Sekundär-PCI-Kontroller 120 setzt
das EJECT_REQ_STS(n)-Bit entsprechend der empfangenen Anstiegsflanke
des IREQ(n)#/EREQ(n), was anzeigt, daß ein Entnahmeinterrupt im
Schritt 521 zu erfolgen hat. Im Schritt 522 aktiviert
der Sekundärbus-Controller 120 die
Notifikation des Interrupt INT# 108, was dem Prozessor 101 einen
Interrupt signalisiert. Im Schritt 523 aktiviert OS/BIOS
den Interrupthandhaber, und im Schritt 524 dekodiert es
die Quelle des Interrupts.
-
Der
Prozessor 101 ermittelt, daß ein Entnahmeinterrupt angefordert
worden ist, aus dem Status von EJECT_REQ_STS(n). In Reaktion auf
einen Entnahmeinterrupt klärt
OS/BIOS da EJEC_REQ_STS(n) im Schritt 526. In Reaktion
darauf deaktiviert der Sekundärbus-Controller 120 die
Notifikation des Interrupt INT# 108 im Schritt 527.
Im Schritt 528 schließt
OS/BIOS Ressourcen an Sekundär-PCI-Bus 126,
welche zu entnehmen sind. Nach Schließen der zu entnehmenden Ressourcen
setzt OS/BIO EJECT(n). Das Setzen von EJECT(n) bewirkt, daß der Sekundärbus-Controller 120 den
in 6a diskutierten Isolationsprozeß startet.
-
Nach
Schließen
zu entnehmender Ressourcen kann das CLSRES REQ(3:0)-Bit (oder die
entsprechenden Bits) geklärt
werden, wie im Schritt 525 gezeigt. Die Betriebssystem-Software,
die auf dem Prozessor 101 läuft, kann modifiziert werden,
um einen Benutzer daran zu hindern, die Ressource, die zu entnehmen
ist, später
wieder zu eröffnen,
nachdem sie geschlossen worden ist. Ohne eine solche Vorkehrung
wäre es
möglich,
daß Benutzer-Software
die Ressource während
des Zeitfensters zwischen dem Schließen der Ressource und der Entnahme
der Komponente wieder öffnet.
Nachdem die Ressource geschlossen worden ist, wird der Entnahmeinterrupt
beendet, wie im Schritt 526 gezeigt.
-
Nach
dem Schließen
der Ressource kann die Isolation erfolgen, wie durch Schritt 610 in 6a gezeigt.
Die Schritte 600 – 609 illustrieren
die Isolationsschritte für
den heißen
Entnahmeprozeß.
Der Isolationsschritt für
die Entnahme ist ähnlich
jenem für
die Einfügung.
Während
des Isolationsschritts deaktiviert der Sekundärbus-Controller 120 den
PCI-Bus im Schritt 600 und wartet darauf, welche Komponente
an dem Sekundär-PCI-Bus 126,
die gerade mit dem Bus kommuniziert, ihren Zyklus beendet.
-
Der
Sekundärbus-Controller 120 kann
dann die Arbitrage auf dem Sekundär-PCI-Bus 126 in Schritt 601 sperren,
wobei irgendeine Komponente an dem Sekundär-PCI-Bus 126 daran
gehindert wird, zur Steuerung des Busses zugelassen zu werden. Der
Sekundärbus-Controller 120 wartet
dann, daß der
Sekundär-PCI-Bus 126 in
den Leerlauf gelangt, wie in Schritt 602 gezeigt.
-
Der
Sekundärbus-Controller 120 hält dann
den PCI-Takt PCICLKs auf Leitung 127 zu der nicht entnehmbaren
PCI-Komponente 130 im Schritt 603 niedrig. PCI-Takte
PCICLKs(3:1) auf Leitungen 124 zu allen besetzten Einschubschlitzen
des Verbinders 150 werden im Schritt 604 ebenfalls
niedrig gehalten. Ob ein bestimmter Schlitz besetzt oder unbesetzt
ist, kann durch Abtasten des Präsenz-Signals
PRSNTS(3:0)# auf Leitungen 123, EJECT_REQ(3:0) und INSERT_REQ(3:0)
bestimmt werden.
-
Die
PCI-Rücksetzsignale
PCIRSTs(3:0)# auf Leitungen 125 zu den nicht freizumachenden
Schlitzen und den permanenten Komponenten werden im Schritt 605 hochgehalten.
Der Sekundärbus-Controller 120 kann
dann die Adreß-
und Datenleitungen auf Sekundär-PCI-Bus 126 im
Schritt 606 hochimpedant machen. Die PCI-Takte PCICLKs(3:1)
auf Leitungen 124 zu den freizumachenden Schlitzen werden
dann hochimpedant gemacht zusammen mit PCI-Rücksetzsignalen PCIRSTs(3:1)#
auf Leitungen 125 zu den freizumachenden Einschubschlitzen
in den Schritten 607 und 608. Auf diese Weise können Komponenten,
die am Sekundär-PCI-Bus 126 bleiben
sollen, zeitweilig in einen statischen Zustand derart gebracht werden,
da irgendwelche Störsignale,
die während
des Entnahmeprozesses auftreten, ignoriert werden.
-
Während des
Entnahmevorgangs bleiben der Wirt-Bus und der Primär PCI-Bus 104 in
Betrieb. Komponenten am Primär-PCI-Bus,
die versuchen, auf Komponenten am Sekundär-PCI-Bus 126 zuzugreifen,
werden mit einem Neuversuchabschluß durch den PCI-Kontroller 120 beschieden.
Die Entnahme kann eine Latenz von 100 bis 200 ms für den Zugriff
sekundärer
Ziele oder für
einen sekundären
Master für
die Einleitung von Transaktionen einführen. Software, die auf dem
Wirt-Prozessor 101 läuft,
kann modifiziert werden, um Auszeiten oder Systemabstürze während dieser
Latenzperiode zu vermeiden.
-
Der
Sekundär-PCI-Controller 120 kann
dann einen Benutzer über
GP I/O-Bus 133 im Schritt 609 notifizieren, daß eine bestimmte
Karte für
die Entnahme bereit ist, womit der Isolationsprozeß 610 vervollständigt wird.
Beispielsweise können
nahe jedem Einschubschlitz rote und grüne lichtemittierende Dioden
vorgesehen sein, die Anzeigen, ob es zulässig ist, eine Karte zu ziehen
(beispielsweise, daß alle
Ressourcenanwendungen geschlossen worden sind, der Sekundärbus statisch
ist und dergleichen). Wenn einmal die grüne lichtemittierende Diode
aufleuchtet, kann dann ein Techniker oder Anwender die zugeordnete
Karte entnehmen.
-
Alternativ
kann eine Softwareanzeige (beispielsweise ein Symbol, eine Textbotschaft,
ein Audioton oder eine Ansage), die durch den Wirt-Prozessor 101 erzeugt
wird, angeben, daß eine
bestimmte Karte für
die Entnahme bereit ist.
-
Bei
Beendigung des Isolationsprozesses 610 kann der Entnahmeprozeß 620 beginnen.
Im Schritt 621 kann die Entnahme der Karte erfolgen. Wenn
eine Kartenverriegelung verwendet wird, kann GP I/O-Bus 133 der
Kartenverriegelung signalisieren, die zu entnehmende Karte zu der
entsprechenden Zeit freizugeben, oder ein Federmechanismus oder
dergleichen kann die zu entnehmende Karte ausstoßen.
-
Wie
oben diskutiert, gehen bei Aktivierung des Entnahmeschalters 141 das
Signal PRSNTS(n)# und EREQ hoch, wie im Schritt 622 angedeu tet.
Der Sekundärbus-Controller 120 kann
dann PRSNTS(n)# während
zwei Sekunden ausschwingen lassen, während die Komponente entnommen
wird. Wenn der Entnahmeschalter 141 im Schritt 624 deaktiviert
wird, kann dann der Sekundärbus-Controller 120 IREQ(n)#/EREQ(n)
für 20
ms ausschwingen lassen.
-
Wenn
im Schritt 626 sowohl PRSNTS(n) als auch IREQ(n)#/EREQ(n)
als hoch abgetastet werden, wird die physikalische Entnahme als
beendet angesehen, wie im Schritt 627 festgehalten. Nach
physikalischer Entnahme der Komponente klärt der Sekundärbus-Controller 120 das
PRESENT(n)-Bit im Schritt 628 und startet PCICLKs(n) und
PCICLKs für
vorher besetzte Schlitze und fest verdrahtete Komponenten im Schritt 629.
-
Im
Schritt 630 wird Sekundärbus 126 erneut
gestartet. Der Sekundärbus-Controller 120 setzt
das CGH_STS-Bit zur Anzeige einer Statusänderung im Schritt 631 und
aktiviert den Nofitikationsinterrupt INT# 108 im Schritt 632.
Das System ist nun für
die Rekonfiguration bereit.
-
Nach
Beendigung der Entnahme kann die Rekonfiguration erfolgen. Im Schritt 631 wird
der Notifikationsinterrupt INT# 108 vom Prozessor 101 empfangen.
Im Schritt 631 dekodiert das Betriebssystem BIOS die Quelle
des Interrupts. Der Prozessor 101 kann feststellen, daß eine Rekonfiguration
angefordert wird, indem er das CHG_STS-Bit abtastet.
-
Im
Schritt 632 tastet der Interrupthandhaber den gerade freigegebenen
Schlitz durch Lesen der PRESENT(3:0)-Bits ab, um festzustellen,
welcher Einschubschlitz freigemacht worden ist, und zu bestätigen, daß der Schlitz
tatsächlich
frei ist. Sobald der Schlitz freigegeben worden ist, klärt der Interrupthandhaber
das CGH_STS-Bit im Schritt 633. Im Schritt 634 deaktiviert
der Sekundärbus-Controller
das Notifikationsinterrupt INT#, und im Schritt 635 klärt OS/BIOS
das EJECT(n)-Bit, was das Ende des Entnahmeprozesses signalisiert.
-
Schließlich kann
das Betriebssystem BIOS im Prozessor 101 das System im
Schritt 636 rekonfigurieren, indem die Ressourcenzuordnungen
für die
entnommene Komponente von dem System entnommen werden. Typischerweise
braucht ein solches Entnehmen keine Rekonfiguration des Gesamtsystems
zu benötigen, da
das Entnehmen einer Ressource generell keine Komponentenkonflikte
verursachen wird. Der Schritt 640 zeigt die Beendigung
des heißen
Entnahmeprozesses.
-
7 ilustriert
ein Zustandsdiagramm für
die Software der 3, 4a, 4b, 5 und 6a bis 6c.
Das Einfügen
kann durch den Übergang
vom leeren Zustand 0 zum besetzten Zustand (PRESENT) 5 repräsentiert
werden. Der Zustand 0 repräsentiert
den Zustand eines unbesetzten Einschubschlitzes, der eingegeben
wird, wenn das Rücksetzen
deaktiviert wird und PRESENT(3:0) einen leeren Einschubschlitz anzeigt.
Wenn das Einfügen
zu erfolgen hat, deaktiviert der Sekundärbus-Controller 120 die
Sekundär-PCI-Buskontrolle
im Zustand 1. Eine Hardware-eingeleitete Einfügung wird durch den Übergang
zum Zustand 2 angezeigt, sobald der Sekundär-PCI-Bus inaktiv ist und wenn
keine Entnahmeanforderung ausgeführt wurde.
-
Wenn
eine Software-eingeleitete Einfügung
erfolgen kann, wird dies durch den Übergang vom Zustand 1 zum Zustand
3 angezeigt. Im Zustand 3 kann eine Einfügeauszeit auftreten, wie oben
diskutiert, um Zeit für
Einsetzen einer Karte zu lassen, während ein Systemabsturz verhindert
wird, falls die Karte nicht eingefügt oder unrichtig eingefügt wird.
Zustand 4 repräsentiert
den Einfügeinterrupt.
Der Wirt-Prozessor 101 wird unterrichtet, und das System
wird rekonfiguriert, sobald das Vorhandensein einer neu eingefügten Karte
durch den Zustand der PRESENT(3:0)-Bits erfaßt wird. Sobald der Interrupt
beendet ist, erfolgt ein Übergang
zu dem besetzten Zustand des Schlitzes (PRESENT) 5.
-
Die
Entnahme kann durch den Übergang
von dem Zustand des besetzten Schlitzes 5 zum leeren Schlitzzustand
0 repräsentiert
werden. Der Zustand 6 repräsentierte
eine Entnahmeanforderung, wobei der Übergang durch Aktivierung von
INSERT_EJECT_EN und INSERT_REQ-STS symbolisiert ist. Zustand 7 repräsentiert
einen Entnahmewartezeitgeber, um hinreichend Zeit für das Schließen der
Systemressourcen zu lassen. Wenn eine Komonente zu entnehmen ist,
wie durch die Aktivierung von EJECT(3:0) und Deaktivierung von INSERT_REQ_STS
angezeigt ist, wird wie im Zustand 1 wieder die Kontrolle für den Sekundär-PCI-Bus 126 gesperrt.
-
Im
Zustand 8 wird der Sekundär-PCI-Bus 126 isoliert,
und im Zustand 9 wird die Entnahme erzeugt, was dem Wirtprozessor 101 ermöglicht,
das System zu rekonfigurieren. Das Zustandsdiagramm der 7 ist vereinfacht
worden, um einen Überblick über die
Zustände
der Betriebssoftware zu geben.
-
Die
Vorrichtung ist hinreichend flexibel, um vielfach angewandt zu werden,
was die Kosten durch Massenproduktion senkt. Die Vorrichtung kann
an einem Netzwerkserver angewandt worden, um eine Anzahl von Schlitzen
für entnehmbare
Komponenten bereitzustellen. Zusätzlich
kann die Vorrichtung ohne Modifikation als eine Schnittstelle für eine Andockstation
oder dergleichen vorgesehen sein.
-
8 ist
ein Blockdiagramm zur Illustration, wie der Sekundärbus-Controller 120 in
einer Laptop-Andockstation 810 angewandt werden kann, um
mit einem Laptop-Computer 820 verbunden zu werden. Ein
einziger Sekundärbus-Controller 120 innerhalb
der Andockstation 810 kann als Schnittstelle mit einem
Primärsystemkontroller 130 über Sekundär-PCI-Busverbindungen 109, 110 und 11 verbunden
werden. Ein Vorteil einer solchen Konfiguration besteht darin, daß der Laptop-Computer 820 mit
einem Standard-Sekundär-PCI-Busausgang
versehen wird, der als Schnittstelle mit irgendeiner PCI-Komponente
verwendet werden kann.
-
9 illustriert,
wie der Sekundärbus-Controller 120 in
einem Laptop-Computer 920 zur Verwendung mit einer Andockstation 910 eingesetzt
werden kann. Der Sekundärbus-Controller 120 kann über Leitungen 122, 137, 124, 125 und 126 mit
einem Verbinder oder festverdrahteten Komponenten innerhalb der
Andockstation 910 verbunden sein. Eine solche Konfiguration
ermöglicht
das Einfügen
und Entnehmen von Komponenten aus der Andockstation 910 ohne
Unterbrechung des Laptop-Computers 920. Darüberhinaus
kann der Laptop-Computer 920 an- oder abgedockt werden,
ohne die Verarbeitung zu unterbrechen. Der Ausdruck "Laptop", wie in diesen Figuren
verwendet, kann sich auf irgendwelche Rechneranordnungen einschließlich verschiedener
tragbarer Typen beziehen.
-
10 illustriert,
wie zwei Sekundärbus-Controller 120 in
einem Laptop 1020 und einer Andockstation 1010 anwendbar
sind. Da der Sekundärbus-Controller 120 selbst
eine PCI-Komponente ist und an einem Sekundärbus als eine PCI-Komponente
angeschlossen sein kann, können
zwei Sekundärbus-Controller 120 vorgesehen
werden, jeweils einer für
den Laptop-Computer 1020 und die Andockstation 1010,
um eine Andockschnittstel le zu bilden. Die Konfiguration der 10 bietet
die Vorteile beider Anordnungen der 8 bzw. 9.
-
11 illustriert,
wie der Sekundärbus-Controller 120 in
Serie verkettet werden kann, um die Anzahl von für entnehmbare Komponenten verfügbaren Einschubschlitzen
zu erhöhen.
Ein zusätzlicher
Sekundärbus-Controller 120' kann mit dem
Sekundärbus-Controller 120 als
eine festverdrahtete oder entnehmbare Komponente gekoppelt sein
und verwendet werden, um einen zusätzlicher Verbinder 150' anzusteuern.
Eine Anzahl solcher Sekundärbus-Controller
können
vorgesehen sein, um die Anzahl verfügbarer Schlitze für entnehmbare
PCI-Komponenten entsprechend zu erhöhen.
-
12 illustriert,
wie der Sekundärbus-Controller 120 parallel
angewandt werden kann, um zusätzliche
entnehmbare oder festverdrahtete Komponenten abzustützen. Ein
Vorteil einer solchen Parallelausführung besteht darin, daß nur von
einem einzigen Sekundärbus-Controller
abgestützte
Komponenten während des
Einfügens
oder Entnehmens stillgelegt werden müssen.
-
13 illustriert,
wie der Sekundärbus-Controller 120 angewandt
werden kann, um eine Gruppe von Komponenten (Expansionskomponente 1310)
mit dem Computer 1320 zu verbinden. Die Vorrichtung der 13 kann
angewandt werden, um einen Expansionsschlitz zu liefern, beispielsweise
in einem Netzwerk-Computer oder PC. Anstatt mehrere Expansionsschlitze
in einem PC vorzusehen, kann ein einziger PCI-Schlitz vorgesehen
werden, um eine Mehrzahl von Expansionskomponenten oder einen Sekundär-PCI-Expansionsbus
einzustöpseln,
ferner ein Modul von Komponenten (beispielsweise ein Multimedia-Modul
mit z.B. einer Audiokarte 1340, einem CD-ROM-Laufwerk 1330,
einer Videokarte 1350 und dergleichen) in den Computer 1320 (beispielsweise
ein tragbarer Computer) eingestöpselt
werden, um eine Einzelschlitzexpansion/Aufrüstung (beispielsweise auf Multimedia-Anwendung)
vorzusehen, ohne mehrere Komponenten installieren zu müssen.
-
Wie
in den Beispielen der 8 bis 13 dargestellt,
ist die Vorrichtung sehr flexibel und kann deshalb viele Anwendungen
finden einschließlich
solcher, die hier nicht diskutiert wurden. Eine anfängliche Ausführungsform
soll einen einzigen Expansionsschlitz abstützen, um die Einrichtung primär als eine
Andockstation vorzusehen.
-
Die
Signale INSERT REQ(3:0) und EJECT REQ(3:0) kombiniert werden, um
sowohl Einfügeereignisse
als auch Entnahmeereignisse zu notifizieren, indem Flanken anstatt
Pegel verwendet werden, um solche Ereignisse zu signalisieren. Darüberhinaus
kann das Signal PRSNTS(3:0) weitere durch Anwender initialisierte
manuelle Schalter qualifiziert werden, um den Beginn und das Ende
des Einfüge-
oder Entnahmeprozesses anzuzeigen.
-
Zusätzlich kann
ein Einfüge/Entnahme-Prozeß (d.h.
ein Austauschprozeß)
erzeugt werden, indem die einzelnen oben beschriebenen Schritte
angewandt werden, um einem Benutzer zu ermöglichen, eine bestimmte Komponente
in einem einzigen Prozeßschritt
auszutauschen. Während
einer solchen Austauschsequenz kann die Rekonfiguration verzögert werden,
bis eine neue Komponente eingefügt
wird. Wenn die Komponente, die eingefügt wird, identisch mit der
entnommenen Komponente oder dieser ähnlich ist (beispielsweise
beim Austauschen einer defekten Karte oder dergleichen) brauchen
die Rekonfiguration und Arbitrage nicht erforderlich zu sein.