DE69730430T2 - Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem - Google Patents

Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem Download PDF

Info

Publication number
DE69730430T2
DE69730430T2 DE69730430T DE69730430T DE69730430T2 DE 69730430 T2 DE69730430 T2 DE 69730430T2 DE 69730430 T DE69730430 T DE 69730430T DE 69730430 T DE69730430 T DE 69730430T DE 69730430 T2 DE69730430 T2 DE 69730430T2
Authority
DE
Germany
Prior art keywords
bios
flash memory
memory
processes
computer
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
DE69730430T
Other languages
English (en)
Other versions
DE69730430D1 (de
Inventor
A. David EDWARDS
N. Robert HASBUN
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69730430D1 publication Critical patent/DE69730430D1/de
Publication of DE69730430T2 publication Critical patent/DE69730430T2/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • STAND DER TECHNIK
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computersysteme und im Besonderen Verfahren und Vorrichtungen zur Verwendung einer Flash-EEPROM-Speicheranordnung, die einen Hauptspeicher ergänzt, um diagnostische Funktionen vorzusehen.
  • Beschreibung des Stands der Technik
  • Seit geraumer Zeit kommen Flash-EEPROM-Speichervorrichtungen (EEPROM als englische Abkürzung von electrically-erasable programmable read-only memory) in Anordnungen als ein neuer Typ eines langfristigen Speichers zum Einsatz. Eine Flash-EEPROM-Speicheranordnung besteht aus einer großen Anzahl von Metalloxid-Silizium-Feldeffekttransistoren mit schwebendem Gate, die als Speicherzellen auf normale Art und Weise in Zeilen und Spalten mit der Schaltkreisanordnung für den Zugriff auf einzelne Zellen angeordnet sind und die Speichertransistoren dieser Zellen in verschiedenen Speicherzuständen platzieren. Derartige Speichertransistoren können durch das Speichern einer Ladung an dem schwebenden Gate programmiert werden. Diese Ladung bleibt erhalten, wenn die Stromversorgung von der Anordnung entfernt wird. Eine Ladung zeigt für gewöhnlich eine "Null" oder einen programmierten Zustand an, während das Fehlen einer Ladung eine "Eins" oder einen gelöschten Zustand anzeigt. Der Zustand des schwebenden Gates kann erfasst werden, wenn die Vorrichtung gelesen wird.
  • Diese Anordnungen können derart gestaltet sein, dass sie zahlreiche der Operationen ausführen, die vorher durch andere Speicherausführungen in digitalen Systemen ausgeführt worden sind. Zum Beispiel wird der Flash-Speicher als Ersatz für verschiedene Nur-Lese-Speicher verwendet, wie etwa des grundlegenden Ein-Ausgabe-Startspeichers (BIOS) eines Computersystems. Die Möglichkeit der Programmierung eines bestehenden Flash-Speichers bietet gegenüber einem herkömmlicheren EPROM-Speicher erhebliche Vorteile. In letzter Zeit wurden Flash-Speicher eingesetzt, um ein kleineres, leichteres funktionales Äquivalent zu einem elektromechanischen Festplattenlaufwerk vorzusehen. Ein Flash-Speicher eignet sich für diesen Zweck, da er im Vergleich zu einem elektromechanischen Festplattenlaufwerk schneller gelesen werden kann und in Bezug auf physische Beschädigungen weniger empfindlich ist. Flash-Speicher-Festplattenlaufwerke sind besonders nützlich für tragbare Computer, bei denen der Platzbedarf besonders begrenzt ist und das Gewicht eine große Rolle spielt.
  • Bevor ein Flash-Speicher jedoch zum Speichern sich schnell verändernder Daten verwendet werden kann, müssen eine Reihe von schwierigen Problemen in Bezug auf das Design des Flash-Speichers gelöst werden. Für gewöhnlich ist eine Flash-Speicheranordnung in Blöcke unterteilt, die derart verbunden sind, dass alle Speicherzellen eines ganzen Blocks gleichzeitig gelöscht werden. Danach kann eine Zelle einzeln zur Datenspeicherung programmiert werden. Da alle Speichertransistoren eines Blocks der Anordnung zusammengeführt werden, um gemeinsam gelöscht zu werden, kann eine Zelle in einem programmierten Zustand nicht auf den gelöschten Zustand umgeschaltet werden, bevor nicht der ganze Block der Anordnung bzw. des Felds gelöscht worden ist. Somit können ungültige Informationen nicht gelöscht werden, ohne auch alle gültigen Informationen zu löschen, die in dem Block verbleiben. Im Vergleich zu anderen Speichern, bei denen veränderte Daten direkt an die Stelle der zu ersetzenden Daten geschrieben werden (im Wesentlichen unverzüglich), führt dies bei einer Flash-EEPROM-Speicheranordnung dazu, dass ein zeitaufwändiger Löschprozess erforderlich ist, bevor eine Überschreibung erfolgen kann. Wenn sich die Informationen bei einer Dateneingabe in den Flash-Speicher ändern, der zum Speichern der sich ändernden Informationen verwendet wird, werden die neuen Informationen in einen neuen Speicherbereich geschrieben anstatt die alten Informationen zu überschreiben und die alten Informationen werden als ungültig gekennzeichnet. Nachdem danach der Block mit den alten Informationen gefüllt und ein ausreichender Abschnitt dieses Blocks als ungültig markiert bzw. gekennzeichnet worden ist, werden alle in dem Block verbliebenen gültigen Informationen in einen sauberen Speicherbereich geschrieben; und danach kann der ganze Block gelöscht werden, häufig durch einen im Hintergrund ausgeführten Prozess.
  • Ein Flash-Speicher kann inhärent mit der gleichen Rate gelesen werden wie ein dynamischer Direktzugriffsspeicher (DRAM), der durch die gleichen Prozesse hergestellt wird, so dass es den Anschein hat, als könne der Flash-Speicher als Ersatz oder zur Ergänzung des Hauptspeichers verwendet werden. Da die Höhe der erforderlichen Ladung zum Schreiben einer Flash-Vorrichtung jedoch deutlich größer ist, erfordert das Schreiben in einen Flash-Speicher mehr Zeit als das Schreiben in einen DRAM. Da die veränderten Daten ferner nicht direkt über ungültige Daten in einem Block des Flash-Speichers geschrieben werden können, sondern in einen neuen Bereich geschrieben werden müssen, werden die alten Daten ungültig und der Block mit den ungültigen Daten wird letztendlich gelöscht, wobei die durchschnittliche Zeit zum Schreiben in einen Flash-Speicher deutlich länger ist als die Zeit zum Schreiben in einen DRAM.
  • Obwohl Flash-Speicher in Computersystemen für viele Zwecke eingesetzt worden sind, werden sie bis jetzt jedoch nicht als Hauptspeicher oder als Ergänzung eines Hauptspeichers eingesetzt. Die Schreibzeit für einen Flash-Speicher galt als zu lang, um den Einsatz eines Flash-Speichers als Teil des Hauptspeichers zu ermöglichen.
  • Es gibt eine Reihe von Gründen für die Verwendung eines Flash-Speichers zumindest als Ergänzung des Hauptspeichers in einem Computersystem. Die in einem Flash-EEPROM-Speicher platzierten Daten erfordern keinen neuen Refreshzyklus oder eine höhere Leistung für einen derartigen Zyklus. Da die in dem Flash-Speicher platzierten Daten nicht verloren gehen, wenn die Stromversorgung eines Systems unterbrochen wird, können Prozesse, die normalerweise in dem Nur-Lese-Speicher gespeichert werden, wie zum Beispiel die grundlegenden Ein-Ausgabe-Anschaltprozesse (BIOS), in dem Flash-Speicher auf dem Hauptspeicherbus platziert werden, um ein sehr schnelles Starten vorzusehen. Die BIOS-Prozesse werden in diesem Fall für gewöhnlich in einem Flash-EEPROM oder EPROM-Speicher auf einem so genannten X-Bus platziert, ein Zusatz des Industry Standard Association (ISA) Busses, einem Prozessor-basierten System von Intel. Wenn dem Computer Strom zugeführt wird, werden die BIOS-Prozesse in dem Flash-Nur-Lese-Speicher auf dem X-Bus gelesen und über den ISA-Bus (oder einen anderen sekundären Bus), eine ISA/PCI-Brücke, den PCI-Bus und eine PCI-Prozessor/Speicher-Brücke in den Hauptspeicher übertragen.
  • Das U.S. Patent US-A-5.522.076 offenbar einen mit einem Systembus verwendeten Flash-Speicher, der als ein BIOS-ROM verwendet wird, mit einem Hauptblock, der ein BIOS speichert, und mit einem Boot-Block, der Minimumprogramme für die Ausführung der Initialisierung eines Computerprogramms speichert. Der BIOS ROM kann über eine Boot-Block-Überschreibungseinheit aktualisiert oder überschrieben werden, die mit einem Erweiterungsbusanschluss des Computersystems verbunden ist, oder über eine Diskette, wobei die Diskette oder die Boot-Block-Überschreibungseinheit ein Überschreibungsprogramm sowie eine Kopie des BIOS und des Boot-Blocks aufweisen.
  • Das U.S. Patent US-A-5.530.847 offenbart einen nicht flüchtigen Speicher, vorzugsweise einen Flash-Speicher, als Bestandteil eines Speicherteilsystems, das mit einem generischen Bus verbunden ist, wobei der nicht flüchtige Speicher dazu dient, eine Boot-Laderoutine, eine Dekomprimierungsroutine, eine komprimierte Treiberroutine und eine komprimierte Diagnoseroutine speichert. Die komprimierte Treiberroutine und die komprimierte Diagnoseroutine werden durch die Dekomprimierungsroutine in einen Video RAM dekomprimiert, um unter anderem das Testen des System-RAM zu erleichtern. Die Treiberroutine sieht eine Umgebung an Stelle des Betriebssystems vor, in der die Diagnoseroutine in dem Video-RAM ausgeführt wird. Die Diagnosen werden somit ohne durch ein Betriebssystem vorgesehene BIOS-Hardware-Behandlungsroutinen durchgeführt. Die Diagnosen werden optional ausgeführt und nicht als Bestandteil des normalen Bootens eines PCs.
  • Eine Eliminierung der Übertragung der BIOS-Prozesse in den Hauptspeicher würde einen schnellen Systemstart vorsehen.
  • Ferner wäre es nicht erforderlich, die BIOS-Prozesse in dem DRAM-Hauptspeicher in Funktion eines Schattenspeichers auszuführen, so dass der normalerweise für diesen Zweck verwendete Abschnitt des Hauptspeichers nicht erforderlich ist.
  • Die Platzierung der BIOS-Prozesse in einer Flash-EEPROM-Speicheranordnung, die sich als Ergänzung des Hauptspeichers auf dem Speicherbus befindet, würde einen weiteren signifikanten Vorteil vorsehen. Das BIOS weist verschiedene Prozesse auf, welche den Zustand verschiedener Komponenten des Computersystems testen. Diese BIOS-Prozesse sind für eine Person nützlich, die einen Computer im Falle eines Ausfalls überprüft. Wenn der Computer jedoch Probleme aufweist, die es unmöglich machen, dass die BIOS-Prozesse in den Hauptspeicher geschrieben werden, so können die BIOS-Prozesse nicht zur Bestimmung der Art des Problems verwendet werden. Wenn diese Prozesse auf eine bestimmte Weise in dem permanenten Speicher auf dem Speicherbus zur Verfügung gestellt werden können, wäre es deutlich leichter, die Quelle des Problems zu ermitteln, selbst wenn der Computer ansonsten nicht funktionsfähig ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Vorgesehen ist gemäß einem ersten Aspekt der vorliegenden Erfindung ein Verfahren gemäß dem gegenständlichen Anspruch 1.
  • Vorgesehen ist gemäß einem zweiten Aspekt der vorliegenden Erfindung ein Computersystem gemäß dem gegenständlichen Anspruch 6.
  • Die vorliegende Erfindung wird durch eine Flash-EEPROM-Speicheranordnung realisiert, die der Verbindung mit einem Speicherbus eines Computers dient, mit Diagnoseprozessen, die in der Anordnung gespeichert sind, um den Status des Systems zu testen, um Daten vorzusehen, die Fehlfunktionen in dem Computer anzeigen, wobei in der Anordnung Zugriffsprozesse gespeichert sind, um die Diagnoseprozesse aufzurufen, auch wenn sich der Computer nicht booten lässt, und wobei Kommunikationsprozesse in der Anordnung gespeichert sind, um die durch die Diagnoseprozesse erzeugten Ergebnisse zur Verwendung bei Instandsetzungsarbeiten an dem Computer zu übertragen.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung ermöglicht die Datenübertragung zwischen Hardwarekomponenten eines Computers und einem externen Host-Computer, so dass ein Wartungstechniker an dem Host-Computer die Fehlfunktionen in dem Computer diagnostizieren und beheben kann, der die Flash-EEPROM-Speicheranordnung aufweist.
  • Die Aufgaben und Merkmale der vorliegenden Erfindung werden in Bezug auf die folgende genaue Beschreibung in Verbindung mit den Zeichnungen besser verständlich, wobei übereinstimmende Elemente in den verschiedenen Abbildungen gleiche Bezeichnungen tragen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen zeigen:
  • 1 ein Blockdiagramm eines gemäß der vorliegenden Erfindung gestalteten Computersystems;
  • 2 ein Diagramm der Funktionen der gemäß der vorliegenden Erfindung gestalteten Softwareprozesse, die in einem Flash- Speichermodul gespeichert sind und zur Ergänzung des Hauptspeichers in dem System aus 1 verwendet werden;
  • 3 ein Flussdiagramm eines Verfahrens gemäß der vorliegenden Erfindung; und
  • 4 ein Flussdiagramm, das die Schritte des Verfahrens aus 3 näher veranschaulicht.
  • Bezeichnung und Nomenklatur
  • Bestimmte Teile der folgenden genauen Beschreibung sind als symbolische Darstellungen der Operationen an Datenbits in einem Computerspeicher vorgesehen. Die Beschreibungen und Darstellungen sind das von Fachleuten auf dem Gebiet der Datenverarbeitung verwendete Mittel zur wirksamsten Vermittlung des Wesentlichen ihrer Arbeit an andere Fachleute. Bei den Operationen handelt es sich um Operationen, die physikalische Manipulationen physikalischer Größen erfordern. Für gewöhnlich, jedoch nicht unbedingt, nehmen diese Größen die Form elektrischer oder magnetischer Signale an, die gespeichert, übertragen, kombiniert bzw. verknüpft, verglichen oder anderweitig manipuliert werden können. Es hat sich gelegentlich als praktisch erwiesen, überwiegend begründet durch die normale Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ziffern bzw. Zahlen oder dergleichen zu bezeichnen. Diesbezüglich wird hiermit festgestellt, dass alle diese und ähnliche Begriffe den entsprechenden physikalischen Größen zugeordnet werden müssen und lediglich praktische Bezeichnungen für diese Größen darstellen.
  • Ferner werden die ausgeführten Manipulationen häufig auch als Addieren bzw. Hinzufügen oder Vergleichen ausgedrückt, wobei diese Begriffe für gewöhnlich mit geistigen Tätigkeiten verbunden sind, die von einer menschlichen Bedienungsperson ausgeführt werden. In den meisten Fällen ist für die hierin beschriebenen Operationen, die einen Bestandteil der vorliegenden Erfindung bilden, keine Fähigkeit einer menschlichen Bedienungsperson erforderlich oder wünschenswert; bei den Operationen handelt es sich vielmehr um maschinell ausgeführte Operationen. Nützliche Maschinen bzw. Vorrichtungen zur Ausführung der Operationen der vorliegenden Erfindung sind unter anderem digitale Allzweckrechner oder ähnliche Vorrichtungen. In allen Fällen ist die Unterscheidung zwischen den Verfahrensoperationen für den Betrieb eines Computers und dem Berechnungsverfahren an sich zu berücksichtigen. Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung für den Betrieb eines Computers bezüglich der Verarbeitung elektrischer oder anderer (z. B. mechanischer, chemischer) physikalischer Signale zur Erzeugung anderer verlangter physikalischer Signale.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • Nachstehend wird Bezug auf die Abbildung aus 1 genommen. Diese veranschaulicht ein gemäß einem Ausführungsbeispiel der vorliegenden Erfindung konfiguriertes Computersystem 10. Das veranschaulichte System 10 weist eine Zentraleinheit 11 auf, welche die verschiedenen Anweisungen ausführt, die vorgesehen sind, um die Operationen des Systems zu steuern. Die Zentraleinheit 11 ist für gewöhnlich in Verbindung mit einem Prozessorbus zu einer Brückenschaltung 14 verbunden, welche die Zugriffe auf einen Ein-/Ausgabebus 12 steuert, der Informationen zwischen verschiedenen Bauteilen des Systems 10 transportieren kann. In Bezug auf die Abbildung aus 1 handelt es sich bei dem Bus 12 vorzugsweise um einen PCI-Bus oder einen anderen lokalen Bus, der besonders schnelle Datenübertragungen vorsehen kann. Der in der Abbildung aus 1 ausgewählte Bus dient ausschließlich Veranschaulichungszwecken. In einem typischen System 10 sind verschiedene Ein-/Ausgabevorrichtungen mit dem Bus 12 als Bus-Master- und Bus-Slave-Schaltungen verbunden. In der vorliegenden Abbildung kann zum Beispiel ein langfristiger Speicher 15 mit dem PCI-Bus 12 als Bus-Master- oder als Bus-Slave-Schaltung verbunden werden. Andere Ein-/Ausgabevorrichtungen, wie zum Beispiel Soundkarten, Bildspeicher und dergleichen können ebenfalls mit dem Bus 12 verbunden werden.
  • Die Brückenschaltung 14 ist ebenfalls über einen Speicherbus 16 mit dem Hauptspeicher 13 verbunden. Der Hauptspeicher 13 besteht für gewöhnlich aus einem dynamischen Direktzugriffsspeicher, der so angeordnet ist, wie dies für den Fachmann auf dem Gebiet allgemein bekannt ist, um Informationen über einen Zeitraum zu speichern, während dem das System 10 mit Strom versorgt wird, wobei bestimmte Systeme zum Erreichen des gleichen Zwecks auch andere Formen eines Direktzugriffsspeichers verwenden können, wie etwa einen statischen Direktzugriffsspeicher. Gemäß der vorliegenden Erfindung wird ferner eine gemäß der vorliegenden Erfindung gestaltete Flash-EEPROM-Speicheranordnung 17 an dem Speicherbus 16 in Verbindung mit dem Hauptspeicher 13 positioniert. Eine gemäß der vorliegenden Erfindung gestaltete zweite Flash-EEPROM-Speicheranordnung 17 ist ebenfalls an dem Bus 12 positioniert, um eine zweite Position darzustellen.
  • Wie dies dem Fachmann auf dem Gebiet bekannt ist, erfolgt das Schreiben in Flash-Speicherzellen deutlich langsamer als das Schreiben in einen DRAM-Speicher, da die aktuellen Anforderungen wesentlich höher sind und der Prozess des Schreibens und Löschens wesentlich komplizierter ist als das Schreiben in einen typischen DRAM-Speicher. Aus diesem Grund galten Flash-Speicher als ungeeignet zum Speichern von Programmen und Prozessen, die häufige Schreibvorgänge aufweisen. Obwohl die Schreibzeiten im Vergleich zu den Schreibzeiten für DRAM lang sind, gibt es allerdings eine Reihe von Gründen für die Verwendung von Flash-EEPROM-Speicherzellen zur Ergänzung des Hauptspeichers.
  • Ein Hauptgrund ist es, Programme und Prozesse vorzusehen, die unmittelbar zur Ausführung durch die Zentraleinheit zur Verfügung stehen, wenn einem Computer Strom zugeführt wird. Wenn eine Flash-EEPROM-Speicheranordnung auf dem Speicherbus positioniert wird, so dass ein ebenso schneller Zugriff wie auf den DRAM des Hauptspeichers möglich ist, und wenn ein Anwendungsprogramm in der Flash-EEPROM-Speicheranordnung platziert wird und aus dieser ausgeführt werden kann, so muss das Anwendungsprogramm nicht aus dem Dauerspeicher aufgerufen und in dem Hauptspeicher platziert werden, um ausgeführt zu werden. Wenn in ähnlicher Weise ein ausführbares Anwendungsprogramm in einer Flash-EEPROM-Speicheranordnung gespeichert wird, die an einem Bus wie etwa einem PCI-Bus positioniert ist, so kann die Anwendung aus dem Flash-Speicher ausgeführt werden, ohne dass sie für die Ausführung in dem Hauptspeicher-DRAM platziert werden muss. Dies ermöglicht einen schnelleren Arbeitsbeginn der Programme und eliminiert im Wesentlichen Seitenwechsel für in dem Flash-Speicher gespeicherte Anwendungen.
  • Es wurden verschiedene Anordnungen gemäß der vorliegenden Erfindung entwickelt, die es ermöglichen, dass ein Flash-Speicher, der ein Programm speichert, an dem Speicherbus platziert wird. Diese Anordnungen vermeiden die langsamen Schreibvorgänge sowie die zugeordneten Löschvorgänge des Flash-Speichers, so dass der Flash-Speicher an dem Speicherbus positioniert werden kann, ohne die Operationen wesentlich zu verlangsamen.
  • Einige dieser Anordnungen nutzen die Tatsache, dass die meisten an Codesektoren eines Anwendungsprogramms ausgeführten Operationen Leseoperationen darstellen; folglich können die meisten Zeilen eines Programms aus dem Flash-Speicher mit einer Rate ausgeführt werden, die so schnell ist, wie eine mögliche Ausführung aus dem DRAM. Schreiboperationen von Daten in den Programmraum in dem Flash-Speicher sind für gewöhnlich auf Operationen beschränkt, die selten auftreten. Einige Prozesse erzeugen und modifizieren jedoch Datenstrukturen und in den Codesektoren gespeicherte Variablen. Zum Beispiel erzeugen BIOS-Prozesse für gewöhnlich Datenstrukturen, die Hardwareelemente des Computersystems definieren.
  • Bei einer Anordnung, die eine Ausführung direkt aus dem Flash-Speicher ermöglicht, der an dem Speicherbus oder an einem lokalen Bus angeordnet ist, sind die dem Flash-Speicher zugeordneten Speicheradressen als ausschließliche Lese- oder Ausführungsadressen vorgesehen. Dies ermöglicht das Lesen und Ausführen eines in der Flash-EEPROM-Speicheranordnung gespeicherten ausführbaren Programms auf normale Art und Weise. Wenn jedoch versucht wird, in die Flash-EEPROM-Speicheranordnung zu schreiben, wird eine Ausnahme erzeugt, da dieser Bereich der Flash-EEPROM-Speicheranordnung nur dem Lesen und Ausführen vorbehalten ist. Eine spezielle Ausnahmebehandlungsroutine wird aufgerufen, die bewirkt, dass die Speicherverwaltungseinheit die Seite liest, welche die Adresse aufweist, in die versucht wird zu schreiben und so dass die Daten in den DRAM-Speicher gespeichert werden. Nachdem eine Seite aus der Flash-EEPROM-Speicheranordnung in dem DRAM-Speicher platziert worden ist, wird die Seitentabelle für diesen Abschnitt des Programms aktualisiert, so dass an diesen Programmabschnitt adressierte Zugriffe jetzt an den DRAM-Speicher adressiert sind, aus dem die Programmdaten gelesen, geschrieben und ausgeführt werden können. Somit können die Daten in diesem Programmabschnitt, ob Datenstrukturen, Variablen oder selbst modifizierender Code, durch Schreiben auf die Seite in dem DRAM-Hauptspeicher modifiziert werden. Auf diese Weise kann jedes Programm oder jeder Prozess, der in einer Flash-EEPROM-Speicheranordnung gepeichert ist, die an dem Speicherbus oder einem lokalen Bus positioniert ist, ausgeführt werden, obwohl das Programm oder der Prozess einen Bereich aufweist, der während der Operation geschrieben werden muss.
  • Die vorliegende Erfindung nutzt eine derartige Anordnung, die eine direkte Ausführung von Programmen aus dem Flash-Speicher ermöglicht, um die Ausführung von BIOS-Programmen realisierbar zu machen, die verschiedene Datenstrukturen schreiben. Wenn der Flash-Speicher an dem Speicherbus platziert wird, kann auf Prozesse zugegriffen werden, wenn ein operativer DRAM-Speicher existiert, selbst wenn der Computer nicht funktionsfähig ist. Durch das Speichern der BIOS-Prozesse in einem Flash-Speicher, der so positioniert ist, dass er den Hauptspeicher-DRAM an dem Speicherbus ergänzt, kann auf die BIOS-Prozesse zugegriffen werden, obwohl das Computersystem Daten nicht über die PCI- und ISA-Busse lesen kann. Da die BIOS-Prozesse in einem Flash-Speicher in dem Hauptspeicher implementiert sind, wird auf sie sofort zugegriffen, wenn Strom zugeführt wird. Die vorliegende Erfindung ermöglicht Systemtestprozesse, die einen Bestandteil der BIOS-Prozesse darstellen oder eines anderen Prozesses, der in dem Flash-Speicher gespeichert ist, die dazu verwendet werden, den Status der Systemhardware zu bestimmen. Durch das Vorsehen verschiedener Diagnose- und Ein-/Ausgabeprozesse ermöglicht die vorliegende Erfindung die Diagnose und Behebung von Hardwareproblemen, auch wenn das Betriebssystem nicht aufgerufen werden kann. Durch die Ergänzung der normalerweise verfügbaren BIOS Prozesse sieht die Erfindung die Möglichkeit vor, einem Anwender mehr Daten zum Hardwarestatus zu liefern (oder über ein Modem an einen Servicetechniker), und sie ermöglicht einem Anwender (oder Techniker) die Manipulation der Hardware des Systems zur Diagnose sowie häufig zur Behebung von Fehlfunktionen.
  • Obwohl der Flash-Speicher, der diese Diagnoseprozesse aufweist, an einem lokalen Bus wie etwa dem PCI-Bus positioniert ist, kann trotzdem auf die ausführbaren Diagnoseprozesse zugegriffen werden, obwohl das Computersystem nicht in der Lage ist, Daten über den sekundären Bus zu lesen, solange der Pfad über den PCI-Bus unversehrt bleibt.
  • Die Anordnung der in Verbindung mit einem Computersystem vorgesehenen BIOS-Testroutinen ist für gewöhnlich so gestaltet, dass Werte zurückgegeben werden, die den Status der Komponenten des Systems anzeigen, die normalerweise verwendet werden, um den Computer beim Starten einzurichten. Viele dieser Werte sind nur zur Diagnose von Hardwareproblemen für eine Person mit technischer Befähigung nützlich, und auf sie kann nur zugegriffen werden, wenn der Computer eine entsprechende besondere Hardware aufweist. Selbst eine Person, mit derartigen Fähigkeiten, kann zusätzliche Diagnoseroutinen mit erheblicher Detailgenauigkeit benötigen, um den Werten eine diagnostische Bedeutung zu geben. Da die meisten Anwender nicht die erforderlichen Kenntnisse besitzen, um die durch ein Diagnoseprogramm gelieferten Ergebnisse verstehen zu können, liefern die meisten Hersteller mit den von ihnen verkauften Computern keine Diagnoseprozesse. Folglich sind die durch die BIOS-Prozesse erzeugten Werte für die meisten Anwender in Bezug auf die Diagnose von Hardwareproblemen nicht besonders nützlich. In jedem Fall stehen die durch die zurzeit erhältlichen BIOS-Prozesse erzeugten Ergebnisse nicht zur Verfügung, wenn das System das entsprechende Betriebssystem nicht bootet. Dies hat die Wartung und Instandsetzung von Computern sehr teuer gestaltet.
  • Für gewöhnlich gewähren Hersteller nach dem Kauf eines Computers Garantieleistungen für die Dauer von einem bis drei Jahren. Ein Anwender ruft unter einer genannten Telefonnummer für den Service an, wenn im Rahmen der Garantie ein Problem mit dem Gerät auftritt. Dies startet für gewöhnlich einen umständlichen Prozess, wobei ein Techniker zuerst ermittelt, in wie weit der Anwender das Problem erkannt hat, und wobei der Techniker den Anwender danach im Gespräch durch verschiedene Schritte führt, um die zur Verfügung stehenden Fakten zu ermitteln. Häufig wird ein Problem auf diese Weise nicht gelöst und der Anwender oder ein Servicetechniker muss das Gerät zur Instandsetzung in eine Reparaturstätte bringen, oder ein Techniker muss versuchen, das Problem am Einsatzort des Geräts zu beheben. Die Kosten für diese Dienstleistung haben mit verbesserten Fähigkeiten von Personal Computern zugenommen.
  • Wenn die Diagnoseprozesse im Gegensatz dazu einem Anwender im Rahmen des Abschnitts der Einschaltinitialisierung (POI für power-on initialization) der BIOS-Prozesse vorgesehen werden würden, und wenn die BIOS-Testprozesse und die Diagnoseprozesse auch ausgeführt werden könnten, wenn sich das System nicht booten lässt, so könnte der Anwender diese Informationen an einen Techniker weiterleiten und von diesem Zeit wie Kosten sparende Anweisungen darüber erhalten, wie sich eine große Anzahl von Hardwareproblemen lösen lassen. In einem Ausführungsbeispiel der vorliegenden Erfindung werden die ergänzenden Diagnoseprozesse automatisch ausgeführt, wenn während dem Hochfahren ein Fehler auftritt, und wobei dem Benutzer angezeigt wird, dass ein Problem besteht und welche Schritte der Anwender vornehmen sollte. Dazu kann ein Anruf bei dem Servicetechniker zählen, um diesem das Problem und die Ergebnisse der Diagnoseprozesse zu erläutern, oder um den Servicetechniker über ein Modem oder einen Netzanschluss mit dem Gerät zu verbinden. Letztere Option würde es dem Techniker ermöglichen, über eine derartige Verbindung Tests vorzunehmen, und zwar unter Verwendung der in dem Gerät in Verbindung mit dem Problem zur Verfügung stehenden Diagnoseprozesse, und wobei das Problem möglicherweise unter Verwendung von Softwareprozessen gelöst werden kann, die über das von dem Techniker verwendete System zur Verfügung stehen.
  • Die Abbildung aus 2 zeigt ein Blockdiagramm eines gemäß der vorliegenden Erfindung gestalteten Softwaresystems. Das System weist einen BIOS-Treiber-Kernel 21 und eine Mehrzahl von BIOS-Gerätetreibern 23 auf, die jeweils in einer Flash-EEPROM-Speicheranordnung (wie etwa der Anordnung 17 aus 1) an dem Speicherbus eines Computers gespeichert sind. Der Kernel 21 und die Treiber 23 können Bestandteil der BIOS-Funktionen sein, die in dem Flash-Speicher gespeichert sind oder getrennt von diesem, wobei sie dennoch in dem gleichen Flash-Speicher gespeichert sind. Der Kernel 21 und jeder der Gerätetreiber sind auch dann funktionsfähig, wenn das Betriebssystem des Computers nicht gebootet werden kann, so dass sie zur Diagnose und Korrektur der Funktionen des Computers verwendet werden können. Eine Möglichkeit der Unterstützung der Funktion des Kernel und der Gerätetreiber wird aus der Abbildung aus 3 und die folgenden Beschreibungen deutlich.
  • Wenn dem Computersystem Strom zugeführt wird, werden die in dem Flash-Speicher gespeicherten BIOS-Prozesse aufgerufen und das System beginnt zu booten. Wenn das System ordnungsgemäß arbeitet, wird letztendlich das Betriebssystem geladen und das System wird in den betriebsfähigen Zustand versetzt. Wenn sich das System nicht booten lässt, stehen die BIOS und sonstigen Diagnoseprozesse in dem Flash-Speicher an dem Speicherbus zur Verfügung und werden in Abwesenheit des üblichen Betriebssystems verwendet. In einem Ausführungsbeispiel werden die BIOS-Diagnoseprozesse durch einen Systembootfehler aufgerufen und können einem Anwender den Fehler anzeigen und diesem vorschlagen, die Diagnoseprozesse durch die Auswahl einer Bildschirmoption aufzurufen. In einem Ausführungsbeispiel können die BIOS-Diagnoseprozesse dem Anwender den Fehler anzeigen und in einem Versuch zur Problembehebung automatisch auf die Diagnoseprozesse umschalten oder diese ausführen. In jedem Fall ermöglicht das Vorhandensein der ergänzten Diagnoseprozesse in dem Speicher einem Anwender oder einem Techniker den Einsatz der Diagnoseprozesse in dem Flash-Speicher zum Diagnostizieren der Hardwareprobleme, auch wenn sich das System nicht booten lässt.
  • Der Kernel 21 weist nur einige wenige einfache Funktionen auf, die er selber ausführen kann. Er kann Kernel-E/A- Serviceprozesse 24 verwenden, um eine Tastatur-, Disketten- oder eine Video-Ein-/Ausgabe anzufordern, die einem Anwender die Manipulation des Systems ermöglicht, wenn diese Funktionen nicht gegeben sind, die normalerweise durch das Betriebssystem vorgesehen werden. In einem Ausführungsbeispiel rufen diese Prozesse die normalen BIOS-Prozesse zur Realisierung dieser Funktionen auf. Die Hauptfunktion des Kernel 21 ist es jedoch, eine Reihe von Kernel-Serviceprozessen 25 vorzusehen, die betrieben werden können, um Dienste für die Mehrzahl von BIOS-Gerätetreibern 23 vorzusehen. Im Allgemeinen zählen zu den Kernel-Serviceprozessen 25 Prozesse, die die Datenübertragung von durchgeführten Diagnosen erleichtern, sowohl zwischen den Systemkomponenten sowie Komponenten außerhalb des Systems.
  • Jeder BIOS-Gerätetreiber 23 (nur einer ist im Detail abgebildet) ist für gewöhnlich einer bestimmten Eingabe-/Ausgabe-Hardwarevorrichtung 29 zugeordnet. Ein derartiger Treiber wird für gewöhnlich von dem Hersteller oder Serviceprovider der jeweiligen Hardwarevorrichtung geschrieben und weist Prozesse zur Verwendung in Verbindung mit dieser Hardwarevorrichtung auf. Jeder Gerätetreiber 23 sieht einen Verteilerprozess 26 vor, der eine Standardschnittstelle zur Interaktion durch den speziellen Hardwaretreiber 23 mit den Kernel-Serviceprozessen 25 erzeugt. Die Kernel-Serviceprozesse 25 können einen Gerätetreiber 23 adressieren, indem ein Befehl an den Verteilerprozess 26 gerichtet wird. Im Betrieb ruft einer der Kernel-Serviceprozesse 25 in serieller Reihenfolge die Verteilerprozesse 26 jedes der BIOS-Gerätetreiber 23 ab, die vorgesehen sind, um Befehle von den Treibern 23 anzufordern. Ein Verteilerprozess 26 spricht auf eine Befehlsanforderung von dem Kernel an, indem Befehle zur Ausführung für die Kernel-Serviceprozesse 25 vorgesehen werden. Der Verteilerprozess 26 empfängt die Befehlsfunktionen zur Ausführung über einen Befehlsprozessor 27. Der Befehlsprozessor 27 setzt über eine zugeordnete Hardwarevorrichtung 29 erzeugte Befehle in Befehle um, welche die Kernel-Serviceprozesse 25 verstehen, so dass der Kernel die begrenzte Anordnung von verfügbaren Befehlen ausführen kann. Der Verteilerprozess 26 überträgt die Befehle in einen Befehlspuffer, auf den der Kernel zugreifen kann. Für gewöhnlich handelt es sich bei einem derartigen Puffer um eine Datenstruktur, die durch den Kernel in dem Direktzugriffsspeicher festgelegt und durch die Aufrufparameter identifiziert wird.
  • Jeder der Gerätetreiber 23 weist ferner einen Paketprozessor 28 auf, der direkt mit der Hardwarevorrichtung 29 kommuniziert und (abhängig von der Vorrichtung 29) Pakete von der Hardwarevorrichtung 29 zur Übertragung an den Befehlsprozessor 27 empfängt. Der Paketprozessor 28 analysiert diese Pakete und leitet die Daten an den Befehlsprozessor 27 weiter. Der Befehlsprozessor 27 analysiert die Daten in rohe Funktionsbefehle und benachrichtigt den Verteiler 26, dass ein Befehl zur Verfügung steht. Wenn die Kernel-Serviceprozessoren 25 den Verteiler 26 abrufen, um zu bestimmen, ob der Gerätetreiber 23 einen auszuführenden Befehl aufweist, wobei der Verteiler 26 den Befehlspuffer mit dem Befehl lädt und den Befehl zur Ausführung an den Kernel leitet.
  • Wenn der erste Zugriff auf den Diagnosekernel 21 erfolgt, legen die Kernel-Serviceprozesse 25 Datenstrukturen fest, welche die Adressen der verschiedenen Dienste auf unterer Ebene aufweisen, welche von dem Kernel über dessen E/A-Serviceprozesse angeboten werden, einer Datenbank der bestehenden BIOS-Diagnosetreiber 23 und den Adressen der Verteiler 26 für die Treiber 23. Der Kernel kann auch Datenstrukturen verwalten, die Stapel und Datenbereiche für die Übertragung von Befehlen und Daten definieren. Wenn die Kernel-Serviceprozesse 25 zum ersten Mal aufgerufen werden, bewirkt ein Prozess die Suche der Datenbank der BIOS-Diagnosetreiber 23, um zu bestimmen, welche BIOS-Gerätetreiber existieren sowie die Adressen der Verteilerprozesse 26 für die Treiber. Danach übermitteln die Kernel-Serviceprozesse 25 einen Initialisierungsbefehl zur Einrichtung jedes Gerätetreibers 23. Als Reaktion auf diesen Initialisierungsbefehl erzeugt jeder Verteiler 26 Daten, welche den BIOS-Gerätetreiber 23 für die durch die Kernel-Serviceprozesse 25 verwaltete Datenstruktur definieren. Diese Daten können die Anforderungen des BIOS-Gerätetreibers 23 für Daten, Stapel, Code und Unterbrechungen ebenso aufweisen wie andere Daten, die für den Betrieb des BIOS-Gerätetreibers 23 und die zugeordnete Hardware 29 erforderlich sind. Als Reaktion auf den Initialisierungsbefehl kann der Verteilerprozess 26 auch die Initialisierung der Hardware 29 (wie etwa eines Modems) bewirken, welcher der BIOS-Gerätetreiber 23 zugeordnet ist, so dass die Hardware 29 betrieben werden kann.
  • Nachdem die Initialisierung abgeschlossen ist, rufen die Kernel-Serviceprozesse 25 den Verteiler jedes der BIOS-Gerätetreiber 23 ab.
  • Die Kernel-Serviceprozesse 25 können ferner einen GetStatus-Befehl an jeden der BIOS-Gerätetreiber 23 senden, um den Status der Hardware 29 zu bestimmen, die dem BIOS-Gerätetreiber 23 zugeordnet ist. Der Befehl GetStatus bewirkt, dass der Verteiler 26 die physikalischen Eigenschaften der Hardware 29 bestimmt, so dass Probleme mit der Hardware erkannt und Daten an den Kernel zurückgeführt werden können, die den Status anzeigen.
  • Jeder der Gerätetreiber 23 kann interne Diagnoseprozesse aufweisen, die speziell vom Hersteller oder Gerätezulieferer entwickelt worden sind, die durch einen Anwender initiiert werden können, um Statusdaten als Reaktion auf einen Befehl GetStatus zu sichern, um die Bestimmung zu unterstützen, wo ein Problem existiert und wie das Problem gelöst werden kann. Durch die Auswahl der Kernel-Serviceprozesse 25 sieht der Anwender einen Zugriff auf diese Diagnoseprozesse jedes Gerätetreibers 23 vor. Wenn ein Anwender den Befehl GetStatus verwendet, verwendet der Treiber 23 diese internen Diagnoseprozesse zur Ausführung umfassender Tests zur Bestimmung von Fehlfunktionen sowie zum Vorsehen von Diagnosevorschlägen. Die Diagnoseprozesse können ferner Prozesse aufweisen, die es versuchen, entdeckte Probleme zu beheben.
  • Die Kernel-Serviceprozesse 25 können auch einen Befehl Connect (Verbinden) an jeden der BIOS-Gerätetreiber 23 senden, um es zu bewirken, dass eine einem bestimmten Treiber 23 zugeordnete Hardware 29 mit einem externen Host verbunden wird. Der Verbindungsprozess ist für gewöhnlich von dem Kernel isoliert und wird als spezielle Befehle in einem Bereich des BIOS-Gerätetreibers 23 gespeichert, wie dies in der Abbildung aus 2 durch die internen BDD-Befehle dargestellt ist. Wenn der Verteiler 26 zum Beispiel für einen Modemgerätetreiber den Verbindungsbefehl empfängt, kann er einen Prozess der internen BDD-Prozesse ausführen, der eine Verbindung mit einem Servicetechniker an einem Host-Computer herstellt, der sich an einem Standort eines Herstellers befindet, wobei ein Teil des Computers die Probleme als Reaktion auf die Diagnoseprozesse anzeigt. Als Reaktion auf die versuchte Ausführung eines Connect-Befehls sollte der Verteiler 26 des BIOS-Gerätetreibers 23 einen Wert an den Kernel zurückführen, der die Ergebnisse eines Versuchs anzeigt, wie etwa: Verbindung hergestellt, belebt, Gerät nicht vorhanden, Verbindung unterbrochen oder dergleichen. Dieser Befehl ermöglicht eine Verbindung des Computers mit einem Servicetechniker, der danach die in Verbindung mit dem Computer bestehenden Probleme von einem entfernten Standort aus bestimmen kann.
  • Zur Erleichterung der Verwendung einer derartigen Verbindung kann der Kernel einen Befehl PutDataStream senden, um es zu bewirken, dass der BIOS-Gerätetreiber 23 Daten über ein Modem oder eine LAN-Verbindung an einen Host überträgt. Ein ähnlicher Befehl GetDataStream von dem Kernel an einen BIOS-Gerätetreiber 23 ermöglicht es, dass der Kernel Daten von einem BIOS-Gerätetreiber erhält, und zwar zur Übertragung an einen bestimmten anderen Abschnitt des Computersystems, um Fehlfunktionen zu korrigieren.
  • Zur Unterstützung derartiger Übertragungen kann ein BIOS-Gerätetreiber 23 den Kernel zur Übertragung von Systemstatusdaten an den anfordernden BIOS-Gerätetreiber 23 unter Verwendung eines an den Kernel gerichteten Befehls GetSystemStatus auffordern. In ähnlicher Weise bewirkt ein an den Kernel gerichteter Befehl GetSystemInfo, dass der Kernel Systeminformationen an den anfordernden BIOS-Gerätetreiber 23 überträgt. Ein Befehl PutString von einem BIOS-Gerätetreiber 23 bewirkt, dass die Kernel-E/A-Serviceprozesse 24 einen Datenstring an einen Videoanschluss senden, so dass dieser einem Anwender angezeigt wird. Ein Befehl Exit an den Kernel initiiert einen Prozess, der einen Anwender zu einem Reboot auffordert, sobald die Fehlfunktion behoben ist.
  • Bestimmte zusätzliche Befehle, die der Kernel ausführen kann, unterstützen die Diagnose sowie die Korrektur von Systemfehlfunktionen zusätzlich. Zum Beispiel kann ein Befehl ReadSector verwendet werden, um es zu bewirken, dass der Kernel Daten aus einem Speicherlaufwerk zu Testzwecken list; und ein Befehl WriteSector kann verwendet werden, um Daten durch Daten zu ersetzen, die von einem Host-System oder einem nicht flüchtigen Speicher vorgesehen werden.
  • Es gibt eine Reihe möglicher Prozesse, die unter Verwendung des in der Abbildung aus 2 veranschaulichten Systems implementiert werden können. Ein in der Abbildung aus 3 veranschaulichter typischer Prozess kann auf die folgende Art und Weise ausgeführt werden. Wenn dem System Strom zugeführt wird, wird der BIOS-Einschaltinitialisierungsprozess aktiviert und überträgt die Ausführung auf den Diagnosekernel, um eine Reihe von grundlegenden Systemtests einzuleiten. In einem Ausführungsbeispiel können diese sehr einfach sein, wie etwa die Ausführung eines BIOS-Statustests, die in der Vergangenheit verwendet worden sind. Zum Beispiel kann der Kernel die die Größe des verfügbaren Direktzugriffsspeichers bestimmen, ob der Speicher arbeitet und ob der Code ausgeführt werden kann. Wenn das System die Tests besteht, wird das Betriebssystem automatisch gebootet und das System arbeitet.
  • Die Kernel-Serviceprozesse 25 können auch oder alternativ jeden der Hardware-Gerätetreiber 23 auffordern, eine umfassendere Reihe von Diagnosetests auszuführen, die Statuswerte zurückgeben, um sicherzustellen, dass die verschiedenen Geräte ordnungsgemäß arbeiten. Zum Beispiel können diese Tests den Status von Systemeinstellungen zurückführen sowie die verschiedenen Peripheriegeräte, wie etwa Rotationsdisks, die Tastatur, Video, Netzwerkanschlüsse und Modems. Die Ergebnisse jeder Reihe von Diagnosetests werden mit ihrem Auftreten protokolliert. Der Kernel leitet danach die nächste Statusbestimmung ein und protokolliert die Ergebnisse dieses Tests. Wenn die Vorrichtungen 29 in ähnlicher Weise diese Tests bestehen, so wird das Betriebssystem automatisch gebootet und das System arbeitet.
  • Bevor die Kernel-Serviceprozesse 25 die Ausführung etwaiger Diagnoseprozesse durch die Gerätetreiber 23 bewirken können, werden eine Reihe von Operationen in ähnlicher Weise ausgeführt, wie dies in der Abbildung aus 4 dargestellt ist. Die Kernel-Serviceprozesse 25 bestimmen zuerst, welche Systemressourcen zur Verfügung stehen und was jeder Gerätetreiber 23 für die Durchführung seiner Tests benötigt. Ein bestimmter Treiber 23 kann zum Beispiel zwei Megabyte an Direktzugriffsspeicher voraussetzen, während ein anderer Treiber einen Speicher von einem Megabyte benötigt. Nachdem das Ausmaß der verfügbaren Ressourcen bestimmt worden ist, legen die Kernel-Serviceprozesse 25 die vorstehend genannten Datenstrukturen als die fest, in denen E/A-Dienste, Gerätetreiber und Verteileradressen aufgezeichnet werden. Danach werden die Adressen der Verteilerprozesse 26 der Treiber 23 bestimmt, und jeder der Treiber 23 wird initialisiert. Die Kernel-Serviceprozesse 25 rufen danach die Treiber 23 sequentiell für den Empfang von Befehlen ab. An diesem Punkt können die Kernel-Serviceprozesse 25 einen Befehl GetStatus an die Treiber 23 senden, um den Status der zugeordneten Vorrichtungen 29 zu bestimmen.
  • Wenn die Gerätetreiber 23 freigegeben sind, um den Gerätestatus zu bestimmen und die Geräte 29 die Tests bestehen, so wird das Betriebssystem automatisch gebootet und das System arbeitet.
  • Wenn das System einen dieser anfänglichen Tests nicht besteht, kann der jeweilige Treibe 23 den Kernel anweisen, eine Nachricht anzuzeigen, die den Fehler erläutert, möglicherweise Lösungen für das Problem vorschlägt und den Anwender fragt, ob er versuchen möchte, das Problem zu beheben. Einer der Gerätetreiber 23 kann zum Beispiel so gestaltet sein, dass er Tests durchführt, um den Status eines elektromechanischen Festplattenlaufwerks zu bestimmen. Dieser Gerätetreiber 23 kann verschiedene grundlegende Diagnoseroutinen ausführen, einschließlich des Lesens der Master-Partitionstabelle. Beim Lesen der Partitionstabelle kann der Treiber 23 bestimmen, dass ein Eintrag korrumpiert ist. Der Gerätetreiber 23 antwortet auf diese Bestimmung, indem die Kernel-E/A-Serviceprozesse 24 aufgefordert werden, dem Betrachter das Problem anzuzeigen und möglicherweise Lösungen vorzuschlagen.
  • Wenn ein Anwender den Vorschlag auswählt, dass ein Versuch zur Instandsetzung des Laufwerks erfolgen soll, so ruft der Kernel das Diagnose-Setup-Programm zum zweiten Mal auf. Nachdem das Setup-Programm ausgeführt worden ist, können die Kernel-Serviceprozesse 25 jeden der Gerätetreiber 23 anweisen, umfassendere Tests der Systemvorrichtungen auszuführen, um den Zustand der zugeordneten Hardwarevorrichtung im Detail zu bestimmen. Die speziellen durch die Gerätetreiber 23 ausgeführten Prozesse sind von der jeweiligen durch den Hersteller vorgesehenen Implementierung abhängig.
  • Die Ergebnisse dieser umfassenderen Tests können eine Reihe verschiedener Ergebnisse erzeugen. Zum Beispiel kann der Treiber den Kernel auffordern, auf dem Display "Laufwerkfehler. Möchten Sie den Fehler beheben?" anzuzeigen. Eine Antwort "Nein" würde ein Verlassen der Diagnoseprozesse bewirken. Eine Antwort "Ja" kann bewirken, dass der Treiber einen Prozess ausführt, der dem Anwender danach die Option anbietet, den Computer auszuschalten und das Betriebssystem durch eine archivierte Kopie zu ersetzen.
  • Andere Diagnoseprozesse können einem Anwender die Option anbieten, mit einem Softwarehersteller online zu gehen, um verschiedene Programme zu ersetzen. Wenn eine derartige Option ausgewählt wird, würde der jeweilige Treiber den Kernel aufrufen, um den Befehl Connect auszuführen, um eine Verbindung mit dem Hersteller des Betriebssystems unter Verwendung der in dem Gerätetreiber für das Modem gespeicherten Daten vorzusehen. Nachdem die Verbindung mit dem Hersteller hergestellt worden ist, könnte ein Techniker die dem Kernel und den Gerätetreibern zur Verfügung stehenden verschiedenen Befehle verwenden, um die Festplatte abzufragen und um das Problem mit dem Betriebssystem zu bestimmen. Ein Techniker kann unter Verwendung der Befehle ReadSector des Treibers das Laufwerk prüfen und danach unter Verwendung des Befehls PutDataStream die Daten zurück lesen. Wenn der korrumpierte Abschnitt eines Laufwerks lokalisiert worden ist, kann unter Verwendung des Befehls GetDataStream eine korrigierte Version in dem Laufwerk platziert werden, wobei dies dem Kernel ermöglicht, Daten von einem BIOS-Gerätetreiber zur Übertragung an das Laufwerk zu erhalten. Der Befehl WriteSector an den Kernel würde danach die neue Version der Software in dem Laufwerk platzieren. Die Operation würde erneut über einen Befehl Exit an den Kernel abgeschlossen werden, der bewirkt, dass das Display ein neuerliches Booten verlangt. Hiermit wird festgestellt, dass diese Einrichtung verwendet werden kann, um Versionen der Diagnoseprozesse in jedem der Gerätetreiber 23 zu aktualisieren und zu ersetzen.
  • Erdenklich sind weitere Operationen mit einer ähnlichen Funktionsweise zur Unterstützung der Diagnose und der Instandsetzung eines Computersystems. Zum Beispiel können die Diagnoseprozesse über das Betriebssystem zur Verfügung gestellt werden sowie in der Betriebsphase vor dem Betriebssystem. Dies würde die Anforderung zum Speichern redundanter Prozesse zur Diagnose und Instandsetzung des Computers reduzieren. Die Möglichkeit, die Diagnoseprozesse schreiben zu können, ermöglicht eine individuelle und online ausgeführte Aktualisierung einzelner Diagnosetreiber, wenn diese Möglichkeit gewünscht wird.
  • Die vorliegende Erfindung wurde vorstehend in Bezug auf ein bevorzugtes Ausführungsbeispiel beschrieben, wobei der Fachmann auf dem Gebiet jedoch feststellen wird, dass verschiedene Modifikationen und Abänderungen möglich sind, ohne dabei vom Umfang der vorliegenden Erfindung abzuweichen. Zum Beispiel wäre es möglich, die Funktionen des Diagnosekernels unter Verwendung von Hardware oder Firmware auch für einen Benutzer zugänglich vorzusehen, obwohl sich ein Computer nicht booten lässt. Ferner können zur Ausführung der vorliegenden Erfindung auch andere Arten von nicht flüchtigen Speicherzellen zusätzlich zu Flash-EEPROM-Speicherzellen verwendet werden. Die vorliegende Erfindung ist somit ausschließlich durch die anhängigen Ansprüche definiert.

Claims (11)

  1. Verfahren zur Verwendung in einem Computersystem (10), wobei das genannte Computersystem einen Flash-Speicher (17) umfasst, der mit einem Speicherbus (16) gekoppelt ist und auf den zugegriffen werden kann, wenn dem Computersystem Strom zugeführt wird, wobei das Verfahren die folgenden Schritte umfasst: a) Anfangsladen des genannten Flash-Speichers (17) zum Speichern eines Systemtestprozesses (24, 25) und mindestens eines BIOS-Gerätetreibers (23) darin; b) Ausführen des Systemtestprozesses und des mindestens einen BIOS-Gerätetreibers aus dem Flash-Speicher, wenn dem Computersystem zum BIOS-Booten Strom zugeführt wird; c) Verwenden des Systemtestprozesses (24, 25) zum Abrufen des mindestens einen BIOS-Gerätetreibers (23) für einen Befehl, der einem Problem mit einer Hardware-Vorrichtung (29) entspricht, welche dem mindestens einen BIOS-Treiber zugeordnet ist; d) Übertragen des genannten Befehls von dem mindestens einen BIOS-Gerätetreiber (23) zu dem Systemtestprozess (24, 25); e) Ausführen des Befehls durch dem Systemtestprozess (24, 25), um das Problem mit der zugeordneten Hardware-Vorrichtung (29) zu bestimmen; und f) Vorsehen einer Anzeige des Problems an einen Anwender.
  2. Verfahren nach Anspruch 1, wobei es sich bei dem Flash-Speicher (17) um einen elektronisch löschbaren Nur-Lese-Flash-Speicher (EEPROM) handelt.
  3. Verfahren nach Anspruch 1, wobei der Systemtestprozess ferner folgendes umfasst: g) Bestimmen der Systemressourcen und Diagnose sowie Berichtigung der Funktionen der Ressourcen; h) Festlegen einer die Ressourcen definierenden Datenstruktur; i) Bestimmen einer Adresse eines Verteilerprozesses (26), das dem BIOS-Gerätetreiber (23) zugeordnet ist; und j) Initialisieren der zugeordneten Hardware-Vorrichtung.
  4. Verfahren nach Anspruch 1, wobei das Bestimmen des Problems ferner folgendes umfasst: k) Aufrufen zusätzlicher Prozesse, die versuchen das detektierte Problem zu beheben.
  5. Verfahren nach Anspruch 1, wobei ein weiterer Flash-Speicher mit einem lokalen Bus (12) gekoppelt ist, und wobei auf ihn zugegriffen werden kann, wenn dem Computersystem Strom zugeführt wird.
  6. Computersystem, das folgendes umfasst: einen Flash-Speicher (17), der mit einem Speicherbus (16) gekoppelt ist, wobei der Flash-Speicher anfangsgeladen ist, um einen Systemtestprozess (24, 25) und mindestens einen BIOS-Gerätetreiber (23) darin zu speichern, wobei der genannte BIOS-Gerätetreiber einer Hardware-Vorrichtung (29) zugeordnet ist, wobei der genannte Systemtestprozess und mindestens eine BIOS-Vorrichtung aus dem Flash-Speicher ausgeführt werden können, wenn dem Computersystem zum BIOS-Booten Strom zugeführt wird; wobei der genannte Systemtestprozess (24, 25) so angeordnet ist, dass der mindestens eine BIOS-Gerätetreiber (23) für einen Befehl abgerufen wird, der einem Problem mit der zugeordneten Hardware-Vorrichtung (29) entspricht, mit einer Einrichtung zur Übertragung des genannten Befehls von dem mindestens einen BIOS-Gerätetreiber (23) zu dem Systemtestprozess (24, 25); wobei der genannte Systemtestprozess (24, 25) so angeordnet ist, dass er den Befehl ausführt, um das Bestehen des Problems mit der zugeordneten Hardware-Vorrichtung (29) zu bestimmen und um eine Anzeige des Bestehens des Problems an einen Anwender vorzusehen.
  7. Computersystem nach Anspruch 6, wobei es ferner eine Anzeigevorrichtung umfasst, auf der einem Anwender ein detektiertes Problem angezeigt werden kann.
  8. Computersystem nach Anspruch 6, wobei es sich bei dem Flash-Speicher um ein EEPROM handelt.
  9. Computersystem nach Anspruch 6, wobei ein weiterer Flash-Speicher mit einem lokalen Bus (12) gekoppelt, und wobei auf ihn zugegriffen werden kann, wenn dem Computersystem Strom zugeführt wird.
  10. Computerprogramm, das eine Computerprogrammcodeeinrichtung umfasst, welche bei der Ausführung auf einem Computer die Schritte aus Anspruch 1 ausführen kann.
  11. Computerprogramm nach Anspruch 10 bei der Ausführung auf einem computerlesbaren Medium.
