DE69719420T2 - Ein Serversteuerung zur Speicherung und Wiedergabe von Bildschirmsequenzen, die von einem Hauptrechner weitergeleitet wurden - Google Patents

Ein Serversteuerung zur Speicherung und Wiedergabe von Bildschirmsequenzen, die von einem Hauptrechner weitergeleitet wurden

Info

Publication number
DE69719420T2
DE69719420T2 DE69719420T DE69719420T DE69719420T2 DE 69719420 T2 DE69719420 T2 DE 69719420T2 DE 69719420 T DE69719420 T DE 69719420T DE 69719420 T DE69719420 T DE 69719420T DE 69719420 T2 DE69719420 T2 DE 69719420T2
Authority
DE
Germany
Prior art keywords
server
controller
memory
display
reset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69719420T
Other languages
English (en)
Other versions
DE69719420D1 (de
Inventor
Gordon R. Clark
Wesley M. Ellinger
Scott R. Gready
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Application granted granted Critical
Publication of DE69719420D1 publication Critical patent/DE69719420D1/de
Publication of DE69719420T2 publication Critical patent/DE69719420T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Description

  • Die vorliegende Erfindung betrifft ein verteiltes Computersystem und insbesondere einen Host-Computer ("Host"), auf den von einem Endgerät aus zugegriffen werden kann, das physikalisch nicht mit dem Host verbunden ist und an einem von dem Host entfernten Standort lokalisiert ist. Das entfernte Endgerät kann auf eine gespeicherte Abfolge von Anzeigebildschirmen wie etwa eine Abfolge von Anzeigebildschirmen, die während Operationen bei einer Rücksetzung oder einem Ausfall des Hosts angezeigt werden. Die Abfolge der Anzeigebildschirme kann dann durch einen Computer-Administrator an dem entfernten Endgerät wiedergegeben werden. Der entfernte Zugriff auf diese Anzeigebildschirme erlaubt es dem Administrator, zu bestimmen, wie ein Host-Betriebssystem auf eine Rücksetzung reagiert oder was die möglichen Gründe für einen Ausfall des Hostsystems sind. In dem Host ist eine Leiterplatte enthalten, die in eine Hauptplatine des Hosts eingesetzt werden kann. Die Leiterplatte umfasst einen Prozessor und einen Speicher zum Speichern der Abfolge von Anzeigebildschirmen, wenn ein Stromausfall beim Host auftritt.
  • Verteilte Computersysteme sind allgemein wohlbekannt. Derartige Systeme gestatten die Kommunikation zwischen Anwendungsprogrammen, die auf zahlreichen Computer-Workstations gehostet sind. Es gibt verschiedene Typen von verteilten Computersystemen, die häufig nach der geographischen Verbreitung ihrer Kommunikationsfähigkeit klassifiziert werden. Dabei werden beispielsweise die folgenden Begriffe verwendet, um die geographische Breite von verteilten Computersystemen zu klassifizieren: LANs (Local Area Networks), MANs: (Metropolitan Area Networks) und WANs (Wide Area Networks).
  • Viele der verbreiteten verteilten Computersysteme verwenden einen File-Server ("Server"). Dabei werden die Dateien oder Daten durch einen Host innerhalb des Servers verwaltet. Server sind insbesondere vorteilhaft, weil sie den Workstations einen schnellen Zugriff auf die im Server gespeicherten Dateien erlauben. Dementsprechend verwenden Dateiserver einen Host-Computer, der auf ein Betriebssystemprogramm (ein verbreitetes Betriebssystem ist z. B. Windows NT®) reagiert, um nicht nur die Dateien zu koordinieren, sondern auch eine Dateisicherheit vorzusehen, ein Dateibackup zu erstellen, usw.
  • Ein wichtiger Aspekt bei der Aufrechterhaltung von Host-Funktionen in einem Server besteht darin, den Host von einem entfernten Standort aus zu verwalten und insbesondere den Host von einem Standort aus zu verwalten, der von den mit dem Server physikalisch verbunden Workstations entfernt ist. In der letzten Zeit hat die Anzahl der geschäftlich genutzten Server stetig zugenommen. Server werden heutzutage umfassend und praktisch an allen Standorten einer Geschäftseinheit verwendet - anstatt einen zentralisierten Großrechner an einem Standort zu verwenden. Leider sind die zur Verwaltung von Server-Hosts an verschiedenen Standorten verfügbaren Budgets häufig gering. Obwohl die auf den Servern platzierten Daten als geschäftskritisch betrachtet werden, sind keine ausreichenden Mittel vorhanden, um den korrekten Betrieb von einem einzigen Servicestandort aus sicherzustellen. Dass ein Administrator zu entfernten Serverstandorten reist, um ein Problem zu beheben, ist nicht nur unpraktisch, sondern auch sehr kostspielig, wenn man die mit den Serverausfallzeiten verbundenen Kosten berücksichtigt.
  • Viele Betriebssysteme oder mit diesen Betriebssystemen assoziierte Anwendungen erlauben den Zugriff auf den Host von einem entfernten Standort, der häufig als "virtuelles Endgerät" bezeichnet wird. Ein virtuelles Endgerät ist nicht physikalisch mit dem Host verbunden, erlaubt aber trotzdem die entfernte Kontrolle spezifischer Operationen des Hosts. Produkte wie etwa COMPAQ Server Manager/R® ("SMR") und COMPAY Insight Manager® ("CIM"), die von der Compaq Computer Corp. erhältlich sind, versuchen einige der Probleme bei der Verwaltung eines Netzwerkes aus verteilten Servern von einem einzigen, entfernten Standort aus zu lösen. Diese Produkte gestatten unter anderem, dass ein Administrator über einen Ausfall eines entfernten Servers gewarnt wird, dass der Server von dem entfernten Standort aus zurückgesetzt wird und dass auf bestimmte Informationen auf der Server-Konsole zugegriffen wird.
  • Es ist sicher vorteilhaft, die entfernte Steuerung von bestimmten Serverfunktionen zu gestatten, insbesondere von denjenigen, die zum Zurücksetzen von einem oder mehreren Servern in einem Netzwerk aus Servern erforderlich sind. Durch Serverfehler bedingte Auszeiten gehören wahrscheinlich zu den kostspieligsten Ausfällen beim Betrieb eines verteilten Computersystems. Die Ursachen für einen Serverausfall, der häufig als Server- Host-"Absturz" bezeichnet wird, sind vielfältig. Verschiedene Fehlfunktionen oder Entwurfsfehler in der Server-Hardware, in dem Server-Betriebssystem oder in den Anwendungsprogrammen, die auf dem Server laufen, können für einen Server-Absturz verantwortlich sein. Wenn ein Server abstürzt, geht häufig der Dateizugriff verloren, wobei Geschäftsdaten vorübergehend nicht zugänglich sind, bis die Ursache des Ausfalls behoben ist.
  • Ein wirklicher Vorteil würde sich ergeben, wenn ein von dem Server entfernter Administrator weitere Handlungsmöglichkeiten hätte, außer eine Warnung zu erhalten und dann einen ausgefallenen Server zurücksetzen zu können. Insbesondere wäre es vorteilhaft, wenn der Administrator die Ursache des Serverausfalls feststellen könnte, damit er möglicherweise weitere Ausfälle verhindern kann. Die Verhinderung eines Ausfalls ist genau so wichtig, wenn nicht wichtiger als das Zurücksetzen eines ausgefallenen Servers.
  • Die Ursache für einen Ausfall wird gewöhnlich auf der Server-Konsole angezeigt, wenn der Server abstürzt. Außerdem können Unregelmäßigkeiten in der Server-Host-Hardware oder der Betriebssystemsoftware nach dem Rücksetzen (oder "Starten") festgestellt werden. Diese Unregelmäßigkeiten können zu weiteren Ausfällen führen, wenn sie nicht durch den Administrator behoben werden. Dementsprechend wäre es vorteilhaft, Zugriff auf den Anzeigebildschirm der Server-Host-Konsole nicht zur während der Rücksetzung des Servers (also während des Ausfalls), sondern auch unmittelbar vor der Server-Rücksetzung (vor dem Ausfall) zu haben. Die Informationen in den Anzeigebildschirmen (insbesondere in einer Abfolge von Anzeigebildschirmen) auf der Server-Konsole, die während eines Ausfalls oder einer Rücksetzung eines Servers angezeigt werden, könnten dem entfernten Administrator dabei helfen, einen bestehenden Server-Ausfall zu analysieren und möglichst weitere Ausfälle zu verhindern.
  • Die Anzeigebildschirme, die aus einer Rücksetzung oder einem Ausfall des Servers resultieren, umfassen eine Abfolge von Anzeigebildschirmen, die auf der Host-Server- Konsole durch das Betriebssystem, das BIOS (Basic Input Output System), das Server- Anwendungsprogramm oder andere Systemsoftware angezeigt werden. Insbesondere ist die Erfassung von zwei Abfolgen von Anzeigebildschirmen von besonderem Interesse für einen Server-Administrator. Um einen bestehenden Ausfall zu beheben oder einen zukünftigen Fehler zu verhindern, wäre es von Vorteil, wenn der Administrator die Abfolge der Anzeigebildschirme vor dem Server-Ausfall sowie die Abfolge der Anzeigebildschirme nach der Rücksetzung sehen könnte. Beispiele für Server-Ausfall-Anzeigebildschirme, die auf der Server-Konsole angezeigt werden, sind die "blue screens" von Windows NT® der Microsoft Corp. sowie die ABEND-Meldungen von NETWARE® der Novell Corp., die auf der Server- Konsole angezeigt werden, wenn das entsprechende Betriebssystem ausfällt. Diese Anzeigebildschirme geben Informationen wie etwa Prozessorfehlerangaben, Systemsoftware-Routineadressen, und relevante Systemspeicherinhalte an. Nach einer Rücksetzung des Servers führt der POST-Code (Power-On Self Test) des entsprechenden Betriebssystems gewöhnlich eine Systemanalyse durch und zeigt Informationen zu festgestellten Fehlern auf dem Bildschirm der Server-Konsole an. Deshalb besteht ein Bedarf für eine Einrichtung zum Erfassen derartiger Abfolgen sowie zum Wiedergeben derselben an einem entfernten Verwaltungsstandort.
  • Außer aufgrund von Hardware- und Softwareproblemen kann ein Server auch ausfallen, wenn die Stromversorgung des Servers unterbrochen wird. Wenn die Stromversorgung unterbrochen wird, gehen leider alle Anzeigebildschirme verloren, die Aufschluss darüber geben könnten, was vor dem Ausfall geschehen ist. Es besteht deshalb Bedarf für einen Server, der einen Mechanismus zum Speichern von Rücksetz- und Ausfall-Bildschirmänderungen auch für den Fall einer Unterbrechung der Stromversorgung umfasst. Die gespeicherten Anzeigebildschirme können dann später durch einen entfernten Administrator gelesen werden. Der gewünschte Mechanismus kann Anzeigebildschirm-Informationen während einer Stromversorgungsunterbrechung erhalten und selektiv Strom nur zu kritischen Einheiten innerhalb des Mechanismus zuführen. Dementsprechend ist ein Mechanismus erforderlich, der vorzugsweise in der Form einer Leiterplatte realisiert ist, die in ein Server- Gehäuse eingebaut werden kann. Die Leiterplatte ist vorzugsweise mit dem Server-Host verbunden und umfasst Medien zum Speichern von Bildschirminformationen aus dem Host, wobei sie diese Informationen auch dann erhalten kann, wenn die Stromversorgung für den Server unterbrochen wird.
  • Die Kommunikation zwischen einem entfernten Standort und einem Server erfolgt gewöhnlich über Text-basierte Verbindungsprotokolle, die allgemein als ANSI-Endgerätemulationsprotokolle bezeichnet werden (ANSI: American National Standards Institute). Obwohl Endgerätemulationsprotokolle eine bestimmte Funktionalitätsstufe vorsehen, werden vorzugsweise andere Protokolle und insbesondere Protokolle, die Anwendungsschicht-Protokolle wie etwa das Simple Network Management Protokoll ("SNMP") - ein Protokoll für die Kommunikation von Server-Verwaltungsinformation - unterstützen, auf einer PPP-Kommunikationsverbindung zwischen dem Server und dem entfernten Standort verwendet.
  • Wenn ein Server eine Leiterplatte mit einem System für die Kommunikation mit dem entfernten Standort unter Verwendung einer Vielzahl von Kommunikationsprotokollen umfasst, bestimmen vorzugsweise Subsysteme auf der Leiterplatte, welches der unterstützten Protokolle (d. h. Text-basiert, PPP, usw.) vom entfernten Standort verwendet wird, wenn dieser mit dem Server kommuniziert.
  • EP-A-0520766 gibt einen Server-Controller an, der umfasst:
  • eine Erfassungslogik, die mit einem Server verbunden wird, um das Vorhandensein von Anzeigedaten zu ermitteln, die von dem Server weitergeleitet werden, einen Controller-Speicher, der mit der Erfassungslogik verbunden ist, wobei der Controller-Speicher einen lokalen Grafikspeicher und einen Speicher für eine aktuelle Rücksetzabfolge umfasst,
  • wobei der lokale Grafikspeicher so ausgeführt ist, dass er einen aktuellen Anzeigebildschirm der Anzeigedaten speichert, und der Speicher für die aktuelle Rücksetzabfolge so ausgeführt ist, dass er eine Veränderung zwischen dem aktuellen Anzeigebildschirm der Anzeigedaten und einem vorangegangenen Anzeigebildschirm der Anzeigedaten während eines Zeitraums speichert, nach dem der Server eine erste Rücksetzung empfängt.
  • Gemäß der vorliegenden Erfindung ist ein derartiger Controller dadurch gekennzeichnet, dass
  • der Controllerspeicher einen Speicher für eine vorangegangene Rücksetzabfolge umfasst, der so ausgeführt ist, dass er die Veränderung zwischen dem aktuellen Anzeigebildschirm der Anzeigedaten und dem vorangegangenen Anzeigebildschirm der Anzeigedaten speichert, wenn der Server eine zweite Rücksetzung vor der ersten Rücksetzung empfängt, wobei
  • auf den Speicher für die vorangegangene Rücksetzabfolge von einem Endgerät zugegriffen wird, das von dem Server entfernt angeordnet ist, um auf dem Endgerät eine Abfolge von Videobildschirmveränderungen anzuzeigen, die auftreten, nachdem der Server die zweite Rücksetzung empfängt, wobei auf den Speicher für die aktuelle Rücksetzabfolge von dem Endgerät zugegriffen wird, um auf dem Endgerät eine Abfolge von Videobildschirmveränderungen anzuzeigen, die auftreten, nachdem der Server die erste Rücksetzung empfängt.
  • Vorzugsweise ist der Server-Controller auf einer Leiterplatte mit seitlichen Verbindungselementen ausgeführt, die mit einem EISA-Erweiterungsbus verbunden werden können. Der Server-Controller umfasst eine Erfassungslogik, die Schreibzyklen innerhalb eines Bildadressbereichs erfasst. Die Schreibzyklen werden initiiert, wenn Anzeigedaten zu einem ebenfalls auf dem Erweiterungsbus angeordneten Video-Controller weitergeleitet werden. Die Erfassungslogik schnüffelt also auf dem Erweiterungsbus nach Anzeigedaten und kopiert diese Anzeigdaten in einen Controller-Speicher.
  • Die vorliegende Erfindung umfasst weiterhin ein Verfahren zum Zugreifen auf eine Abfolge von Anzeigebildschirmen, die von einem Server zu einem Video-Controller weitergeleitet werden, wobei das Verfahren folgende Schritte umfasst:
  • Laden eines aktuellen Anzeigebildschirms von Anzeigedaten, die von dem Server zu einem Video-Controller weitergeleitet werden, in einen lokalen Grafikspeicher,
  • Vergleichen des aktuellen Anzeigebildschirms von Anzeigedaten mit einem vorangegangenen Anzeigebildschirm von Anzeigedaten, die vorher in den lokalen Grafikspeicher geladen wurden, um ein Bildschirmveränderungspaket zu erzeugen,
  • Wiederholen der Schritte des Ladens und Vergleichens für eine Abfolge von Anzeigebildschirmen, die als eine Vielzahl von Bildschirmänderungspaketen zusammengestellt sind, die während eines ersten Zeitraums unmittelbar von dem Ausfall des Servers und während eines zweiten Zeitraums unmittelbar nach dem Rücksetzen des Servers auftreten, und
  • Zugreifen auf die Vielzahl von Bildschirmveränderungspaketen mit einem Endgerät, das entfernt von dem Server angeordnet ist, um die Abfolge von Anzeigebildschirmen auf dem Endgerät anzuzeigen.
  • Der Controller-Speicher ist wie die Erfassungslogik auf der Leiterplatte des Server- Controllers ausgeführt und umfasst eine Vielzahl von Puffern. Zu dem Controller-Speicher weitergeleitete Anzeigedaten werden in einem Lokalbildpuffer erfasst, der die Anzeigedaten bildweise speichert. Ein vorangegangenes Bild bzw. ein vorangegangener Bildschirm der Anzeigedaten wird mit einem aktuellen Bild bzw. Bildschirm der Anzeigedaten verglichen, um eine mögliche Änderung anzugeben. Die auf der Server-Anzeige erfasste Änderung wird in Aktuelle-Abfolge-Puffern gespeichert, die ebenfalls mit dem Controller-Speicher assoziiert sind. Die Aktuelle-Abfolge-Puffer speichern drei Typen von Änderungen: eine Abfolge von Anzeigebildschirmänderungen, die vor einem Ausfall oder einer Rücksetzung des Servers auftreten, eine Abfolge von Anzeigebildschirmänderungen, die nach der letzten Rücksetzung des Servers auftreten, und eine Abfolge von Anzeigebildschirmänderungen, die nach einer Rücksetzung vor der letzten Rücksetzung auftreten. Durch die Speicherung von aktuellen und vorangegangenen Anzeigebildschirmänderungen (d. h. blue screens oder ABEND- Meldungen) kann ein Administrator die Ursachen für einen Server-Ausfall oder die Möglichkeit von weiteren Ausfällen bestimmen.
  • Ein vom dem Server entfernt angeordnetes Endgerät kann durch einen Administrator verwendet werden, um auf eine der verschiedenen Abfolgen der im Controller-Speicher gespeicherten Anzeigebildschirmänderungen zuzugreifen. Der Server-Controller kann verschiedene Typen von Kommunikationsprotokollen erkennen, die von dem entfernten Endgerät gesendet werden. Ein lokaler Prozessor in dem Server-Controller kann das gesendete Kommunikationsprotokoll erkennen, indem er für jedes Protokoll dedizierte Zustandsmaschinen verwendet. Je nach dem bzw. den gesendeten Zeichen kann die Zustandsmaschine bestimmen, ob das Kommunikationsprotokoll ein Text-basiertes Protokoll, ein PPP-Protokoll oder ein Vor-PPP-Protokoll ist. Die hier beschriebenen verschiedenen Protokolle sind dem Fachmann als häufig verwendete Protokolle zwischen Netzwerken bekannt, die zur Durchführung einer Außerbandverbindung etwa über eine Telefonleitung oder eine direkte serielle Verbindung verwendet werden. Es ist die Fähigkeit, viele Protokolle von einem entfernten Endgerät zu unterstützen und das eingehende Protokoll zu erkennen, die einen besonderen Vorteil schafft. Unabhängig von dem gesendeten Protokoll kann der Prozessor auf der Kommunikationsinformation arbeiten und diese an den Controller-Speicher weiterleiten. Der Controller-Speicher kann verschiedene Bildschirmanzeigeabfolgen in Reaktion auf die Anweisungen im Kommunikationsprotokoll absenden.
  • Die Erfassungslogik, der Controller-Speicher, der Prozessor und die Kommunikationseinheit werden zu einem System kombiniert, das auf einer Leiterplatte ausgeführt ist. Wenn die Stromversorgung zu dem Server unterbrochen werden sollte, wird auch die primäre Stromversorgung zu der Leiterplatte über den Erweiterungsbus unterbrochen. Die Leiterplatte ist jedoch derart konfiguriert, dass bestimmte zentrale Funktionen auch dann aufrechterhalten werden, wenn die Versorgung von dem Erweiterungsbus unterbrochen wird. Dazu verwendet die Leiterplatte eine sekundäre Stromversorgung bzw. Batterie, die Strom zu dem Prozessor und dem Controller-Speicher und selektiv zu der Kommunikationseinheit zuführt, wenn die Stromversorgung von dem Erweiterungsbus unterbrochen wird. Die Batterie ermöglicht die Aktivitäten des Prozessors und des Controller-Speichers für eine ausreichende Zeitdauer, damit die im Controller-Speicher gespeicherte Anzeigebildschirminformation erhalten wird. Wenn kein entferntes Endgerät auf die Kommunikationseinheit zugreift, wird die Stromzufuhr von der Batterie zu der Kommunikationseinheit unterbrochen. Dazu ist eine Trennungsschaltung vorgesehen, die einen unnötigem Verbrauch der Batterieleistung verhindert, wenn die Kommunikationseinheit nicht verwendet wird. Eine erste Trennungseinheit ist zwischen einer Ebene (oder einem Teil) der Leiterplatte mit dem Prozessor und dem Controller-Speicher und einer Ebene der Leiterplatte mit der Kommunikationseinheit angeordnet. Eine weitere Trennungseinheit ist zwischen der Ebene mit dem Prozessor und dem Controller und der Ebene mit der Erfassungslogik angeordnet. Die Trennungseinheiten dienen also nicht nur dazu, die Stromversorgung zwischen den Ebenen zu unterbrechen, sondern auch zwischen den Ebenen verlaufende Signalleitungen zu trennen. Die Unterbrechung der Stromversorgung und der Signale zwischen den Ebenen reduziert die Belastung der Batterie, sodass die zum Erhalten der gespeicherten Sequenzen von Anzeigebildschirmänderungen erforderliche Leistung während der Server-Auszeit maximiert wird.
  • Andere Aufgaben und Vorteile der Erfindung werden durch die folgende ausführliche Beschreibung mit Bezug auf die beigefügten Zeichnungen verdeutlicht.
  • Fig. 1 ist ein Blockdiagramm eines Host-Servers, der nachträglich mit einem Server- Controller, auf den ein entferntes Endgerät zugreifen kann, gemäß der vorliegenden Erfindung ausgestattet wurde,
  • Fig. 2a-2c zeigen drei Anzeigebildschirme mit Menüs, die der Server-Controller zu der Anzeige des entfernen Endgeräts in Reaktion auf einen Zugriff von dem Endgerät weiterleitet,
  • Fig. 3 zeigt Teile des Speicheradressraums und des E/A-Adressraums für den Bildspeicher und die Bildsteuerregister (innerhalb der Grafikkarte) von Fig. 1,
  • Fig. 4 ist ein detailliertes Blockdiagramm des Server-Controllers,
  • Fig. 5 ist ein Blockdiagramm von verschiedenen Puffern, die durch den Prozessor von Fig. 4 verwendet werden, um Abfolgen von Anzeigebildschirmen zu verarbeiten und zu speichern, die von der Server-CPU zu dem Erweiterungsbus gesendet werden,
  • Fig. 6a und 6b sind Flussdiagramme, die durch den Server-Controller durchgeführte Schritte zum Speichern von bestimmten Abfolgen von Anzeigebildschirmen wiedergeben,
  • Fig. 7 ist ein Flussdiagramm, das die Schritte des Prozessors von Fig. 4 zum Wiedergeben einer Rücksetzabfolge von Anzeigebildschirmen auf dem entfernten Endgerät angibt,
  • Fig. 8 ist ein Flussdiagramm, das die Schritte des Prozessors von Fig. 4 zum Wiedergeben einer Ausfallabfolge von Anzeigebildschirmen auf dem entfernten Endgerät angibt,
  • Fig. 9a-9c geben eine Abfolge von Anzeigen wieder, die als eine beispielhafte Abfolge von Ausfallanzeigebildschirmen wiedergegeben werden,
  • Fig. 10 ist ein Zeitdiagramm von verschiedenen EISA-Erweiterungsbussignalen, die zwei separate Bildschirmschreibzyklen angeben, in denen jeweils eine Busintrusion und keine Busintrusion auftreten,
  • Fig. 11 ist ein Flussdiagramm, das die Schritte des Server-Controllers zum Feststellen der verschiedenen durch das entfernte Endgerät verwendbaren Kommunikationsprotokolle zeigt,
  • Fig. 12 ist ein Zustandsdiagramm, das eine Textprotokoll-Zustandsmaschine zeigt, die zum Feststellen des von dem entfernten Endgerät gesendeten Textkommunikationsprotokolls verwendet wird,
  • Fig. 13 ist ein Zustandsdiagramm, das eine Vor-PPP-Protokoll-Zustandsmaschine zeigt, die zum Feststellen des von dem entfernten Endgerät gesendeten Vor-PPP- Kommunikationsprotokolls verwendet wird,
  • Fig. 14 ist ein Zustandsdiagramm, das eine PPP-Protokoll-Zustandsmaschine zeigt, die zum Feststellen des von dem entfernten Endgerät gesendeten PPP-Kommunikationsprotokolls verwendet wird,
  • Fig. 15 zeigt den Server-Controller, der auf einer Leiterplatte ausgeführt ist, die mit einem Erweiterbus verbunden werden kann,
  • Fig. 16 zeigt eine Vergleichslogik, die zum Trennen von Signalleitungen zwischen Leistungsebenen in der Leiterplatte von Fig. 15 verwendet wird, und
  • Fig. 17 zeigt Signale, die zum Verbinden von Signalleitungen und Leistung mit einer Kommunikationseinheits-Leistungsebene verwendet wird, während die Kommunikationseinheit ein Signal von einem entfernten Endgerät empfängt.
  • Die Erfindung kann verschiedenen Modifikationen und Alternativen unterworfen werden, wobei spezifische Ausführungsformen der Erfindung beispielhaft in den Zeichnungen gezeigt sind und im Folgenden ausführlich beschrieben werden.
  • Im folgenden wird auf das Blockdiagramm von Fig. 1 Bezug genommen, das ein Computersystem 10 zeigt. Das Computersystem 10 ist vorzugsweise ein System, das Dateien speichert und abruft, wobei es ein Datei-Server, ein Anwendungs-Server oder ein anderer Server in einem verteilten Computersystem sein kann. Das System 10 umfasst eine Host- CPU 12, die über einen CPU-Lokalbus mit einem Speicher-Controller 14 verbunden ist. Die CPU 12 umfasst eine Datenverarbeitungseinheit, die einen vorbestimmten Befehlssatz implementiert und unter anderem Grundfunktionen von Ausführungseinheiten, Steuer- /Zeiteinheiten und verschiedenen Registern aufweist. Die beispielhafte CPU 12 umfasst den von Inter Corp. hergestellten Pentium®-Prozessor.
  • Der Speicher-Controller 14 koordiniert die Übertragung von Daten zwischen dem CPU- Lokalbus und dem Systemspeicher 16. Der Speicher-Controller 14 reagiert auf verschiedene Adressierungstechniken und unterstützt verschiedene Speicherzellenarchitekturen innerhalb des Systemspeichers 16 wie etwa einen DRAM (Dynamic Random Access Memory) oder einen SRAM (Static Random Access Memory). Der Speicher-Controller 14 wird vorzugsweise synchron zu der CPU 12 betrieben, um eine maximale Übertragungsbandbreite zu und von dem Systemspeicher sicherzustellen. Gemäß einer Ausführungsform ist die CPU 12 mit einem PCI-Bus (PCI: Peripherals Component Interface) verbunden. Eine Busschnittstelleneinheit 18 dient als Busbrücke zwischen dem PCI-Bus und einem Erweiterungsbus. Die Busschnittstelleneinheit 18 umfasst einen Puffer zum Steuern der Übertragung von Daten und Adresssignalen zwischen dem PCI-Bus und dem Erweiterungsbus. Die Busschnittstelleneinheit 18 sieht also eine Schnittstelle für Daten vor, die über die Busse mit möglicherweise unterschiedlichen Taktgeschwindigkeiten und verschiedenen Protokollen übertragen werden. Vorzugsweise umfasst der Erweiterungsbus eine EISA-Buskonfiguration (EISA: Extended Industry Standard Architecture).
  • Mit dem Erweiterungsbus ist eine Grafikkarte 20 verbunden. Die Grafikkarte 20 wird verwendet, um eine damit verbundene elektronische Anzeige 24 zu steuern. Der Grafikkarte 20 ist eine allgemein gebräuchliche Grafikkarte wie etwa eine VGA-Grafikkarte. Die Grafikkarte 20 reagiert auf Adressen auf dem Erweiterungsbus und leitet entsprechende Daten zu dem Bildspeicher 22 weiter. Der Bildspeicher 22 speichert die Bilddaten der Grafikkarte für die Anzeige auf der elektronischen Anzeige 24. Die Anzeige 24 umfasst eine Konsole oder einen Monitor, der Bilddaten empfangen kann, wobei eine bevorzugte Anzeige 24 eine Kathodenstrahlröhre ("CRT") oder alternativ hierzu eine Flüssigkristallanzeige ("LCD") ist. Die Grafikkarte 20 und der Bildspeicher 22 werden im Folgenden gemeinsam als Bildsubsystem bezeichnet.
  • Der Server 10 wird mit einem Mechanismus zum Speichern von Sequenzen von Anzeigebildschirmänderungen vor einem Ausfall des Servers 10 sowie von Sequenzen von Anzeigebildschirmänderungen nach dem Rücksetzen des Servers 10 ausgestattet. Dieser Mechanismus darf nicht von einer Unterbrechung der Stromversorgung für den Server betroffen sein und muss die gespeicherten Anzeigebildschirme zu dem entfernten Endgerät weiterleiten können. Ein derartiger Mechanismus wird durch den Server-Controller 26 vorgesehen. Der Server-Controller 26 ist innerhalb des Gehäuses des Servers 10 befestigt und kann mit dem Erweiterungsbus verbunden werden, wobei auf den Controller 26 von einem Endgerät aus zugegriffen werden kann, das von dem Server 10 entfernt ist. Gemäß einer bevorzugten Ausführungsform ist das entfernte Endgerät 28 über eine Telefonleitungs- Kommunikationseinrichtung wie etwa einem Modem im entfernten Endgerät 28 und einem Modem im Server-Controller 26 mit dem Server-Controller 26 verbunden. Das entfernte Endgerät 28 umfasst eine Anzeigevorrichtung (z. B. eine CRT) und eine Eingabeeinrichtung (z. B. eine Tastatur).
  • Gemäß einer Ausführungsform wird der Server-Controller 26 mit einer Software der Compaq Computer Corp. betrieben. Insbesondere bietet Compaq ein Softwareprodukt mit der Bezeichnung Compaq Insight Manager ("CIM") an, das auf dem entfernten Endgerät 28 berieben werden kann. CIM kann auf Firmware zugreifen, die in den Server-Controller 26 geladen ist, um z. B. die Wiedergabe der verschiedenen im Server-Controller 26 gespeicherten Anzeigebildschirmänderungen durchzuführen.
  • Die Hardware- und Firmware-Funktionen des Server-Controllers 26 machen den entfernten Zugriff und die Steuerung durch ein mit CIM ausgestattetes entferntes Endgerät verfügbar. Die Hardware und der assoziierte Code, die zu dem Server-Controller 26 hinzugefügt werden, erlauben es dem Systemadministrator, sich in den Server-Controller 26 einzuwählen, nachdem der Server 10 ausgefallen ist, und danach mit dem Server-Controller 26 zu kommunizieren, um die Abfolge der Anzeigebildschirmänderungen, die vor dem Ausfall und nach dem Rücksetzen aufgetreten ist, auf der Anzeige 24 zu betrachten.
  • Die Firmware bzw. der Code in dem Server-Controller 26 ist als Konsolen-Anwendungscode für die Kommunikation mit dem entfernten Endgerät 28 vorgesehen. Fig. 2a ist eine Wiedergabe des anfänglichen Menübildschirms, den die Konsolenanwendung auf dem entfernten Endgerät 28 anzeigt. Die Bildschirmanzeige wird angezeigt, wenn sich der Systemadministrator in den Server-Controller 26 einwählt. Der Administrator kann eines der Menüelemente wählen. Wenn er das Menüelement vier wählt, kann der Administrator auf seinem entfernten Endgerät 28 die Abfolge der Anzeigebildschirme sehen, die in dem Server-Controller 26 gespeichert ist. Es können drei unterschiedliche Abfolgen von Anzeigebildschirmänderungen wiedergegeben werden: (i) eine Abfolge von Anzeigebildschirmen, die nach einer vorangegangenen Rücksetzung des Servers 10 auftreten, (ii) eine Abfolge von Anzeigebildschirmen, die nach einer aktuellen Rücksetzung des Servers 10 auftreten, und (iii) eine Abfolge von Anzeigebildschirmen, die vor einem Ausfall des Servers 10 auftreten. Die zuvor genannten Abfolgen der Anzeigebildschirme werden hier als aktuelle Rücksetzabfolge, vorangegangene Rücksetzabfolge und Ausfallabfolge (oder allgemein als "Wiedergabeabfolgen") bezeichnet:
  • Fig. 2b ist eine Bildschirmanzeige eines Menübildschirms, die der Systemadministrator verwenden kann, um den Server-Controller 26 zur Anzeige von einer der zuvor genannten Sequenzen anzuweisen. Fig. 2c ist eine Bildschirmanzeige eines Menübildschirms, das der Systemadministrator verwendet, um den Server-Controller 26 zum Starten, Anhalten oder Ändern der Geschwindigkeit der Wiedergabe von der aktuellen Rücksetzabfolge, der vorangegangenen Rücksetzabfolge oder der Ausfallabfolge anzuweisen.
  • Der aktuelle Rücksetzabfolge umfasst eine Abfolge von Anzeigebildschirmänderungen, die unmittelbar nach der letzten Rücksetzung des Servers 10 aufgetreten sind. Die vorangegangene Rücksetzabfolge umfasst eine Abfolge von Anzeigebildschirmänderungen, die unmittelbar nach einer Rücksetzung vor der letzten Rücksetzung des Servers 10 aufgetreten sind. Die Ausfallabfolge umfasst eine Abfolge von Anzeigebildschirmänderungen, die vor einer Rücksetzung, einem Ausfall oder einer einem Herunterfahren des Servers 10 aufgetreten sind. Die Anzahl der Anzeigebildschirmänderungen, die der Server- Controller 26 vor einer Rücksetzung oder einem Herunterfahren des Servers 10 für eine Ausfallabfolge oder nach einer vorangegangenen oder aktuellen Rücksetzabfolge speichert, wird durch die Größe des im Server-Controller verfügbaren Speichers für die bestimmte Wiedergabesequenz bestimmt.
  • Im Folgenden wird auf Fig. 3 Bezug genommen, die Teile des Speicheradressraums und des Ein-/Ausgabe-Adressraums im Server 10 zeigt. Die Speicheradressen von 0xB0000 bis 0xBFFFF sind für Bildpuffer im Bildspeicher 22 reserviert. Die Ein-/Ausgabeadressbereiche von 0x03B4 bis 0x03BA und 0x03C0 bis 0x03DA sind für Bildsteuerregister in der Grafikkarte 20 vorgesehen. Die CPU 12 schreibt Werte in die Bildsteuerregister, um verschiedene Aspekte der Anzeige 24 zu steuern. Der Bildpuffer-Speicheradressbereich und der Bildsteuerregister-E/A-Adressebereich werden hier gemeinsam als Bildadressbereiche oder Adressbereiche für die zu dem Bildsubsystem gesendeten Daten bezeichnet.
  • Die Anzeige 24 ist im Textmodus in eine Matrix aus Reihen und Spalten organisiert. Zum Beispiel umfasst eine übliche Konfiguration des Anzeigebildschirms 25 Reihen mal 80 Spalten. Das heißt, es sind 2000 (25 · 80) Zeichenpositionen auf der Anzeige 24 verfügbar. Jede Position auf der Anzeige 24 ist mit einem Wort (d. h. zwei Bytes) im Bildspeicher assoziiert. Das niedrige Byte des Wortes enthält den Zeichenwert (wie etwa 0x41 für das Zeichen "A" im ASCII-Zeichensatz), und das hohe Byte des Wortes enthält ein assoziiertes Attribut (wie etwa die Farbe, die Vordergrund- und Hintergrundintensität, ein Blinken des Zeichens usw.). Die CPU 12 schreibt Werte an den entsprechenden Bildpufferpositionen im Bildspeicher 22, um die gewünschten Zeichen und Attribute auf der Anzeige 24 anzuzeigen. Die Bilddaten in dem Bildpuffer, die Zeichen und Attribute für die Anzeige umfassen, werden hier als Anzeigedaten bezeichnet. In dem vorstehenden Beispiel werden 4000 Bytes (2000 Positionen x 2 Bytes pro Position - eines für das Zeichen und eines für das Attribut) des Bildpuffers verwendet, um Daten für einen ganzen Anzeigebildschirm zu speichern.
  • Die folgenden drei Beispiele zeigen einige der vielen Nutzungsmöglichkeiten der Bildsteuerregister, deren Adressen in dem E/A-Adressraum reserviert sind. Erstens schreibt die CPU 12 in die Bildsteuerregister (d. h. in den Adressbereichen 0x03B4 bis 0x03BA oder in den Adressebereichen 0x03C0 bis 0x03DA), um z. B. die Position und die Attribute des Cursors auf der Anzeige 24 zu steuern. Zweitens schreibt die CPU 12 in die Bildsteuerregister, um z. B. den Bildmodus vom Farbmodus in den Monochrommodus oder umgekehrt zu wechseln. Drittens können die Bildsteuerregister eine Startadresse in dem Bildspeicher 22 spezifizieren, an der mehrere Anzeigebildschirme gespeichert werden können. In dem dritten Beispiel wird angenommen, dass der Bildspeicher 22 mehr Speicherpositionen enthält als zum Speichern von einem Bildschirminhalt der Anzeigedaten erforderlich sind. Wenn man annimmt, dass der Bildspeicher 22 eine Kapazität von 64 KB aufweist (d. h. 64 KB für die Bildpuffer verfügbar sind), dann werden möglicherweise nur 400 Bytes des Bildpuffers zum Speichern eines Bildschirmes der Anzeigedaten verwendet. Der Bildpuffer kann also gleichzeitig mehrere Sätze von Anzeigedaten speichern. Die CPU 12 schreibt in die Bildsteuerregister, um die Startadresse im Bildspeicher 22 für den ersten Satz von Anzeigedaten für die Wiedergabe auf der Anzeige 24 anzugeben. Informationen zu Grafikkarten und insbesondere zu VGA-Grafikkarten, die Bildsteuerregister zum Durchführen der oben genannten beispielhaften Steuerfunktionen verwenden, sind unter anderem in Cirrus Logic Corp., CL-GD542x enthalten.
  • Die Grafikkarte 20 decodiert die auf dem Erweiterungsbus (vorzugsweise einem EISA-Bus) erzeugten Adressen und reagiert auf Buszyklen in den Bildadressbereichen. Die Grafikkarte 20 sendet nicht nur die im Bildspeicher 22 gespeicherten Anzeigedaten an die Anzeige 24, sondern steuert auch die Anzeige 24 in Reaktion auf Daten, die durch die CPU 12 in die Bildsteuerregister geschrieben werden. Der Bildspeicher enthält also Zeichen- und Attributinformation, während die Bildsteuerregister Informationen für die Steuerung der Anzeige 24 enthalten.
  • Ähnlich wie die Grafikkarte 20 decodiert auch der Server-Controller 26 die Adressen auf dem Erweiterungsbus, um Schreibvorgänge in das Bildsubsystem festzustellen. Wenn er einen Schreibvorgang in die Bildadressbereiche feststellt, speichert der Server-Controller 26 die geschriebenen Daten in den Bildadressbereichen innerhalb des Server-Controller 26. Diese Operation wird als "Schnüffeln" bezeichnet. Das heißt, der Server-Controller 26 erhält einen oder mehrere Bildschirme von Anzeigedaten, die für ein anderes Subsystem gedacht sind (z. B. für das Bildsubsystem 20 und 22). Die Daten werden in den Server-Controller 26 kopiert, sodass der Server-Controller 26 eine Spiegelkopie der Information in den Bildpuffern des Bildspeichers 22 sowie der Information in den Bildsteuerregistern der Grafikkarte 20 enthält. Das Schnüffeln auf dem Erweiterungsbus nach digitalen Signalen im Bildadressbereich erlaubt das Speichern von Kopien, obwohl die CPU 12 nur einen einzelnen Schreibvorgang in das Bildsubsystem durchführt. Es ist wichtig, dass das Schnüffeln durch den Server-Controller 26 in einer nicht-intrusiven Weise durchgeführt wird. Die für das Bildsubsystem gedachten Daten schreiten zu dem Bildsubsystem fort und werden durch den Server-Controller 26 weder modifiziert noch entfernt.
  • Im Folgenden wird auf Fig. 4 Bezug genommen, die ein detailliertes Blockdiagramm des Server-Controller 26 zeigt. Der Server-Controller 26 umfasst eine Erfassungslogik 30, die mit dem Erweiterungsbus verbunden ist. Der Controller-Speicher 32 ist über einen Controller- Bus mit einer Erfassungslogik 30 verbunden. Die Erekennungslogik 30 umfasst kombinatorische und sequentielle Logikelemente wie sie etwa in PAL-Schaltungen (PAL: Programmable Array Logic) vorgesehen sind. Details zu der Steuerlogik 40, den Adresspuffern 42 und den Datenempfängern 44 werden nach einer Erläuterung ihrer Relevanz gegeben. Insbesondere wird die Bedeutung der drei Einheiten in der Erfassungslogik 30 deutlicher, wenn man die Fähigkeiten der verschiedenen Komponenten des Server- Controllers 26 und die Bedeutung des Controller-Speichers 32 sowie der verschiedenen Puffer darin betrachtet. Deshalb werden die Einheiten 40, 42 und 44 erst nach einer Erläuterung der Wiedergabesequenzen und der Speicherung dieser Sequenzen durch die verschiedenen Puffer beschrieben.
  • Als Teil des Server-Controllers 26 ist ein Prozessor 34 erforderlich, um die Information auf dem Controller-Bus zu koordinieren. Dabei handelt es sich entweder um Information zwischen der Erfassungslogik 30 und dem Controller-Speicher 32 oder um Information zwischen der Kommunikationseinheit 36 und dem Controller-Speicher 32. Der Prozessor 34 umfasst einen Mikroprozessor oder Mikrocontroller, der auf einen Anweisungssatz reagiert und z. B. eine Ausführungseinheit, einen Speicher Ein-/Ausgabegeräte und einen oder mehrere Register umfasst. Der Prozessor 34 ist ein Mikroprozessor, der für eingebettete Systemanwendungen verwendet wird. Der Controller-Speicher 32 umfasst eine Vielzahl von digitalen Speicherelementen. In einer Ausführungsform umfasst der Controller-Speicher 32 einen pseudostatischen RAM. Die Kommunikationseinheit 36 ist eine Einrichtung, die mit dem entfernten Endgerät 28 kommunizieren kann, das von dem Server-Controller 26 entfernt ist. Die Kommunikationseinheit 36 reagiert auf ein analoges Anrufsignal (ARNG), das von dem entfernten Endgerät 28 gesendet wird, indem es ein Kommunikationssignal (COMM. SIG) zurück zu dem entfernten Endgerät 28 sendet. Vorzugsweise umfasst die Kommunikationseinheit 36 ein Modem. Die Kommunikationseinheit umfasst weiterhin einen seriellen Anschluss, der mit dem Prozessor 34 verbunden ist, und ein Modem, das mit dem seriellen Anschluss extern zu dem Server-Controller 26 verbunden ist, um mit dem entfernten Endgerät 28 zu kommunizieren.
  • Der Prozessor 34 speichert die Wiedergabeabfolgen in dem Controller-Speicher 32. Der Prozessor 34 könnte die Wiedergabeabfolgen der Anzeigedaten für einen vollständigen Satz von Anzeigebildschirmen in dem Controller-Speicher 32 speichern. Dies wäre jedoch eine sehr ineffiziente Nutzung des Controller-Speichers 32, sodass die Anzahl der im Controller- Speicher 32 für die Wiedergabeabfolgen gespeicherten Anzeigebildschirme relativ klein wäre. In der vorliegenden Erfindung verarbeitet der Prozessor 34 die Anzeigedaten in vorteilhafter Weise, indem er die Wiedergabeabfolgen als eine Abfolge von "Anzeigebildschirmänderungen" anstatt als eine Abfolge von vollständigen Anzeigebildschirmen speichert. Die Menge der Anzeigedaten, die Änderungen eines Bildschirms wiedergeben, ist wesentlich kleiner als die Menge der Anzeigedaten, die vollständige Bildschirme wiedergeben. Die Abfolge der aktuellen Rücksetzbildschirme, die Abfolge der vorangegangenen Rücksetzbildschirme und die Abfolge der Ausfallbildschirme (d. h. die Wiedergabeabfolgen) werden also als Änderungen gegenüber einem Bezugs- bzw. Startbildschirm wiedergegeben.
  • Im Folgenden wird auf Fig. 5 Bezug genommen, die verschiedene Puffer innerhalb des Controller-Speichers 32 zeigt. Diese Puffer werden durch den Prozessor 34 verwendet, um die Wiedergabeabfolgen zu verarbeiten und zu speichern. Ein Lokalbildpuffer 48 enthält die während der Schreibzugriffe auf den Bildspeicher 22 geschnüffelten Anzeigedaten. Das heißt, die Erfassungslogik 30 schnüffelt auf dem Erweiterungsbus und speichert die für das Bildsubsystem bestimmten Daten in dem Lokalbildpuffer 48. Ein Schnappschusspuffer 50 enthält eine durch den Prozessor 34 erstellte Kopie bzw. einen Schnappschuss der aktuellen Anzeigedaten von dem Lokalbildpuffer 48. Ein Temporärschnappschusspuffer 52 enthält ebenfalls einen Schnappschuss der aktuellen Anzeigedaten von dem Lokalbildpuffer 48. Der Temporärschnappschusspuffer 52 wird verwendet, um die Wiedergabeabfolgen für den Fall, dass Bildschirmänderungen und insbesondere Bildschirmblätterungen schnell vorgenommen werden, lesbarer zu machen.
  • Ein Aktuelle-Rücksetzabfolge-Puffer 54 enthält Informationen, die mit der letzten Rücksetzabfolge assoziiert sind. Das heißt, der Aktuelle-Rücksetzabfolge-Puffer 54 enthält die Anzeigebildschirmänderungen, die mit der letzten Rücksetzung beginnen und enden, wenn der Aktuelle-Rücksetzabfolge-Puffer 54 voll wird. Anzeigebildschirmänderungen, die auftreten, nachdem der Aktuelle-Rücksetzabfolge-Puffer 54 voll ist, werden ignoriert. Der Vorangegangene-Rücksetzabfolge-Puffer 56 enthält Informationen, die mit der Rücksetzabfolge vor der letzten Rücksetzabfolge assoziiert sind. Das heißt, der Vorangegangene-Rücksetzabfolge-Puffer 56 enthält die Anzeigebildschirmänderungen, die mit einer Rücksetzung vor der aktuellsten Rücksetzung beginnen und enden, wenn der Vorangegnene-Rücksetzabfolge-Puffer 56 voll wird oder die nächste Rücksetzung vorgenommen wird. Anzeigebildschirmänderungen, die auftreten, nachdem der Vorangegangene-Rücksetzabfolge-Puffer 56 voll ist, werden ignoriert.
  • Ein Aktuelle-Abfolge-Puffer 58 enthält so viele der jüngsten Anzeigebildschirmänderungen, wie in den Puffer 58 passen. Ein Ausfallabfolge-Puffer 60 enthält Information, die mit der Ausfallabfolge direkt vor der letzten Rücksetzung des Servers 10 assoziiert ist. Das heißt, der Ausfallabfolge-Puffer 60 enthält die Anzeigebildschirmänderungen, die mit der letzten Rücksetzung enden, wobei er so viele der Anzeigebildschirmänderungen direkt vor der letzten Rücksetzung enthält, wie in den Puffer passen.
  • Der Ausfallstart-Puffer 64 enthält Anzeigedaten einer Bildschirmanzeige, die mit dem Ausfallabfolge-Puffer 60 assoziiert ist. Der Ausfallstart-Puffer 64 enthält das anfängliche Bildschirmbild (bzw. den "Bezugs"-Anzeigebildschirm) in der Ausfallwiedergabeabfolge und folglich das Bildschirmbild, das der ersten Änderungen in dem Ausfallabfolge-Puffer 60 unterzogen wird. Zu Beginn ist der Ausfallstart-Puffer 64 ein leerer Bildschirm. Wenn der Ausfallabfolge-Puffer 60 überläuft, werden die Überlaufänderungen zu Zeichen und Attributen umgewandelt und in dem Ausfallstart-Puffer 64 gespeichert. Auf diese Weise sieht der Ausfallstart-Puffer 64 ein nützlicheres anfängliches Bildschirmbild vor, wenn nur einige wenige Zeichen auf dem Bildschirm viele Male über eine relativ lange Zeitdauer geändert werden. Der Aktuellstart-Puffer 62 hat dieselbe Funktion wie der Aktuellabfolge-Puffer 58.
  • Es ist zu beachten, dass eine Rücksetzung oder ein Ausfall des Servers 10 keine Rücksetzung des Server-Controllers 26 verursacht. Der Server-Controller 26 stellt jedoch Informationen zu den folgenden Rücksetzungsereignissen fest: Einschalten des Servers 10, Ausschalten des Servers 10 und Rücksetzen des Erweiterungsbusses. Insbesondere reagiert der Server-Controller 26 nicht auf das RSTDRV-EISA-Bussignal, sondern stellt lediglich die Aktivierung von RSTDRV fest. Wenn eine Rücksetzung auftritt oder wenn die Stromversorgung zu dem Server 10 unterbrochen wird, hält der Server-Controller 26 trotzdem den Betrieb aufrecht, um die Wiedergabeabfolgen für die Anzeige auf dem entfernten Endgerät 28 zu erhalten. Eine sekundäre Stromversorgung ist auf derselben Leiterplatte vorgesehen, auf der der Server-Controller 26 untergebracht ist, um sicherzustellen, dass die Wiedergabeabfolgen aufrechterhalten werden. Wenn gewünscht, kann der Server-Controller 26 unter Softwaresteuerung zurückgesetzt werden, indem eine vorbestimmte Sequenz von Werten in vorbestimmte Registerpositionen des Server-Controllers 26 geschrieben werden, auf die durch die CPU 12 zugegriffen werden kann.
  • Wenn eine Rücksetzung des Servers 10 auftritt, werden Zeiger geändert, sodass der Aktuelle-Rücksetzabfolge-Puffer 54 zu dem Vorangegangene-Rücksetzabfolge-Puffer 56 wird, wobei der Vorangegangene-Rücksetzabfolge-Puffer 56 gelöscht wird und zu dem Aktuelle-Rücksetzabfolge-Puffer 56 wird. Eine Rücksetzung des Servers veranlasst auch, dass der Aktuelle-Abfolge-Puffer 58 zu dem Ausfallabfolge-Puffer 60 wird, wobei der Ausfallabfolge-Puffer 60 gelöscht wird und zu dem Aktuelle-Abfolge-Puffer 58 wird. Weiterhin wird bei einer Rücksetzung der Aktuellstart-Puffer 62 zu dem Ausfallstart-Puffer 64, wobei der Ausfallstart-Puffer 64 gelöscht wird und zu dem Aktuellstart-Puffer 62 wird.
  • Der Server-Controller 26 wird konfiguriert, um eine automatische Wiederherstellungsrücksetzung ("ASR") des Servers 10 durchzuführen. Wenn der Server-Controller 26 einen Ausfall des Servers 10 feststellt, wartet er für eine vorbestimmte Zeitdauer (gewöhnlich 30 Sekunden) und setzt dann den Server 10 zurück.
  • Im Folgenden wird eine beispielhafte Sequenz einer Rücksetzung, eines folgenden Ausfalls und einer folgenden Rücksetzung eines Servers 10 beschrieben. Der Server 10 wird eingeschaltet, wodurch eine Rücksetzung des Servers 10 veranlasst wird. Nach der Rücksetzung löscht der Server-Controller 26 Information aus dem Vorangegangene- Rücksetzabfolge-Puffer 56, löscht den Ausfallabfolge-Puffer 60 und löscht den Ausfallstart- Puffer 64. Während der Löschungen der Puffer 56, 60 und 64 werden der Vorangegangene- Rücksetzabfolge-Puffer 56 und der Aktuelle-Rücksetzabfolge-Puffer 54 getauscht und werden gleichzeitig die Puffer 60 und 58 sowie die Puffer 64 und 62 getauscht. Die Rücksetzung veranlasst also eine Verschiebung der Informationen aus den Puffern 54, 58 und 62 zu jeweils den Puffern 56, 60 und 64. Bei der Rücksetzung beginnt die Software 10 mit der Durchführung der POST-Operationen und der Anzeige der Zeichen auf der Anzeige 24. Der Server-Controller 26 speichert die Anzeigebildschirmänderungen, die mit den POST- Operationen in dem Aktuelle-Rücksetzabfolge-Puffer 54 und dem Aktuelle-Abfolge-Puffer 58 assoziiert sind. Sobald der Aktuelle-Rücksetzabfolge-Puffer 54 voll wird, stoppt der Server- Controller 26 das Speichern von Änderungen. Wenn der Aktuelle-Abfolge-Puffer voll wird, entfernt der Server-Controller 26 die ältesten Anzeigebildschirmänderungen aus dem Aktuelle-Abfolge-Puffer 58, um Platz für die neuen Anzeigebildschirmänderungen zu machen, und modifiziert den Aktuellstart-Puffer 62, um die alten Anzeigebildschirmänderungen zu berücksichtigen. Der Puffer 58 wird ähnlich wie ein FIFO-Register betrieben, wobei die Überlaufinformation zu dem Puffer 62 gesendet wird. Wie weiter unten beschrieben, geben eine Kombination von Puffern 58 und 62 (nach dem Tausch mit den Puffern 60 und 64) die gesamte Ausfallabfolge der Anzeigebildschirme vor dem letzten Ausfall wieder.
  • Wenn ein Ausfall des Servers 10 auftritt, werden in Übereinstimmung mit dem zweiten Schritt in dem dreischrittigen Rücksetz-Ausfall-Rücksetz-Beispiel eine Abfolge von Anzeigebildschirmen auf der Anzeige 24 angezeigt, die diesen Ausfall und möglicherweise die Ursache des Ausfalls angeben. Diese Anzeigebildschirme werden automatisch als Teil von vielen Server-Betriebssystemen angezeigt und werden bei der Novell Netware als ABEND- Meldungen und bei Microsoft NT als blue screens bezeichnet. Dreißig Sekunden nach einem Ausfall führt der Server-Controller 26 eine ASR-Rücksetzung auf dem Server 10 durch. Die zweite Rücksetzung innerhalb des Rücksetz-Ausfall-Rücksetz-Beispiels findet also während der ASR-Rücksetzung statt. Diese Rücksetzung ermöglicht ähnlich wie die erste Rücksetzung, dass der Server-Controller 26 die Puffer 56, 60 und 64 löscht und die Puffer 56, 60 und 64 jeweils mit den Puffern 54, 58 und 62 tauscht. Ähnlich wie bei der ersten Rücksetzung leitet der Server 10 wiederum POST-Operationen ein und leitet Zeichen an die Anzeige 24 weiter. Der Server-Controller 26 speichert die nach der Rücksetzung aufgrund der POST-Operation auftretenden Anzeigebildschirmänderungen in dem Aktuelle-Rücksetzabfolge-Puffer 54 und dem Aktuelle-Abfolge-Puffer 58. Der Vorangegangene-Rücksetzabfolge-Puffer 56 enthält jetzt die Abfolge der Anzeigebildschirmänderungen, die mit der anfänglichen Rücksetzung beim Einschalten assoziiert sind, und der Ausfallabfolge-Puffer 60 sowie der Ausfallstart-Puffer 64 enthalten jetzt die Abfolge der Anzeigebildschirmänderungen, die zu diesem Ausfall führen. Im Gegensatz zu der ursprünglichen Rücksetzung, die in dem Vorangegangene-Rücksetzabfolge-Puffer 56 enthalten ist, enthält der Aktuelle-Rücksetzabfolge-Puffer 54 die mit der zweiten Rücksetzung assoziierte Rücksetzung (bzw. ASR-Rücksetzung).
  • Es werden Anzeigebildschirmänderungen und keine vollständigen Anzeigebildschirme als Pakete in dem Aktuelle-Rücksetzabfolge-Puffer 54, dem Vorangegangene-Rücksetzabfolge- Puffer 56, dem Aktuelle-Abfolge-Puffer 58 und dem Ausfallabfolge-Puffer 60 gespeichert. Jedes Paket in dem Puffern 54, 56, 58 und 60 besteht aus einer Reihe von Bytes mit einer spezifizierten Länge. Die Pakete werden in Übereinstimmung mit einem "Typ" klassifiziert, und der Pakettyp wird anhand seiner Länge zusammen mit dem ersten Byte (Byte 0) und dem zweiten Byte (Byte 1), wenn die Paketlänge länger als eins ist, bestimmt. Die Pakettypen und die resultierende Aktion des Server-Controllers 26 für das entfernte Endgerät 28 sind die folgenden:
  • Pakettyp Aktion
  • Graphics mode: Anzeigen einer Meldung, die angibt, dass sich der Host im Grafikmodus befindet
  • Bad text mode: Anzeige einer Meldung, die angibt, dass sich der Host in einem nicht unterstützten Textmodus befindet
  • Server off: Anzeigen einer Meldung, die angibt, dass der Host ausgeschaltet ist
  • Screen scroll up: Aufwärtsblättern des Bildschirms um eine bestimmte Anzahl von Zeilen
  • Clear screen: Löschen des Bildschirms
  • Move cursor: Bewegen des Cursors
  • Valid text mode: Bestätigen einer gültigen Textmodusänderung
  • Single character: Einmaliges Anzeigen eines Zeichens
  • Repeat character: Mehrmaliges Anzeigen eines Zeichens mit einer bestimmten Anzahl von Wiederholungen
  • Display string: Anzeigen einer mit Null endenden Kette
  • Das für jeden oben aufgelisteten Pakettyp verwendete Binärcodeformat ist wie folgt:
  • Die Bytes 3 und 4 und alle folgenden Bytes in dem display string-Pakettyp enthalten eine mit Null endende Kette für die Anzeige. Diese Kette muss wenigstens zwei Zeichen lang sein und eine endende Null aufweisen, sodass ihre Länge größer als 5 ist und durch den Längentest von einem repeat character-Paket unterschieden werden kann. Wenn die Änderung nur ein Zeichen enthält, dann wird die Änderung als ein repeat character-Paket mit einer Wiederholungszahl von eins oder als single character-Paket gespeichert.
  • Die Funktion der verschiedenen in Fig. 5 gezeigten Puffer im Controller-Speicher 32 wird durch die folgende Erläuterung des Flussdiagramms von Fig. 6a und 6b verdeutlicht. Fig. 6a und 6b sind Flussdiagramme, die die durch den Prozessor 34 durchgeführten Schritte zum Verarbeiten von Anzeigedaten aus den Puffern 48 bis 52 sowie zum Speichern von Wiedergabeabfolgen in den Puffern 54-64 zeigen.
  • Im Folgenden wird auf Fig. 6a Bezug genommen, die den Schritt 70 des Prozessor 34 darstellt, in dem der Lokalbildpuffer 48 geprüft wird, um zu sehen, ob Bildmodusänderungen über die Bildsteuerregister vorgenommen wurden. Beispiele der Bildmodusänderungen sind etwa ein Wechsel zwischen dem Grafik- und dem Textmodus oder eine Änderung in der Bildschirmgröße, d. h. eine Änderung in er Anzahl der Reihen und/oder Spalten einer Anzeigeeinheit. Bevor die Wiedergabeabfolgen gespeichert werden können, muss der Prozessor 34 in Schritt 72 bestimmen, ob der aktuelle Bildmodus ein gültiger Textmodus ist. Wenn nicht, wartet der Prozessor 34, bis der Bildmodus ein gültiger Textmodus wird, bevor der Prozessor 34 in Schritt 74 den aktuellen Anzeigesatz (durch die Startadresse in den Bildsteuerregistern angegeben) aus dem Lokalbildspeicher 48 in den Temporärschnappschusspuffer 52 kopiert.
  • Der Prozessor 34 vergleicht dann in Schritt 76 den Inhalt des Temporärschnappschusspuffers 52 mit dem Inhalt des Schnappschusspuffers 50, um zu bestimmen, ob ein Bildschirmblättern aufgetreten ist. Wenn ein Blättern aufgetreten ist, speichert der Prozessor 34 in Schritt 78 ein Bildschirmblätterpaket in den entsprechenden Puffern.
  • Der Prozessor 34 kann dann mit einer Sequenz von Schritten beginnen, die am Anfang des Schnappschusspuffers 50 und des Temporärschnappschusspuffers 52 beginnt und diese auf Änderungen vergleicht. Der Prozessor 34 vergleicht in Schritt 80 die aktuellen Bytes der Puffer 50 und 52 und sucht nach einer Änderung. Wenn in Schritt 82 eine Änderung gefunden wird, aktualisiert der Prozessor 34 in Schritt 84 den Schnappschusspuffer 50 mit dieser Änderung. Der Prozessor 34 wandelt dann in Schritt 86 die Änderung zu einem Paket um. Diese auf ein Paket angewandte Änderung wird dann in Schritt 88 selektiv in die aktuellen Puffer 54, 58 und 62 platziert. Danach kehrt der Prozessor 34 zu Schritt 80 zurück um nach einer anderen Änderung zu suchen, wobei er die Schritte 82, 84, 86 und 88 wiederholt, bis der Prozessor 34 in Schritt 82 bestimmt, dass keine Änderungen zwischen den Anzeigedaten in den Puffern 50 und 52 mehr vorhanden sind.
  • Sobald der Prozessor 34 in Schritt 82 bestimmt hat, dass keine weiteren Änderungen mehr vorhanden sind, bestimmt der Prozessor 34 in Schritt 90, ob der Cursor die Position geändert hat. Wenn dies der Fall ist, speichert der Prozessor 34 in Schritt 92 ähnlich wie in Schritt 88 ein move cursor-Paket in den Aktuellpuffern 54, 58 und 62. Wenn sich der Cursor nicht geändert hat, wird eine Paketneuschreibung an der vorhandenen Cursorposition durchgeführt.
  • Im Folgenden wird auf Fig. 6b Bezug genommen, die eine ausführlichere Beschreibung der Schritte zur Durchführung des Schrittes 88 von Fig. 6a zeigt. Der Prozessor 34 bestimmt in Schritt 94, ob der aktuelle Rücksetzabfolgepuffer 54 voll ist. Das heißt, in Schritt 94 wird angegeben, ob die zu dem Puffer 54 gesendeten Pakete den Puffer gefüllt haben. Wenn der Puffer 54 nicht voll ist, leitet der Prozessor 34 in Schritt 96 das vorhandene Paket zu dem Aktuelle-Rücksetzabfolge-Puffer 54 weiter. In Schritt 98 wird angegeben, ob der Prozessor 34 bestimmt, dass der Aktuelle-Abfolge-Puffer 58 zu voll ist, um ein weiteres Paket zu empfangen. Wenn dies der Fall ist, entfernt der Prozessor 34 das älteste Paket aus dem Aktuelle-Abfolge-Puffer 58 in Schritt 100 und wandelt danach das älteste Paket zu einem Zeichen-/Attributwort um. Das Zeichen-/Attributwort des entfernten Pakets wird dann in Schritt 102 zu dem Aktuellstart-Puffer 62 weitergeleitet. Der Prozessor 34 wiederholt die Schritte 98, 100 und 102, bis er in Schritt 98 bestimmt, dass der Aktuelle-Abfolge-Puffer 58 nicht zu voll ist, um das Paket zu empfangen. Der Prozessor 34 gibt dann in Schritt 104 das Paket zu dem Aktuelle-Abfolge-Puffer 58 aus.
  • Im Folgenden wird ein Codefragment der Funktion find_change() der C-Sprache wiedergegeben, die durch den Prozessor 34 verwendet werden kann, um periodisch die in dem Flussdiagramm von Fig. 6a gezeigten Funktionen durchzuführen.
  • Im Folgenden wird ein Codefragment der Funktion put_packet() der C-Sprache wiedergegeben, die durch den Prozessor 34 verwendet werden kann, um periodisch die in dem Flussdiagramm von Fig. 6b gezeigten Funktionen durchzuführen.
  • Im Folgenden wird auf das Flussdiagramm von Fig. 7 Bezug genommen, das die durch den Prozessor 34 durchgeführten Schritte zum Wiedergeben einer Rücksetzabfolge der Anzeigebildschirme auf dem entfernten Endgerät 28 zeigt. Der Administrator bestimmt zuerst, ob die aktuelle oder die vorangegangene Rücksetzabfolge wiedergegeben werden soll. Der Prozessor 34 reagiert, indem er jeweils den Aktuelle-Rücksetzabfolge-Puffer 54 oder den Vorausgegangene-Rücksetzabfolge-Puffer 56 als Rücksetzpuffer für die Wiedergabe wählt. Wenn der Systemadministrator den Server-Controller 26 anweist, eine der Rücksetzabfolgen wiederzugeben, bestimmt der Prozessor 34 in Schritt 106, ob in dem Rücksetzpuffer weitere Pakete wiederzugeben sind. Wenn dies der Fall ist, ruft der Prozessor 34 in Schritt 108 das nächste Paket aus dem Rücksetzabfolgepuffer ab und wandelt das Paket zu einer Zeichenfolge um. Der Prozessor 34 zeigt dann in Schritt 110 die Zeichenfolge auf dem entfernten Endgerät 28 an, indem er die Zeichensequenz zu dem entfernten Endgerät 28 überträgt. Der Prozessor 34 wiederholt die Schritte 106, 108 und 110, bis der Prozessor 34 in Schritt 106 bestimmt, dass keine weiteren Pakete anzuzeigen sind.
  • Im Folgenden wird ein Codefragment der Funktion video_reset_play() in der C-Sprache wiedergegeben, die durch den Prozessor 34 verwendet werden kann, um periodisch die in dem Flussdiagramm von Fig. 7 aufgeführten Funktionen durchzuführen.
  • Im Folgenden wird auf das Flussdiagramm von Fig. 8 Bezug genommen, das die durch den Prozessor 34 durchzuführenden Schritte zum Wiedergeben einer Ausfallabfolge an einem entfernten Endgerät 28 zeigt. Wenn der Systemadministrator den Server-Controller 26 anweist, die Ausfallabfolge wiederzugeben, bestimmt der Prozessor in Schritt 112, ob weitere Zeichen in dem Ausfallstart-Puffer 64 anzuzeigen sind. Es ist zu beachten, dass der Aktuellstart-Puffer 62 und der Ausfallstart-Puffer 64 Zeichen (d. h. Wörter mit Zeichen- /Attributpaaren) enthalten, während die Puffer (d. h. den Puffern 54-60), die Anzeigebildschirmänderungen anstatt der Anzeigebildschirme selbst speichern, Pakete enthalten. Wenn weitere Zeichen in dem Puffer 64 für die Anzeige vorhanden sind, ruft der Prozessor 34 in Schritt 114 das nächste Zeichen aus dem Ausfallstart-Puffer 64 ab und zeigt die Zeichen auf dem entfernten Endgerät 28 an, indem er die Zeichen zu dem entfernten Endgerät 28 überträgt. Der Prozessor 34 wiederholt die Schritte 112 und 114, bis der Prozessor 34 in Schritt 112 bestimmt, dass keine weiteren Zeichen mehr in dem Ausfallstart-Puffer 64 für die Anzeige vorhanden sind. Dabei ist zu beachten, dass kein Zeichen aus dem Ausfallstart- Puffer 64 entfernt wird, sondern dass eine Kopie des Zeichens erstellt wird.
  • Sobald der Prozessor 34 in Schritt 112 bestimmt, dass alle Zeichen in dem Ausfallstart- Puffer 64 angezeigt wurden, sucht der Prozessor 34 in Schritt 116 nach weiteren anzuzeigenden Paketen in dem Ausfallabfolge-Puffer 60. Wenn keine weiteren Pakete vorhanden sind, hat der Prozessor 34 die Wiedergabe der Ausfallabfolge abgeschlossen. Andernfalls wandelt der Prozessor 34 in Schritt 118 das Paket zu einer ANSI-Zeichenfolge um. Der Prozessor 34 zeigt dann die Zeichenfolge auf dem entfernten Endgerät 28 an, indem er die Zeichensequenz in Schritt 120 zu dem entfernten Endgerät 28 überträgt. Der Prozessor 34 wiederholt die Schritte 116, 118 und 120, bis er in Schritt 116 bestimmt, dass alle Pakete in dem Ausfallabfolge-Puffer 60 angezeigt wurden.
  • Im Folgenden wird ein Codefragment der Funktion video_failure_play() in der C-Sprache wiedergegeben, die durch den Prozessor 34 zum periodischen Ausführen der in dem Flussdiagramm von Fig. 8 aufgeführten Funktionen verwendet werden kann.
  • Die Wiedergabe der Wiedergabeabfolgen beginnt, wenn der Administrator die Leertaste in Reaktion auf das in Fig. 2c gezeigte Menü drückt. Die Wiedergabe besteht aus einem Strom von Zeichen und Escape-Sequenzen, die zu dem entfernten Endgerät gesendet werden, um die Information in den Abfolgepuffern anzuzeigen. Jedes anzeigbare Zeichen (ASCII-Werte 32-126 und 128-254) wird zu dem entfernten Endgerät als ein 8-Bit-ASCII-Wert gesendet. Einige Zeichen (ASCII-Werte 0-31 und 127) sind Steuerzeichen, die etwa zum Ertönen einer Glocke, aber nicht zum Anzeigen eines Zeichens verwendet werden. Wenn also eines dieser nicht anzeigbaren Zeichen in dem Lokalbildpuffer 48 erscheint, wird es entweder als Leerzeichen oder als ein ähnlich aussehendes anzeigbares Zeichen zu dem entfernten Endgerät gesendet. Eine Escape-Sequenz (eine Sequenz von Zeichen, die mit dem Escape- Zeichen (ASCII-Wert 0x1B) startet) wird verwendet, um andere Aktionen wie etwa eine Bewegung eines Cursors, ein Löschen des Bildschirms und ein Änderung der aktuellen Anzeigefarbe zu bewirken. Der Server-Controller 26 überträgt alle unveränderten Zeichen mit Ausnahme der Zeichen 0-31, 127, 255. Diese Zeichen werden neu auf die folgenden ASCII-Bytes abgebildet:
  • 32, 32, 32, 32, 32, 32, 32, 42 /* Zeichen 0-7 */
  • 32, 32, 32, 32, 32, 32, 32, 42 /* Zeichen 8-25 */
  • 62, 60, 32, 33, 32, 32, 32, 32 /* Zeichen 16-23 */
  • 94, 118, 62, 60, 32, 32, 94, 118 /* Zeichen 24-31 */
  • 94, /* Zeichen 127 */
  • 32 /* Zeichen 255 */
  • Die folgenden Escape-Sequenzen werden durch den Server-Controller 26 gesendet, wenn \x1B = ESC-Zeichen. Für den Fall, dass die Anwendung Compaq Insight Manager (CIM) auf dem entfernten Endgerät 28 ausgeführt wird, überträgt der Server-Controller 26 bestimmte nicht-standardisiete Escape-Sequenzen für die Kommunikation mit dem CIM. Diese nicht- standardisierten Escape-Sequenzen werden in der folgenden Tabelle I durch einen Asterisk angegeben.
  • Tabelle 1
  • Immer verwendet:
  • Clear screen: \x1b[2J
  • Move Cursor: \x1b[n; mH n = Cursorreihe, m = Cursorspalte (d. h. \x1b[1; 2H)
  • *Flint ID: \1xb[}
  • -Color:
  • +Disable hi intensity: \x1b[0m
  • +Foreground hi intensity: \x1b[1m
  • +Black Background: \x1b[30m
  • Red Background: \x1b[31m
  • Green Background: \x1b[32m
  • Yellow Background: \x1b[33m
  • Blue Background: \x1b[34m
  • Magenta Background: \x1b[35m
  • +White Background: \x1b[36m
  • +Black Foreground: \x1b[37m
  • Red Foreground: \x1b[40m
  • Green Foreground: \x1b[41m
  • Yellow Foreground: \x1b[42m
  • Blue Foreground: \x1b[43m
  • Magenta Foreground: \x1b[44m
  • Cyan Foreground: \x1b[46m
  • +White Foreground \x1b[47m
  • Kombinationen aus den vorstehenden: z. B. \x1b{0;1;47;30m
  • Nur bei der Kommunikation mit CIM verwendet:
  • *Repeat Character: c\x1b[nb
  • *Screen Scroll: \x1b[nS
  • *Set Number Rows: \x1b[n&supmin;
  • *Enable Japanese: \x1b$B\x1b(B
  • *Disable Japanese: \1b[
  • -Color
  • *+Background hi intensity: \x1b[5m
  • c = Wiederholungszeichen
  • n = Wiederholungszahl
  • n = Anzahl der zu blätternden Zeilen
  • n = Anzahl der Zeilen
  • Die mit einem +-Zeichen in der vorstehenden Tabelle 1 gekennzeichneten Escape- Sequenzen sind die einzigen Escape-Sequenzen, die in den Monochrommodi verwendet werden. Alle Farben mit Ausnahme von Schwarz und Schwarz mit hoher Intensität werden zu Weiß oder Weiß mit hoher Intensität umgewandelt.
  • Wenn der Server-Controller 26 nicht mit dem CIM kommuniziert, werden die Hintergrundfarben mit hoher Intensität nicht unterstützt und als entsprechende Farbe mit normaler Intensität gesendet. Wenn der Vordergrund dieselbe Farbe mit normaler Intensität ist, wird die Vordergrundfarbe in Übereinstimmung mit der folgenden Tabelle II neu abgebildet, sodass sie weiterhin sichtbar ist:
  • Tabelle II Farbmodi
  • Schwarz → Rot
  • Rot → Schwarz
  • Grün → Gelb
  • Gelb → Grün
  • Blau → Magenta
  • Magenta → Blau
  • Cyan → Weiß
  • Weiß → Cyan
  • Monochrommodi
  • Schwarz → Weiß
  • Weiß → Schwarz
  • Im Folgenden wird auf Fig. 9a-9e Bezug genommen, die Anzeigebildschirme einer beispielhaften Ausfallabfolge zeigen. Die Anzeigebildschirmabfolge ist beispielhaft für eine Wiedergabeabfolge, die durch den Server-Controller 26 auf dem entfernten Endgerät 28 angezeigt wird. Fig. 9a ist ein Wiedergabe eines typischen anfänglichen Anzeigebildschirms nach dem Hochfahren eines Servers. Der Anzeigebildschirm enthält verschiedene Elemente in Bezug auf die Systemkonfiguration. Fig. 9b ist eine Wiedergabe eines typischen WINDOWS NT- Ladebildschirms. Der Benutzer erhält die Gelegenheit, zwischen einer Vielzahl von NT- Kernels für das Booten zu wählen. Fig. 9c ist eine Wiedergabe eines typischen NT- Bootbildschirms. Der Anzeigebildschirm gibt die Version des Kernels, die Kapazität des Systemspeichers, die Prozessorkonfiguration usw. an. Fig. 9d zeigt die durch den Server- Controller 26 auf dem entfernten Endgerät 28 während der Wiedergabeabfolge angezeigte Meldung, wenn die Wiedergabeabfolge ein Paket enthält, das angibt, dass die Anzeige 24 des Servers 10 durch die Host-CPU 12 in den Grafikmodus versetzt wurde. Fig. 9e ist eine Wiedergabe eines typischen NT-blue screens.
  • Durch das Schnüffeln auf dem Erweiterungsbus (vorzugsweise einem EISA-Bus) nach Schreibvorgängen in das Bildsubsystem, erhält der Server-Controller 26 in vorteilhafter Weise Bilddatenaktualisierungen in Echtzeit, sodass die Wiedergabe der Wiedergabeabfolgen realisiert werden kann. Außerdem erhält der Server-Controller durch das Schnüffeln auf dem Erweiterungsbus nach Schreibvorgängen in das Bildsubsystem die Bilddatenaktualisierungen in einer gewöhnlich nicht-intrusiven Weise für den Server 10 und insbesondere in einer nicht-intrusiven Weise für die Bandbreite des Erweiterungsbusses. Andere Lösungen erhalten Bilddaten in einer intrusiven Weise und nicht in Echtzeit. Zum Beispiel übernimmt das Produkt COMPAQ Server Manager/R ("SMR") die Kontrolle über die EISA-Buszyklen und kopiert periodisch einen Teil der Anzeigedaten aus dem Bildspeicher 22 in seinen eigenen Speicher. Die kopierten Daten werden dann mit einer früheren Kopie der Bilddaten verglichen, um Anzeigebildschirmänderungen festzustellen. Der Buskontrollansatz des SMR erhöht den Verkehr auf dem EISA-Bus in unvorteilhafter Weise und fügt eine zusätzliche Entscheidungsverzögerung für andere EISA-Busmaster hinzu.
  • Mit Bezug auf Fig. 4 werden im Folgenden die verschiedenen Blöcke 40-44 innerhalb der Erfassungslogik 30 beschrieben. Die Erfassungslogik 30 umfasst Adresspuffer 42, Daten- Sendeempfänger 44 und eine Steuerlogik 40, die zwischen dem EISA-Bus und dem Controller-Bus verbunden sind. Die Steuerlogik 40 und der Prozessor 34 sind durch HOLD- und HLDA (HOLD Acknowledge)-Signale miteinander verbunden. Die Adresspuffer 42, die Daten-Sendeempfänger 44 und die Steuerlogik 40 wirken zusammen, um Anzeigedaten zu schnüffeln, wobei sie die Daten danach in den Lokalbildpuffer 48 (in Fig. 5 gezeigt) schreiben, der Teil des Controller-Speichers 32 ist.
  • Der Controller-Speicher 32 wird als Ressource gemeinsam vom Prozessor 34 und der Erfassungslogik 30 verwendet, wobei sowohl der Prozessor 34 als auch die Erfassungslogik 30 den Controller-Speicher 32 modifizieren. Der Controller-Speicher 32 umfasst einen pseudostatischen RAM mit einem einzelnen Anschluss. Die Erfassungslogik 30 nimmt also dem Prozessor 34 Zyklen weg, um die Bilddaten in den Controller-Speicher 32 zu schreiben. Wenn Schreibzyklen in das Bildsubsystem auftreten, decodiert die Erfassungslogik 30 den Schreibzyklus, lässt den Prozessor 34 warten und schreib die Bilddaten in den Controller- Speicher 32. Der Server-Controller 26 schreibt die Bilddaten in den Controller-Speicher 32, während die Bilddaten gleichzeitig in das Bildsubsystem geschrieben werden, um die normale Bildaktivität auf dem Server 10 weiterzuführen.
  • Die Steuerlogik 40 empfängt die Adresssignale von dem Erweiterungsbus und decodiert das Vorhandensein einer Adresse in den Bildadressbereichen. Wenn eine Adresse in dem Bildadressebereichen auf den Erweiterungsbus-Adresssignalen erscheint, lässt die Steuerlogik 40 den Prozessor 34 warten, indem sie das HOLD-Signal zu dem Prozessor 34 ausgibt, um den Controller-Speicher 32 für sich zu nutzen. Der Prozessor 34 gibt HLDA aus, um die Kontrolle über den Controller-Bus durch Steuerlogik 40 zu bestätigen.
  • Die Steuerlogik 40 muss sicherstellen, dass sie die Kontrolle über den Controller-Bus erhalten und die Bilddaten in den Controller-Speicher 32 schreiben kann, bevor der Schreibzyklus zu dem Bildsubsystem abgeschlossen ist. Dazu verwendet die Steuerlogik 40 die bestimmten Signale auf dem EISA-Erweiterungsbus. Die Steuerlogik verwendet das EXRDY- Signal, das für einen EISA-Erweiterungsbus verfügbar ist. Wenn der Erweiterungsbus ein ISA-Bus ist, dann verwendet die Steuerlogik das CHRDY-Signal. In jedem Fall dienen EXRDY und CHRDY dazu, den Erweiterungsbus-Schreibzyklus zu dem Bildsubsystem zu verzögern, bis die Steuerlogik 40 die Kontrolle über den Controller-Bus erhält.
  • An der Anstiegsflanke des EISA-Erweiterungsbus-BCLK-Signals während der Ausgabe des Erweiterungsbus-START#-Signals speichert die Steuerlogik 40 die Adresse aus den Erweiterungsbus-Adresssignalen. Die Steuerlogik 40 untersucht andere Steuersignale auf dem Erweiterungsbus, nämlich BCLK, START#, CMD# und W_R, um zu bestimmen, ob der Buszyklus ein Schreibzyklus ist. Wenn der Buszyklus kein Schreibzyklus ist, stoppt die Steuerlogik 40 mit der Entscheidung für den Controller-Bus, indem sie das HOLD-Signal nicht mehr ausgibt. Wenn der Buszyklus ein Schreibzyklus ist, senden die Daten-Sendeempfänger 44 Bilddaten aus den Erweiterungsbus-Datensignalen zu dem Controller- Speicher 32, um den Schreibzyklus auf der Anstiegsflanke des Erweiterungsbus-CMD#- Signals abzuschließen. Die Anstiegsflanke von CMD# wird verzögert, wenn die Steuerlogik 40 das EXRDY-Signal niedrig ausgibt.
  • Wenn die Entscheidungslatenz (die Zeitdauer zwischen der Ausgabe von HOLD durch die Steuerlogik 40 und der Gewährung von HLDA durch den Prozessor 34) die für die Einrichtung eines Schreibzyklus zu den Bildadressbereichen erforderliche Zeitdauer überschreitet, gibt die Steuerlogik 40 das EXRDY-Signal niedrig auf dem Erweiterungsbus aus, um Verzögerungszyklen einzufügen, d. h. die Anstiegsflanke von CMD# zu verzögern. Das niedrig ausgegebene EXRDY-Signal gibt dem gerade den Schreibzyklus durchführenden Master des Erweiterungsbusses an, dass der Empfänger des Schreibzyklus nicht zum Empfangen der Daten bereit ist. Gewöhnlich gibt der Prozessor 34 HLDA ausreichend früh an die Steuerlogik 40 aus, sodass die Steuerlogik 40 EXRDY nicht auszugeben braucht. Das Schnüffeln durch den Server-Controller 26 ist also gewöhnlich nicht intrusiv.
  • Die Steuerlogik 40 übersetzt die zuvor aus den Erweiterungsbus-Adresssignalen gespeicherte Adresse auf eine entsprechende Position in dem Lokalbildpuffer des Controller- Speichers 32 und gibt weiterhin die übersetzte Adresse an die Adresspuffer 43, die die übersetzte Adresse auf den Controller-Bus ausgeben. Die Steuerlogik 40 erzeugt dann Steuersignale für die Daten-Sendeempfänger 44, die Adresspuffer 42 und den Controller- Bus, um die Anzeigedaten aus den Erweiterungsbus-Datensignalen in den Controller- Speicher 32 an der durch die Adresspuffer 42 ausgegebenen übersetzten Adresse zu schreiben. Die Steuerlogik 40 fährt fort, den Prozessor 34 bis zum Ende einer Blockübertragung der Anzeigedaten warten zu lassen, d. h. während der Burst- oder Back-to-Back- Schreibzyklen in das Bildsubsystem. Während eines Burst-Zyklus oder während Back-to- Back-Schreibzyklen in das Bildsubsystem ist vorzugsweise nur der anfängliche Zyklus intrusiv (d. h. hat Verzögerungszyklen zur Folge), wenn überhaupt.
  • Das Schnüffeln von Schreibzyklen zu dem Bildsubsystem von dem Erweiterungsbus in den Controller-Speicher 32 erfordert eine Synchronisation zwischen dem Erweiterungsbus und dem Controller-Bus, weil diese unterschiedliche Taktsignale aufweisen. Dies erfordert mehrere Synchronisationspunkte von beiden Bussen, um korrekte Zustände der Signalisierung zu garantieren (d. h. um die Möglichkeit der Metastabilität zu reduzieren). Es ist deshalb vorteilhaft, den frühesten Zeitpunkt, bei dem ein gültiger Schreibzyklus beginnt, sowie den frühesten Zeitpunkt, bei dem dieser Schreibzyklus oder eine Reihe von Schreibzyklus endet, zu bestimmen. Es ist deshalb erforderlich, den frühesten Zeitpunkt zu bestimmen, bei dem ein gültiger Zyklus kein Schreibzyklus ist, um HOLD zu negieren und die Kontrolle über den Controller-Bus an den Prozessor 34 zurückzugeben. Dadurch kann der Prozessor 34 notwendige Funktionen wie etwa die Verarbeitung der Wiedergabeabfolgen durchführen. Außerdem ist es vorteilhaft, zu bestimmen, wann ein gültiger Schreibzyklus beginnt, um bei Bedarf EXRDY niedrig auszugeben und dadurch Verzögerungszyklen einzufügen.
  • Das Erweiterungsbus-Taktsignal BCLK ist nicht besonders nützlich bei der Bestimmung des Anfangs und des Endes eines Schreibzyklus, weil nicht garantiert ist, dass es mit der Abfallsflanke von START# oder der Anstiegsflanke von CMD# synchron ist. Für eine detaillierte Beschreibung der Zeitspezifikationen eines EISA-Busses wird auf die EISA Specification Revision 3.12 Bezug genommen, die hier unter Bezugnahme eingeschlossen ist.
  • Das Erweiterungsbus-Schreib-/Lesesignal (W_R), das einen Schreibzyklus angibt, ist nicht so früh wie die Erweiterungsbus-Adresssignale (LA) gültig. In Übereinstimmung mit den EISA-Bus-Spezifikationen kann W_R nicht validiert werden, bis die Anstiegsflanke von BCLK als START# negiert wird. Die Steuerlogik 40 muss bestimmen können, ob ein Schreibzyklus auftritt, sodass sie nicht auf Lesezyklen reagiert, sondern statt dessen dem Bildsubsystem gestattet, auf Lesezyklen zu reagieren.
  • Es ist nicht garantiert, dass die EISA-Erweiterungsbussignale START# und CMD# in der Sequenz der Negierung von START# und der Ausgabe von CMD# auftreten. Das heißt, die beiden Signale können einander überlappen oder dazwischen eine Lücke aufweisen. Um also die Abfallsflanke von START# zur Angabe des Anfangs eines Zyklus zu verwenden und um die Anstiegsflanke von CMD# zur Angabe des Endes eines Zyklus zu verwenden, muss eine Gleichung, die den vollständigen Zyklus vom Anfang bis zum Ende angegeben soll, eine Eingabe aufweisen, um die mögliche Lücke zwischen der Negierung von START# und der Ausgabe von CMD# zu überbrücken.
  • Die vorliegenden Erfinder haben bestimmt, dass bei den meisten Busschnittstellenimplementierungen, die z. B. eine Busschnittstelleneinheit 18 als EISA-Busbrücke verwenden, W_R gültig ist, wenn BCLK niedrig ist und START# niedrig ausgegeben wird. Diese Information ist nützlich, um den Anfang und das Ende eines gültigen Schreibzyklus zu bestimmen. Insbesondere verwendet die vorliegende Erfindung ein transparentes Speichersteuersignal N_START mit der folgenden Gleichung:
  • N_START = 1 BCLK·1 START# + N_START·CMD#
  • N_START wird also ausgegeben, wenn BLCK niedrig ist und START# niedrig ausgegeben wird, wobei es ausgegeben wird, bis CMD# niedrig ausgegeben wird, um die zuvor genannte Lücke zwischen START# und CMD# zu überbrücken.
  • Ein zusätzliches Signal EARLY_DECOCE ist definiert, das wahr ist, wenn die EISA- Erweiterungsbus-Adresssignale sich in den Bildadressbereichen befinden.
  • Durch die Kombination von EARLY_DECODE, W_R, CMD# und N_START wird ein gültiger Schreibzyklus wie folgt definiert:
  • VALID_CYCLE = N_START·EARLY_DECODE·W_R
  • +
  • VALID_CYCLE·!CMD#
  • Unter Verwendung von VALID_CYCLE wird EXRDY ausgegeben, nachdem VALID_CYCLE ausgegeben wurde und der Prozessor 34 noch nicht HLDA ausgibt. EXRDY wird dann bis nach der nächsten Abfallsflanke von BCLK, in der HLDA gewährt wurde, ausgegeben.
  • Die Steuerlogik 40 verwendet also N_START in vorteilhafter Weise, um die EISA-Zeitanforderungen in Bezug auf EXRDY zu erfüllen und in typischen Situationen keine Intrusion, d. h. keine Einfügung von Verzögerungszyklen in die Operationen des Bildsubsystems zu verursachen. Die Steuerlogik 40 verwendet also N_START, um eine Synchronisation zwischen dem EISA-Erweiterungsbus und dem Controller-Bus vorzusehen, weil die zwei Busse unterschiedliche Taktsignale verwenden. Durch die Verwendung von N_START (d. h. des niedrigen BCLK) hat die Steuerlogik 40 wenigstens einen Vorteil von 60 Nanosekunden der Synchronisationszeit im Vergleich zu der Verwendung der Anstiegsflanke von START# (die wenigstens 60 Nanosekunden später auftritt, d. h. synchron mit der Anstiegsflanke von BCLK), um einen gültigen Schreibzyklus zu bestimmen.
  • Im Folgenden wird auf das Zeitdiagramm von Fig. 10 Bezug genommen, das die Beziehung zwischen den EISA-Erweiterungsbussignalen BCLK, START#, CMD#, LA, W_R und den Signalen EARLY_DECODE, HOLD, N_START, VALID_CYCLE und EXRDY zeigt. Fig. 10 zeigt einen Bildschreibzyklus, in dem der Prozessor 34 HLDA nicht ausreichend früh gewährt und die Steuerlogik 40 EXRDY niedrig ausgeben muss, um Verzögerungszyklen und anschließend einen zweiten Bildschreibzyklus einzufügen. Der erste und der zweite Bildschreibzyklus bilden Back-to-Back-Bildschreibzyklen. In Übereinstimmung mit der vorliegenden Erfindung sieht der zweite Bildschreibzyklus in vorteilhafter Weise keinen Verzögerungszyklus vor, obwohl der erste Schreibzyklus einen Verzögerungszyklus vorgesehen hat. Die Flanken von BCLK sind der deutlicheren Darstellung halber in Fig. 10 fortlaufend von eins bis vierzehn nummeriert. Das in Fig. 10 gezeigte HLDA-Signal ist eine Version des HLDA- Signals aus dem Prozessor 34, das mit dem EISA-Erweiterungsbustakt BCLK synchronisiert wurde.
  • Die EISA-Busschnittstelle 18 erzeugt für die CPU 12, die in das Bildsubsystem schreiben möchte, eine Adresse in den Bildadressbereichen auf den LA-Signalen in der Nähe der BCLK-Abfallsflanke zwei. Die Steuerlogik 40 reagiert darauf, indem sie das EARLY_DECODE-Signal ausgibt. Kurz danach gibt die Steuerlogik 40 HOLD an den Prozessor 34 aus. Das HOLD-Signal wird ausgegeben, wenn das EARLY_DECODE-Signal ausgegeben wird, und wird weiterhin ausgegeben, solange das VALID_CYCLE-Signal ausgegeben wird. Indem HOLD während VALID_CYCLE ausgegeben wird, behält die Steuerlogik 40 die Kontrolle über den Controller-Bus, bis das Schreiben der Bilddaten in den Controller-Speicher 32 abgeschlossen ist. Außerdem wird das HOLD-Signal ausgegeben, solange EARLY_DECODE ausgegeben wird und der Unterbrechungstimer nicht abgelaufen ist (wie weiter unten erläutert). Das HOLD-Signal wird mit dem Takt des Prozessor 34 synchronisiert. In der Nähe der Anstiegsflanke drei gibt die Busschnittstelle 18 START# aus (das aktiv niedrig ist), um die Adressphase des Zyklus zu beginnen. Die Busschnittstelle 18 gibt das W_R-Signal aus, um einen Schreibzyklus anzugeben.
  • In Reaktion auf die BCLK-Abfallsflanke vier, gibt die Steuerlogik 40 N_START aus, weil BCLK niedrig ist und START# niedrig ausgegeben wird. N_START wird ausgegeben, bis CMD# in der Nähe der BCLK-Anstiegsflanke fünf ausgegeben wird. Ein aktives N_START gibt an, dass W_R gültig ist, und weil W_R einen Schreibzyklus angibt und EARLY_DECODE eine Adresse in den Bildadressbereichen angibt, gibt die Steuerlogik 40 entsprechend VALID_CYCLE aus. In Reaktion auf die Ausgabe von VALIC_CYCLE nach der BCLK-Abfallsflanke vier, gibt die Steuerlogik 40 EXRDY niedrig aus, weil HLDA (in diesem Beispiel) nicht gewährt wurde. In diesem Beispiel wird HLDA in der Nähe der BCLK- Anstiegsflanke fünf gewährt. Die Steuerlogik 40 fährt mit der Ausgabe von EXRDY bis nach der nächsten Abfallsflanke von BCLK, in der HLDA gewährt wird, fort, d. h. bis zur BCLK- Abfallsflanke sechs, weil EXRDY durch die Busschnittstelleneinheit 18 auf der Abfallsflanke von BCLK abgetastet wird, während CMD# niedrig ausgegeben wird.
  • Die Busschnittstelleneinheit 18 gibt CMD# niedrig aus und beendet die hohe Ausgabe von START# nach der BCLK-Anstiegsflanke fünf, um die Datenphase des Schreibzyklus einzuleiten. Wie zuvor genannt, können die Anstiegsflanke von START# und die Abfallsflanke von CMD# in Übereinstimmung mit der EISA-Erweiterungsbus-Spezifikation entweder durch eine Lücke getrennt sein oder einander überlappen. Wie ebenfalls zuvor genannt, überbrückt N_START die Lücke, sodass VALIC_CYCLE einen gültigen Bildschreibzyklus vom Anfang bis zum Ende angeben kann.
  • In Reaktion auf die niedrige Ausgabe von EXRDY während der Abfallsflanke von BLCK während der niedrigen Ausgabe von CMD#, d. h. während der BCLK-Abfallsflanke sechs, wartet die Busschnittstelleneinheit 18 auf einen extra BCLK-Zyklus, d. h. fügt einen Verzögerungszyklus (bzw. einen Wartezustand) ein, indem es die Beendigung der hohen Ausgabe von CMD# um einen extra Taktzyklus in der Nähe der BCLK-Anstiegsflanke neun verzögert. Die hohe Ausgabe von CMD# gibt das Ende des Schreibzyklus an.
  • Weil die Adresse auf dem LA-Signal für den zweiten Schreibzyklus in dem Bildbereich bleibt, fährt die Steuerlogik 40 mit der Ausgabe von EARLY_DECODE und entsprechend mit der Ausgabe von HOLD fort, um die Kontrolle über den Controller-Bus zu behalten, was durch die Ausgabe von HLDA bis zum Ende des zweiten Schreibzyklus angegeben wird.
  • Nach der BCLK-Anstiegsflanke neun, gibt die Schnittstelleneinheit 18 (unter Verwendung der EISA-Überbrückung) START# aus, um den Beginn der Adressphase des zweiten Bildschreibzyklus anzugeben. Der zweite Bildschreibzyklus ist dem ersten Bildschreibzyklus ähnlich, wobei jedoch, weil die Steuerlogik bereits die Kontrolle über den Controller-Bus hat, EXRDY nicht während des zweiten Schreibzyklus niedrig negiert wird. Deshalb beendet die Busschnittstelleneinheit 18 die hohe Ausgabe von CMD# in der Nähe der BCLK-Anstiegsflanke dreizehn (d. h. einen vollen Taktzyklus früher als in dem ersten Schreibzyklus), um die Datenphase des zweiten Schreibzyklus zu beenden.
  • Der zweite Bildschreibzyklus gibt auch einen Nicht-Back-to-Back-Bildschreibzyklus wieder, in dem HLDA ausreichend früh gewährt wurde, sodass die Steuerlogik 40 EXRDY nicht niedrig ausgeben muss, um Verzögerungszyklen einzufügen.
  • In einer Ausführungsform der vorliegenden Erfindung umfasst der Server-Controller 26 weiterhin ein Controller-Bildsubsystem (nicht gezeigt), das dem Bildsubsystem des Servers 10 mit der Grafikkarte 20 und dem Bildspeicher 22 ähnlich ist. Das Controller-Bildsubsystem kann selektiv durch die Systemkonfigurationssoftware deaktiviert werden. Das Controller- Bildsubsystem ist ein ISA-Gerät. Wenn das Controller-Bildsubsystem aktiviert wird, negiert der Server-Kontroller 26 das ISA-Bussignal CHRDY und nicht das EISA-Erweiterungsbus- EXRDY-Signal.
  • Das Controller-Bildsubsystems sorgt dafür, das Schreibungen von Bilddaten auf dem Erweiterungsbus für den Fall auftreten, dass der VGA-Controller auf dem Server 10 ein PCI- VGA-Controller ist. Andernfalls decodiert und reagiert der PCI-VGA-Controller auf Bildschreibungen, um die Busschnittstelleneinheit 18 zu veranlassen, die Bildschreibungen nicht zu dem EISA-Erweiterungsbus weiterzuleiten. Daraus resultiert, dass keine Bildschreibzyklen auf dem EISA-Erweiterungsbus oder dem Server-Controller 26 zu schnüffeln sind. Wenn also ein PCI-VGA-Controller in dem System vorgesehen ist, muss der Benutzer das Controller-Bildsystem auf dem Server-Controller 26 aktivieren und den PCI-VGA-Controller deaktivieren, um ein Schnüffeln auf dem Bildschreibzyklus und ein Erfassen der Wiedergabeabfolge zu ermöglichen.
  • Gewöhnlich geben Implementierungen der Busschnittstelleneinheit 18 (d. h. der EISA- Busbrücke) eine Adresse auf den Erweiterungsbus-Adresssignalen aus, um am Ende eines gültigen Zyklus diese Adresse auf dem Erweiterungsbus (d. h. dem EISA-Bus) während eines untätigen Zyklus nach dem gültigen Zyklus zu speichern und auszugeben, sodass die Adresssignale nicht schwimmen. Dieser Zustand veranlasst die Steuerlogik 40, das EARLY_DECODE-Signal auszugeben und anschließend HOLD kontinuierlich für eine relativ längere Zeitdauer zu dem Prozessor 34 auszugeben. Daraus resultiert, dass der Prozessor 34 unnötigerweise unterversorgt wird. Eine Lösung für dieses Problem besteht darin, HOLD am Ende des Zyklus auf der Anstiegskante von CMD# zu negieren. Das Ergebnis wäre jedoch, dass die Steuerlogik 40 den Controller-Bus neu verhandeln müsste und den EISA- Erweiterungsbus und den Controller-Bus für jeden Schreibzyklus eines Blocks von Back-to- Back-Schreibzyklen neu synchronisieren müsste, indem es EXRDY negiert und damit Verzögerungen einfügt.
  • Die vorliegende Ausführungsform verwendet einen Unterbrechungstimer, um das oben beschriebene Problem zu lösen. Die Steuerlogik 40 umfasst einen Zähler, der eine bestimmte Anzahl von BCLKs nach einem Zyklus zählt, wenn die EISA-Erweiterungsbus- Adresssignale weiterhin eine Adresse in den Bildadressbereichen angeben. Wenn der Zähler die Endzahl erreicht, ohne dass START# neu ausgegeben wird, negiert die Steuerlogik 40 HOLD und gibt HOLD bis zur nächsten Ausgabe von START# nicht mehr aus, wobei die Steuerlogik 40 eine Adresse in den Bildadressbereichen decodiert.
  • Durch die Verwendung des Unterbrechungstimers gibt die Steuerlogik 40 HOLD in vorteilhafter Weise früher aus, als andernfalls möglich wäre, wenn die Steuerlogik 40 auf die Ausgabe von START# warten würde, um HOLD auszugeben. Auf diese Weise ist die Wahrscheinlichkeit größer, dass keine Verzögerungszyklen während der Bilddatenschreibungen in das Bildsubsystem in dem Server 10 eingefügt werden. Der Unterbrechungstimer ermöglicht es weiterhin der Steuerlogik 40, HOLD während eines Blocks der gültigen Back- to-Back-Bildschreibzyklen auszugeben, sodass möglicherweise die Einführung von Verzögerungszyklen in dem Server 10 während der Bilddatenschreibungen in das Bildsubsystem vermieden werden.
  • Das entfernte Endgerät 28 baut eine Kommunikationsverbindung mit dem Server-Controller 26 über die Kommunikationseinheit 36 auf. Die Verbindung zwischen dem entfernten Endgerät 28 und dem Server-Controller 26 wird gewöhnlich als Außerband-Verbindung oder asynchrone Verbindung bezeichnet. Eine Außerband-Verbindung ist eine Netzwerkverbindung, die über eine Telefonleitung oder eine direkte serielle Verbindung und nicht über ein Standard-Netzwerkmedium wie etwa eine LAN-Ethernet-Verbindung hergestellt wird. Über die Außerband-Verbindung kann der Server-Controller 26 eine Kommunikation mit dem entfernten Endgerät 28 herstellen, sowohl wenn der Server 10 normal funktioniert als auch wenn ein Ausfall wie etwa ein Betriebssystem-Crash oder ein Ausfall des LANs, mit dem Server 10 verbunden ist, auftritt.
  • In einem ersten Modus stellt das entfernte Endgerät 28 eine Verbindung mit dem Server- Controller 26 unter Verwendung des ANSI-Endgerätemulationsprotokolls her, das nachfolgend als Textprotokoll bezeichnet wird. In einem zweiten Modus stellt das entfernte Endgerät 28 eine PPP-Protokoll-Verbindung (PPP: Point-to-Point) mit dem Server-Controller 26 her. PPP wird in zahlreichen RFCs (Requests for Comments) der Internet Engineering Task Force ("IETF") unter dem URL http://www.ietf.cnri.reston.va.us/home.html beschrieben. Insbesondere sind die RFCs 1661, 1662 und 1663 für die vorliegende Erfindung relevant. Wenn sich das entfernte Endgerät 28 an dem Server-Controller 26 einwählt, bestimmt die auf dem Prozessor 34 des Server-Controllers 26 ausgeführte Software automatisch, welches der zwei Datenverbindungsschicht-Protokolle durch das entfernte Endgerät 28 verwendet wird.
  • In dem ersten Modus, kommuniziert ein Teil der Software des Server-Controllers 26, der als Server-Controller-Konsolenanwendung bezeichnet wird, mit dem entfernten Endgerät 28 unter Verwendung des Textprotokolls. Die Server-Controller-Konsolenanwendung ermöglicht es dem entfernten Endgerät 28, auf verschiedene Funktionen des Servers-Controllers 26 wie etwa das Betrachten von Wiedergabeabfolgen zuzugreifen. Über die Server-Controller- Konsolenanwendung kann der Systemadministrator außerdem entfernte Rücksetzungen durchführen, Warnungs- und Anmeldungsinformationen verwalten, entfernt auf die Konsole zugreifen sowie Ereignisprotokolle, Fehlerprotokolle und Statusprotokolle des Servers 10 einsehen. Im Folgenden wird wieder auf Fig. 2a-2c Bezug genommen, die drei Menübildschirme der Server-Controller-Konsolenanwendung zeigen. Gewöhnlich ist das entfernte Endgerät 28 ein Computer, der eine übliche und von verschiedenen Anbietern verfügbare ANSI-Endgerätemulations-Softwareanwendung wie etwa SYMANTEC pcANYWHERE oder DATASTORM TECHNOLOGY ProComm ausführt, um mit dem Server-Controller 26 zu kommunizieren.
  • In dem zweiten Modus stellt das entfernte Endgerät 28 eine TCP/IP-Verbindung mit dem Server-Controller 26 über die PPP-Verbindung ähnlich wie bei einem LAN her. Gewöhnlich führt das entfernte Endgerät 28 den COMPAQ Insight Manager (CIM) aus, um mit dem Server-Controller 26 über die TCP/IP-Verbindung zu kommunizieren. Der Server-Controller 26 kommuniziert mit dem CIM über eine TELNET-Verbindung, um die Server-Controller- Konsolenanwendung wie in dem ersten Modus unter Verwendung des Textprotokolls auszuführen.
  • Zweitens sendet/empfängt der Server-Controller 26 SNMP-Pakete zu/von dem CIM, um den Server 10 zu verwalten. Zum Beispiel kann der Server 10 einen Ausfall oder ein anderes Ereignis auf dem Server 10 feststellen und ein SNMP-Trap-Paket über den Server-Controller 26 zu dem auf dem entfernten Endgerät 28 ausgeführten CIM senden, um den Systemadministrator über das Ereignis so zu benachrichtigen, als ob der CIM auf einem Client in dem LAN, mit dem der Server 10 verbunden ist, ausgeführt werden würde. Außerdem kann im Fall eines Ausfalls des Servers 10 der Server-Controller 26 den Ausfall feststellen und autonom ein SNMP-Trap-Paket an den CIM senden. In diesem zweiten Modus, d. h. über die PPP-Verbindung, kann der Server-Controller 26 gleichzeitig mit dem entfernten Endgerät 28 über die Server-Controller-Konsolenanwendung und die SNMP-Pakete kommunizieren.
  • Ein weiteres Beispiel für die Verwaltung des Servers 10 über den CIM besteht darin, dass das entfernte Endgerät 28 ein "get request"-SNMP-Paket über den Server-Controller 26 zu dem Server 10 sendet, um Verwaltungsinformation zu dem Server wie etwa den Zustand von einem der Subsysteme des Servers anzufordern. Der Server-Controller 26 leitet das SNMP- Paket zu dem Betriebssystem weiter. Das Betriebssystem sammelt die angeforderten Informationen und sendet ein "get response"-Paket zu dem Server-Controller 26. Der Server- Controller 26 wiederum leitet das Paket an dem CIM weiter.
  • Die Windows NT Remote Access Services (RAS) können PPP-Verbindungen herstellen, um eine Kommunikation zwischen zwei über ein Null-Modem verbundenen Computern vorzusehen. Das NT RAS verwendet ein proprietäres Verfahren zur Herstellung dieser PPP- Verbindung. Das hier als "Vor-PPP-Protokoll" bezeichnete Verfahren sieht den Austausch eines Paares von Zeichenketten zwischen den zwei Computern vor. Der erste Computer, der die Verbindung herstellen möchte, sendet die Zeichenkette "CLIENT" zu dem zweiten Computer. Dann sendet der zweite Computer nach dem Empfang der Zeichenkette "CLIENT" die Zeichenkette "CLIENTSERVER" zu dem ersten Computer. Sobald dieser Austausch der zwei Zeichenketten abgeschlossen ist, fahren die Computer damit fort, die erforderlichen Zeichenpakete zum Herstellen der PPP-Verbindung auszutauschen. Bei Standard-PPP-Verbindungen ist dieser anfängliche Austausch der zwei Zeichenketten nicht erforderlich. Der Server-Controller 26 kann eine PPP-Verbindung sowohl mittels NT RAS über ein Null-Modem als auch unter Verwendung des PPP-Protokolls am entfernten Endgerät 28 herstellen.
  • Im Folgenden wird auf das Flussdiagramm von Fig. 11 Bezug genommen, das zeigt, wie der Server-Controller 26 feststellt, welches Kommunikationsprotokoll von dem entfernten Endgerät 28 gesendet wird. Bevor das entfernte Endgerät 28 eine Verbindung herstellt, setzt die Software des Server-Controllers 26 in Schritt 130 drei Zustandsmaschinen innerhalb der Software des Server-Controllers zurück. Es ist jeweils eine Zustandsmaschine für jedes der gültigen Protokolle vorgesehen: für das Textprotokoll, das PPP-Protokoll und das Vor-PPP- Protokoll.
  • Während der Server-Controller 26 auf eine Unterbrechung von der Kommunikationseinheit 36 wartet, können Wiedergabeabfolgen durch den Prozessor 34 verarbeitet werden. Wenn ein Trägersignal auf dem Server-Controller 26 empfangen wird, setzt eine Software innerhalb des Controllers 26 in Schritt 134 die Zustandsmaschinen zurück und setzt in Schritt 136 einen Timer. In einer Ausführungsform wird der Timer derart gesetzt, dass er in 30 Sekunden abläuft. Die Software des Server-Controllers 26 bestimmt in Schritt 138, ob der Timer abgelaufen ist. Wenn der Timer abgelaufen ist, erklärt die Software 26 des Server- Controllers, dass das Protokoll das Textprotokoll ist, indem sie in Schritt 140 einer Task höherer Ordnung in der Software des Servers-Controllers 26 meldet, dass das Protokoll das Textprotokoll ist.
  • Vor dem Empfang eines Zeichens oder eines Signals von dem entfernte Endgerät 28, kann die Software in dem Server-Controller 26 die Anzeigebildschirmänderungen verarbeiten. Sobald die Unterbrechung auftritt, die angibt, dass ein Zeichen oder Signal vorhanden ist, bestimmt die Software des Server-Controllers 26 in Schritt 142, ob ein "kein Träger"-Signal durch die Kommunikationseinheit 36 gesendet wurde, um einen Verlust des Trägers von dem entfernten Endgerät 28 anzugeben. Wenn der Träger verloren gegangen ist, löscht die Software des Server-Controllers 26 in Schritt 144 den Timer und kehrt zu Schritt 130 zurück.
  • Wenn in Schritt 142 kein "kein Träger"-Signal empfangen wurden, bestimmt die Software des Server-Controllers 26 in Schritt 146, ob ein Zeichen empfangen wurde. Wenn dies nicht der Fall ist, kehrt die Software des Server-Controllers 26 zu Schritt 138 zurück, um entweder darauf zu warten, dass der Timer abläuft oder eine Unterbrechung empfangen wird, die angibt, dass ein Signal oder Zeichen angekommen ist.
  • Wenn in Schritt 146 ein Zeichen empfangen wurde, leitet die Software des Server- Controllers 26 in Schritt 148 das Zeichen zu jeder der drei Protokoll-Zustandsmaschinen weiter. Wenn keine der Zustandsmaschinen in Schritt 150 ein gültiges Protokoll feststellt, kehrt die Software des Servers-Controllers 26 zu Schritt 138 zurück. Wenn eine der Zustandsmaschinen in Schritt 150 ein gültiges Protokoll feststellt, löscht die Software des Server-Controllers 26 in Schritt 152 den Timer und meldet dann in Schritt 154 der Task der höheren Ebene, welches der drei Protokolle festgestellt wurde.
  • Der Prozessor 34 ist konfiguriert, um Unterbrechungen von verschiedenen Quellen wie etwa der Kommunikationseinheit 36 zu empfangen, wie oben in den Erläuterungen zu Fig. 10 genannt. Der Prozessor 34 umfasst eine Unterbrechungsbeschreibungstabelle, wobei jeder Eintrag in der Tabelle eine mit einer Unterbrechungsquelle assoziierte Unterbrechungsdienstroutine angibt. Wenn eine der Unterbrechungsquellen eine Unterbrechung erzeugt, beginnt der Prozessor 34, die Unterbrechungsdienstroutine auszuführen, die durch den Eintrag in der Unterbrechungsbeschreibungstabelle als Entsprechung für die Unterbrechungsquelle angegeben ist. Die Unterbrechungsdienstroutinen sind Teil der Software des Server-Controllers 26 und werden auf dem Prozessor 34 ausgeführt. Die Kommunikationseinheit 36 ist konfiguriert, um den Prozessor 34 nach Empfang eines Zeichens oder Signals wie etwa "Träger" oder "kein Träger" aus dem entfernten Endgerät 28 zu unterbrechen. Die Unterbrechungsdienstroutinen kommunizieren mit anderen Software-Tasks, die auf dem Prozessor 34 ausgeführt werden, um die Kommunikation mit dem entfernten Endgerät 28 zu unterstützen.
  • Zu Beginn, d. h. bevor das entfernte Endgerät 28 eine Verbindung zu dem Server-Controller 26 herstellt, wird in den mit der Kommunikationseinheit 36 assoziierten Eintrag in der Unterbrechungsbeschreibungstabelle eine Referenz auf eine Protokollerkennungs-Unterbrechungsdienstroutine eingetragen. Die Protokollerkennungs-Unterbrechungsdienstroutine entspricht dem Teil der Software des Server-Controllers 26, der die drei Protokoll-Zustandsmaschinen enthält. Die Protokollerkennungs-Unterbrechungsroutine entspricht auch dem Teil der Software des Server-Controllers 26, der ein eingehendes Zeichen aus der Kommunikationseinheit 36 empfängt. Jedes durch die Protokollerkennungs-Unterbrechungsdienstroutine empfangene Zeichen dient als Eingabe zu den drei Protokoll-Zustandsmaschinen.
  • Sobald der Aufgabe der höheren Ebene gemeldet wurde, dass ein gültiges Protokoll festgestellt wurde, trägt die Aufgabe der höheren Ebene in Schritt 140 oder 154 in dem mit der Kommunikationseinheit 36 assoziierten Unterbrechungsbeschreibungstabelle eine Referenz auf eine Unterbrechungsdienstroutine ein, die für das bestimmte festgestellt Protokoll spezifisch ist. Die PPP- und Vor-PPP-Protokolle weisen dieselbe Unterbrechungsdienstroutine auf.
  • Der beigefügte Anhang A enthält einen Quellcode in einer Assembliersprache, der Teile der PPP-Unterbrechungsdienstroutine auflistet. Die Codeteile zeigen, wie die Unterbrechungsdienstroutine eingehende Zeichen empfängt und verarbeitet, um diese zu validieren und/oder ein gültiges und vollständiges PPP-Paket zu bilden. Sobald ein PPP-Paket gebildet wurde, benachrichtigt die Unterbrechungsdienstroutine eine Task der höheren Ebene der Software des Server-Controllers 26 bezüglich des Vorhandenseins dieses Pakets.
  • Im Folgenden wird auf das Zustandsdiagramm von Fig. 12 Bezug genommen, das die Textprotokoll-Zustandsmaschine zeigt. Wenn die Textprotokoll-Zustandsmaschine drei aufeinanderfolgende "Return"-Zeichen (0 · 20) feststellt, gibt sie an, dass ein gültiges Textprotokoll von dem entfernten Endgerät 28 festgestellt wurde. Wenn die Zustandsmaschine in dem Zustand TEXT_INIT 156 ein Zeilenschaltzeichen empfängt, geht die Zustandsmaschine zu dem Zustand TEXT_ONE 157 über. Andernfalls bleibt die Zustandsmaschine in dem Zustand TEXT_INIT 156. Wenn die Zustandsmaschine in dem Zustand TEXT_ONE 157 ein Zeilenschaltzeichen empfängt, geht die Zustandsmaschine zu dem Zustand TEXT_TWO 158 über. Andernfalls kehrt die Zustandsmaschine zu dem Zustand TEXT_INIT 156 zurück. Wenn die Zustandsmaschine in dem Zustand TEXT_TWO 158 ein Zeilenschaltzeichen empfängt, geht die Zustandsmaschine zu dem Zustand TEXT_DETECTED 159 über. Andernfalls kehrt die Zustandsmaschine zu dem Zustand TEXT_INIT 156 zurück. Wenn die Zustandsmaschine den Zustand TEXT_DETECTED 156 erreicht, benachrichtigt sie eine Task höherer Ebene in der Software des Server-Controllers 26 darüber, dass ein gültiges Textprotokoll festgestellt wurde.
  • Im Folgenden wird auf das Zustandsdiagramm von Fig. 13 Bezug genommen, das die Vor- PPP-Zustandsmaschine zeigt. Wenn die Vor-PPP-Zustandsmaschine die Zeichenkette "CLIENT" feststellt, gibt sie an, dass ein gültiges Vor-PPP-Protokoll von dem entfernten Endgerät 28 festgestellt wurde und überträgt entsprechend die Zeichenkette "CLIENTSERVER" zu dem entfernten Endgerät 28. Wenn die Zustandsmaschine in dem Zustand CLIENT_INIT 162 ein ,C' empfängt, geht die Zustandsmaschine zu dem Zustand CLIENT_C 163 über. Andernfalls bleibt die Zustandsmaschine in dem Zustand CLIENT_INIT 162. Wenn die Zustandsmaschine in dem Zustand CLIENT_C 163 ein ,L' empfängt, geht die Zustandsmaschine zu dem Zustand CLIENT_L 164 über. Dieser Übergang wird für jeden der folgenden Zustände 164, 165 und 166 aufrechterhalten, um den möglichen Empfang der Zeichenkette CLIENT anzugeben. Wenn die Zeichenkette nicht vollständig empfangen wird, kehrt die Zustandsmaschine zu dem Zustand CLIENT_INIT 162 zurück. Nach Empfang der vollständigen Zeichenkette geht die Zustandsmaschine zu dem Zustand CLIENT_DETECTED 168 über und benachrichtigt eine Task der höheren Ebene in der Software des Server-Controllers 26 darüber, dass ein gültiges Vor-PPP-Protokoll festgestellt wurde.
  • Im Folgenden wird das Format der Zeichenfolge für ein gültiges PPP-Paket dargestellt:
  • SYNCH ADDRESS CONTROL PROTOCOL... Daten... CRClow CRChigh SYNCH
  • Das SYNCH-Zeichen wird durch einen Hexadezimalwert 0x7E angegeben, das ADDRESS- Zeichen wird durch einen Hexadezimalwert 0xFF angegeben und das CONTROL-Zeichen wird durch einen Hexadezimalwert 0x03 angegeben. Die Zeichen ADDRESS und CONTROL sind optional, wenn jedoch eines der Zeichen vorhanden ist, müssen beide Zeichen vorgesehen werden. Das bzw. die PROTOCOL-Zeichen umfast ein oder zwei Bytes, je nach dem niedrigstwertigen Bit (LSB) des ersten Bytes. Wenn das LSB des ersten Bytes gesetzt ist (d. h. eine 1 ist), dann besteht das PROTOCOL-Zeichen aus zwei unkomprimierten Protokollbytes, wobei das erste Byte ein niedriges Byte ist und das zweite Byte ein hohes Byte ist. Die "Daten"-Bytes sind die Nutzinformation des Pakets. Die Zeichen CRClow und CRChigh umfassen jeweils niedrige und hohe Bytes einer zyklischen redundanten Prüfung (CRC) auf den Datenbytes.
  • Im Folgenden wird auf das Zustandsdiagramm von Fig. 14 Bezug genommen, das eine PPP- Zustandsmaschine zeigt. Wenn die PPP-Zustandsmaschine ein gültiges PPP-Paket feststellt, gibt sie an, dass ein gültiges PPP-Protokoll von dem entfernten Endgerät 28 festgestellt wurde. Wenn die Zustandsmaschine in dem Zustand PPP_INIT 170 ein SYNCH- Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_SYNCH 172 über. Zustandsmaschine in dem Zustand PPP_SYNCH 172 ein ADDRESS-Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_ADDRESS 174 über. Andernfalls geht die Zustandsmaschine zu dem Zustand PPP_CONTROL 176 über. Wenn die Zustandsmaschine in dem Zustand PPP_ADDRESS 174 ein CONTROL-Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_CONTROL 176 über. Oder wenn die Zustandsmaschine ein SYNCH-Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_SYNCH 172 über. Andernfalls geht die Zustandsmaschine zu dem Zustand PPP_INIT 170 über. Wenn die Zustandsmaschine in dem Zustand PPP_CONTROL 176 ein SYNCH- Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_SYNCH 172 über. Wenn das LSB des Zeichens leer ist, geht die Zustandsmaschine zu dem Zustand PPP_NOT_COMPRESSED 178 über und behandelt das Zeichen als das niedrige Byte von zwei unkomprimierten Protokollbytes, und wenn das LSB des Zeichens gesetzt ist, geht die Zustandsmaschine zu dem Zustand PPP_COMPRESSED 180 über und behandelt das Zeichen als das einzelne komprimierte Protokollbyte. Wenn die Zustandsmaschine in dem Zustand PPP_NOT_COMPRESSED 178 ein SYNCH-Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_SYNCH 172 über. Andernfalls geht die Zustandsmaschine zu dem Zustand PPP_COMPRESSED 180 über und behandelt das Zeichen als das hohe Byte von zwei unkomprimierten Protokollbytes. Wenn die Zustandsmaschine in dem Zustand PRE_COMPRESSED 180 ein SYNCH-Zeichen empfängt, geht die Zustandsmaschine zu dem Zustand PPP_DETECTED 182 über. Andernfalls bleibt die Zustandsmaschine in dem Zustand PPP_COMPRESSED und behandelt das Zeichen als ein Daten- oder CRC-Byte. Wenn die Zustandsmaschine den Zustand PPP_DETECTED 182 erreicht, benachrichtigt sie eine Task der oberen Ebene in der Software des Server-Controllers 26 darüber, dass ein gültiges PPP-Protokoll festgestellt wurde.
  • Der Server-Controller 26 sieht eine optionale Rückwahl-Sicherheitsfunktion vor, um zu verhindern, dass nicht autorisierte Benutzer den Server 10 über den Server-Controller 26 manipulieren. Unter Verwendung der Konsolenanwendungssoftware des Server-Controllers 26 konfiguriert der Systemadministrator eine Liste von Benutzerprofilen, die jeweils einen Benutzernamen, ein Passwort und eine Telefonnummer enthalten. Wenn sich ein Benutzer einwählt, empfängt der Server-Controller 26 einen Benutzernamen und ein Passwort von dem Benutzer, verifiziert den Benutzernamen und das Passwort aus der Liste der Benutzerprofile und trennt dann die Verbindung. Wenn der Benutzername und das Passwort in der Liste der Benutzerprofile verifiziert werden, wählt der Server-Controller 26 dann die assoziierte Telefonnummer in der Liste der Benutzerprofile. Für einen autorisierten Benutzer wird dann der entfernte Zugriff auf gewohnte Weise fortgesetzt. Wenn jedoch ein nicht autorisierter Benutzer einen gültigen Benutzernamen und ein entsprechendes Passwort eingegeben hat, verliert er die Verbindung zu dem Server 10, weil er nicht zurückgerufen wird.
  • Der Server-Controller 26 ruft den autorisierten Benutzer in vorteilhafter Weise mit demselben Kommunikationsprotokoll zurück, das der Benutzer bei der Einwahl verwendet hat. Wenn sich der Benutze beispielsweise über ein Null-Modem von einem WINDOWS NT-Gerät aus unter Verwendung des Vor-PPP-Protokolls eingewählt hat, ruft der Server-Controller 26 das NT-Gerät unter Verwendung des Vor-PPP-Protokolls zurück. Dies ist vorteilhaft, weil das entfernte Endgerät wahrscheinlich eine Kommunikation mit dem Server-Controller 26 unter Verwendung desselben Protokolls erwartet, mit dem es sich eingewählt hat.
  • Im Folgenden wird auf Fig. 15 Bezug genommen, die verschiedenen Komponenten des Server-Controllers 26 auf einer Leiterplatte 200 zeigt. Die Leiterplatte 200 ist in eine Vielzahl von Ebenen oder Teilen unterteilt. Ein erster Teil 202 umfasst eine Erweiterungsbus- Schnittstelleneinheit 204 sowie eine Erfassungslogik 30. Ein zweiter Teil 206 umfasst einen Prozessor 30 und einen Controller-Speicher 32 sowie eine sekundäre Stromversorgung (d. h. eine Batterie), die durch das Bezugszeichen 208 angegeben wird. Ein dritter Teil 210 umfasst eine Kommunikationseinheit (d. h. ein Modem) 36. Die Teile 202, 206 und 210 sind voneinander durch eine Paar von Trennungseinheiten getrennt, die als eine erste Trennungseinheit 212 und eine zweite Trennungseinheit 214 angegeben sind.
  • Die Stromversorgung zu der Leiterplatte 200 wird normalerweise über Seitenverbindungen 216 von dem Erweiterungsbus angelegt, mit dem die Leiterplatte 200 verbunden werden kann. Ein Stift der Seitenverbindung 216 ist für die primäre Stromversorgung VDD reserviert, die jeweils zu dem ersten, zweiten und dritten Teil 202, 206 und 210 weitergeleitet wird. Anzeigedaten werden von dem Erweiterungsbus geschnüffelt und über möglicherweise mehrere Stifte der Seitenverbindung 216 und über die Schnittstelleeinheit 204 zu der Erfassungslogik 216 weitergeleitet. Wenn die Stromversorgung VDD bei beispielsweise einem Server-Ausfall verloren geht, erfüllt die Trennungseinheit 212 zwei Funktionen. Erstens werden die Stromleitungen innerhalb des ersten Teils 202 von den Stromleitungen innerhalb des zweiten Teils 206 getrennt. Insbesondere wird die VDD-Leitung innerhalb des ersten Teils 202 mittels der Trennungseinheit 212 von der Stromleitung bzw. den Stromleitungen innerhalb des zweiten Teils 206 getrennt. Zweitens werden die Signalleitungen innerhalb des ersten Teils 202 von den Signalleitungen innerhalb des zweiten Teils 206 getrennt. Wenn die Signalleitungen getrennt werden, weisen die Signalleitungen drei Zustände auf.
  • Ähnlich wie die erste Trennungseinheit 212 trennt die zweite Trennungseinheit 214 die Strom- und Signalleitungen. Wenn die Stromversorgung VDD von dem Erweiterungsbus unterbrochen wird und wenn die Kommunikationseinheit 36 keine Kommunikation von dem entfernten Endgerät 28 feststellt, führt die zweite Trennungseinheit 214 ihre Trennungsoperation durch. Wenn dagegen die Stromversorgung VDD vorhanden ist oder wenn das entfernte Endgerät 28 ein Kommunikationsprotokoll sendet, dann sieht die zweite Trennungseinheit 214 eine Verbindung zwischen dem zweiten und dem dritten Teil 208 und 210 vor.
  • Die Trennungseinheiten 212 und 214 umfassen vorzugsweise schnelle Schalter auf den Stromleitungen und dem bidirektionalen Sendeempfänger mit einer Speicher-/Steuertähigkeit zwischen Signalleitungen. Die schnellen Schalter sind von verschiedenen Anbietern wie etwa National Semiconductor Corp. und Texas Instruments Inc. erhältlich und sind als Paketanordnungen von JFETs mit einem üblichen Steuereingang (d. h. einem Ausgabeaktivierungs-Eingang) ausgebildet. Die bidirektionale Sendeempfänger sind gut für die Steuerung von hochkapazitiven Lasten geeignet und werden unter Hochgeschwindigkeitsbedingungen betrieben. Ein geeigneter bidirektionaler Sendeempfänger ist von Integrated Device Technology, Inc. oder Texas Instruments, Inc. als schneller CMOS-Sendeempfänger mit einer Dreizustands-Ausgabefähigkeit erhältlich.
  • Mit einem Stift der Seitenverbindung 216 ist eine Ladungsleitung 220 verbunden. Die Ladungsleitung 220 kann eine durch den Erweiterungsbus zugeführte Spannung empfangen, die höher als VDD ist. Gemäß einer Ausführungsform liegt die gewünschte Spannung auf der Ladungsleitung 220 bei 12 Volt, während die Stromversorgung VDD bei 5 Volt liegt. Die durch die Ladungsleitung 220 zugeführte Spannung dient nicht nur zum Laden der Batterie 208, sondern ermöglicht auch das Schalten des Schaltreglers 222. Wenn beispielsweise die Ladung in der Ladungsleitung 220 unter einen Schwellwert sinkt, aktiviert der Schaltregler 222 die Verbindung der Batterie 208 mit dem zweiten Teil 206 und möglicherweise mit dem dritten Teil 210. Wenn dagegen die Ladung auf der Ladungsleitung 220 den Schwellwert übersteigt, wird die Ausgabe aus der Batterie 208 (d. h. VDDB) nicht mit dem zweiten Teil 206 und dem dritten Teil 210 verbunden. Statt dessen wird in dem letzteren Fall VDD zu diesen Teilen zugeführt. Eine Diode 224 wird verwendet, um eine Entladung der Batterie 208 während der Zeitdauer zu verhindern, während der die Ladung auf der Leitung 220 beendet wird.
  • Ein Ring-Indikator 226 ist mit derselben Stromebene wie der zweite Teil 206 verbunden. Insbesondere empfängt der Ringindikator die Stromversorgung VDDB auf der Leitung 228, während VDD nicht vorhanden ist, oder die Stromversorgung VDD, wenn VDD vorhanden ist. Dementsprechend erhält der Ring-Indikator 226 Strom von entweder der primären oder der sekundären Stromversorgung, um ein eingehendes analoges Ring-Signal ARNG festzustellen. Bei Empfang von ARNG leitet der Ring-Indikator 226 das eingehende Kommunikationsprotokoll über das digitale Ring-Signal DRNG zu der Kommunikationseinheit 36 weiter.
  • Weil der Ring-Indikator 226 immer Strom erhält, ist die Feststellung eines eingehenden Rings unabhängig von dem Status von VDD immer möglich.
  • Fig. 16 zeigt einen Vergleicher 230, der verwendet wird, um zu bestimmen, ob VDD um eine vorbestimmte Schwellwertgröße kleiner als VDDB ist. Wenn VDD unter den annehmbaren Schwellwert fällt, erzeugt der Vergleicher 230 ein VDDOFF-Signal. Das VDDOFF-Signal wird zu dem Ausgabeaktivierungsstift der ersten Trennungseinheit 212 gegeben. Der Vergleicher 230 sieht also eine Trennung der Signalleitungen und der Stromleitungen zwischen dem ersten und dem zweiten Teil 202 und 206 vor, wenn die Stromversorgung VDD aus dem Erweiterungsbus kleiner als die Stromversorgung VDDB aus der Batterie 208 wird.
  • Fig. 17 zeigt den Betrieb des digitalen Rings DRNG und dessen Auswirkungen auf die Trennung der Strom- und Signalleitungen zwischen den zweiten und dritten Teilen 206 und 210. Wenn die Stromversorgung für Kommunikationseinheit 36 zu Beginn unterbrochen ist, veranlasst das Signal DRNG zu der Kommunikationseinheit 36 eine Unterbrechung für den Prozessor 34. Dadurch wird der Prozessor 34 darüber informiert, dass ein Ringsignal an der Kommunikationseinheit 36 anliegt, worauf der Prozessor 34 seine Unterbrechung durch das Signal MDMACT bestätigen kann und Strom über das Signal MDMPWR zu dem Modem leiten kann. Insbesondere wird das Signal MDMPWR zu dem Ausgabeaktivierungseingang der zweiten Trennungseinheit 214 gegeben. Bei Empfang des einen eingehenden Ring angebenden Signals MDMPWR verbindet die zweite Trennungseinheit 214 die Strom- und Signalleitungen zwischen dem zweiten Teil 206 und dem dritten Teil 210. Im wesentlichen wird DRNG mit einem Signal gegattert, das angibt, ob die Kommunikationseinheit 36 ein- oder ausgeschaltet ist, wobei die Ausgabe des Gatters eine Unterbrechung zu dem Prozessor 34 ist. Wenn der Prozessor 34 eine Unterbrechung empfängt, wird Strom von der Stromversorgung VDDB des Prozessors 34 zu der Kommunikationseinheit 36 zugeführt. Wenn die Stromversorgung für die Kommunikationseinheit 36 eingeschaltet ist, dann wird keine Unterbrechung ausgegeben. Anhang A

Claims (17)

1. Server-Controller (26), der umfasst:
Erfassungslogik (30), die mit einem Server (10) verbunden wird, um das Vorhandensein von Anzeigedaten zu ermitteln, die von dem Server weitergeleitet werden;
einen Controller-Speicher (32), der mit der Erfassungslogik (30) verbunden ist, wobei der Controller-Speicher (32) einen lokalen Grafikspeicher (48) und einen Speicher (54) für eine aktuelle Rücksetzabfolge umfasst;
wobei der lokale Grafikspeicher (48) so ausgeführt ist, dass er einen aktuellen Anzeigebildschirm der Anzeigedaten speichert, und der Speicher (54) für die aktuelle Rücksetzabfolge so ausgeführt ist, dass er eine Veränderung zwischen dem aktuellen Anzeigebildschirm der Anzeigedaten und einem vorangegangenen Anzeigebildschirm der Anzeigedaten während eines Zeitraums speichert, nach dem der Server (10) eine erste Rücksetzung empfängt; dadurch gekennzeichnet, dass
der Controller-Speicher (32) einen Speicher (56) für eine vorangegangene Rücksetzabfolge umfasst, der so ausgeführt ist, dass er die Veränderung zwischen dem aktuellen Anzeigebildschirm der Anzeigedaten und dem vorangegangenen Anzeigebildschirm der Anzeigedaten speichert, wenn der Server (10) eine zweite Rücksetzung vor der ersten Rücksetzung empfängt; wobei
auf den Speicher (56) für die vorangegangene Rücksetzabfolge von einem Endgerät (28) zugegriffen wird, das von dem Server (10) entfernt angeordnet ist, um auf dem Endgerät (28) eine Abfolge von Videobildschirmveränderungen anzuzeigen, die auftreten, nachdem der Server (10) die zweite Rücksetzung empfängt, wobei auf den Speicher (54) für die aktuelle Rücksetzabfolge von dem Endgerät (28) zugegriffen wird, um auf dem Endgerät eine Abfolge von Videobildschirmveränderungen anzuzeigen, die auftreten, nachdem der Server (10) die erste Rücksetzung empfängt.
2. Server-Controller (26) nach Anspruch 1, wobei die Veränderung zwischen dem aktuellen Anzeigebildschirm der Anzeigedaten und dem vorangegangenen Anzeigebildschirm der Anzeigedaten als ein Paket digitaler Daten dargestellt wird.
3. Server-Controller (26) nach Anspruch 2, wobei das Paket digitaler Daten weniger Binärwerte enthält als ein Satz von Binärwerten, der zum Speichern entweder des aktuellen Anzeigebildschirms oder des vorangegangenen Anzeigebildschirms verwendet wird.
4. Server-Controller (26) nach Anspruch 2, wobei das Paket digitaler Daten ein Byte Daten, das ein anzuzeigendes Zeichen anzeigt, und ein weiteres Byte Daten umfasst, das dem anzuzeigenden Zeichen verliehene Attribute anzeigt, wobei die Attribute aus der Gruppe ausgewählt werden, die Farbe und Intensität umfasst.
5. Server-Controller (26) nach Anspruch 2, wobei die Pakete in Reihe angeordnet sind und eine Abfolge von Videobildschirmveränderungen darstellen, die auftreten, nachdem der Server (10) die erste Rücksetzung empfängt.
6. Server-Controller (26) nach einem der vorangehenden Ansprüche, wobei auf den Speicher (54) für eine aktuelle Rücksetzabfolge von einem Endgerät zugegriffen wird, das von dem Server entfernt angeordnet ist, um auf dem Endgerät (28) eine Abfolge von Videobildschirmveränderungen anzuzeigen, die auftreten, nachdem der Server die erste Rücksetzung empfängt.
7. Computer (10): der umfasst:
eine übergeordnete zentrale Verarbeitungseinheit (CPU) (12);
einen Erweiterungsbus, der funktionell mit der übergeordneten CPU (12) und einem Video-Controller (20) verbunden ist; und
einen Server-Controller (26) nach einem der vorangehenden Ansprüche, der mit dem Erweiterungsbus verbunden ist.
8. Computer (10) nach Anspruch 7, wobei der Erweiterungsbus einen EISA-Bus umfasst.
9. Computer (10) nach Anspruch 7 oder Anspruch 8, wobei der Video-Controller (20) mit einem Video-Speicher (22) verbunden ist, so dass sowohl der Video-Controller (20) als auch der Server-Controller (26) auf Adresseninformationen in einem Video-Adressenbereich ansprechen, um die Anzeigedaten gleichzeitig sowohl in dem Video-Speicher (22) als auch dem Controller-Speicher (32) zu speichern.
10. Computer (10) nach einem der Ansprüche 7 bis 9, wobei die übergeordnete CPU (12) mit einem lokalen CPU-Bus verbunden ist.
11. Computer (10) nach Anspruch 10, der des Weiteren eine Bus-Schnittstelleneinheit umfasst, die mit dem lokalen CPU-Bus und dem Erweiterungsbus verbunden ist.
12. Computer (10) nach Anspruch 7, wobei die Anzeigedaten dann über den Erweiterungsbus weitergeleitet werden, wenn die übergeordnete CPU (12) die Anzeigedaten in den Video-Controller (20) schreibt.
13. Computer (10) nach einem der Ansprüche 7 bis 12, wobei der Controller-Speicher (32) des Weiteren umfasst:
einen temporären Schnappschussspeicher (52), der so verbunden ist, dass er den aktuellen Anzeigebildschirm der Anzeigedaten empfängt, die von dem lokalen Grafikspeicher (48) weitergeleitet werden;
einen Schnappschussspeicher (50), der so verbunden ist, dass er einen vorangegangenen Anzeigebildschirm der Anzeigedaten empfängt, die von dem lokalen Grafikspeicher (48) weitergeleitet werden; und
Vergleichslogik, die mit dem temporären Schnappschussspeicher (52) und dem Schnappschussspeicher (50) verbunden ist, um eine Veränderung zwischen dem vorangegangenen Anzeigebildschirm und dem aktuellen Bildschirm der Anzeigedaten zu ermitteln.
14. Computer (10) nach Anspruch 13, wobei der Controller-Speicher (32) des Weiteren einen Speicher (62) für einen aktuellen Start umfasst, der mit dem Speicher (54) für eine aktuelle Rücksetzabfolge verbunden ist, und wobei die Veränderung während des ersten Zeitraums zu dem Speicher (54) für eine aktuelle Rücksetzabfolge weitergeleitet wird und jeglicher Überlauf davon zu dem Speicher (62) für einen aktuellen Start weitergeleitet wird.
15. Verfahren zum Zugreifen auf eine Abfolge von Anzeigebildschirmen, die von einem Server (10) zu einem Video-Controller (20) weitergeleitet werden, das umfasst:
Laden eines aktuellen Anzeigebildschirms von Anzeigedaten, die von dem Server (10) zu dem Video-Controller (20) weitergeleitet werden, in einen lokalen Grafikspeicher (48);
Vergleichen des aktuellen Anzeigebildschirms von Anzeigedaten mit einem vorangegangenen Anzeigebildschirm von Anzeigedaten, die vorher in den lokalen Grafikspeicher (48) geladen wurden, um ein Bildschirmveränderungspaket zu erzeugen;
Wiederholen der Schritte des Ladens und Vergleichens für eine Abfolge von Anzeigebildschirmen, die als eine Vielzahl von Bildschirmänderungspaketen zusammengestellt sind, die während eines ersten Zeitraums unmittelbar von dem Ausfall des Servers und während eines zweiten Zeitraums unmittelbar nach dem Rücksetzen des Servers auftreten; und
Zugreifen auf die Vielzahl von Bildschirmveränderungspaketen mit einem Endgerät (28), das entfernt von dem Server angeordnet ist, um die Abfolge von Anzeigebildschirmen auf dem Endgerät anzuzeigen.
16. Verfahren nach Anspruch 15, wobei das Laden das Überwachen (snooping) eines Erweiterungsbusses auf Adressen innerhalb eines speziellen Adressenbereiches umfasst, die über den Erweiterungsbus von dem Server (10) gesendet werden.
17. Verfahren nach Anspruch 15, wobei das Zugreifen das Fernwählen von dem Endgerät (28) zu einem Modem umfasst, das mit einem Speicher verbunden ist, der so ausgeführt ist, dass er die Vielzahl von Bildschirmveränderungspaketen speichert.
DE69719420T 1996-08-16 1997-08-13 Ein Serversteuerung zur Speicherung und Wiedergabe von Bildschirmsequenzen, die von einem Hauptrechner weitergeleitet wurden Expired - Lifetime DE69719420T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/695,828 US5852720A (en) 1996-08-16 1996-08-16 System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer

Publications (2)

Publication Number Publication Date
DE69719420D1 DE69719420D1 (de) 2003-04-10
DE69719420T2 true DE69719420T2 (de) 2003-08-14

Family

ID=24794628

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69719420T Expired - Lifetime DE69719420T2 (de) 1996-08-16 1997-08-13 Ein Serversteuerung zur Speicherung und Wiedergabe von Bildschirmsequenzen, die von einem Hauptrechner weitergeleitet wurden

Country Status (4)

Country Link
US (2) US5852720A (de)
EP (1) EP0825535B1 (de)
JP (2) JP3790333B2 (de)
DE (1) DE69719420T2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817157B2 (en) 2004-08-23 2010-10-19 Hewlett-Packard Company, L.P. Method and apparatus for capturing slices of video data
DE102011013833A1 (de) * 2011-03-14 2012-09-20 Continental Automotive Gmbh Anzeigevorrichtung

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852720A (en) * 1996-08-16 1998-12-22 Compaq Computer Corp. System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer
US6742066B2 (en) * 1999-05-17 2004-05-25 Hewlett-Packard Development Company, L.P. System and method for controlling remote console functionality assist logic
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6138250A (en) 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6122758A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US5987554A (en) 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6163853A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US5892928A (en) 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6134668A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6247898B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Computer fan speed control system
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6122746A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6134673A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6148355A (en) 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US5958007A (en) * 1997-05-13 1999-09-28 Phase Three Logic, Inc. Automatic and secure system for remote access to electronic mail and the internet
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6526333B1 (en) 1997-05-13 2003-02-25 Micron Technology, Inc. Computer fan speed control system method
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6163849A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6073255A (en) 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6065053A (en) 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6088816A (en) 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6035420A (en) 1997-10-01 2000-03-07 Micron Electronics, Inc. Method of performing an extensive diagnostic test in conjunction with a bios test routine
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6154835A (en) 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US7308699B1 (en) 1998-09-15 2007-12-11 Intel Corporation Maintaining access to a video stack after an application crash
KR100506243B1 (ko) 1998-12-22 2005-09-26 삼성전자주식회사 스크린 버퍼 검색을 통한 시스템 모니터링 방법
JP2001014006A (ja) * 1999-06-29 2001-01-19 Denso Corp 情報表示装置およびナビゲーション装置
EP1516264B1 (de) * 1999-07-30 2017-05-24 Intellectual Ventures Holding 81 LLC Auffinden von bildern durch generierung eines deskriptors für jeden bereich eines bildes dessen zellen visuelle merkmale innerhalb einer gewissen toleranz aufweisen
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US7716358B2 (en) * 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US8595372B2 (en) * 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US20020063715A1 (en) * 2000-11-30 2002-05-30 Silicon Graphics, Inc. System, method, and computer program product for capturing a visualization session
JP3643084B2 (ja) * 2001-03-30 2005-04-27 株式会社ソニー・コンピュータエンタテインメント データのモニタシステム、方法、コンピュータプログラム、記録媒体
US20030065864A1 (en) * 2001-10-03 2003-04-03 Dell Products L.P. System and method supporting remote data processing system management
US7293102B2 (en) * 2002-03-26 2007-11-06 Hewlett-Packard Development Company Method and apparatus for storing data and replaying stored data in a temporally accurate manner
US6971042B2 (en) 2002-04-18 2005-11-29 Huge Systems, Inc. Media server with single chip storage controller
TW579460B (en) * 2002-07-24 2004-03-11 Wistron Corp Monitoring system for monitoring and processing data transmitting between host and management system, and the monitoring method
CH696101A5 (de) * 2003-03-28 2006-12-15 Barix Ag Verfahren zur Überwachung von netzgebundenen Geräten und Vorrichtung zur Durchführung des Verfahrens.
US20050197804A1 (en) * 2004-03-08 2005-09-08 Reeves Simon J. System and method for continuously recording user actions and displayed images
US8949404B2 (en) * 2005-05-24 2015-02-03 Hewlett-Packard Development Company, L.P. Acquiring graphical operating system post-failure screen
US8743128B2 (en) 2009-09-01 2014-06-03 Blackberry Limited Mobile wireless communications device with reset functions and related methods
JP5428681B2 (ja) * 2009-09-10 2014-02-26 富士通株式会社 情報処理装置、情報処理プログラム、および情報処理方法
EP2517186A4 (de) * 2009-12-21 2016-10-05 Intel Corp Katastrophenerkennungs- und -warnsystem sowie verfahren dafür
JP2012110465A (ja) * 2010-11-24 2012-06-14 Toshiba Corp 医用画像処理システム及び医用画像処理サーバー
JP6238221B2 (ja) 2013-03-19 2017-11-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェアの実行を監視する装置、方法およびプログラム
JP2015019276A (ja) * 2013-07-11 2015-01-29 株式会社東芝 記憶装置、crc生成装置およびcrc生成方法
JP5889848B2 (ja) * 2013-08-28 2016-03-22 京セラドキュメントソリューションズ株式会社 情報処理端末、印刷用プログラム、印刷装置及び印刷システム
JP6187686B2 (ja) 2014-05-20 2017-08-30 富士通株式会社 情報処理装置、情報処理システム及び方法
CN106133699A (zh) * 2014-06-20 2016-11-16 Nec 飞鼎克株式会社 故障通知装置、故障通知方法以及程序
US10042688B2 (en) * 2016-03-02 2018-08-07 Western Digital Technologies, Inc. Self-diagnosis of device drive-detected errors and automatic diagnostic data collection
RU2671041C2 (ru) * 2017-03-23 2018-10-29 Общество с ограниченной ответственностью "Квантум Спэйс" Способ тестирования
JP6706278B2 (ja) * 2018-03-27 2020-06-03 キヤノン株式会社 情報処理装置、及び情報処理方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4232377A (en) * 1979-04-16 1980-11-04 Tektronix, Inc. Memory preservation and verification system
US4281315A (en) * 1979-08-27 1981-07-28 Bell Telephone Laboratories, Incorporated Collection of messages from data terminals using different protocols and formats
EP0079885A4 (de) * 1981-05-27 1984-03-01 Mostek Corp Stromversorgungssteuereinheit für integrierte schaltung.
US4866600A (en) * 1983-04-27 1989-09-12 Tandy Corporation Computer video control system
US4528459A (en) * 1983-06-10 1985-07-09 Rockwell International Corporation Battery backup power switch
JPS61133454A (ja) * 1984-12-03 1986-06-20 Hitachi Ltd 端末制御方式
US4777626A (en) * 1984-12-22 1988-10-11 Tokyo Electric Co., Ltd. Memory device having backup power supply
JPS61148542A (ja) * 1984-12-24 1986-07-07 Nec Corp デ−タ処理装置の保守方式
US4683469A (en) * 1985-03-14 1987-07-28 Itt Corporation Display terminal having multiple character display formats
EP0218246A3 (de) * 1985-10-09 1988-12-14 Hitachi, Ltd. Verfahren zur Erzeugung einer Entwurfreferenz und Gerät dafür
JPS63114594A (ja) * 1986-10-30 1988-05-19 Yaskawa Electric Mfg Co Ltd 可変速ドライブ装置のトレ−スバツク方法
JPS63181054A (ja) * 1987-01-22 1988-07-26 Pfu Ltd システム拡張装置の状態監視装置
US4924210A (en) * 1987-03-17 1990-05-08 Omron Tateisi Electronics Company Method of controlling communication in an ID system
US4984211A (en) * 1988-02-16 1991-01-08 Texas Instruments Incorporated Battery backup bus scheme for an ECL BiCMOS SRAM
JPH0695350B2 (ja) * 1988-08-12 1994-11-24 三菱電機株式会社 Icメモリカード用バッテリ回路
JPH0287867A (ja) * 1988-09-26 1990-03-28 Fujitsu Ltd 表示画面伝送装置
US5043919A (en) * 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
US5063494A (en) * 1989-04-12 1991-11-05 Unisys Corporation Programmable data communications controller
US5170266A (en) * 1990-02-20 1992-12-08 Document Technologies, Inc. Multi-capability facsimile system
US5617532A (en) * 1990-10-18 1997-04-01 Seiko Epson Corporation Information processing apparatus and data back-up/restore system for the information processing apparatus
CA2072178A1 (en) * 1991-06-24 1992-12-25 Said S. Saadeh Innate bus monitor for computer system manager
CA2072198A1 (en) * 1991-06-24 1992-12-25 Scott C. Farrand Remote console emulator for computer system manager
JPH0535543A (ja) * 1991-06-26 1993-02-12 Nec Software Ltd プログラム状態表示装置
EP0529864B1 (de) * 1991-08-22 2001-10-31 Sun Microsystems, Inc. Netzwerkvideoanbietergerät und-verfahren
US5257384A (en) 1991-09-09 1993-10-26 Compaq Computer Corporation Asynchronous protocol for computer system manager
JPH05108413A (ja) * 1991-10-16 1993-04-30 Fujitsu Ltd 遠隔コンソール操作の制御方法
JPH0612210A (ja) * 1992-06-26 1994-01-21 Toshiba Corp パーソナルコンピュータ
JPH0619746A (ja) * 1992-07-03 1994-01-28 Mitsubishi Electric Corp 故障診断装置
JPH0659941A (ja) * 1992-08-06 1994-03-04 Nec Eng Ltd 情報処理装置
US5282194A (en) * 1992-08-17 1994-01-25 Loral Aerospace Corporation Interactive protocol analysis system
US5353415A (en) * 1992-10-02 1994-10-04 Compaq Computer Corporation Method and apparatus for concurrency of bus operations
US5451933A (en) * 1992-10-19 1995-09-19 Motorola, Inc. Computer card having power switching capability
JPH06266326A (ja) * 1993-03-17 1994-09-22 Toshiba Corp 計算機操作画面の記録/復元方式
ATE171325T1 (de) * 1993-03-20 1998-10-15 Ibm Verfahren und vorrichtung zur herausarbeitung der vermittlungsinformation aus dem kopfteil eines protokolls
JP2630238B2 (ja) * 1993-12-24 1997-07-16 日本電気株式会社 画面イメージ記録システム
US5384747A (en) * 1994-01-07 1995-01-24 Compaq Computer Corporation Circuit for placing a memory device into low power mode
JPH07262043A (ja) * 1994-03-18 1995-10-13 Hitachi Ltd 情報処理装置
US5567993A (en) * 1994-06-23 1996-10-22 Dallas Semiconductor Corporation Programmable power supply system and methods
US5623599A (en) * 1994-07-29 1997-04-22 International Business Machines Corporation Method and apparatus for processing a synchronizing marker for an asynchronous remote data copy
JPH0850555A (ja) * 1994-08-08 1996-02-20 Matsushita Electric Ind Co Ltd 障害解析装置及び障害検出装置
US5537533A (en) * 1994-08-11 1996-07-16 Miralink Corporation System and method for remote mirroring of digital data from a primary network server to a remote network server
US5615334A (en) * 1994-10-07 1997-03-25 Industrial Technology Research Institute Memory reflection system and method for reducing bus utilization and device idle time in the event of faults
US5917505A (en) * 1995-12-19 1999-06-29 Cirrus Logic, Inc. Method and apparatus for prefetching a next instruction using display list processing in a graphics processor
US5854638A (en) * 1996-02-02 1998-12-29 Opti Inc. Unified memory architecture with parallel access by host and video controller
US5852720A (en) * 1996-08-16 1998-12-22 Compaq Computer Corp. System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817157B2 (en) 2004-08-23 2010-10-19 Hewlett-Packard Company, L.P. Method and apparatus for capturing slices of video data
US8933941B2 (en) 2004-08-23 2015-01-13 Hewlett-Packard Development Company, L.P. Method and apparatus for redirection of video data
DE102011013833A1 (de) * 2011-03-14 2012-09-20 Continental Automotive Gmbh Anzeigevorrichtung
DE102011013833B4 (de) * 2011-03-14 2014-05-15 Continental Automotive Gmbh Anzeigevorrichtung
US9146140B2 (en) 2011-03-14 2015-09-29 Continental Automotive Gmbh Display device having a stepper motor and a watchdog timer

Also Published As

Publication number Publication date
EP0825535A2 (de) 1998-02-25
EP0825535B1 (de) 2003-03-05
EP0825535A3 (de) 1999-03-10
JPH10116254A (ja) 1998-05-06
US6173340B1 (en) 2001-01-09
US5852720A (en) 1998-12-22
JP2006155641A (ja) 2006-06-15
DE69719420D1 (de) 2003-04-10
JP3790333B2 (ja) 2006-06-28

Similar Documents

Publication Publication Date Title
DE69719420T2 (de) Ein Serversteuerung zur Speicherung und Wiedergabe von Bildschirmsequenzen, die von einem Hauptrechner weitergeleitet wurden
DE69718859T2 (de) Serversteuerung zur Beobachtung und zum Empfang einer verdoppelten Kopie von Anzeigedaten eines Videosteuergeräts
EP0825749A2 (de) Verschiedene Kommunikationsprotokolle für eine Serversteuerung zum Ermöglichen seiner Fernkommunikation mit einem verbundenen Hauptrechner
DE69935234T2 (de) System zum fernzugriff auf personalcomputer
US5910876A (en) Printed circuit board having conductors which can be decoupled for isolating intactive integrated circuits connected thereto
DE112012002422B4 (de) System und Verfahren zum dynamischen Konfigurieren eines Serial-Daten-Links in einem Anzeigegerät
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE69534883T2 (de) System zum Fernzugriff auf Personalcomputer
DE69231391T2 (de) Emulationsvorrichtung für eine vom Rechnersystem entfernten Konsole
DE19900369B4 (de) Vorrichtung zum Anschluß an einen Universal Serial Bus (USB) und Verfahren zum Betreiben eines Steuerendpunktes an einem Universal Serial Bus (USB)
DE10134492B4 (de) Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster
DE69936060T2 (de) Verfahren und Vorrichtung für eine verbesserte Schnittstelle zwischen Computerkomponenten
DE60001659T2 (de) System und adapterkarte für emulation einer entfernten konsole
DE112010002778B4 (de) Rauschunterdrückung zur Begrenzung von falschem Wecken
DE60129448T2 (de) Busbrücke mit einem Burst-Übertragungsmodebus und einem Einzel-Übertragungsmodebus
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE69518745T2 (de) Überwachungs- und steuerungsvorrichtung und -verfahren für programme mit einem netzwerk
DE69713778T2 (de) Vorrichtung zur überwachung eines regelungssystems
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE3851676T2 (de) Datenpaketierungsverfahren.
DE102020133129A1 (de) Verbessertes anzeige-wakeup
CN105357273A (zh) 异步通信模式下socket通信与进程管理通用平台及方法
DE69227996T2 (de) Vorrichtung und verfahren zur vermittlung von datenblöcken
DE112018007914T5 (de) Kommunikationsvorrichtung, kommunikationssystem, kommunikationsverfahren und kommunikationsprogramm
DE102022127450A1 (de) Tastatur/video/monitor-umschalter für server ohne integrierten videocontroller

Legal Events

Date Code Title Description
8364 No opposition during term of opposition