-
Die
vorliegende Erfindung betrifft allgemein einen Laptop-Computer und
eine assoziierte Docking-Station sowie insbesondere ein Verfahren
zum Hot-Docking und Hot-Undocking, ohne dass dafür das Computersystem in einem
Standby-Modus versetzt werden muss.
-
Dank
Leistungsverbesserungen in Mikroprozessor- und Speichersystemen
gibt es jetzt Computer, die so leistungsstark sind, dass sie Aufgaben ausführen können, die
zuvor nur durch große
Mainframe-Computer ausgeführt
werden konnten. Die technischen Fortschritte sind insbesondere auf
dem Gebiet der tragbaren Computer rasant, wo neben Funktionen, Kosten,
Größe, Gewicht
und Leistung auch der Stromverbrauch berücksichtigt werden muss. Die
Entwicklung ist hier vor besondere Herausforderungen gestellt, weil
viele Computerbenutzer eine ähnliche
Funktionalität
von einem tragbaren Computer wie von einem Desktop-System erwarten. Die
Bezeichnung "tragbarer
Computer" wird hier
breit verwendet, um die Klasse von Computern zu bezeichnen, die
durch Batterien oder durch Solarenergie mit Strom versorgt werden.
Derartige tragbare Computer werden als Laptop, Notebook oder Handheld
bezeichnet. Diese Kategorisierung wird verwendet, um bestimmte Marktsegmente
für tragbare
Computer zu unterscheiden.
-
Für den Entwickler
von Computersystemen sind viele Optionen verfügbar. Wenn man einfach einen
Prozessor mit der höchsten
verfügbaren
Leistung vorsieht, erhält
man zwar ein Produkt mit hoher Leistung; dies ist jedoch am heutigen
Markt nicht ausreichend. Der Prozessor muss durch Hochleistungs-Komponenten
und einen Hochleistungs-E/A-Bus unterstützt werden. Der Entwickler kann
zwischen mehreren standardisierten E/A-Bussen wählen: ISA (Industry Standard
Architecture); EISA (Extended Industry Standard Architecture); und PCI
(Peripheral Component Interface). Moderne Computer werden gewöhnlich mit
einer Kombination aus diesen drei Standards ausgerüstet, damit
der Benutzer über
die Leistung von PCI und die Abwärtskompatibilität von ISA
oder EISA verfügen
kann. Diese drei Busse sind dem Fachmann vertraut.
-
Bestimmte
Leistungskriterien betreffen auch spezielle Funktionen des Computers,
die den Computer eines Herstellers von demjenigen eines Konkurrenten
unterscheiden. Diese zusätzlichen
Funktionen können
eine reduzierte Größe und ein
reduziertes Gewicht ermöglichen.
Zum Beispiel können
Software- und Multimedia-Dokumente große Speichermengen verbrauchen,
sodass häufig
ein Festplattenlaufwerk mit sehr hoher Speicherkapazität erforderlich
ist. Festplattenlaufwerke mit hoher Speicherkapazität sind jedoch
gewöhnlich
größer und
schwerer als für
einen tragbaren Computer wünschenswert
ist. Weiterhin ist es vorteilhaft, wenn der Funktionsumfang des
tragbaren Computers erweitert werden kann. Gewöhnliche Erweiterungssteckplätze beeinträchtigten
jedoch auch die Größenvorteile
eines tragbaren Systems.
-
Ein
bekanntes Verfahren zum Vorsehen von zusätzlichen Funktionen ohne negative
Auswirkungen auf Größe und Gewicht
sieht die Verwendung einer Erweiterungsbasiseinheit (auch als Docking-Station
bezeichnet) vor. Eine Erweiterungseinheit ist eine nicht-tragbare
Einheit, die gewöhnlich
mit Netzspannung betrieben wird und auf dem Schreibtisch des Benutzers
liegt. Wenn der Benutzer am Schreibtisch arbeitet, wird der tragbare
Computer mit der Erweiterungseinheit verbunden, um zusätzliche
Funktionen vorzusehen. Zum Beispiel kann die Erweiterungseinheit
eine Netzwerkschnittstelleinheit für die Verbindung zu einem lokalen
Netzwerk, ein Plattenlaufwerk mit hoher Kapazität, einen Kathodenstrahlröhrenbildschirm,
ein große
Tastatur, ein Diskettenlaufwerk oder ein CD-ROM-Laufwerk und andere
Peripheriegeräte
enthalten.
-
Die
Verbindung zwischen dem tragbaren Computer und der Erweiterungsbasiseinheit
ist gewöhnlich
proprietär
gelöst,
das bisher kein Standard entwickelt wurde. Eine Möglichkeit
für die
Verbindung des tragbaren Computers mit der Erweiterungsbasiseinheit
verwendet den vorhandenen Eingabe/Ausgabe-Bus (E/A-Bus). Bei einem
tragbaren Computer mit einem PCI-Bus und einem ISA-Bus kann einer
der Busse für
die Verbindung mit der Erweiterungsbasiseinheit verwendet werden.
Für eine
möglichst
hohe Leistung ist der PCI-Bus vorzuziehen.
-
Die
aktuell verfügbaren
Methoden für
die Verbindung von tragbaren Computern mit Docking-Stationen sind nicht
optimal. Bei einem „Cold-Docking" muss der Benutzer
alle Anwendungen schließen
und das System ausschalten, bevor er Aktionen für das Undocking oder Docking
durchführen
kann. Bei diesem Docking-Typ ist ein Neustart erforderlich, damit
der tragbare Computer Peripheriegeräte in der Docking-Station erkennt.
Wenn die Docking-Station
mit neuen Peripheriekarten ausgestattet wird, muss der Benutzer
zudem ausreichendes technisches Wissen zu Interrupts und DMA (Direct Memory
Access) besitzen, um die entsprechenden Jumper physikalisch zu setzen.
-
Die
neueren Plug-and-Play-Standards (PnP) haben das Docking und das
Undocking etwas einfacher gemacht. Bei Systemen mit einem „Warm-Docking" muss der tragbare
Computer in einen Suspend- oder Standby-Modus versetzt werden, bevor ein
Docking oder Undocking durchgeführt
werden kann. Das Eintreten in den Standby-Modus wird gewöhnlich bewerkstelligt,
indem eine Taste oder eine Schaltfläche an dem tragbaren Computer
betätigt wird.
In einem gewöhnlichen
Standby-Zustand wird der Zustand des Systems in einem Systemspeicher gespeichert,
wobei möglichst
alle Geräte
in einen Zustand mit niedrigem Stromverbrauch versetzt werden, wobei
das Diskettenlaufwerk, das Festlaufwerk und die meisten Ports nicht
mit Strom versorgt werden. Auch die Bustakte werden deaktiviert,
wobei jedoch ein Takt mit niedrigerer Frequenz aktiv bleibt, um
den Systemspeicher aufrechtzuerhalten. Unter Verwendung der Plug-and-Play-Funktionen
kann der tragbare Computer Peripheriegeräte erkennen und aktivieren,
wenn er aus dem Standby-Zustand austritt, sodass er nicht neu gestartet
werden muss. Die im Standby-Zustand verbrachte Zeitdauer ist jedoch häufig länger als
wünschenswert.
-
Bei
vielen Dokcing-Systemen ist der tragbare Computer derart konfiguriert,
dass er nach einer vorbestimmten Zeitdauer automatisch aus dem Standby-Modus
austritt. Diese Zeitdauer muss ausreichen, um die motorisierte Docking/Undocking-Aktion
abzuschließen,
wobei außerdem
eine zusätzliche
Sicherheitsspanne vorzusehen ist. Der Docking/Undocking-Prozess
wird also aufgrund des erforderlichen Eintritts in den Standby-Modus
verlängert.
-
US-A-5
488 572 beschreibt ein Docking/Undocking-Verfahren, bei dem der
Status des zu dockenden Computersystems festgestellt wird, wenn
eine Docking-Aktion an einer Erweiterungsbasis durchgeführt wird.
Zwei Signale werden codiert, um das Docking in Übereinstimmung mit diesem Status
zu gestatten oder zu untersagen. Wenn das Computersystem während des
Dockings eine Anwendung ausführt,
wird das Computersystem in einen Standby-Modus versetzt.
-
Gegenwärtig gibt
es kein effizientes Verfahren für
das Docking/Undocking, bei dem das tragbare Computersystem nicht
zuerst in einen Wartezustand versetzt oder vollständig ausgeschaltet
werden muss.
-
Ein
Verfahren zum Hot-Docking eines Computersystems an einer Erweiterungsbasiseinheit
ist in dem unabhängigen
Anspruch 1 definiert. Ein Verfahren zum Hot-Undocking eines Computersystems
von einer Erweiterungsbasiseinheit ist in dem unabhängigen Anspruch
11 definiert. Ein Verfahren zum Docking und Undocking ist in dem
unabhängigen
Anspruch 16 definiert. Ein Computersystem und eine Erweiterungsbasiseinheit
für ein
derartiges Docking und Undocking sind jeweils in den unabhängigen Ansprüchen 16
und 23 definiert. Weitere Ausführungsformen
der Erfindung sind in den beigefügten
abhängigen
Ansprüchen
angegeben.
-
Ein
tragbarer Computer und eine Docking-Station gemäß der vorliegenden Erfindung
umfassen Hot-Docking/Undocking-Fähigkeiten.
Normale Computeroperationen müssen
nicht ausgesetzt werden, bevor die Systemrekonfiguration nach dem Docking/Undocking
ausgeführt
wird. Der Zeitaufwand und der sonstige Aufwand für das Docking bzw. Undocking
und die Rekonfiguration von Systemkomponenten sind also gegenüber Systemen
aus dem Stand der Technik beträchtlich
reduziert. Der tragbare Computer und die Docking-Station sind physikalisch über einen
gemeinsamen PCI-Bus miteinander verbunden. Eine Erweiterungs-Steckverbindung
wird verwendet, um den Teil des PCI-Busses im tragbaren Computer
mit dem PCI-Bus in der Erweiterungsbasis zu verbinden. Lange, mittlere
und kurze Stifte sind in der Erweiterungs-Steckverbindung vorgesehen.
Alle PCI-Bus-Signalleitungen werden einzeln über Stifte mit mittlerer Länge verbunden,
wenn der tragbare Computer gedockt wird. Die kurzen und langen Stifte werden
verwendet, um Mikrocontroller in dem tragbaren Computer und in der
Erweiterungsbasis über den
Verbindungsstatus des PCI-Bus-Signalstifte
mit mittlerer Länge
während
des Dockings und Undockings zu informieren.
-
Zum
Beispiel werden während
des Docking-Prozesses die langen Stifte der Erweiterungs-Steckverbindung zuerst
verbunden und geben ein Signal zu den Mikrocontrollern, um den bevorstehenden
Docking-Vorgang anzugeben. Die kurzen Stifte informieren die Mikrocontroller
darüber,
dass die PCI-Bus-Signalstifte verbunden wurden. Entsprechend werden
die kurzen Stifte zuerst getrennt und geben eine vorläufige Warnung
zu dem Undocking-Vorgang
aus, während
die langen Stifte den Abschluss des Undocking-Prozesses angeben.
-
Der
tragbare Computer und die Docking-Station sind funktionell über Schalter
mit niedrigem Widerstand in dem tragbaren Computer verbunden. Nach
einem Docking-Vorgang wird der Teil des gemeinsamen PCI-Busses in
der Docking-Station durch das Schließen der Schalter mit dem PCI-Bus
in dem tragbaren Computer verbunden. Wenn die Schalter geöffnet sind,
sind die PCI-Busse funktionell isoliert. Die Schalter werden durch
ein Signal gesteuert, das durch den Mikrocontroller in dem tragbaren Computer
erzeugt wird. Während
des Hot-Dockings verifiziert
der Mikrocontroller vor dem Schließen der Schalter, ob die Stromversorgung
in der Erweiterungsbasis aktiviert ist.
-
In
der bevorzugten Ausführungsform
ist der Mikrocontroller in dem tragbaren Computer konfiguriert,
um einen Systemverwaltungs-Interrupt (SMI) vor und nach einer Änderung
des Verbindungsstatus der langen und kurzen Stifte zu erzeugen.
Der SMI benachrichtigt das BIOS und das Betriebssystem darüber, dass
ein Docking/Undocking-Vorgang auftritt. Sowohl der tragbare Computer
als auch die Docking-Station umfassen einen lokalen Bus verwalter zum
Verwalten und Gewähren
von Bussteuerungs-Anforderungen von Geräten, die mit dem gemeinsamen
PCI-Bus verbunden sind. Diese lokalen Busverwalter können entweder
durch das Betriebssystem (über
das System-BIOS) oder durch die Mikrocontroller in einen Ruhezustand
versetzt werden. Die Busverwalter werden während des Docking- und Undocking-Vorgangs
in den Ruhezustand versetzt, um Buszyklen auf dem PCI-Bus zu verhindern,
damit keine Zyklen verloren gehen.
-
Das
tragbare Computersystem der angegebenen Ausführungsform umfasst auch Funktionen, die
dem Plug-and-Play-Standard entsprechen. Nach dem Abschluss eines
Hot-Docking-Vorgangs
wird die Systemrekonfiguration für
das PCI-Plug-and-Play und das Erweiterungsbus-Plug-and-Play ausgeführt, damit
alle Systemressourcen erkannt und korrekt durch das Betriebssystem
verwendet werden können.
Entsprechend verhindert die Plug-and-Play-Rekonfiguration, dass der tragbare
Computer Komponenten der Docking-Station nach einem Hot-Undocking
erkennt.
-
Die
vorliegende Erfindung wird durch die folgende ausführliche
Beschreibung der bevorzugten Ausführungsform in Verbindung mit
den beigefügten Zeichnungen
näher erläutert.
-
1 ist ein Blockdiagramm
eines beispielhaften Computersystems mit Hot-Docking/Undocking-Fähigkeiten gemäß der vorliegenden
Erfindung.
-
2 ist ein ausführlicheres
Blockdiagramm von Teilen des Computersystems von 1.
-
3 ist ein Zeitdiagramm,
das Kommunikationen zwischen dem Laptop-Computer und der Docking-Station
während
eines Hot-Docking-Prozesses gemäß der vorliegenden
Erfindung zeigt.
-
4 ist ein Zeitdiagramm,
das Kommunikationen zwischen dem Laptop-Computer und der Docking-Station
während
eines Hot-Undocking-Prozesses gemäß der vorliegenden Erfindung
zeigt.
-
5a–5c und 6a–6c sind
Flussdiagramme eines beispielhaften Mikrocontroller-Codes, der in dem
Laptop-Computer während
der Hot-Docking/Undocking-Vorgänge
ausgeführt
wird.
-
7 ist ein Blockdiagramm
von System-Softwarekomponenten, die für die Unterstützung eines
Hot-Docking/Undocking konfiguriert sind.
-
1 ist ein Blockdiagramm
zu einem Computersystem, in dem die vorliegende Erfindung verwendet
wird. Das Computersystem ist in einen Laptop-Teil L (nachfolgend
als Laptop-Computer
L bezeichnet) und in einen Docking-Station/Erweiterungsbasiseinheit-Teil
E (nachfolgend als Erweiterungsbasis E bezeichnet) unterteilt. Der
Laptop-Computer L ist ein in seinen Operationen autonomes Gerät, das von
der Erweiterungsbasis E für
entfernte Computeroperationen getrennt werden kann. Während der
Laptop-Computer L an der Erweiterungsbasis E gedockt ist, wird der
Laptop-Computer L mit Netzspannung betrieben. Wenn der Computer L
von der Erweiterungsbasis E getrennt ist, wird der Laptop-Computer
L mit Batterieleistung betrieben. Es sind auch Mechanismen vorgesehen,
um den Laptop-Computer
mit Netzspannung betreiben zu können,
während
er von der Erweiterungsbasis E getrennt ist. Die Erweiterungsbasis
E bietet gewöhnlich eine
Erweiterungsfähigkeit
für Funktionen,
die aus Raum- oder Leistungsgründen
nicht in dem Laptop-Teil L enthalten sind.
-
Die
Zentraleinheit (CPU) 100 in dem Laptop-Computer L ist ein
herkömmlicher
Mikroprozessor wie etwa ein PentiumTM-Prozessor
von Intel Corporation oder ein ähnlicher
Prozessor. Die CPU 100 ist mit einem Host-Bus 110 verbunden,
um mit Systemlogik wie etwa einem Cache-Speicher 102, einem MPC
(Mobile Peripheral Component Interconnect Bus Cache Controller) 108 und
einem Paar von MDBs (Mobile Data Buffers) 104 zu kommunizieren. Der
Cache-Speicher 102 ist ein herkömmlicher Cache-Speicher für die CPU 100 und
verwendet vorzugsweise einen Hochgeschwindigkeits-Synchronburst-RAM.
Der MPC 108 sieht eine Schnittstelle zu dem Cache-Speicher 102 vor
und umfasst Tag-RAMs und andere Logik zum Vorsehen von verschiedenen
Cachewegen, Größen und
Geschwindigkeitskonfigurationen des Cache-Speichers 102.
-
Der
MPC 108 und der MDB 104 sind auch mit einem Systemspeicher 106 und
einem PCI-Bus 112 verbunden.
Der MPC 108 sieht eine Adresssteuerung für den Systemspeicher 106 vor,
der aus bis zu 256 MByte aus herkömmlichen DRAMs besteht. Der MDB 104 sieht
einen 64-Bit-Datenpfad zwischen dem Host-Bus 110 und dem
Systemspeicher 106 vor und sieht einen 32-Bit-Datenpfad
zu dem PCI-Bus 112 vor. Der MPC 108 und der MDB 104 weisen
drei hauptsächliche
Funktionsschnittstellen auf: eine Prozessor/Cache-Schnittstelle,
eine Systemspeicher-Schnittstelle und eine PCI-Bus-Schnittstelle. Der
MDB 104 ist verantwortlich für das Puffern von Daten zwischen
den drei Schnittstellen, während
der MPC 108 für
die Handhabung der Adressierung, der Befehle und der Steuerung verantwortlich
ist. Jede dieser Schnittstellen wird unabhängig von den anderen betrieben
und umfasst Warteschlangen für
das Lesen und Schreiben zwischen zwei beliebigen der drei Schnittstellen.
Die Prozessor/Cache-Schnittstele gestattet es der CPU 100,
Zyklen in Lese-Pipeline-Zyklen einzureihen, und erlaubt Snoop-Zugriffe auf
den Tag-RAM während
der Ausführung
der Pipeline-Zyklen. Die Speicherschnittstelle steuert den Systemspeicher 106 und
erzeugt Steuersignale für den
MDB 104. Die Schnittstelle erlaubt auch Vorausleseoperationen
für diejenigen
PCI-Master, die einen Lese-Mehrfachbefehl ausgeben. Die PCI-Schnittstelle
gestattet es dem MPC 108, als ein PCI-Master zu funktionieren,
wenn die CPU 100 auf den PCI-Bus 112 zugreift,
oder als ein PCI-Slave zu funktionieren, wenn ein PCI-Gerät auf den
Systemspeicher 106 zugreift.
-
Der
PCI-Bus wurde für
einen hohen Durchsatz und für
eine erhöhte
Anzahl von lokalen Prozessoren mit einer Unterstützung von E/A-Funktionen entwickelt.
Zum Beispiel umfassen die meisten Platten-Controller, und insbesondere
SCSI-Controller (Small Computer System Interface) und Netzwerkkarten
(NICs), einen lokalen Prozessor, um die Anforderungen an den Host-Prozessor
zu reduzieren. Entsprechend umfassen Grafikkarten häufig intelligente Grafikakzeleratoren,
um eine Funktionsübertragung auf
höherer
Ebene zu erlauben. Gewöhnlich
können diese
Geräte
als Bus-Master auftreten, um Daten mit den höchstmöglichen Raten zu übertragen.
Wie bereits genannt, enthalten potenzielle Bus-Master das CPU/Hauptspeicher-Subsystem
(über den
MPC 108).
-
Der
PCI-Bus 112 sieht eine Kommunikationsleitung zwischen dem
Laptop-Computer L und der Erweiterungsbasis E vor. Ein Teil 112a des PCI-Busses 112 befindet
sich im Laptop-Computer
L und umfasst einen Quickswitch 113 für jedes Signal des PCI-Busses 112.
In der bevorzugten Ausführungsform
sind die Quickswitches 113 serielle In-Line-Mosfet-Bauelemente
mit niedrigem Verlust, deren Gate (Steuerleitung) durch ein Steuersignal CONTROL
vom MSIO-L 124 angesteuert wird. Der Quickswitch 113 kann
also verwendet werden, um die Hot-Plug-Fähigkeiten zu unterstützen. Wenn
der Laptop-Computer L an der Erweiterungsbasis E angedockt ist und
die Quickswitches 113 eingeschaltet sind, wird ein Teil 112b des
PCI-Busses 112 in dem Erweiterungsbus E über die
Erweiterungs-Steckverbindung 146 mit dem Teil 112a verbunden,
um den erweiterten PCI-Bus 112 vorzusehen. Details zu der Erweiterungs-Steckverbindung 146 und
der assoziierten Docking/Undocking-Logik sind in 2 gezeigt.
-
In
dem Laptop-Computer L ist der PCI-Bus 112a weiterhin mit
einem Grafik-Controller 114, einer Cardbus-Schnittstelle 116 (insbesondere 116a)
und einem Mobile Integrated System Controller-Laptop 118 (insbesondere
MISC-L 118a) verbunden. In der Erweiterungsbasis E ist
der PCI-Bus 112b weiterhin mit einem zweiten MISC 118 (MISC-E 118b),
zwei PCI-Steckplätzen 148 und
einer zweiten Cardbus-Schnittstelle 116 (insbesondere 116b)
verbunden. Der Grafik-Controller 114 ist weiterhin mit
einer stromsparenden Flüssigkristallanzeige
(LCD) 120 oder alternativ hierzu mit einer Kathodenstrahlröhre (CRT)
oder einem anderen Typ von Monitor verbunden. Die Cardbus-Schnittstelle 116 ist
für die
Kommunikation mit zusätzlichen
Karten 120 wie etwa Netzwerkkarten, Modemkarten, IC-Speicherkarten und
sich drehenden Speicherkarten vorzugsweise im PCMCIA-Format (Personal
Computer Memory Card International Association) verbunden. Der MISC 118 sieht
eine Schnittstelle für einen
ISA-Bus 138 oder 140 und eine IDE-Festplatten-Schnittstelle
für die Kommunikation
mit Festplatten 122 vor. Der MISC 118 kann auf
der Basis eines Eingangsstifts (LAP_EXT) für die Verwendung in dem Laptop-Computer
L, als MISC-L 118a, und in der Erweiterungsbasis E, als
MISC-E 118b, konfiguriert werden. Die zwei MISC-Geräte 118a und 118b sind
also mit dem PCI-Bus 112 verbunden, wobei der MISC-L 118a mit dem
PCI-Bus-Teil 112a und
der MISC-E 118b mit dem PCI-Bus-Teil 112b verbunden
sind. Der MISC-L 118a ist weiterhin mit dem internen ISA-Bus 138 verbunden,
während
der MISC-E 118b mit dem externen ISA-Bus 140 verbunden
ist. Der ISA-Bus 140 ist dem Fachmann wohlbekannt.
-
Die
allgemeine Funktion des MISC-L 118a und des MISC-E 118b ist
sehr ähnlich,
wobei Teile ihrer Funktionalität
hier der Einfachheit halber gemeinsam erläutert werden. Der MISC 118 verbindet
den PCI-Bus 112 mit dem ISA-Bus 138 oder 140 und funktioniert
als Master oder Slave auf dem PCI-Bus 112 und als Bus-Controller
auf den ISA-Bussen 138 oder 140. Von besonderem
Interesse ist, dass der MISC 118 weiterhin eine Busverwaltungsschaltung einschließlich eines
lokalen PCI-Busverwalters, eines ISA-Busverwalters und eines Top-Level-Busverwalters 192 (2) umfasst, der verwendet
wird, um den Buszugriff zwischen dem MISC-L 118a und dem MISC-E 118b zu
verwalten, wenn der Laptop L gedockt ist. Der Top-Level-Busverwalter 192 ist
in dem MISC-L 118a nur dann aktiv, wenn der Laptop gedockt
ist. Der MISC 118 ist die Einrichtung, über die ein EDMA-Controller
und ISA-Bus-Master
Zugriff auf den PCI-Bus 112 erhalten können.
-
In
der bevorzugten Ausführungsform
der Erfindung umfasst der MISC 118 auch 8237-kompatible DMA-Controller,
einen EDMA-Controller für
schnelle IDE-Festplattenlaufwerke, 8254-kompatible Timer, einen
8259-kompatiblen Interrupt-Controller, eine Hot-Docking-Unterstützungslogik,
eine Systemstromversorgungs-Verwaltungslogik und eine Plug-and-Play-Unterstützung (nicht
alle in 1 gezeigt).
Einige Komponenten werden bei der Initialisierung durch Software
deaktiviert, um Konflikte oder Duplizierungen zu verhindern. Der
MISC 118 umfasst auch eine serielle Interrupt-Schnittstelle 144 für das serielle
Weiterleiten von Interrupts von dem MISC-E 118b zu dem
MISC-L 118a. Die serielle Interrupt-Schnittstelle 144 sieht eine
Interrupt-Architektur vor, die Standard-ISA-Interrupts in einem
PCI-basierten System unterstützt.
Ein Erweiterungsbasis-PCI-Anforderungssignal EXP_REQ und ein Erweiterungsbasis-PCI-Gewährungssignal
EXP_GNT werden ebenfalls zwischen dem MISC-E 118b und dem
MISC-L 118a geleitet. Der MISC-E 118b verwendet
die Signale EXP_REQ und EXP_GNT, um die Steuerung des PCI-Busses 112 anzufordern
und zu erhalten. Diese zwei Signale werden über einen seriellen Bus 145 kommuniziert.
-
Der
MISC 118 und die ISA-Busse 138 und 140 unterstützen Standard-ISA-Peripheriegeräte wie etwa
solche, die mit einem MSIO-Peripheriegerät 124 verbunden sind
(MSIO: Mobile Super Input/Output). Das MSIO-Peripheriegerät 124 umfasst
eine Kombination von Standard-ISA-Peripheriegeräten wie etwa: einen 146818-kompatiblen
Echtzeittakt (RTC), ein Diskettenlaufwerk für Standard-Diskettenlaufwerke
(FD) 130; einen 8051-kompatiblen Mikrocontroller 172 (2) für die Kommunikation mit einer
Standard-Tastatur 132 und einer Zeigeeinrichtung 150,
für die
Durchführung
von Abtast- und Tastencode-Umwandlungen auf der Tastatur 132 und
für die
Durchführung
von Stromversorgungsverwaltungs- und Hot-Docking-Funktionen; einen UART (Universal
Asynchronous Receiver Transmitter) für Standard-Seriellports 136;
und eine Parallelport-Logik für
einen parallelen Port 134. Der MSIO 124b kann
auch einen Docking-Motor 117 mit variabler Geschwindigkeit
in der Erweiterungsbasis E steuern. (Die Tastatur 132 und
die Zeigeeinrichtung 150 sind in den Zeichnungen mit dem
MSIO 124b verbunden, wobei sie statt dessen und vorzugsweise
aber auch direkt über
die Steckverbindung 146 verbunden sein können.) Ein
ROM 126 ist mit dem MSIO 124 verbunden, um Code
zu dem 8051-Mikrocontroller 172 zu geben. Außerdem gibt
der ROM 126 BIOS-Code zu der CPU 100, der aus
dem ROM 126 kopiert und bei der Systeminitialisierung im
Systemspeicher 106 abgelegt wird, sodass danach der 8051-Mikrocontroller 172 auf
den ROM 126 zugreifen kann. Ein 1-Bit-MSIO-Seriellbus (MSB) 152 ist
vorgesehen, um Register mit Informationen zu der Stromversorgungsverwaltung
und dem Hot-Docking zu übertragen.
Idealerweise kann der Bus erweitert werden und weist eine sehr niedrige
Latenz auf.
-
Wenn
das Laptop L gedockt ist, sind der MSIO-L 124a, der MSIO 124b und
andere Systemkomponenten (nicht gezeigt) weiterhin mit einem Standard-I2C-Bus 149 verbunden. Der IC- oder I2C-Bus 149 ist ein einfacher bidirektionaler
Zweidraht-Bus, der verwendet wird, um effiziente Steuerungs- und
Identifikationsfunktionen zwischen den integrierten Schaltungen
vorzusehen. Details zu dem I2C-Bus sind
in „The
I2C-Bus and How to Use It (Including Specification)", veröffentlicht
von Phillips Semiconductors, January 1992 beschrieben. Der I2C-Bus 149 besteht aus zwei Leitungen:
einer seriellen Taktleitung (SCL) und einer seriellen Datenleitung
(SDA). Jede dieser Leitungen ist bidirektional. Die SCL-Leitung
sieht das Taktsignal für
Datenübertragungen über den
I2C-Bus vor. Die SDA-Leitung ist die Datenleitung
für Datenübertragungen über den
I2C-Bus. Jedes mit dem I2C-Bus
verbundene Gerät
wird durch eine eindeutige Adresse erkannt. Serielle Widerstände mit
niedrigen Wiederstandswerten (nicht gezeigt) sind gewöhnlich an
jeder Geräteverbindung
vorgesehen, um vor Hochspannungsspitzen zu schützen.
-
In
dem Laptop-Computer L sind auch ein Modem und ein Audio-Peripheriegerät 128 vorgesehen und
mit dem ISA-Bus 128 verbunden. Das Modem und das Audio-Peripheriegerät 128 umfassen
einen Standard-Telefoniekommunikationsport für die Verbindung zu einem Telefon
T sowie eine Schnittstelle für
die Verbindung zu einem Paar von Stereolautsprechern S. In der Erweiterungsbasis
E sind drei ISA-Steckplätze 142 für Standard-ISA-Karten
vorgesehen.
-
1 gibt ein beispielhaftes
Computersystem L und eine beispielhafte Erweiterungsbasis E wieder.
Es ist jedoch zu beachten, dass auch andere effektive Ausführungsformen
mit einer anderen Anordnungen der Komponenten durch den Fachmann entwickelt
werden können.
-
Ein
ausführlicheres
schematisches Diagramm der Teile in dem Hot-Docking-Schaltungsaufbau
ist in 2 gezeigt. Der
gezeigte Schaltungsaufbau koordiniert die Kommunikationen zwischen
dem Laptop-Computer L und der Erweiterungsbasis E derart, dass das
Betriebssystem einen Docking-Vorgang erkennen kann und den PCI-Bus 112 vor
dem Docking in den Ruhezustand versetzen kann.
-
Die
physikalische Schnittstelle zwischen dem Laptop-Computer L und der
Erweiterungsbasis E besteht aus einer Erweiterungs-Steckverbindung 146 mit
kurzen Stiften 147a, mittleren Stiften 147b und
langen Stiften 147c. Die Verbindung ist graphisch durch „männliche" Stifte mit entsprechenden Längen dargestellt,
wobei jedoch die tatsächliche
Implementierung „weibliche" Stifte/Buchsen auf
einer Seite umfasst (vorzugsweise auf der Seite des Laptop-Computers L). Die
kurzen und langen Stifte 147a und 147c werden
verwendet, um verschiedene Signale zu erzeugen, die Docking/Undocking-Vorgänge wiedergeben.
-
Ein
Paar von ODER-Gattern 178 und 180 mit jeweils
zwei Eingängen
wird verwendet, um ein Verbindungssignal EBOXS# zu erzeugen, das
den Verbindungsstatus der kurzen Stifte 147a angibt. Ein „#"-Zeichen wird in
dieser Beschreibung verwendet, um ein aktives niedriges Signal anzugeben.
In der beschriebenen Ausführungsform
wird das Signal EBOXS# durch die Ausgänge dieser ODER-Gatter 178 und 180 ausgegeben
und geht zu einem logisch niedrigen Pegel über, wenn alle kurzen Stifte 147a an
den Eingängen
der ODER-Gatter 178 und 180 verbunden wurden.
Die Ausgabe eines ersten ODER-Gatters 178 in dem Laptop-Computer L wird verwendet,
um den 8051-Mikrocontroller 170a des MSIO-L 124a zu unterbrechen.
Ein Eingang dieses ODER-Gatters 178 ist mit einem kurzen
Stift 147a an einem Ende der Erweiterungs-Steckverbindung 146 verbunden, während der
zweite Eingang mit einem kurzen Stift 147a am entgegengesetzten
Ende der Erweiterungs-Steckverbindung 146 verbunden ist.
Die Platzierung der kurzen Stiftpaare an entgegengesetzten Enden
der Erweiterungs-Steckverbindung 146 hilft Situationen
festzustellen, in denen der Laptop- Computer L leicht schräg oder verdreht
gedockt bzw. entdockt wird. In einem derartigen Fall können die
Stifte unter Umständen
nicht gleichmäßig verbunden/getrennt
werden. Wenn die kurzen Stifte 147a nur an einem Ende der
Erweiterungs-Steckverbindung 146 vorgesehen sind, könnte also
eine falsche Angabe zu dem Verbindungsstatus der anderen Stifte
vorgesehen werden.
-
Ein
Paar von Pull-up-Widerständen 182 und 190 sind
jeweils mit den Eingängen
des ODER-Gatters 178 verbunden.
Wenn also der kurze Stift 147a an einem Eingang von dem
gegenüberliegenden
kurzen Stift 147a in der Erweiterungsbasis E getrennt wird,
wird dieser Eingang durch den assoziierten Pull-up-Widerstand zu
einem logisch hohen Pegel gezogen
-
Ein
ODER-Gatter 180 in der Erweiterungsbasis E ist ähnlich konfiguriert,
um den 8051-Mikrocontroller 170b in
dem MSIO-E 124b zu unterbrechen. Ein erster Eingang zu
diesem ODER-Gatter 80 ist mit einem kurzen Stift 174a an
einem Ende der Erweiterungs-Steckverbindung 146 verbunden,
während
der zweite Eingang mit einem kurzen Stift 147a am entgegengesetzten
Ende der Erweiterungs-Steckverbindung 146 verbunden ist. Pull-up-Widerstände 184 und 192 werden
verwendet, um die Eingänge
des ODER-Gatters 180 unabhängig zu einem logisch hohen
Pegel zu ziehen, wenn die kurzen Stifte 174a nicht miteinander
verbunden sind.
-
Ein
zweiter Satz von gegenüberliegenden kurzen
Stiften 147a ist an beiden Enden der Erweiterungs-Steckverbindung 146 vorgesehen.
In dem Laptop-Computer L sind diese Stifte direkt mit der Erdungsebene
verbunden. Auf der Seite der Erweiterungsbasis ist ein zweiter kurzer
Stift 147a auf beiden Seiten der Erweiterungs-Steckverbindung
mit seinem benachbarten kurzen Stift 147a (den Eingängen des
ODER-Gatters) verbunden. Wenn also die kurzen Stifte 147a auf
beiden Seiten der Erweiterungseinheit verbunden sind, werden die
Eingänge
der ODER-Gatter 178 und 180 zur Erde gezogen.
Das Signal EBOXS# in der Erweiterungsbasis E und in dem Laptop-Computer
L geht deshalb zu einem logisch niedrigen Pegel über. Diese Konfiguration stellt sicher,
dass die 8051-Mikrocontroller 170a und 170b erst
unterbrochen werden, nachdem die kurzen Stifte 147a an
beiden Enden der Erweiterungs-Steckverbindung 146 verbunden/getrennt
wurden.
-
Während des
Docking-Vorgangs werden die kurzen Stifte 174a verwendet,
um den Laptop-Computer
L und die Erweiterungsbasis L darüber zu informieren, dass alle
Stifte, einschließlich
der langen und mittleren Stifte 147c und 147b der
Erweiterungs-Steckverbindung 146 verbunden sind. Während des
Undocking-Vorgangs werden die kurzen Stifte 147a verwendet,
um den 8051-Mikrocontrollern 170a und 170b über einen
bevorstehenden Undocking-Vorgang zu informieren. Das Warnsignal
wird verwendet, um die PCI-Busse 112a und 112b in
den Ruhezustand zu versetzen, bevor die Quickswitches 113 geöffnet werden,
wodurch verhindert wird, dass PCI-Zyklen während des Undocking-Vorgangs
verloren gehen.
-
Auf ähnliche
Weise werden die langen Stifte 147c der Erweiterungs-Steckverbindung 146 verwendet,
um eine vorläufige
Warnung zu einem Docking-Vorgang vorzusehen und den Abschluss eines Undocking-Vorgangs
anzugeben. Insbesondere wird ein Signal EBOXL#, das die Verbindung
der langen Stifte angibt, zu den Mikrocontrollern 170a und 170b gegeben.
Ein erster Pull-up-Widerstand 186 ist mit der Signalleitung
für das
Signal EBOXL# auf der Seite des Laptop-Computers L verbunden, während ein zweiter
Pull-up-Widerstand 188 mit der Signalleitung für das Signal
EBOXL# auf der Seite der Erweiterungsbasis E verbunden ist. Das
Signal EBOXL# wird also zu einem logisch hohen Pegel auf beiden
Seiten gezogen, wenn die langen Stifte 147c getrennt werden.
An jedem Ende der Erweiterungs-Steckverbindung 146 wird
ein gegenüberliegendes
Paar von langen Stiften 147c verwendet, um das Signal EBOXL# nach
einer erfolgreichen Verbindung zu einem logisch niedrigen Pegel
zu ziehen. Auf der Seite des Laptop-Computers L ist einer der langen
Stifte 147c jedes Paares mit der Signalleitung für das Signal EBOXL#
verbunden, während
der zweite lange Stift 147c mit der Erdungsebene verbunden
ist. Auf der Seite der Erweiterungsbasis E sind beide lange Stifte 147c jedes
Paares mit der Signalleitung für
das Signal EBOXL# verbunden, sodass die Verbindung der langen Stifte 147c die
Signalleitung zu der Erdungsebene in dem Laptop-Computer L kurzschließt.
-
Ein
weiteres Paar von gegenüberliegenden langen
Stiften 147c wird verwendet, um eine Signalleitung für ein Systembereitschaftssignal
SRDY von der allgemeinen E/A-Schaltung 172a des MSIO-L 124a zu
dem 8051-Mikrocontroller 170b des MSIO-E 124b zu
führen.
Ein weiteres Paar von gegenüberliegenden
langen Stiften 147c wird verwendet, um eine Signalleitung
für ein
Erweiterungsbasis-Bereitschaftssignal ERDY von der allgemeinen E/A-Schaltung 172b des
MSIO-E 124b zu dem 8051-Mikrocontroller 170a des
MSIO-L 124a zu führen.
Die Signale ERDY und SRDY werden für zwei verschiedene Zwecke
verwendet, nämlich
für ein
Handshaking zum Schließen
der Quickswitches 113 während
des Dockings und für
ein Handshaking zwischen verschiedenen mit dem I2C-Bus
verbundenen Komponenten. Diese Signale werden in Verbindung mit 3 und 4 ausführlicher erläutert.
-
Wie
in 2 gezeigt, werden
mittlere Stifte 147b verwendet, um die einzelnen Signalleitungen der
zwei Teile 112a und 112b des PCI-Busses zu verbinden.
Wenn die mittleren Stifte 174b verbunden sind und die Quickschalter 113 geschlossen
sind, wird der PCI-Bus 112 physikalisch und operativ vereint.
Der Deutlichkeit halber sind nur einige wenige der einzelnen Signalleitungsverbindungen
zu dem PCI-Bus 112 gezeigt.
-
Die
mittleren Stifte 174b werden auch verwendet, um den I2C-Bus 149a des Laptop-Computers L mit dem
I2C-Bus 149b der Erweiterungsbasis
E zu verbinden. Der MSIO-L 124a und der MSIO-E 144b enthalten
jeweils eine I2C-Schnittstelle 174a bzw. 174b,
die entweder als Master oder als Slave auf dem I2C-Bus 149 dienen
kann. Weiterhin ist mit dem I2C-Bus 149b ein
EEPROM 151 verbunden, der verwendet wird, um Identifikationsinformationen
zu der Erweiterungsbasis E vorzusehen. Diese Informationen können durch
Systemkomponenten des Laptop-Computers L gelesen werden, um die
Intelligenz der Erweiterungsbasis E festzustellen und das entsprechend
Handshaking-Protokoll zu bestimmen. In der bevorzugten Ausführungsform
wird der EEPROM 151 durch den Laptop-Computer L mit Strom
versorgt. Auf diese Weise können
Daten zu der Erweiterungsbasis E unabhängig von deren Stromversorgungssituation
abgerufen werden. Die Verwendung des I2C-Busses 149 zur
Koordination von Kommunikationen zwischen den 8051-Mikrocontrolern 170a und 170b bietet
einen flexiblen und intelligenten Kommunikationskanal.
-
Wie
zuvor genannt, enthalten der MISC-L 118a und der MISC-E 118b jeweils
einen Top-Level-Busverwalter 192a bzw. 192b.
Wenn der Laptop-Computer L gedockt ist, sieht der Top-Level-Busverwalter 192a des
MISC-L 118a Top-Level-Verwaltungsfunktionen für das gesamte
System vor, während
der Top-Level-Busverwalter 192 des MISC-E 118b deaktiviert
ist.
-
Der
Top-Level-Busverwalter 192a steuert im wesentlichen, ob
der lokale PCI-Busverwalter 194a des MISC-L 118a oder
der lokale PCI-Busverwalter 194b des MISC-E 118b Zugriff
auf den PCI-Bus 112 hat. Der lokale PCI-Busverwalter 194a oder
der lokale PCI-Busveralter 194b muss eine Gewährung von dem
Top-Level-Busverwalter erhalten, bevor er einen Zyklus übernimmt.
Gewährungen
für den
PCI-Bus 112 basieren hauptsächlich auf einer Zeitmultiplex-Basis.
Wenn der Laptop-Computer L nicht gedockt ist, gewährt der
Top-Level-Busverwalter 192a den
Buszugriff für
den lokalen PCI-Busverwalter 194a des Laptops. Der PCI-Busverwalter 194a des Laptops
fordert den Buszugriff unter Verwendung eines Laptop-Anforderungssignals
(nicht gezeigt) zu dem Top-Level-Busverwalter 192a an und
bekommt den Buszugriff durch den Top-Level-Busveralter 192a unter
Verwendung eines Laptop-Gewährungssignals zugewiesen.
Diese Signale sind innerhalb des Laptop-Computers L unabhängig. Der
Erweiterungsbasis-PCI-Busverwalter 194b sendet und empfängt entsprechend
Erweiterungsanforderungs-/gewährungssignale
EXP_GNT/EXP_REQ (1),
die zwischen dem Laptop-Computer L und der Erweiterungsbasis E über mittlere
Stifte 147b in der Erweiterungs-Steckverbindung 146 kommuniziert
werden.
-
Im
Folgenden wird auf 3 Bezug
genommen, die ein Zeitdiagramm zu beispielhaften Kommunikationen
zwischen dem Laptop-Computer L und der Erweiterungsbasis E während eines
Hot-Docking-Vorgangs zeigt. Insbesondere zeigt das Zeitdiagramm
das Handshaking, das zwischen dem Laptop-Computer L und der Erweiterungsbasis
E über das
Erweiterungsbasis-Bereitschaftssignal ERDY und das Systembereitschaftssignal
SRDY während des
Hot-Docking-Vorgangs
auftritt. Das Handshaking wird verwendet, um die lokalen PCI-Busverwalter 194a und 194b in
einen Ruhemodus (IDLE) zu versetzen, sodass das Schließen der
Quickswitches 113 keine potenziell fatalen Systemfehler
verursacht. Anders gesagt, folgt auf ein physikalisches Docking
ein logisches Docking, über
das die PCI-Busteile 112a und 112b sicher und
schnell vereint werden können.
-
In
der beschriebenen Ausführungsform
beginnt der Vorgang, wenn der Laptop-Computer L in ein Docking-Tray
(nicht gezeigt) für
das Hot-Docking gelegt wird. In Schritt 2 werden die langen
Stifte 147c von 2 verbunden,
sodass das Signal EBOXL# von einem logisch hohen Pegel zu einem
logisch niedrigen Pegel übergeht.
Der Übergang
des Signals EBOXL# wird durch die 8051-Mikrocontroller 170a und 170b als
ein Interrupt erkannt und gibt an, dass der Benutzer den Laptop-Computer
L docken möchte.
In Reaktion darauf aktiviert der 8051-Mikrocontroller 170b des
MSIO-E 124b in Schritt 3 den Docking-Motor 117 über den
I2C-Bus 149. Der Docking-Motor 117 ist
in der bevorzugten Ausführungsform
enthalten, um die Wiederholbarkeit und Zuverlässigkeit der Docking-Prozedur
zu unterstützen.
-
Kurz
nachdem der Docking-Motor 117 eingeschaltet wurde, werden
die kurzen Stifte 147a verbunden (Schritt 4).
Wenn die kurzen Stifte 147a verbunden sind, geht das Signal
EBOXS# von einem logisch hohen Pegel zu einem logisch niedrigen
Pegel über,
um die 8051-Mikrocontroller 170a und 170b darüber zu informieren
dass alle Signalleitungen zwischen dem Laptop-Computer L und der
Erweiterungsbasis E jetzt verbunden sind. Kurz danach wird in den
Schritten 5 und 6 der Docking-Motor 117 angehalten,
schließt
die Erweiterungsbasis E die Initialisierung ab und gibt der MSIO-E 124b das
Erweiterungsbasis-Bereitschaftssignal
ERDY zu dem 8051-Mikrocontroler 170a des MSIO-L 124a aus. Während des
Initialisierungsprozesses werden Schritte zum Initialisieren von
Maskenwerten, Hardware-Mailboxen und verschiedenen Teilen des 8051-Mikrocontrollercodes 170 durchgeführt. Die Ausgabe
des Erweiterungsbasis-Bereitschaftssignals ERDY veranlasst den Laptop-Computer
L, Erweiterungsbasis-Identifikationsinformation über den I2C-Bus 194 in
Schritt 7 abzurufen. Wie zuvor genannt, werden die Informationen
zu der Konfiguration der Erweiterungsbasis E in einem EEPROM 151 gespeichert,
der mit dem I2C-Bus 149b verbunden
ist.
-
Der
Docking-Vorgang folgt als nächstes
der Schritt 8, in dem der Laptop-Computer L den I2C-Bus 149 freigibt, indem er das
Systembereitschaftssignal SRDY ausgibt. In der beschriebenen Ausführungsform
werden das Erweiterungsbasis-Bereitschaftssignal ERDY und das Systembereitschaftssignal SRDY
verwendet, um Kollisionen auf dem I2C-Bus 149 zu
vermeiden. Wenn das Erweiterungsbasis-Bereitschaftssignal ERDY einen
logisch niedrigen Pegel aufweist, darf der 8051-Mikrocontroller 170a in
dem Laptop-Computer L kein I2C-Busmater sein. Wenn entsprechend
das Systembereitschaftssignal SRDY ausgegeben wird, darf der 8051-Mikrocontroller 170b in
der Erweiterungsbasis E kein I2C-Busmaster
sein. Im wesentlichen werden diese zwei Signale als Semaphor-Flags
verwendet. Wenn zum Beispiel der Laptop-Computer L einen Befehl über den
I2C-Bus 149 zu der Erweiterungsbasis
E senden muss, deaktiviert er zuerst das Systembereitschaftssignal
SRDY, um Kollisionen auf dem I2C-Bus zu
vermeiden. Wenn der 8051-Mikrocontroller 170a mit Batterien
oder Lüftern
oder anderen mit dem I2C-Bus 149 verbundenen Komponenten
kommunizieren möchte,
untersucht er zuerst das Erweiterungsbasis-Bereitschaftssignal ERDY.
Wenn das Signal ERDY aktiv ist (auf einem logisch niedrigen Pegel),
erkennt der 8051-Mikrocontroller 170a, dass die Erweiterungsbasis
E über
den I2C-Bus 149 kommuniziert und
unterbricht diesen nicht. Das Systembereitschaftssignal SRDY wird
in gleicher Weise verwendet.
-
In
einer idealen I2C-Bus-Implementierung ist diese
zusätzliche
Ebene des Handshakings nicht erforderlich, wobei der I2C-Bus
mehr als einen Master aufweisen kann, die gleichzeitig kommunizieren.
In der angegebenen Ausführungsform
werden jedoch die Signale SRDY und ERDY verwendet, um potenzielle
Konkurrenzprobleme auf dem I2C-Bus zu vermeiden.
Es ist zu beachten, dass der I2C-Bus 149 nicht
durch die Quickswitches 133 aktiviert/deaktiviert wird
und dass die zwei Teile 149a und 149b durch mittlere
Stifte 147b verbunden werden, sobald das System gedockt
wird.
-
Nachdem
der Laptop-Computer L die Erweiterungsbasisinformationen über den
I2C-Bus 149 abgerufen hat, gibt
er das Systembereitschaftssignal SRDY aus und gibt den I2C-Bus frei. In Schritt 9 erzeugt
der 8051-Mikrocontroller 170a des MSIO-L 124a einen
ersten Systemverwaltungs-Interrupt (SMI). Ein SMI ist ein nicht
maskierbarer Interrupt mit beinahe der höchsten Priorität in dem
Computersystem. Nur das Rücksetzsignal
R\S* und das Cash-Flush-Signal
FLUSH*, die auch als Interrupts betrachtet werden können, haben
eine höhere
Priorität
als der SMI. Details zu dem Systemverwaltungs-Interrupt und dem
Systemverwaltungsmodus sind dem Fachmann wohlbekannt. In der bevorzugten
Ausführungsform
wird der SMI erzeugt, indem er zu einem 8051-to-System-Mailbox-Register
(nicht gezeigt) geschrieben wird, wobei er jedoch auch auf andere
Weise erzeugt werden kann.
-
Der
SMI versetzt das Computersystem in dem Systemverwaltungsmodus und
veranlasst, dass eine SMI-Handler-Routine ausgeführt wird. Der SMI-Handler reagiert,
indem er das System-BIOS darüber
informiert, dass der Docking-Zustand geändert wurde. Dies ist der Beginn
des logischen Teils des Docking-Vorgangs. Nach dem Empfang des SMI setzt
das BIO Speicher-Flags (Bits), die durch das Betriebssystem als
Docking-Ereignis interpretiert werden. Wenn das System den Systemverwaltungsmodus
verlässt
und die Prozessorsteuerung zu dem Betriebssystem zurückkehrt,
ruft das Betriebssystem das BIOS auf, um nach Änderungen zu suchen, die eine
Anforderung für
ein Docking angeben. Ein virtueller Gerätetreiber (VxD) kann durch
das Betriebssystem verwendet werden, um durch das System-BIOS gesetzte
Flags abzurufen. Allgemein ist es für das System vorteilhaft, wenn
dieses weniger als 100 Mikrosekunden am Stück im Systemverwaltungsmodus
bleibt.
-
Das
Betriebssystem, das vorzugsweise Windows 95® oder
ein anderes Betriebssystem mit einer Unerstützung von Plug-and-Play ist,
ruft als nächstes Treiber
oder andere Laufprozesse ab, um zu bestimmen, ob es die Hot-Docking-Anforderung
annimmt oder ablehnt. Wenn das angeforderte Hot-Docking durch das
Betriebssystem abgelehnt wird, bleiben die Quickswitches 133 offen.
Wenn das Docking-Ereignis angenommen wird, sendet das Betriebssystem
einen Befehl zu dem BIOS, um dieses zum Abschließen des Docking-Vorgangs anzuweisen
und die Quickswitches 113 zu schließen.
-
In
Schritt 10 versetzt entweder das System-BIOS oder der MSIO-L 124a den
lokalen PCI-Busverwalter 194a des
MISC-L 118a in einen Ruhemodus, um die gesamte Aktivität des PCI-Busses 112a zu
unterbinden. Die Busverwalter des MISC 118 können in
drei Modi betrieben werden: Master, Slave und Idle. Diese Kombinationen
ermöglichen eine
Unterstützung
des Hot-Dockings und gestatten dem MISC 118, sowohl im
Laptop-Computer L und in der Erweiterungsbasis E verwendet zu werden.
Wie bereits genannt, können
der MISC-L 118a und der MISC-E 118b beide während der
Hot-Docking-Sequenz in den IDLE-Modus versetzt werden. Der IDLE-Modus
unterbindet die gesamte Aktivität
auf dem PCI-Bus 112 und veranlasst, dass der Bus in dem MISC 118 geparkt
wird. In den IDLE-Modus kann entweder vom SLAVE- oder vom MASTER-Modus
aus eingetreten werden. Aus dem IDLE-Modus kann entweder in den SLAVE- oder
in den MASTER-Modus ausgetreten werden. Wenn ein Busverwalter-Idle-Anforderungsbit
(nicht gezeigt) durch den MSIO 124 über den MSB-Bus 152 gesetzt
wird, beginnt die folgende Sequenz:
- 1 Der Top-Level-Busverwalter
(nur im MISC-L 118a aktiv) übergeht die Gewährungs-Timer und fragt unmittelbar
Anforderungen zu den Master- und Slave-Busverwaltern ab.
- 2 Die Master- und Slave-Busverwalter funktionieren normal und
können
die minimalen Gewährungszeiten
für ihre
entsprechenden Master abschließen.
- 3 Die Master- und Slave-Busverwalter maskieren dann alle Anforderungen
und parken sich selbst auf dem Bus.
- 4 Die Master- und Slave-Busverwalter geben ihre entsprechenden
Busverwalter-Idle-Statusbits (nicht
gezeigt) aus, die wiederum über
den MSB-Bus 152 zu dem MSIO 124 kommuniziert werden,
um anzugeben, dass der PCI-Bus 112 im Leerlauf ist und
für das
Hot-Docking bereit
ist.
-
Wenn
das Busverwaltungs-Idle-Anforderungsbit nach dem Abschluss des Hot-Dockings
gelöscht
wird, negiert der Top-Level-Busverwalter in dem MISC-L 118a die
Busverwalter-Idle-Statusbits und übergibt
einfach an den MISC-L 118a. Danach wird die normale Aktivität auf dem
PCI-Bus 112 wiederaufgenommen.
-
Es
ist zu beachten, dass der „IDLE-Modus" und der „Standby-Modus" separate und unterschiedliche
Zustände
sind. In einem typischen Standby-Modus wird der Zustand des Systems
im Systemspeicher gespeichert und werden möglichst alle Geräte in einen
Zustand niedrigen Stromverbrauchs versetzt, wobei das Diskettenlaufwerk,
das Festplattenlaufwerk und die meisten Ports nicht mit Strom versorgt werden.
Auch die Bustakte werden deaktiviert, wobei jedoch ein Takt mit
niedrigerer Frequenz aktiv bleibt, um den Systemspeicher aufrechtzuerhalten.
-
In
Schritt 11 erzeugt das Plug-and-Play-BIOS einen Mailbox-Laufzeitbefehl, der
verwendet wird, um den 8051-Mikrocontroller 170a darüber zu informieren,
dass er die Erlaubnis zur Fortsetzung des Docking-Vorgangs hat.
Die Kommunikation mit dem 8051-Mikrocontroller 170a wird über das
System-BIOS bewerkstelligt, das wiederum mit dem 8051-Mikrocontroller-Code über Hardware-Mailboxen
kommuniziert.
-
Nach
dem Empfang der Erlaubnis schreitet der 8051-Mikrocontroller 170a in
Schritt 12 mit der Aktivierung des PCI-Takts in der Erweiterungsbasis
E fort. Der 8051-Mikrocontroller 170a des Laptop-Computers
L ist konfiguriert, um den PCI-Takt der Erweiterungsbasis E über einen
Allgemein-E/A-Stift in dem MSIO-L 124a zu steuern. In der
beschriebenen Ausführungsform
der Erfindung muss der PCI-Takt der Erweiterungsbasis E aktiviert
werden, um den PCI-Bus 112b in den Ruhemodus zu versetzen.
-
Es
können
verschiedene Verfahren verwendet werden, um das PCI-Taktsignal in
der Erweiterungsbasis E zu erzeugen. Zum Beispiel können zusätzliche
Quickswitches in der Erweiterungsbasis E vorgesehen werden, um den
PCI-Takt zwischen Takten aus der Erweiterungsbasis E und Takten
aus dem Laptop-Computer L zu schalten. Alternativ hierzu kann ein
Takterzeuger-Chip verwendet werden, um PCI-Takte für die Erweiterungsbasis
zu erzeugen, die mit einer internen Oszillationsquelle oder mit
dem PCI-Takt des Laptop-Computers L synchronisiert sind. Der PCI-Takt
der Erweiterung ist vorzugsweise ein 33-MHz-Taktsignal, das durch
verschiedene Komponenten der Erweiterungsbasis E einschließlich des
MISC-E 118b verwendet wird.
-
In
der bevorzugten Ausführungsform
sind zwei Stromversorgungsebenen in der Erweiterungsbasis E enthalten.
Eine erste Stromversorgungsebene VCC1 versorgt einen Echtzeittakt
(RTC) in dem MSIO-L 124b mit Strom. Neben der Aufrechterhaltung
des RTC wird diese Stromversorgungsebene VCC1 auch verwendet, um
sicherzustellen, dass die CMOS-Speicherinhalte
nicht gelöscht
werden. Die erste Stromversorgungsebene VCC1 wird auch verwendet,
um den Flash-ROM 126, die I2C-Schnittstelle 174b,
den Docking-Motor 117 und den 8051-Mikrocontroller 170b in
der Erweiterungsbasis E mit Strom zu versorgen. Es geht wenig Energie
in dieser Stromversorgungsebene verloren. Wenn die Erweiterungsbasis
E von einer Steckdose getrennt wird, geht jedoch die Stromquelle
für VCC1
verloren. Eine zweite Hauptstromversorgungsebene VCC2 wird verwendet,
um die anderen Komponenten der Erweiterungsbasis E sowie den gedockten
Laptop-Computer L mit Strom zu versorgen.
-
In
Schritt 13 sendet der 8051-Mikrocontroler 170a einen „Ein"-Befehl zu der Erweiterungsbasis, um
deren Hauptstromversorgungsebene VCC2 einzuschalten. Das Systembereitschaftssignal
SRDY wird während
dieser Kommunikation deaktiviert, um andere Nutzungen des I2C-Busses 149 zu verhindern. Nachdem
der Ein-Befehl gesendet wurde, schreitet die Steuerung zu Schritt 14 fort,
wo der MSIO-E 124b das Erweiterungsbasis-Bereitschaftssignal
ERDY deaktiviert, während
die Hauptstromversorgungsebene VCC2 in der Erweiterungsbasis E aktiviert
wird. Die Hauptstromversorgung der Erweiterungsbasis E ist vorzugsweise
derjenigen einer herkömmlichen
Stromversorgung für
einen Desktop-Computer ähnlich.
Dieser Prozess zum Aktivieren der Stromversorgung benötigt maximal
ungefähr drei
Sekunden, wobei er in der beschriebenen Ausführungsform gewöhnlich nur
ungefähr
500 ms benötigt.
-
Nachdem
die Stromversorgung in einen Ruhezustand eingetreten ist, gibt sie
ein POWERGOOD-Signal (nicht gezeigt) aus, um das System darüber zu informieren,
dass die Hauptstromversorgungsebene VCC2 aktiviert ist. Es ist zu beachten,
dass die Haupt stromversorgungsebene VCC2 nicht erforderlich ist,
um den Docking-Motor 1 und den PCI-Takt zu betreiben. Weiterhin wird die Stromversorgung
der Erweiterungsbasis E allgemein deaktiviert, wenn der Laptop-Computer
L nicht gedockt ist. Nachdem in Schritt 15 die Hauptstromversorgungsebene
VCC2 in der Erweiterungsbasis E eingeschaltet wurde, wird der MISC-E 118b in
den IDLE-Modus versetzt, wobei dann in den SLAVE-Modus übergegangen
wird. Der MISC-E 118b wird in den Slave-Modus versetzt,
sodass er sich in einem bekannten Zustand befindet, falls ein Fehler
während des
Docking-Vorgangs auftreten sollte. Der 8051-Mikrocontroller 170b verwendet
den MSB-Seriellbus 152, um den lokalen PCI-Busverwalter 194b des MISC-E 118b in
den Ruhezustand zu versetzen.
-
In
Schritt 16 deaktiviert der 8051-Mikrocontroller 170b seinen
eigenen Takt, um die Steuerung des assoziierten Flash-ROMs 126 wie
oben beschrieben an das System-BIOS zu übergeben. Das System-BIOS kann
danach den Takt für
den 8051-Mikrocontroller 170b steuern. Das Erweiterungsbasis-Bereitschaftssignal
ERDY wird auch in Schritt 16 ausgegeben. Alle PCI-Taktsignale
in der Erweiterungsbasis E befinden sich zu diesem Zeitpunkt auf einem
logisch niedrigen Pegel. Die Ausgabe des Erweiterungsbasis-Bereitschaftssignal
gibt an, dass die Erweiterungsbasis E in einem korrekten Zustand
für das
sichere Schließen
der Quickswitches 113 ist.
-
In
Schritt 17 gibt das MSIO-L 124a ein Steuersignal
CONTROL zu den Quickswitches 113 aus. Die Quickswitches 113 werden
dann geschlossen, sodass sie die zwei Teile 112a und 112b des PCI-Busses
funktionell verbinden. Nachdem die Quickswitches 113 geschlossen
wurden, erzeugt der 8051-Mikrocontroller 170a einen zweiten
SMI (Schritt 18), der das System-BIOS darüber informiert,
dass die Quickswitches 113 geschlossen sind. Das Betriebssystem
kann jetzt mit den Geräten
kommunizieren, die mit dem PCI-Bus 112b in der Erweiterungsbasis
E verbunden sind. Der Laptop-Computer L kann jetzt die verschiedenen
Controller der Erweiterungsbasis E programmieren, und das System-BIOS kann
mit allen Geräten
auf dem PCI-Bus 112 für
die Plug-and-Play-Konfiguration kommunizieren.
-
In
Schritt 19 wird der lokale Busverwalter des MISC-L 118a in
den MASTER-Modus versetzt. Dann werden die PCI-Plug-and-Play- und
die ISA-Plug-and-Play-Systemrekonfiguration durchgeführt, sodass
alle Systemressourcen korrekt genutzt werden können. Während der Rekonfiguration werden
alle Plug-and-Play-Karten zuerst isoliert und bekommen einen Identifikationscode
zugewiesen. Die Ressourcendaten werden dann von jeder installierten
Karte gelesen. Auf der Basis der Ressourcendaten werden die Ressourcen
des Computersystems für
jede Plug-and-Play-Karte verwaltet, worauf jede identifizierte Karte
konfiguriert und aktiviert wird. Es werden auch Gerätetreiber
für die
Karten geladen.
-
In 4 ist ein Zeitdiagramm zu
beispielhaften Kommunikationen zwischen dem Laptop-Computer L und der
Erweiterungsbasis E während
eines Hot-Undocking-Prozesses gezeigt. Das Handshaking wird verwendet,
um die lokalen PCI-Busverwalter 194a und 194b in
einen IDLE-Modus zu versetzen, damit eine Öffnung der Quickswitches 113 keinen
Verlust von Zyklen über
den PCI-Bus 112 verursacht.
-
In
der beschriebenen Ausführungsform
wird ein Undocking in Schritt 1 entweder durch das Drücken einer
Undocking-Taste bzw. eines Auswurfschalters oder über ein
Plug-and-Play-fähiges Betriebssystem
durch das Klicken auf eine Schaltfläche für das Undocking eingeleitet.
Wenn das Undocking durch eine Software eingeleitet wird, sind die
Schritte 2 und 3 nicht erforderlich. In Schritt 2 sendet
der 8051-Mikrocontroller 170b eine Undocking-Anforderung über den
I2C-Bus 149 zu dem 8051-Mikrocontroller 170a.
Das Signal ERDY wird zu diesem Zeitpunkt niedrig gepulst, um andere
Nutzungen des I2C-Busses 149 zu
verhindern. Der 8051-Mikrocontroller 170a reagiert dann
in Schritt 3, indem er einen ersten SMI erzeugt, der das
Betriebssystem darüber informiert,
dass der Benutzer ein Undocking wünscht. Wenn das Betriebssystem
in Schritt 4 die Anforderung gewährt, sendet es einen Undocking-Befehl über das
System-BIOS, um den Laptop-Computer L auszuwerten, nachdem aktuelle
Zyklen abgeschlossen wurden und keine anderen Prozesse unter dem
SMI laufen.
-
In
Schritt 5 versetzt der System-BIOS-Plug-and-Play-Code oder
der 8051-Mikrocontroller 170a den lokalen Busverwalter 194a des MISC-L 118a in
einen IDLE-Modus. In dem IDLE-Modus
parkt der MISC-L 118a sich selbst auf den PCI-Bus 112a.
Das System-BIOS weist dann in Schritt 6 den 8051-Mikrocontroller 170a an,
einen Undocking-Befehl über
den I2C-Bus 149 zu
dem 8051-Mikrocontroller 170b der Erweiterungsbasis E zu
senden. Auf diesen Undocking-Befehl folgend deaktiviert der 8051-Mikrocontroller 170a das
Systembereitschaftssignal SRDY. In Schritt 7 deaktiviert der
8051-Mikrocontroller 170b das Erweiterungsbasis-Bereitschaftssignal
ERDY und beginnt mit dem Übergang
zu dem Aus-Zustand.
-
Der Übergang
der Erweiterungsbasis zu dem Aus-Zustand beginnt in Schritt 8,
in dem der 8051-Mikrocontroller 170b den lokalen Busverwalter 194b des
MISC-E 118b in den IDLE-Zustand
versetzt. Beide lokalen PCI-Busverwalter 194a und 194b befinden
sich jetzt im IDLE-Zustand, und der PCI-Bus 112 ist ausreichend
ruhig, sodass mit dem Undocking fortgefahren werden kann. In der
beschriebenen Ausführungsform
muss der PCI-Takterzeuger in der Erweiterungsbasis E weiter laufen,
bis der lokale Busverwalter 194b in dem MISC-E 118b in den
IDLE-Zustand versetzt wurde. Kurz danach veranlasst der 8051-Mikrocontroler 170a über ein
Steuersignal CONTROL aus der Allgemein-E/A-Schaltung 172a in
dem MSIO-L 124a, dass die Quickswitches 113 geöffnet werden.
Annähernd
gleichzeitig (Schritt 10) deaktiviert der 8051-Mikrocontroller 170b die
Hauptstromversorgungsebene in der Erweiterungsbasis E und aktiviert
den Docking-Motor 117, um den Laptop auszuwerten.
-
Zu
diesem Zeitpunkt hat das motorisierte Undocking begonnen, und die
kurzen Stifte 147a der Erweiterungs-Steckverbindung 146 werden
zuerst in Schritt 11 getrennt. Dadurch wird eine ansteigende Flanke
an dem Signal EBOXS# erzeugt. Das Signal EBOXS# kann als Sicherheitsmechanismus
verwendet werden, um den Laptop-Computer L (insbesondere den 8051-Mikrocontroller 170a)
zu warnen, wenn die automatisierten Software-Undocking-Prozeduren
umgangen wurden. Zum Beispiel leitet in der beschriebenen Ausführungsformen
das Signal EBOXS# die entsprechende Undocking-Software auch dann
ein, wenn dieses Signal die erste Angabe dazu ist, dass ein Undocking-Ereignis
im Gange ist. Nachdem die kurzen Stifte 147a getrennt wurden,
vergeht ungefähr
eine Millisekunde, bevor die mittleren Signalstifte 147b getrennt
werden.
-
Als
nächstes
werden die langen Stifte 147c in Schritt 12 getrennt,
sodass das Signal EBOXL# von einem logisch niedrigen zu einem logisch
hohen Pegel übergeht.
Durch diesen Übergang
werden beide 8051-Mikrocontroller 170a und 170b darüber benachrichtigt,
dass alle mittleren Signalstifte 147b vollständig getrennt
wurden. Als Teil dieses Schrittes erzeugt der 8051-Mikrocontroller 170a einen
zweiten SMI, um den Plug-and-Play-Code über den Abschluss des physikalischen
Undocking-Prozesses zu benachrichtigen. In Reaktion darauf versetzt
der Plug-and-Play-Code in Schritt 13 den lokalen Busverwalter 194a des
MISC-L 118a in den MASTER-Modus. Zuletzt wird die PCI-Plug-and-Play- und/oder
die ISA-Plug-and-Play-Systemrekonfiguration
durchgeführt,
sodass die Systemressourcen der Erweiterungsbasis E nicht länger durch
den Laptop erkannt werden.
-
5a, 5b und 5c zeigen
Flussdiagramme für
den Mikrocontroller-Code, der durch den Laptop-Computer L während der
Hot-Docking- und Hot-Undocking-Ereignisse ausgeführt wird. Dieser Code ist demjenigen
des Mikrocontrollers der Erweiterungsbasis E ähnlich und wird in Verbindung
mit demselben betrieben. Der letztere Code empfängt Befehle zum Ausführen von
Aufgaben wie etwa der Aktivierung des Docking-Motors 117 und
ist der Deutlichkeit halber nicht gezeigt.
-
Die
Ausführung
des Mikroprozessor-Codes wird auf ein Achtungssignal von der Erweiterungsbasis
hin in Schritt 300 eingeleitet. Die Steuerung geht zu Schritt 302 über, wo
das Achtungssignal-Flag abgefragt wird, um zu bestimmen, ob es noch
aktiv ist. Das Achtungssignal wird durch die kurzen und langen Stifte 147a und 147c der
Erweiterungs-Steck verbindung 146 erzeugt. Wenn das Achtungssignal
nicht aktiv ist, was eine falsche Anforderung angibt, wird die Routine
in Schritt 304 beendet. Wenn in Schritt 302 bestimmt
wird, dass das Achtungssignal weiterhin aktiv ist, geht die Steuerung
zu Schritt 306 über, um
zu bestimmen, ob ein Eine-Millisekunde-Flag gesetzt ist. Eine Verzögerungsperiode
von einer Millisekunde, die bei jedem Eintritt in den Code in Schritt 300 vorgesehen
wird, wird verwendet, um falsche Anforderungen auszufiltern. Wenn
die Verzögerungsperiode
nicht beendet wird und in Schritt 306 bestimmt wird, dass
das Eine-Millisekunde-Flag nicht gesetzt ist, kehrt die Steuerung
zu Schritt 302 zurück. Wenn
das Eine-Millisekunde-Flag abgelaufen ist, schreitet die Steuerung
zu Schritt 308 fort, wo das Eine-Millisekunde-Flag gelöscht wird.
-
Die
Steuerung schreitet dann zu Schritt 310 fort, wo die Signale
EBOXS# und EBOXL# untersucht werden. Wenn beide Signale niedrig
sind, was angibt, dass die kurzen und langen Stifte 147a und 147c verbunden
sind, schreitet die Steuerung zu Schritt 312 fort, um eine
Entprellperiode von hundert Millisekunden einzuleiten. Es ist zu
beachten, dass der Docking-Motor 117 vorzugsweise zu diesem
Zeitpunkt durch den in der Erweiterungsbasis ausgeführten Mikrocontroller-Code
eingeschaltet wurde. Auf die Entprellperiode folgend schreitet die
Steuerung zu Schritt 314 fort, wo der Laptop-Computer L
darauf wartet, dass das Erweiterungsbasis-Bereitschaftssignal ERDY
zu einem logisch hohen Pegel übergeht.
In der beschriebenen Ausführungsform
muss das Signal ERDY innerhalb von 250 Millisekunden übergehen,
das ansonsten ein Timeout eintritt und zu der Haupt-Mikrocontroller-Routine zurückgekehrt
wird.
-
Nachdem
das Signal ERDY zu einem logisch hohen Pegel übergegangen ist, schreitet
die Steuerung zu Schritt 316 fort, wo der 8051-Mikrocontroller 170a die
Kontrolle über
den I2C-Bus 149 übernimmt. Die
Steuerung schreitet zu Schritt 318 fort, wo die Erweiterungsbasis-Identifikationsinformationen über den
I2C-Bus 149 abgerufen werden. Die
Steuerung geht dann zu Schritt 320 (5b), und das Erweiterungsbasis-Achtungsflag
wird zurückgesetzt.
Als nächstes
wird in Schritt 322 der Interrupt für die langen Stifte 147c aktiviert,
während
der Interrupt für
die kurzen Stifte 147a deaktiviert wird. Die Steuerung schreitet
zu Schritt 324 fort, wo anhängende Docking-Änderungs-SMIs
aufgehoben werden.
-
Die
Steuerung schreitet dann zu Schritt 326 fort, wo die Verarbeitungsfähigkeiten
der Erweiterungsbasis E bestimmt werden. Wenn die Erweiterungsbasis
E keine derartigen Fähigkeiten
wie in Verbindung mit 2 beschrieben
besitzt, schreitet die Steuerung zu Schritt 328 fort, wo
ein Befehl gesendet wird, um die Stromversorgung in der Erweiterungsbasis
E einzuschalten. Die Steuerung geht dann zu Schritt 330,
wo gewartet wird, bis ein Stromversorgungsbestätigungssignal von der Erweiterungsbasis E
empfangen wird. Die Steuerung geht als nächstes zu Schritt 332,
wo die Quickschalter 113 geschlossen werden, um die gemeinsamen
Teile des PCI-Busses 112 funktionell zu verbinden. Ein
Docking-Flag wird dann in Schritt 334 gesetzt, bevor in
Schritt 336 zu der Haupt-Mikrocontroller-Routine zurückgekehrt wird.
-
Wenn
die Erweiterungsbasis E Verarbeitungsfähigkeiten wie etwa die in 2 beschriebenen umfasst,
schreitet die Steuerung von Schritt 326 zu Schritt 338 fort,
wo ein Docking-SMI
erzeugt wird. Wie oben genannt, wird dieser SMI verwendet, um dem
Betriebssystem die Chance zu geben, die Hot-Docking-Anforderung
anzunehmen oder abzulehnen. Die Steuerung schreitet dann zu Schritt 340 fort,
wo zu der Haupt-Mikrocontroller-Routine zurückgekehrt wird.
-
Wenn
in Schritt 310 bestimmt wird, dass die Signale EBOXS# und
EBOXL# einen logisch hohen Pegel aufweisen, geht die Steuerung zu
Schritt 346 (5c).
Wenn bestimmt wird, dass beide Signale EBOXS# und EBOXL# einen logisch
hohen Pegel aufweisen, sind die kurzen und die langen Stifte 147a und 147b getrennt,
sodass versucht wurde, den Laptop-Computer L ohne Befolgung der entsprechenden Undocking-Prozeduren
aus der Erweiterungsbasis E zu entfernen. In Schritt 346 werden
die Signale EBOXS# und EBOXL# erneut untersucht, um zu bestimmen,
ob sie einen hohen logischen Pegel aufweisen. Wenn nicht, bleibt
die Steuerung bei Schritt 346, um diese Signale kontinuierlich
abzufragen. Wenn bestimmt wird, dass die Signale EBOXS# und EBOXL# einen
logisch hohen Pegel aufweisen, geht die Steuerung zu Schritt 350,
um ggf. eine Entprellperiode (Warteperiode) bei einem manuellen
Auswurf vorzusehen. Die Steuerung geht dann zu Schritt 352,
und das Achtungsflag aus der Erweiterungsbasis E wird gelöscht.
-
Die
Steuerung schreitet dann zu Schritt 354 fort, wo das Handshaking
des I2C-Busses 149 deaktiviert
wird. Die Steuerung geht dann zu Schritt 356, wo der Interrupt
für die
kurzen Stifte 147a aktiviert wird, während der Interrupt C für die langen
Stifte 147c deaktiviert wird. Alle anhängigen Docking-Änderungs-SMIs
werden dann in Schritt 358 aufgehoben. Die Steuerung schreitet
zu Schritt 360 fort, um die Verarbeitungsfähigkeiten
und die Konfiguration der Erweiterungsbasis E zu bestimmen. Wenn
die Erweiterungsbasis E Fähigkeiten
wie etwa die in Verbindung mit 2 beschriebenen
aufweist, schreitet die Steuerung zu Schritt 362 fort,
wo das Docking-Flag gelöscht
wird. Die Steuerung geht dann zu Schritt 364, wo ein SMI
erzeugt wird, damit das Betriebssystem die Plug-and-Play-Rekonfiguration
ausführen
kann, sodass die Fähigkeiten
der Erweiterungsbasis E nicht mehr durch den Laptop-Computer L erkannt
werden. Die Steuerung schreitet dann zu Schritt 366 fort,
und der lokale PCI-Busverwalter 194a des
MISC-L 118a wird in den MASTER-Modus versetzt.
-
Die
Steuerung schreitet als nächstes
zu Schritt 368, wohin die Steuerung auch fortschreitet, wenn
in Schritt 360 bestimmt wird, dass die Erweiterungsbasis
E keine ausreichenden Verarbeitungsfähigkeiten aufweist. In Schritt 368 werden
die Hot-Docking- und Hot-Undocking-Interrupts gelöscht und aktiviert, bevor in
Schritt 370 zu der Haupt-Microcontroller-Routine zurückgekehrt
wird.
-
In 6a sind Details einer beispielhaften SMI-Abwicklerroutine 400 gezeigt.
Diese Routine kann auf den Schritt 338 von 5b folgend aufgerufen werden. Die Steuerung
schreitet zuerst zu Schritt 302, um zu bestimmen, ob ein
Hot-Docking- oder ein Hot-Undocking-Ereignis auftritt. Wenn das Achtungssignal
von der Erweiterungsbasis E in Folge eines Hot-Docking-Ereignisses erzeugt wurde, schreitet
die Steuerung zu Schritt 406 fort, wo der Laptop-Computer
L die Kontrolle über
den I2C-Bus 149 übernimmt.
Die Steuerung geht dann zu Schritt 408, wo ein Stromversorgungsbefehl über den I2C-Bus 149 zu der Erweiterungsbasis
E gesendet wird. Die Steuerung geht dann zu Schritt 410,
wo eine Abfrageschleife zu bestimmen beginnt, ob die Stromversorgung
in der Erweiterungsbasis E aktiviert wurde. Wenn nicht, schreitet
die Steuerung zu Schritt 412, wo bestimmt wird, ob die
Stifte 147 der Erweiterungs-Steckverbindung 146 weiterhin
verbunden sind. Wenn die Stifte 147 verbunden sind, kehrt
die Steuerung zu Schritt 410 zurück. Wenn die Stifte 147 nicht
verbunden sind, schreitet die Steuerung zu Schritt 414,
wo das Handshaking abgebrochen wird und der I2C-Bus 149 freigegeben
wird.
-
Nach
der Aktivierung der Stromversorgung in der Erweiterungsbasis E schreitet
die Steuerung zu Schritt 416 fort, wo das Erweiterungsbasis-Bereitschaftssignal
ERDY untersucht wird. Wenn das Signal ERDY einen logisch niedrigen
Pegel aufweist, was angibt, dass die Erweiterungsbasis E nicht für den Abschluss
des Hot-Docking-Vorgangs bereit ist, schreitet die Steuerung zu
Schritt 418 fort. In Schritt 418 werden die Stifte
der Erweiterungsbasis-Steckverbindung 146 erneut
untersucht, um zu bestimmen, ob sie verbunden sind. Wenn nicht,
wird das Handshaking abgebrochen und wird der I2C-Bus
freigegeben. Wenn die Stifte verbunden sind, kehrt die Steuerung
zu Schritt 416 zurück.
Auf einen Übergang des
Erweiterungsbasis-Bereitschftssignals ERDY zu einem logisch niedrigen
Pegel folgend, schreitet die Steuerung zu Schritt 420,
wo der PCI-Takt der Erweiterungsbasis E aktiviert wird.
-
Die
Steuerung geht dann zu Schritt 422, wo eine Verzögerung von
zehn Mikrosekunden vorgesehen wird, damit sich der PCI-Takt der
Erweiterungsbasis stabilisieren kann. Die Steuerung schreitet zu Schritt 424 fort,
wo das Bereitschaftssignal SRDY für den Laptop-Computer L ausgegeben
wird. Die Steuerung geht dann zu Schritt 426 (6b), wo das Bereitschaftssignal
ERDY für
die Erweiterungsbasis erneut untersucht wird. Wenn dieses Signal
einen logisch niedrigen Pegel aufweist, schreitet die Steuerung
zu Schritt 428 fort, um zu bestimmen, ob die Stifte der
Erweiterungsbasis-Steckverbindung 146 weiterhin verbunden
sind. Wenn dies der Fall ist, schreitet die Steuerung zu Schritt 426 fort.
Wenn nicht, schreitet die Steuerung zu Schritt 430 fort,
wo das Handshaking abgebrochen wird. Wenn in Schritt 426 bestimmt
wird, dass das Signal ERDY zu einem logisch hohen Pegel übergeht,
schreitet die Steuerung zu Schritt 432 fort, um die Quickswitches 113 zu schließen. Die
Steuerung geht dann zu Schritt 434, wo das Docking-Flag
gesetzt wird. Ein zweiter SMI wird dann in Schritt 436 erzeugt,
damit die Plug-and-Play-Rekonfiguration bewerkstelligt werden kann.
Danach geht die Steuerung zu Schritt 438, wo der lokale
PCI-Busverwalter 194a des MISC-L 118a in den Master-Modus
versetzt wird. Schließlich wird
in Schritt 400 zu der Haupt-Mikrocontroller-Routine zurückgekehrt.
-
Wenn
in Schritt 402 bestimmt wird, dass das Achtungssignal von
der Erweiterungsbasis E ein Hot-Undocking-Ereignis angibt, schreitet
die Steuerung zu Schritt 442 von 6c fort, wo die Steuerung des I2C-Busses 149 durch den Laptop-Computer
L übernommen
wird. Die Steuerung geht dann zu Schritt 444, und es wird
eine Undocking-Anforderung über
den I2C-Bus 149 zu
der Erweiterungsbasis E gesendet. Die Steuerung geht zu Schritt 446,
um zu bestimmen, ob die Stifte der Erweiterungs-Steckverbindung 146 verbunden
sind oder ob ein Timeout aufgetreten ist. Wenn die Stifte 147 getrennt
sind oder ein Timeout aufgetreten ist, wird die Undocking-Prozedur in
Schritt 448 abgebrochen, um zu einem späteren Zeitpunkt erneut versucht
zu werden. Andernfalls schreitet die Steuerung zu Schritt 450 fort,
wo das Erweiterungsbasis-Bereitschaftssignal ERDY untersucht wird.
Wenn das Signal ERDY einen logisch hohen Pegel aufweist, schreitet
die Steuerung zu Schritt 452, wo der Verbindungsstatus
der Stifte 147 der Erweiterungs-Steckverbindung 146 erneut
untersucht wird. Wenn die Stifte 147 weiterhin verbunden
sind, kehrt die Steuerung zu Schritt 450 zurück. Wenn
die Stifte 147 nicht mehr verbunden sind, schreitet die Steuerung
zu Schritt 454, wo das Handshaking abgebrochen wird und
der I2C-Bus 149 freigegeben wird.
-
Wenn
in Schritt 450 bestimmt wird, dass das Bereitschaftssignal
ERDY der Erweiterungsbasis E einen logisch hohen Pegel aufweist,
schreitet die Steuerung zu Schritt 456 fort, wo die Quickswitches 113 geöffnet werden.
Die Steuerung schreitet dann zu Schritt 458, wo das Signal
ERDY erneut untersucht wird. Wenn das Signal ERDY einen logisch niedrigen
Pegel aufweist, schreitet die Steuerung zu Schritt 460,
um zu bestimmen, ob die Stifte 147 der Erweiterungs-Steckverbindung
weiterhin verbunden sind. Wenn dies der Fall ist, kehrt die Steuerung
zu Schritt 458 zurück.
Wenn die Stifte 147 getrennt sind, wird die Undocking-Prozedur in Schritt 462 abgebrochen.
-
Wenn
in Schritt 458 bestimmt wird, dass das Signal ERDY ausgegeben
wird, schreitet die Steuerung zu Schritt 464 fort, wo der
Takt der Erweiterungsbasis E deaktiviert wird. Die Steuerung schreitet
dann zu Schritt 466 fort, wo ein zweiter SMI erzeugt wird.
Dieser SMI erlaubt es dem Laptop-Computer L, eine Plug-and-Play-Rekonfiguration
derart durchzuführen,
dass die Ressourcen der Erweiterungsbasis E nicht mehr erkannt werden.
Die Steuerung schreitet dann zu Schritt 468 fort, wo der
lokale PCI-Busverwalter 194a des MISC-L 118a in
den Master-Modus versetzt wird, sodass der normale Betrieb des Laptop-Computers L wiederaufgenommen werden
kann. Schließlich
wird in Schritt 470 zu der Haupt-Mikrocontroller-Routine
zurückgekehrt.
-
Im
Folgenden wird auf 7 Bezug
genommen, die ein Blockdiagramm von System-Softwarekomponenten zeigt,
die für
eine Unterstützung
des Hot-Docking/Hot-Undocking konfiguriert sind. Wie zuvor genannt,
wird der SMI-Handler 200 verwendet, um das System-BIOS 202 darüber zu informieren, dass
sich der Docking-Status geändert
hat. In der bevorzugten Ausführungsform
umfasst das System-BIOS 202 das Hot-Docking/Hot-Undocking
unterstützende
Merkmale einschließlich
von Plug-and-Play-Fähigkeiten.
Das System-BIOS 202 setzt Speicher-Flags, die durch Windows
95® 204 als ein
Docking-Ereignis interpretiert werden.
-
Wenn
der Laptop-Computer L den Systemverwaltungsmodus verlässt und
die Prozessorsteuerung zu Windows 95® zurückkehrt,
ruft oder fragt das Betriebssystem das System-BIOS 202 ab, um nach Änderungen
zu suchen, die eine Docking-Anforderung angeben. Ein APM-Treiber
(Advance Power Management) oder ein virtueller Gerätetreiber BIOS.VxD 206 kann
durch das Betriebssystem verwendet werden, um durch das System-BIOS
gesetzte Flags abzufragen. Der Treiber BIOS.VxD 206 ist konfiguriert,
um Kommunikationen zwischen Windows 95® 204 und
dem System-BIOS 202 zu unterstützen. Nach einer Systemrekonfiguration,
die auf ein Hot-Docking/Hot-Undocking-Ereignis folgt, werden Plug-and-Play-Treiber 208 für Systemkomponenten
in der Registry von Windows 95® registriert oder aus
derselben gelöscht.
-
Es
können
viele alternative Ausführungsformen
der vorliegenden Erfindung realisiert werden. Es ist zum Beispiel
nicht erforderlich, dass die Erweiterungsbasis E motorisierte Docking/Undocking-Fähigkeiten
umfasst. Eine zusätzliche
Entprellung kann bei derartigen Erweiterungsbasen für Docking-Signale für lange
und kurze Stifte erforderlich sein. Ein derartiges System sollte
es dem Benutzer erlauben, den Laptop einfach aus der Erweiterungs basis
zu ziehen, ohne zuerst eine andere Betätigung vornehmen zu müssen. Die
kurzen Stifte starten die Undocking-Software in für den Benutzer
transparenter Weise.
-
Es
können
auch Erweiterungsbasen mit verschiedenem Intelligenzgrad verwendet
werden. Zum Beispiel kann die Erweiterungsbasis keinen 8051-Mikrocontroller
umfassen, der zur Kommunikationen über den I2C-Bus
fähig ist.
In diesem Fall kann ein vereinfachtes Hardware-Handshaking verwendet werden,
um den verbindenden Bus in einen Ruhemodus zu versetzen. Bei Erweiterungsbasen
mit einem reduzierten Handshaking- und Bus-Mastering-Fähigkeiten muss unter Umständen lediglich
sichergestellt werden, dass die Stromversorgung in der Erweiterungsbasis
aktiviert ist, bevor die Quickswitches geschlossen werden können. In
dieser Ausführungsform
kann das Bereitschaftssignal ERDY der Erweiterungsbasis durch ein
Signal POWERGOOD (nicht gezeigt) aus der Stromversorgung aktiviert
werden. Der Laptop-Computer L kann auf diese Weise bestimmen, ob
die Erweiterungsbasis von der Steckdose getrennt ist, wobei er in
diesem Fall die Quickswitches nicht schließt.
-
Bei
allen beschriebenen und möglichen
Ausführungsformen
ist von Bedeutung, dass sich der PCI-Bus der Erweiterungsbasis vor
dem Docking-Ereignis in einem Ruhezustand befindet. Außerdem ist vorzugsweise
ein Verfahren vorgesehen, mit dem das Betriebssystem darüber benachrichtigt
wird, dass ein Docking-Ereignis auftritt. Das Betriebssystem ist
vorzugsweise dazu in der Lage, das Docking-Ereignis anzunehmen oder
abzulehnen, und bietet außerdem
eine Plug-and-Play-Unterstützung.
-
Es
wurden ein Verfahren und eine Schaltung beschrieben, mit denen das
Betriebssystem, die Firmware, das System-BIOS, die Mikrocontroller
und die installierte System-Hardware derart kooperieren können, dass
ein effizientes Hot-Docking/Hot-Undocking ermöglicht wird. Der Laptop-Computer
und die Erweiterungsbasis sind über
einen gemeinsamen PCI-Bus und Schalter mit niedrigem Widerstand
miteinander verbunden. Es werden Stifte verschiedener Länge verwendet,
um Statusinformationen zu dem Docking und dem Undocking vorzusehen.
Die Busse werden vor dem Docking- oder Undocking-Ereignis in eine
Ruhezustand versetzt, sodass nicht in einen Standby-Modus eingetreten
werden muss. Die Erfindung ermöglicht
also eine schnellere und benutzerfreundliche Möglichkeit zum Einsetzen und
Entfernen eines Laptop-Computers in bzw. aus einer Erweiterungsbasis.