DE69730430T 1996-07-01 1997-06-27 Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem Expired - Lifetime DE69730430T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/672,983 US6449735B1 (en) 1996-07-01 1996-07-01 Method and apparatus for providing improved diagnostic functions in a computer system
US672983 1996-07-01
PCT/US1997/011162 WO1998000781A1 (en) 1996-07-01 1997-06-27 Method and apparatus for providing improved diagnostic functions in a computer system

Publications (2)

Publication Number Publication Date
DE69730430D1 DE69730430D1 (de) 2004-09-30
DE69730430T2 true DE69730430T2 (de) 2005-09-15

Family

ID=24700835

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69730430T Expired - Lifetime DE69730430T2 (de) 1996-07-01 1997-06-27 Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem

Country Status (7)

Country Link
US (1) US6449735B1 (de)
EP (1) EP0909416B1 (de)
KR (1) KR20000022506A (de)
AU (1) AU3580697A (de)
DE (1) DE69730430T2 (de)
HK (1) HK1017451A1 (de)
WO (1) WO1998000781A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526320A (en) 1994-12-23 1996-06-11 Micron Technology Inc. Burst EDO memory device
US6804760B2 (en) * 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US6807643B2 (en) * 1998-12-29 2004-10-19 Intel Corporation Method and apparatus for providing diagnosis of a processor without an operating system boot
US6606716B1 (en) 1999-10-06 2003-08-12 Dell Usa, L.P. Method and system for automated technical support for computers
US6560726B1 (en) * 1999-08-19 2003-05-06 Dell Usa, L.P. Method and system for automated technical support for computers
US6760708B1 (en) 1999-08-19 2004-07-06 Dell Products L.P. Method and system for migrating stored data to a build-to-order computing system
US6574615B1 (en) 1999-10-06 2003-06-03 Dell Usa, L.P. System and method for monitoring support activity
US6556431B1 (en) 1999-10-06 2003-04-29 Dell Usa, L.P. System and method for converting alternating current into direct current
US6563698B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for providing a computer system with a detachable component
US6564220B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for monitoring support activity
US7036129B1 (en) * 2000-03-06 2006-04-25 Pc-Doctor, Inc. Diagnostic system integrated with device drivers of an operating system
JP2001325124A (ja) * 2000-05-17 2001-11-22 Fujitsu Ltd 計算機、システム管理支援装置及び管理方法
US6889340B1 (en) * 2000-10-13 2005-05-03 Phoenix Technologies Ltd. Use of extra firmware flash ROM space as a diagnostic drive
US6842867B2 (en) 2001-01-26 2005-01-11 Dell Products L.P. System and method for identifying memory modules having a failing or defective address
KR20010069784A (ko) * 2001-05-11 2001-07-25 이강석 캐릭터를 이용한 정보통신단말기용 도우미 시스템
US6839892B2 (en) * 2001-07-12 2005-01-04 International Business Machines Corporation Operating system debugger extensions for hypervisor debugging
US6976193B2 (en) * 2001-09-20 2005-12-13 Intel Corporation Method for running diagnostic utilities in a multi-threaded operating system environment
US6654707B2 (en) * 2001-12-28 2003-11-25 Dell Products L.P. Performing diagnostic tests of computer devices while operating system is running
TW588282B (en) * 2002-10-22 2004-05-21 Via Tech Inc System capable of managing peripheral input/output control device
US7266727B2 (en) * 2004-03-18 2007-09-04 International Business Machines Corporation Computer boot operation utilizing targeted boot diagnostics
US7337368B2 (en) * 2004-06-07 2008-02-26 Dell Products L.P. System and method for shutdown memory testing
JP2006065481A (ja) * 2004-08-25 2006-03-09 Aruze Corp 情報処理装置
US7555677B1 (en) 2005-04-22 2009-06-30 Sun Microsystems, Inc. System and method for diagnostic test innovation
US7716464B2 (en) * 2005-06-23 2010-05-11 Intel Corporation Method to have fault resilient booting
KR100768477B1 (ko) * 2005-09-30 2007-10-23 정성훈 온라인 시스템 관리 아이콘 제공 시스템 및 방법
KR100807936B1 (ko) * 2005-12-23 2008-02-28 엘지노텔 주식회사 듀얼 프로세서 보드의 메모리 영역 시험을 수반하는 부팅방법
TWI323843B (en) * 2006-07-06 2010-04-21 Asustek Comp Inc Method and device for pc component diagnostic test before executing operation system
US8272000B2 (en) 2006-09-01 2012-09-18 International Business Machines Corporation System and method for abstracting computer disk image cloning capabilities from bootable media
TWI362588B (en) * 2007-10-12 2012-04-21 Asustek Comp Inc Monitor apparatus, a monitoring method thereof and computer apparatus therewith
TW201007469A (en) * 2008-08-15 2010-02-16 Asustek Comp Inc Computer with remote mangement system
JP4746703B1 (ja) * 2010-03-29 2011-08-10 株式会社東芝 電子機器、ハードディスクドライブ
TW201416976A (zh) * 2012-10-26 2014-05-01 Wistron Corp 電腦之開機驗證方法及電子裝置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5068851A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Apparatus and method for documenting faults in computing modules
US5023813A (en) * 1989-08-03 1991-06-11 International Business Machines Corporation Non-volatile memory usage
JP2830308B2 (ja) * 1990-02-26 1998-12-02 日本電気株式会社 情報処理装置
US5179695A (en) * 1990-09-04 1993-01-12 International Business Machines Corporation Problem analysis of a node computer with assistance from a central site
US5287363A (en) * 1991-07-01 1994-02-15 Disk Technician Corporation System for locating and anticipating data storage media failures
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JPH06214670A (ja) * 1991-04-29 1994-08-05 Intel Corp コンピュータ装置およびそれを初期化する方法
IT1254937B (it) 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
DE69117498D1 (de) * 1991-05-31 1996-04-04 Ibm Kommunikationssteuergerät mit Leitungsanpassern die mit Anwenderprogramm ladbar sind
US5774640A (en) * 1991-10-21 1998-06-30 Tandem Computers Incorporated Method and apparatus for providing a fault tolerant network interface controller
US5410545A (en) * 1992-07-28 1995-04-25 Digital Equipment Corporation Long-term storage of controller performance
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US5404288A (en) * 1993-02-17 1995-04-04 The Rexroth Corporation Transfer line control system utilizing distributed computing
US5530847A (en) * 1993-03-22 1996-06-25 Dell Usa, L.P. System and method for loading compressed embedded diagnostics
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5491788A (en) * 1993-09-10 1996-02-13 Compaq Computer Corp. Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error
US5542077A (en) * 1993-09-10 1996-07-30 Compaq Computer Corporation Personal computer with CMOS memory not having a separate battery
US5586250A (en) * 1993-11-12 1996-12-17 Conner Peripherals, Inc. SCSI-coupled module for monitoring and controlling SCSI-coupled raid bank and bank environment
US6026454A (en) * 1993-12-17 2000-02-15 Packard Bell Nec, Inc. Interface for multiplexing and reformatting information transfer between device driver programs and a network application program which only accepts information in a predetermined format
US5671413A (en) 1994-10-31 1997-09-23 Intel Corporation Method and apparatus for providing basic input/output services in a computer
US5630049A (en) * 1994-11-30 1997-05-13 Digital Equipment Corporation Method and apparatus for testing software on a computer network
US5748877A (en) * 1995-03-08 1998-05-05 Dell Usa, L.P. Method for executing embedded diagnostics from operating system-based applications
US5592616A (en) * 1995-06-07 1997-01-07 Dell Usa, Lp Method for performing efficient memory testing on large memory arrays using test code executed from cache memory
US5684741A (en) 1995-12-26 1997-11-04 Intel Corporation Auto-verification of programming flash memory cells
US5852736A (en) 1996-03-28 1998-12-22 Intel Corporation Method and apparatus for protecting data using lock values in a computer system

