-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich allgemein auf Computerperipheriegeräte und insbesondere
auf eine automatische Konfiguration von primären und sekundären Geräten für Personalcomputer.
-
Hintergrund
der Erfindung
-
Bei
Personalcomputern, die Intel-kompatible Mikroprozessoren verwenden,
verwenden Peripheriegeräte
(beispielsweise Magnetplattenlaufwerke, CD-Laufwerke (CD = compact
disk), Bandlaufwerke und gewisse andere Geräte als Massenspeichergeräte) häufig eine
industriespezifizierte Busschnittstelle, die ein AT-Anschluss (ATA;
ATA = AT Attachment) genannt wird. Die Computersysteme unterstützen bis zu
zwei ATA-Hostadapter
(die auf einer einzigen gedruckten Schaltungsplatine kombiniert
sein können), die
jeweils bis zu zwei Peripheriegeräte unterstützen können. Für jeden Hostadapter kann es
ein primäres Gerät (oder „Master" oder Gerät 0) und
ein sekundäres
Gerät (oder „Slave" oder Gerät 1) geben.
Zusätzlich
muss Geräteelektronik
für ein
primäres
Gerät sich
eventuell dessen bewusst sein, ob ein sekundäres Gerät vorhanden ist. Typischerweise
bestimmt ein Satz von kleinen abnehmbaren 2-Stift-Verbindern (Jumper
genannt) an jedem Gerät
unter anderem ob das Gerät
ein primäres
oder sekundäres
Gerät ist, und
falls ein primäres
Gerät,
ob ein sekundäres
Gerät vorhanden
ist. Jumperkonfigurationen sind kein Standard, dieselben sind typischerweise
schlecht etikettiert und es ist typischerweise schwierig, auf dieselben
zuzugreifen, ohne ein Gerät
zu entfernen. Eine Verwirrung bezüglich Jumperanforderungen hat zu
viel Enttäuschung
der Kunden und zahlreichen Telefonanrufen bei Kundendienstorganisationen
geführt.
-
Personalcomputerperipheriegeräte integrieren
häufig
das meiste der Eingabe-/Ausgabe-Elektronik (I/O-Elektronik; I/O
= Input/Output) zusammen mit der Geräteelektronik, wobei Industriespezifikationen verwendet
werden, die integrierte Treiberelektronik (IDE = Integrated Drive
Electronic) genannt werden. IDE-Geräte können für viele unterschiedliche Hostcomputerbussysteme
entworfen sein, einschließlich ATA.
Bei Intel-kompatiblen Personalcomputern können Verkabelungsspezifikationen
und Signaldefinitionen als ATA-Spezifikationen
oder IDE-Spezifikationen bezeichnet werden, abhängig von dem Hersteller. Bei
Intel-kompatiblen Personalcomputern ist das häufigste ATA/IDE-Massenspeicherschnittstellenkabel
ein 40-Leiter-Bandkabel. Ein Verbinderstift/Sockel 39 liefert ein
Signal, das Treiber-aktiv/Slave-vorhanden (DASP = Drive Active/Slave
Present) genannt wird. DASP-Treiber sind als Treiber mit offenem
Kollektor an den ATA-Geräten
implementiert. DASP wird durch ein Niedrigtreiben der Leitung aktiviert.
DASP ist ein zeitgemultiplextes Signal, das durch beide Geräte aktiviert
werden kann. Das Signal wird während
einer Einschalt-/Rücksetzinitialisierungphase
verwendet, um anzugeben, dass ein sekundäres Gerät (Slave-Gerät) vorhanden
ist, und wird später
verwendet, um eine Geräteaktivität anzugeben.
Während
einer Einschaltinitialisierung aktiviert, falls ein sekundäres Gerät vorhanden
ist, das sekundäre
Gerät DASP
innerhalb von 400 Millisekunden nach dem Einschalten. Falls kein
sekundäres Gerät vorhanden
ist, kann das primäre
Gerät DASP nach
einer Verzögerung
von 450 Millisekunden nach einem Einschalten aktivieren. Falls ein
sekundäres Gerät vorhanden
ist, deaktiviert das sekundäre
Gerät DASP
nach dem Empfang eines gültigen
Befehls oder nachdem das sekundäre
Gerät bereit
ist, oder nach 31 Sekunden, was auch immer zuerst geschieht. Wenn
DASP einmal deaktiviert ist, kann ein Gerät DASP aktivieren, um eine
Geräteaktivität-Licht-emittierende-Diode
(Geräteaktivität-LED; LED
= Light Emitting Diode) zum Leuchten zu bringen. Falls kein sekundäres Gerät vorhanden
ist, wird das primäre
Gerät dann
automatisch weiter als ein primäres
Gerät ohne
ein vorhan denes sekundäres Gerät konfiguriert
und das primäre
Gerät spricht
dann auf Befehle an, die zu einem sekundären Gerät gesendet werden. Falls ein
sekundäres
Gerät DASP
innerhalb des ordnungsgemäßen Zeitfensters
aktiviert, wird das primäre
Gerät automatisch
weiter als ein primäres
Gerät mit
einem vorhandenen sekundären Gerät konfiguriert
und das primäre
Gerät spricht
dann nicht auf Befehle an, die zu dem sekundären Gerät gesendet werden. Es gibt
keinen allgemeinen Standard für
eine Bereitstellung für
einen Hostcomputer, um in der Lage zu sein, einem primären Gerät zu befehlen,
die Konfiguration desselben zu ändern.
Das heißt,
wenn ein primäres
Gerät sich
selbst einmal als „mit
sekundärem
Gerät" oder „ohne sekundäres Gerät" konfiguriert, gibt
es keine allgemeine standardmäßige Weise,
um diese Autokonfiguration aufzuheben.
-
Bei
ATA/IDE-Peripheriegeräten
werden Lese- und Schreibbefehle von dem Hostcomputer direkt zu Registern
in den Peripheriegeräten
geschrieben. Zwei dem bei dem vorliegenden Patentdokument interessierende
Signale sind Chip-Select-0
(CS0, in der Industrie auch als CS1FX bekannt) und Chip-Select-1
(CS1, in der Industrie auch als CS3FX bekannt), die durch den Host
(in Verbindung mit drei Adressleitungen) aktiviert werden, um ein
Zielregister in einem Peripheriegerät zu spezifizieren. Typischerweise
aktiviert das Basis-Eingabe-Ausgabe-System (BIOS = Basic-Input-Output-System) eines
Computers etwa 5 Sekunden nach einer Systemrücksetzung CS0 oder CS1 als
einen Teil einer Anfrage, um zu sehen, welche ATA/IDE-Geräte vorhanden
sein könnten.
Ein konfiguriertes Gerät
spricht durch ein Aktivieren eines Unterbrechungssignals (INTRQ)
an.
-
Eine
Bemühung
der Industrie, um den Bedarf nach Konfigurationsjumpern für eine Bestimmung
eines Primär-/Sekundärgerätestatus
zu eliminieren, ist in einer Industriespezifikation enthalten, die Plug-and-Play-ATA
genannt wird. Bei Plug-and-Play-ATA ist ein Primär-/Sekundärgerätestatus dadurch bestimmt,
welcher von zwei Kabelverbindern an einem Gerät angebracht ist. Plug-and-Play-ATA
widmet einen Draht eines Standardschnittstellenkabels einem Signal,
das Cable Select (Kabel Auswahl) genannt wird. Die Cable-Select-Leitung
ist durch den Hostcomputer geerdet. Bei dem Schnittstellenkabel
stellt die Cable-Select-Leitung eine Verbindung zu dem entsprechenden
Sockel derselben in dem Verbinder für ein primäres Gerät her und stellt keine Verbindung
zu dem entsprechenden Sockel derselben in dem Verbinder für ein sekundäres Gerät her. Falls
ein Gerät,
das mit dem Schnittstellenkabel verbunden ist, erfasst, dass die Cable-Select-Leitung
geerdet ist, konfiguriert das Gerät sich selbst, um ein primäres Gerät zu sein,
und falls das Gerät
kein Massepotential an der Kabel-Auswahl-Leitung erfasst, konfiguriert
sich das Gerät
selbst, um ein sekundäres
Gerät zu
sein.
-
Eine
automatische Adressbestimmung ist ebenfalls ein Problem für die I/O-Platinen
an dem I/O-Bus des Hostcomputers. Bei Intel-kompatiblen Computern
wird eine Industriebspezifikation zum automatischen Konfigurieren
von I/O-Platinen für
den ISA-Bus die Plug-and-Play-ISA-Standards genannt. Bei ISA-Plug-and-Play
weist jede kompatible I/O-Karte einen eindeutigen Identifizierer
auf, der einen Verkäuferidentifizierer
und eine Seriennummer umfasst. Jede kompatible I/O-Karte kann den
Identifizierer derselben lesen. Der Hostcomputer versetzt erst alle
Karten in einen Konfigurationsmodus. Dann treibt der Hostcomputer
eine Leitung mit einer Reihe von Übergängen, die sequenzielle Bitpositionen
innerhalb jedes Identifizierers angeben. Bei dem Ende jeder Reihe
bleibt meistens lediglich eine I/O-Karte aktiv. Die Sequenz von
Bits von dem Hostcomputer schreitet logisch von einem mindestwertigen
Bit zu einem höchstwertigen
Bit für
die Identifizierer fort. Bei jeder Bitposition in der Sequenz bestimmt
jede kompatible I/O-Karte, ob der Identifizierer derselben eine logische
Eins bei der gleichen Bitposition aufweist. Falls der I/O-Kartenidentifizierer
eine logische Eins bei der gleichen Position aufweist, treibt die
I/O-Karte den Bus zu einem speziellen Wert.
-
Falls
bei einer jeglichen Bitposition in der Sequenz ein I/O-Kartenidentifizierer
eine logische Null bei der Bitposition aufweist, treibt die I/O-Karte
den Bus nicht und bestimmt, ob eine jegliche andere Karte den Bus
zu dem speziellen Wert treibt. Falls bei einer jeglichen Bitposition
in der Sequenz ein I/O-Kartenidentifizierer eine logische Null bei
der Bitposition aufweist und eine andere Karte den Bus zu dem speziellen
Wert treibt, hört
die I/O-Karte, die
eine logische Null bei der Bitposition aufweist, auf, an dem Rest
der Sequenz teilzunehmen. Am Ende aller Bitpositionen für einen
Identifizierer bleibt eine Karte. Dieser Karte wird durch den Host
eine logische Gerätenummer
zugewiesen. Die Sequenz wird dann wiederholt, um eine andere Karte
zu isolieren, usw., bis allen Karten eine Adresse zugewiesen wurde.
-
Ein
anderer häufiger
Schnittstellenstandard für
ATA-Geräte
ist die Kleincomputersystemschnittstelle (SCSI = Small Computer
System Interface). SCSI erfordert ebenfalls eine eindeutige ID für jedes Gerät. Eine
Industriegruppe hat einen Satz von Spezifikationen vorgeschlagen,
die Plug-and-Play-SCSI genannt
wird und unter anderem eine automatische Zuweisung von eindeutigen
SCSI-IDs bereitstellt. Das spezielle Protokoll für eine Zuweisung von eindeutigen
IDs wird SCSI Configured AutoMagically (SCAM) genannt. Jedes SCAM-kompatible
Gerät weist
eine vorgegebene ID auf, die in einem nichtflüchtigen Gerätespeicher gesichert ist. Ein SCAM-Mastergerät befiehlt
zuerst jedem der anderen SCAM-Geräte nacheinander,
in einen inaktiven Zustand einzutreten. Dann verwendet das Mastergerät ein Protokoll,
das dem Protokoll für ISA-Plug-and-Play ähnlich ist,
um jedes Gerät
für eine
Zuweisung einer SCSI-Adresse zu isolieren.
-
Plug-and-Play-ATA
verbessert eine leichte Verwendung wesentlich, wenn dasselbe für neue Systeme
implementiert ist. Viele neue Geräte müssen jedoch in Systeme installiert
werden, die den Plug-and-Play-ATA-Spezifikationen zeitlich vorangehen.
Zusätzlich
ist Plug-and-Play-ATA ein nicht universell übernommener Standard, so dass
Geräte,
die in einige neue Systeme installiert sind, eventuell immer noch
eine Jumperkonfiguration erfordern.
-
Die
US-A-5,519,882 betrifft zwei Plattenlaufwerksvorrichtungen, die
mit einer AT-Schnittstelle als ein Master- oder Slave-HDD für eine lokale
oder eine Kabelauswahl durch lediglich einen Jumperblock verbunden
sind. Eine Plattenlaufwerksvorrichtung, die mit einer Datenverarbeitungseinrichtung
durch eine Mehrzahl von Schnittstellenleitungen verbunden ist, einschließlich einer
Schnittstellenleitung, die mit einem ersten Spannungspegel der Datenverarbeitungseinrichtung
verbunden ist, umfasst eine Mehrzahl von Verbindungspunkten, die
mit der Mehrzahl von jeweiligen Schnittstellenleitungen verbunden sind,
einen ersten Verbindungspunkt, der zum selektiven Verbundenwerden
mit der einen Schnittstellenleitung in der Lage ist, einen zweiten
Verbindungspunkt, der bei einer schwebenden Spannung gehalten ist,
einen dritten Verbindungspunkt, der an den ersten Spannungspegel
gebunden ist, einen vierten Verbindungspunkt, der an einen zweiten
Spannungspegel gebunden und selektiv mit dem ersten, dem zweiten
oder dem dritten Verbindungspunkt verbunden ist, und eine Steuereinrichtung,
die mit dem vierten Verbindungspunkt verbunden ist und sich durch ein
Erfassen eines Spannungspegels des ersten Verbindungspunkts selbst
als eine erste oder eine zweite Plattenlaufwerksvorrichtung erkennt.
-
Die
US-A-5,636,342 offenbart ein System und ein Verfahren zum automatischen
Zuweisen von Adressen zu Agenten an einem Systemverwaltungsbus in
einem Computersystem, ohne einen Benutzereingriff zu erfordern,
d. h. ohne zu erfordern, dass der Benutzer physische oder logische
Schalter manuell oder programmmäßig setzt.
Das Computersystem umfasst einen Systemverwaltungsbus, der vorzugsweise
das serielle Protokoll I2C verwendet. Der Bus umfasst zumindest
einen SMB-Master
und eine Mehrzahl von Slaves zum Durchführen erwünschter Überwachungs- und Steuerfunktionen
in dem Compu tersystem. Der SMB-Master weist jedem der SMB-Slaves
automatisch und ohne einen Benutzereingriff eindeutige Adressen
zu. Dies liefert ein einfacheres, effizienteres und weniger fehleranfälliges Verfahren
zum Zuweisen von Adressen zu SMB-Agenten. Zusätzlich weist das System eindeutige
Adressen automatisch neuen Geräten
zu, die an dem Bus eingebracht werden, während der Bus wirksam ist,
und ermöglicht
somit heiß einsteckbare
Geräte.
-
Die
US-A-5,649,233 offenbart eine Vorrichtung zum Auswählen der
Primär/Sekundär- und der Master/Slave-Konfiguration
einer verbesserten IDE-Schnittstelle. Die Vorrichtung weist einen
ersten und einen zweiten Verbinder auf, jeweils zum Herstellen einer
Verbindung mit einer Kaskade aus einem ersten und einem zweiten
IDE-Treibergerät.
Die Vorrichtung weist eine Primär/Sekundär-Konfigurationslogik
und eine Master/Slave-Konfigurationslogik auf. Die Primär/Sekundär-Konfigurationslogik
wird zum selektiven Konfigurieren des ersten und des zweiten Verbinders
der verbesserten IDE-Schnittstelle
als dem primären
bzw. sekundären
Verbinder der IDE-Schnittstelle oder als dem sekundären bzw.
primären
Verbinder der verbesserten IDE-Schnittstelle verwendet. Die Master/Slave-Konfigurationslogik wird
zum selektiven Konfigurieren des ersten und des zweiten IDE-Treibergeräts in jeder
der Kaskaden als dem Master- bzw. Slave-Treiber oder als dem Slave- bzw.
Master-Treiber verwendet.
-
Die
EP 0 907 126 A offenbart
ein Verfahren zum automatischen Konfigurieren eines Computerperipheriegeräts als ein
primäres
Gerät oder
als ein sekundäres
Gerät.
Es gibt vier mögliche
Fälle:
(
1) kein anderes Gerät
vorhanden, (
2) Altprimärgerät vorhanden,
(
3) Altsekundärgerät vorhanden
und (
4) zweites unkonfiguriertes jumperloses Gerät vorhanden.
Bei jedem Beispiel bestimmt der Hostcomputer, ob irgendwelche Altgeräte vorhanden
sind, durch ein Senden von Befehlen, die durch unkonfigurierte jumperlose
Geräte
ignoriert werden. Falls ein Altgerät vorhanden ist, sendet der
Hostcomputer einen Befehl, der lediglich durch ein unkonfiguriertes
jumperloses Gerät
erkannt wird und die spezielle Konfiguration für das jumperlose Gerät befiehlt.
Bei einem ersten Beispiel aktivieren jumperlose Geräte ein Signal nach
einer Rücksetzung
mit einer Zeitsteuerung, die von einer elektronisch lesbaren Identifikation
an dem Gerät
abhängig
ist. Bei dem Fall (
4) wird das erste Gerät, dass
das Signal aktiviert, zu dem sekundären Gerät. Für den Fall (
4) bei
dem zweiten Beispiel treibt oder überwacht jedes jumperlose Gerät eine Leitung während nachfolgenden
Zeitperioden entsprechend Bits in der elektronisch lesbaren Identifikationsnummer.
Für den
Fall (
4) bei dem dritten Beispiel entscheiden sich die
jumperlosen Geräte
für einen
primären/sekundären Status
ohne eine Beteiligung durch den Hostcomputer durch einen Prozess,
der von der elektronisch lesbaren Identifikationsnummer an jedem
Gerät abhängig ist.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine weitere Verbesserung
für eine
automatische Bestimmung eines Primär/Sekundär-Gerätestatus zu liefern, wenn ein
neues Gerät
installiert wird, insbesondere bei Geräten, die in ältere oder
nicht standardmäßige Systeme
installiert werden.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst.
-
Zusammenfassung
der Erfindung
-
Ein
Computersystem gemäß der Erfindung umfasst
eine spezielle Gerätekonfigurationssoftware, die
an dem Hostcomputer ausgeführt
werden soll. Diese Gerätekonfigurationssoftware
wird zu irgendeiner Zeit ausgeführt,
wenn ein neues Gerät
installiert wird, oder zu irgendeiner Zeit, wenn eine Konfigurationsänderung
erwünscht
ist. Ein Peripheriegerät
gemäß der Erfindung
spricht auf eine Reihe von Hostcomputerperipherietreiberbefehlen
während
einer Ausführung
der Gerätekonfigurationssoftware unter
Verwendung eines Protokolls an, das dem Plug-and-Play-ATA-Protokoll ähnlich ist.
-
Anstelle
eines Setzens einer I/O-Adresse für eine I/O-Platine jedoch wird ein Protokoll gemäß der Erfindung
verwendet, um eine Primär-
und Sekundärkonfiguration
für autokonfigurierbare
Geräte
zu bestimmen, die mit einer I/O-Platine
verbunden sind. Zusätzlich
kann ein Protokoll gemäß der Erfindung verwendet
werden, um die Konfiguration von vorhergehend konfigurierten Geräten zu ändern. Im
Gegensatz zu Plug-and-Play-ATA überwachen
folglich Geräte
gemäß der Erfindung
die Hostsignale bis zu dem Ende der Sequenz weiter.
-
Als
ein Teil der Gerätekonfigurationssoftware sendet
der Hostcomputer eine Reihe von Signalen oder Zahlen zu jedem Gerät. Jedes
Signal, das durch den Hostcomputer gesendet wird, entspricht einer Bitposition
einer Geräte-ID.
Falls die Geräte-ID
bei der Bitposition eine logische „Eins" aufweist, aktiviert das Gerät DASP.
Falls die Geräte-ID
bei der Bitposition eine logische „Null" aufweist, prüft das Gerät, um zu sehen, ob DASP durch
ein anderes Gerät
aktiviert wird. Falls ein erstes Gerät erfasst, dass ein zweites Gerät DASP aktiviert,
bezeichnet sich das erste Gerät
vorläufig
als ein sekundäres
Gerät.
Ein Gerät
mit einer vorläufigen
sekundären
Konfiguration aktiviert DASP während
der restlichen Sequenz nicht. Ein Gerät das die Sequenz abschließt, ohne
DASP von einem zweiten Gerät
zu erfassen, bezeichnet sich vorläufig selbst als ein primäres Gerät. Dann
sendet der Hostcomputer einen numerischen Wert. Falls der numerische
Wert ein erster vorbestimmter Wert ist, konfiguriert sich jedes
Gerät zu
der vorläufigen
Konfiguration. Das heißt
ein vorläufiges
primäres
Gerät konfiguriert
sich selbst als ein primäres
Gerät und
ein vorläufiges
sekundäres
Gerät konfiguriert
sich selbst als ein sekundäres
Gerät.
Falls der numerische Wert ein zweiter vorbestimmter Wert ist, konfiguriert
sich jedes Gerät
selbst zu dem Gegenteil der vorläufigen Konfiguration.
Das heißt
ein vorläufiges
sekundäres Gerät konfiguriert
sich selbst als ein primäres
Gerät und
ein vorläufiges
primäres
Gerät konfiguriert
sich selbst als ein sekundäres
Gerät.
Falls der numerische Wert ein dritter vorbestimmter Wert ist, dekonfigurieren
sich die Geräte
gemäß der Erfindung
selbst.
-
Kurze Beschreibung
der Zeichnungen
-
1A ist
ein Flussdiagramm eines Teils eines exemplarischen Ausführungsbeispiels
eines Verfahrens gemäß der Erfindung.
-
1B ist
eine Flussdiagrammfortführung von 1A.
-
1C ist
eine Flussdiagrammfortführung von 1B.
-
Detaillierte Beschreibung
des bevorzugten Ausführungsbeispiels
der Erfindung
-
Bei
dem folgenden exemplarischen Ausführungsbeispiel der Erfindung
bedeutet ein Gerät,
das als ein autokonfigurierbares Gerät bezeichnet ist, ein Gerät, das Spezifikationen
gemäß der Erfindung
aufweist. Ein Gerät,
das Spezifikationen gemäß der Erfindung
aufweist, kann anfänglich
unkonfiguriert sein, weder ein primäres Gerät noch ein sekundäres Gerät. Alternativ
kann ein Gerät,
das Spezifikationen gemäß der Erfindung
aufweist, vorhergehend konfiguriert worden sein, wobei eine Konfiguration
in einem nichtflüchtigen
Speicher gesichert ist, aber das Gerät kann dann während eines
unten beschriebenen Initialisierungsprotokolls dekonfiguriert oder
neu konfiguriert werden. Ein Gerät,
das nicht konform zu den Spezifikationen gemäß der Erfindung ist, wird als
ein Altgerät
bezeichnet. Es ist zu beachten, dass ein Gerät, das zu Plug-and-Play-ATA
konform ist, anfänglich „unkonfiguriert" sein kann, aber
dasselbe, falls es nicht konform zu den Spezifikationen der Erfindung ist,
für Zwecke
der Erfindung als ein Altgerät
betrachtet wird. Bei autokonfigurierbaren Geräten gemäß der Erfindung konfigurieren
sich alle autokonfigurierbaren Geräte jedes Mal neu, wenn die
Gerätekonfigurationssoftware
durch den Hostcomputer ausgeführt
wird. Bei dem exemplarischen Ausführungsbeispiel wird ein autokonfigurierbares
Gerät zu
einem ATA/IDE-System hinzugefügt.
Es gibt vier mögliche Fälle wie
folgt: (1) kein anderes Gerät vorhanden, (2) Altprimärgerät vorhanden,
(3) Altsekundärgerät vorhanden
und (4) anderes autokonfigurierbares Gerät (gemäß der Erfindung)
vorhanden.
-
Eine
gegenwärtig
erhältliche
Computereinschalt-/-rücksetzsoftware
erfasst, welche Altgeräte (falls überhaupt)
vorhanden sind. Falls beispielsweise ein primäres Altgerät zusammen mit einem unkonfigurierten
autokonfigurierbaren Gerät
vorhanden ist, wird das primäre
Altgerät
durch den Hostcomputer während
einer Initialisierung erfasst, aber das autokonfigurierbare Gerät spricht
nicht auf Hostcomputer-Befehle an und ist für den Hostcomputer nicht sichtbar.
-
Die
vorliegende Erfindung betrifft primär eine Elektronikgeräteidentifizierung
auf der Peripheriegerätehardwareebene
und der Hostsoftwaretreiberebene. Unabhängig von einer Hardwareidentifikation
und einer Treiberidentifikation kann eine Hostbetriebssystemsoftware
eine getrennte Identifikation für
Peripheriegeräte
aufweisen. Bei Massenspeichergeräten zum
Beispiel kann das Hostbetriebssystem auf die Geräte als Laufwerk C oder Laufwerk
D usw. Bezug nehmen.
-
Bei
jedem der folgenden Ausführungsbeispiele
weisen autokonfigurierbare Geräte
eine eindeutige Identifikationsnummer in einer elektronischen Form
auf, die durch die Gerätesteuerungselektronik
lesbar ist. Die Identifikationsnummer kann zum Beispiel eine zugewiesene
eindeutige Herstellernummer plus einer fabrikbestimmten Seriennummer
für das
Gerät aufweisen.
Autokonfigurierbare Geräte
konfigurieren sich jedes Mal neu, wenn die Gerätekonfigurationssoftware durch
den Hostcomputer ausgeführt
wird, aber zwei gegebene Identifikationsnummern konfigurieren immer
auf die gleiche Weise. Deshalb bleibt bei einem speziellen Paar
von Geräten
die Konfiguration konstant, bis ein Gerät entfernt oder hinzugefügt wird.
Es ist anzumerken, dass der Ansatz konsistent mit der Konfigurationsphilosophie
von Plug-and-Play-SCSI
ist, bei der eine Gerätekonfiguration
vollständig
automatisch ist und sich automatisch ändern kann, wenn ein Gerät gelöscht oder
hinzugefügt
wird. Im Gegensatz zu Plug-and-Play-ATA
oder Plug-and-Play-SCSI jedoch ermöglichen Geräte gemäß der vorliegenden Erfindung,
dass ein Hostcomputer die Konfiguration, die normalerweise aus den
Identifikationsnummern resultieren würde, aufhebt.
-
Aufgrund
von fehlenden strengen Industriestandards arbeitet zusätzlich eventuell
eine automatische Konfiguration, wie dieselbe in dem vorliegenden
Patentdokument gelehrt wird, nicht für alle Systeme. Deshalb können autokonfigurierbare
Geräte immer
noch eine Bereitstellung für
optionale Jumper aufweisen, um sicherzustellen, dass eine Konfiguration
bei allen Systemen möglich
ist. Falls Konfigurationsjumper vorhanden sind, bestimmen die Jumper vorzugsweise
die Konfiguration. Genauer gesagt sollte bei einem Einschalten/Rücksetzen
ein autokonfigurierbares Gerät
den Jumperblock desselben überprüfen. Falls
ein Jumper gesetzt ist, sollte das Gerät jegliche Konfigurationsinformationen
in einem nichtflüchtigen
Speicher (falls vorhanden) löschen und
mit dem Initialisierungsprozess gemäß der Jumpereinstellung fortfahren.
Falls keine Jumper vorhanden sind, dann sollte das autokonfigurierbare
Gerät den
Autokonfigurationsprozeduren folgen, die unten in diesem Patentdokument
erörtert
sind.
-
1A bis 1C stellen
ein beispielhaftes Ausführungsbeispiel
der Erfindung dar. In 1A startet bei einem Schritt 100 eine
Systemrücksetzung den
Konfigurationsprozess. Wie es oben erörtert ist, können autokonfigurierbare
Geräte
eine alternative Vorsehung für
Konfigurationsjumper aufweisen. Falls folglich Jumper installiert
sind (Test 102), wird die Jumperkonfiguration verwendet
(Schritt 104), werden irgendwelche Konfigurationsinformationen
in einem nichtflüchtigen
Speicher gelöscht
und wird der automatische Konfigurationsprozess umgangen (Schritt 106).
Falls keine Jumper vorhanden sind, prüft ein autokonfigurierbares
Gerät zuerst,
um zu sehen, ob dasselbe vorhergehend konfiguriert war, wobei die vorhergehende
Konfiguration in einem nichtflüchtigen
Speicher gespeichert ist. Falls das Gerät vorhergehend konfiguriert
war, aktiviert das Gerät
Signale und überwacht
Signale konsistent mit Standardprotokollen, wie es oben erörtert ist
(Schritt 110). Nach einem Abschließen der normalen Initialisierungsprotokolle
bei dem Schritt 110 oder falls das Gerät ohne Jumper unkonfiguriert
ist, tritt ein Gerät
in eine Schleife ein, bei der das Gerät kontinuierlich Signale überwacht,
um zu bestimmen, ob die Hostcomputerkonfigurationssoftware läuft oder
nicht (1B).
-
In
der Vergangenheit wiesen Festplattenlaufwerke für Intelkompatible Personalcomputer
eine begrenzte Verarbeitungsleistung an den Laufwerkseinheiten auf
und stützten
sich anstelle dessen auf Steuerungselektronik an einer getrennten
Steuerungsplatine. Später
wurde viel der Funktionalität,
die ursprünglich
an den Steuerungsplatinen vorhanden war, auf die Laufwerke platziert.
ATA hat sich entwickelt, um auf andere Geräte als Festplatten anwendbar
zu sein, aber Signale und Register halten immer noch Namen, die
bei der ursprünglichen
Konfiguration begannen, die eine Steuerungsplatine mit zwei Festplattenlaufwerken
aufweist. Gegenwärtige ATA-Geräte beispielsweise
weisen eventuell Zylinderregister, Kopfregister und Sektorregister
auf, obwohl die Geräte
keine Zylinder, Köpfe
oder Sektoren aufweisen. Insbesondere weisen autokonfigurierbare Geräte gemäß der vorliegenden
Erfindung, wie andere ATA-Vorrichtungen,
verschiedene Register auf. Bei einem spezifischen exemplarischen
Ausführungsbeispiel
umfassen die Register ein 16-Bit-Datenregister, zwei 8-Bit-Zylinderregister,
ein 8-Bit-Kopfregister, ein 8-Bit-Sektorregister, ein Befehlsregister
und verschiedene andere Register. Das Standard-ATA-Kabel umfasst
drei Adressleitungen (um acht Register zu adressieren), 16 Datenleitungen
und Lese- und Schreibübernahmeleitungen.
Im Allgemeinen kann ein Hostcom puter zu Registern in unkonfigurierten
ATA-Geräten
schreiben, aber unkonfigurierte ATA-Geräte sprechen auf Befehle nicht an.
-
Wie
es oben erörtert
ist, erfordern autokonfigurierbare Geräte gemäß der Erfindung eine spezielle
Konfigurationssoftware in dem Hostcomputer. Als ein optionaler erster
Schritt kann es erwünscht
sein, dass ein autokonfigurierbares Gerät eine gewisse Angabe aufweist,
dass eine kompatible Konfigurationssoftware läuft. Ein einfaches Verfahren
besteht darin, die Konfigurationssoftware vorbestimmte Datenwerte
zu zumindest einem der Register schreiben zu lassen. Nach einer
Rücksetzung
beispielsweise kann die Hostkonfigurationssoftware vorbestimmte Werte
zu irgendeinem der Datenregister, der Zylinderregister, der Kopfregister
und der Sektorregister schreiben. In 1B, Schritt 116,
prüft das
autokonfigurierbare Gerät
die geeigneten Register auf die vorbestimmten Datenwerte hin. Da
Geräte
zu irgendeiner Zeit neu konfiguriert werden können, ist 1B,
Schritt 116, ein Vorgabezustand (eine Schleife) für autokonfigurierbare
Geräte.
Falls die Werte vorhanden sind, dann wird ein Zähler initialisiert (Schritt 118)
und es wird in eine Konfigurationsschleife eingetreten (Schritt 120–134).
-
Während der
Konfigurationsschleife muss der Hostcomputer ein Signal zu dem autokonfigurierbaren
Gerät senden,
das eine Bitposition innerhalb eines Identifikationscodes angibt.
Das autokonfigurierbare Gerät
könnte
einen internen Zähler
aufweisen, der auf einen Puls von dem Hostcomputer anspricht. Alternativ
könnte
der Hostcomputer numerische Daten senden, die das autokonfigurierbare
Gerät dann
decodieren könnte,
um eine Bitposition zu bestimmen. Für eine weitere Sicherstellung,
um zu verhindern, dass ein autokonfigurierbares Gerät auf Hostsignale
anspricht, die nicht für
eine Autokonfiguration beabsichtigt sind, kann das autokonfigurierbare
Gerät alternativ
einen internen Zähler
aufweisen und numerische Daten von dem Host empfangen und die zwei
Werte zu einer Sicherstellung wiederholt vergleichen. Das beispielhafte
Ausführungsbeispiel unten
verwendet das dritte Verfahren, bei dem das autokonfigurierbare
Gerät einen
internen Zähler
aufweist und numerische Daten von dem Hostcomputer empfängt.
-
Während einer
der Iterationen der Konfigurationsschleife kann ein autokonfigurierbares
Gerät bestimmen,
dass dasselbe als ein sekundäres
Gerät konfiguriert
sein sollte. An diesem Punkt könnte
sich das autokonfigurierbare Gerät
einfach selbst als ein sekundäres
Gerät konfigurieren
und dann aufhören, an
dem Schleifenprotokoll teilzunehmen. Zusätzliche Ziele der vorliegenden
Erfindung bestehen jedoch darin, zu ermöglichen, dass ein Hostcomputer
vorhergehend konfigurierte Geräte
dekonfiguriert, und zu ermöglichen,
dass der Hostcomputer die normale Konfigurationsauswahl aufhebt.
Deshalb bestimmt ein autokonfigurierbares Gerät gemäß der vorliegenden Erfindung
vorläufig
eine Konfiguration, aber nimmt weiterhin an allen Iterationen der
Konfigurationsschleife teil. Dies hilft sicherzustellen, dass die Hostbefehle
tatsächlich
von einem Konfigurationstreiber sind, und liefert ferner Schleifenende-Informationen für das autokonfigurierbare
Gerät für den letzten
Konfigurationsschritt. Nach der letzten Iteration der Konfigurationsschleifen
befiehlt der Hostcomputer jedem Gerät: (1) sich selbst
gemäß der vorläufigen Konfiguration
zu konfigurieren; oder (2) sich selbst entgegen der vorläufigen Konfiguration
zu konfigurieren; oder (3) sich selbst zu dekonfigurieren.
-
Für jede Iteration
der Konfigurationsschleife schreibt der Hosttreiber einen Datenwert
zu den Datenregistern aller ATA-Geräte. Jedes autokonfigurierbare
Gerät weist
einen internen Zähler
auf. Für
jede Iteration der Schleife inkrementiert (oder dekrementiert, wie
zutreffend) jedes autokonfigurierbare Gerät den internen Zähler. Für jede Iteration
der Schleife sollte der interne Zähler einen Wert aufweisen,
der identisch mit dem Wert ist, der von dem Hostcomputer empfangen
wird (Entscheidung 120). Bei einem spezifischen exemplarischen
Ausführungsbeispiel weist
eine Identifikation 256 Bits auf und eine Konfigurationsschleife
wird 256-mal ausgeführt,
einmal für jede
Bitposition der Identifikation. Der Hostcomputer (und der interne
Zähler)
kann von null bis 255 hinauf zählen oder von 255 zu
null herunter. Falls die Werte nicht übereinstimmen, ist ein Fehler
aufgetreten, und eine Autokonfiguration kann nicht erzielt werden. Falls
die Werte übereinstimmen,
bestimmt das autokonfigurierbare Gerät, ob dasselbe (während einer früheren Iteration
der Schleife) bereits vorläufig
eine Konfiguration bestimmt hat (Entscheidung 122). Falls das
autokonfigurierbare Gerät
noch nicht vorläufig konfiguriert
war, prüft
das autokonfigurierbare Gerät, um
zu sehen, ob die Bitposition, die dem internen Zähler entspricht, der Identifikation
eine logische „Eins" ist (Entscheidung 124).
Falls die Identifikation eine logische „Eins" bei der Bitposition aufweist, die durch
den internen Zähler
bestimmt ist, aktiviert das autokonfigurierbare Gerät DASP (Schritt 126),
bis eine andere Aktivität
an dem ATA-Bus erfasst wird oder bis ein Zeitablauf auftritt, was
auch immer zuerst auftritt. Falls die Identifikation keine logische „Eins" bei der Bitposition
aufweist, die durch den internen Zähler bestimmt ist, aktiviert
das autokonfigurierbare Gerät
DASP nicht und prüft,
um zu sehen, ob DASP durch irgendein anderes Gerät getrieben wird (Entscheidung 128).
Falls irgendein anderes Gerät
DASP bei einer Identifikationsbitposition treibt, die eine logische „Null" umfasst, bestimmt
das autokonfigurierbare Gerät
vorläufig,
dass dasselbe als ein sekundäres Gerät konfiguriert
sein sollte (Schritt 130). Natürlich könnte die Entscheidung 124 auf
einem Erfassen einer logischen „Null" anstelle einer logischen „Eins" basieren.
-
Das
autokonfigurierbare Gerät
prüft dann, um
zu sehen, ob die letzte ID-Bitposition geprüft wurde (Entscheidung 132).
Falls nicht die letzte ID-Bitposition geprüft wurde, inkrementiert (oder
dekrementiert) das autokonfigurierbare Gerät den internen Zähler (Schritt 134)
und geht für
eine weitere Iteration durch die Schleife. Falls die letzte ID-Bitposition geprüft wurde
und falls das autokonfigurierbare Gerät nicht vorläufig als
ein sekundäres
Gerät konfiguriert wurde,
bestimmt das autokonfigurierbare Gerät vorläufig, dass dasselbe als ein
primäres
Gerät konfiguriert
sein sollte (Schritt 136). Das heißt, ein Gerät, das die Schleife abschließt, ohne
jemals zu erfassen, dass ein anderes Gerät DASP bei einer ID-Bitposition aktiviert,
die eine logische Null umfasst, bestimmt vorläufig, dass dasselbe als ein
primäres
Gerät konfiguriert
sein sollte. Jedes autokonfigurierbare Gerät geht dann zu dem letzten
Konfigurationsschritt (1C).
-
Nach
der letzten Iteration der Schleife sendet der Hostcomputertreiber
einen entgültigen
Wert zu dem Datenregister (oder irgendeinem anderen vorbestimmten
Register) (Schritt 138). Falls der entgültige Wert eine erste vorbestimmte
Zahl ist, konfiguriert sich jedes autokonfigurierbare Gerät selbst
gemäß der vorläufigen Konfiguration
(Schritt 140). Das heißt, ein
vorläufiges
primäres
Gerät konfiguriert
sich selbst als ein primäres
Gerät und
ein vorläufiges
sekundäres
Gerät konfiguriert
sich selbst als ein sekundäres Gerät. Falls
der endgültige
Wert eine zweite vorbestimmte Zahl ist, konfiguriert sich jedes
autokonfigurierbare Gerät
selbst zu dem Gegenteil der vorläufigen
Konfiguration (Schritt 142). Das heißt, ein vorläufiges primäres Gerät konfiguriert
sich selbst als ein sekundäres
Gerät und
ein vorläufiges
sekundäres Gerät konfiguriert
sich selbst als ein primäres
Gerät. Falls
der endgültige
Wert eine dritte vorbestimmte Zahl ist, dekonfiguriert sich jedes
autokonfigurierbare Gerät
selbst (Schritt 144). Falls der Wert nicht einer der drei
erwarteten vorbestimmten Werte ist (Pfad 146), ist ein
Fehler aufgetreten und eine Autokonfiguration wird nicht abgeschlossen.
-
Man
betrachte 1A und 1B angesichts
der vier möglichen
Fälle:
- (1) Kein anderes Gerät vorhanden. Ein autokonfigurierbares
Gerät weist
keine Jumper auf (Entscheidung 102) und sieht DASP bei
ID-Positionen nicht, die eine logische „Null" aufweisen (Entscheidung 128),
und das autokonfigurierbare Gerät
konfiguriert sich deshalb vorläufig
selbst als ein primäres
Gerät (Schritt 136).
- (2) Altprimärgerät vorhanden.
Der Hostcomputer erfasst, dass ein Altprimärgerät vorhanden ist. Ein autokonfigurierbares
Gerät weist
keine Jumper auf (Entscheidung 102) und sieht DASP bei ID-Bitpositionen
nicht, die eine logische „Null" aufweisen (Entscheidung 128),
und das autokonfigurierbare Gerät
konfiguriert sich deshalb vorläufig selbst
als ein primäres
Gerät (Schritt 136).
Nachdem die Konfigurationsschleife abgeschlossen ist, sendet der
Hostcomputer den ordnungsgemäßen vorbestimmten
Wert, um zu bewirken, dass sich irgendein vorläufig konfigurierbares Gerät selbst
zu dem Gegenteil der vorläufigen
Konfiguration desselben konfiguriert (Schritt 142). Folglich
konfiguriert sich das autokonfigurierbare Gerät selbst als ein sekundäres Gerät.
- (3) Altsekundärgerät vorhanden.
Der Hostcomputer erfasst, dass ein Altsekundärgerät vorhanden ist. Ein autokonfigurierbares
Gerät weist
keine Jumper auf (Entscheidung 102) und sieht DASP bei
ID-Bitpositionen nicht, die eine logische „Null" aufweisen (Entscheidung 128),
und das autokonfigurierbare Gerät
konfiguriert sich deshalb vorläufig
selbst als ein primäres
Gerät (Schritt 136). Nachdem
die Konfigurationsschleife abgeschlossen ist, sendet der Hostcomputer
den ordnungsgemäßen vorbestimmten
Wert, um zu bewirken, dass sich irgendein vorläufig konfiguriertes Gerät selbst
zu der vorläufigen
Konfiguration desselben konfiguriert (Schritt 140). Folglich
konfiguriert sich das autokonfigurierbare Gerät selbst als ein primäres Gerät.
- (4) Anderes autokonfigurierbares Gerät vorhanden. Jedes autokonfigurierbare
Gerät erreicht
den Schritt 116 und beide autokonfigurierbaren Gerät schließen die
Konfigurati onsiterationsschleife ab. Eines der zwei Geräte erfasst
DASP bei einer ID-Bitposition, die eine logische „Null" umfasst (Schritt 128),
und dieses Gerät
konfiguriert sich vorläufig
selbst als ein sekundäres
Gerät (130). Das
andere Gerät
erfasst dann niemals DASP und konfiguriert sich vorläufig selbst
als ein primäres
Gerät (Schritt 136).
-
Die
vorhergehende Beschreibung der vorliegenden Erfindung wurde zu Zwecken
einer Darstellung und Beschreibung vorgelegt. Dieselbe soll weder
erschöpfend
sein noch die Erfindung auf die präzise offenbarte Form begrenzen
und andere Modifikationen und Variationen können angesichts der obigen
Lehren möglich
sein. Das Ausführungsbeispiel wurde
gewählt
und beschrieben, um die Grundlagen der Erfindung und die praktische
Anwendung derselben am besten zu erläutern, um dadurch anderen Fachleuten
auf dem Gebiet zu ermöglichen,
die Erfindung in verschiedenen Ausführungsbeispielen und verschiedenen
Modifikationen am besten zu verwenden, wie dieselben für die spezielle
betrachtete Verwendung geeignet sind. Es ist beabsichtigt, dass
der beigefügte
Anspruch aufgefasst werden soll, um andere alternative Ausführungsbeispiele
der Erfindung zu umfassen, außer
insofern es durch den Stand der Technik begrenzt ist.