Also Published As

Publication number Publication date
US6449735B1 (en) 2002-09-10
AU3580697A (en) 1998-01-21
HK1017451A1 (en) 1999-11-19
KR20000022506A (ko) 2000-04-25
EP0909416A1 (de) 1999-04-21
EP0909416A4 (de) 2001-03-07
EP0909416B1 (de) 2004-08-25
WO1998000781A1 (en) 1998-01-08
DE69730430D1 (de) 2004-09-30

Similar Documents

Publication Publication Date Title
DE69730430T2 (de) Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem
DE4214184C2 (de) Computersystem mit einem nicht-flüchtigen Speicher und Verfahren zu dessen Aktualisierung
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE10297281B4 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE69027164T2 (de) Ladeverfahren und Ladegerät für ein Rechnersystem
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
DE69535099T2 (de) Identifizieren der Steuergerätepaare in einer Festplattenanordnung mit dualem Steuergerät
DE112009002207B4 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
DE60210434T2 (de) Betriebssystemselektor und Datenplattenspeicher
DE69124470T2 (de) Initialisierung von Rechnersystemen
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
DE69031782T2 (de) Verfahren zum Ersetzen von Speichermodulen in einem Computersystem und Computersystem zur Durchführung des Verfahrens
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE19525105A1 (de) Informationsverarbeitungssystem
DE102004027672A1 (de) Speicherplattenarraysystem
DE102004013113A1 (de) Plattenarraysystem und Fehlerinformations-Steuerungsverfahren
DE102012100738A1 (de) Verfahren zur Konfiguration eines BIOS in einem Computersystem sowie Computerprogrammprodukt
EP0500973B1 (de) EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
DE112012005589T5 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm
DE102004056216A1 (de) Fernkopiersystem und Speichersystem
DE112006003504T5 (de) Detektion von Cachespeicher-Disassoziierung
DE112019000179T5 (de) Fahrzeugsteuervorrichtung und programmaktualisierungssystem
DE4238099A1 (de)
DE60226276T2 (de) Verfahren und anordnung zum modifizieren des inhalts eines korrekturidentifikationsregisters

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806