DE102005042538A1 - System und Verfahren zum Protokollieren von Hardwareverwendungsdaten und Verwendungen für derartige protokollierte Hardwareverwendungsdaten - Google Patents

System und Verfahren zum Protokollieren von Hardwareverwendungsdaten und Verwendungen für derartige protokollierte Hardwareverwendungsdaten Download PDF

Info

Publication number
DE102005042538A1
DE102005042538A1 DE102005042538A DE102005042538A DE102005042538A1 DE 102005042538 A1 DE102005042538 A1 DE 102005042538A1 DE 102005042538 A DE102005042538 A DE 102005042538A DE 102005042538 A DE102005042538 A DE 102005042538A DE 102005042538 A1 DE102005042538 A1 DE 102005042538A1
Authority
DE
Germany
Prior art keywords
computer system
data
computer
hardware
usage
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.)
Withdrawn
Application number
DE102005042538A
Other languages
English (en)
Inventor
Hunt The Woodlands Hodge
Gary L. Houston Stephens
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102005042538A1 publication Critical patent/DE102005042538A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/2268Logging of test results
    • 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

Abstract

Gemäß zumindest einem Ausführungsbeispiel weist ein System zumindest ein Computersystem auf, das ein Basiseingabe-/Ausgabesystem ("BIOS" = Basic Input/Output System) aufweist. Das System weist ferner eine Einrichtung zum Sammeln von Daten über zumindest eine Hardwarekomponente des zumindest einen Computersystems über das BIOS auf. Gemäß zumindest einem Ausführungsbeispiel weist ein Verfahren ein Einsammeln von jedem einer Mehrzahl von Computersystemen protokollierter Daten hinsichtlich einer Verwendung von Hardwarekomponenten der Computersysteme auf. Das Verfahren weist ferner ein Erzeugen eines Verwendungsprofils für die Mehrzahl von Computersystemen, zumindest teilweise basierend auf den eingesammelten protokollierten Daten, auf.

Description

  • Diese Offenbarung bezieht sich allgemein auf ein Protokollieren von Daten hinsichtlich einer Verwendung eines Computersystems und genauer gesagt auf Systeme und Verfahren zum Protokollieren von Daten hinsichtlich einer Verwendung von Hardwarekomponenten eines Computersystems und ein Verwenden der protokollierten Daten, um z. B. Verwendungsprofile zu erzeugen.
  • Computersysteme wurden entwickelt, um verschiedene Informationen zu protokollieren. Zum Beispiel wurden bestimmte Systeme, wie beispielsweise dasselbe von US-Patent Nr. 6,085,244 mit dem Titel „Dynamic Test Update in a Remote Computer Monitoring System" zum Überwachen von Computersystemen und Speichern von Systemdiagnose-Informationen entwickelt, die aus einer Ausführung von Diagnoseprogrammen resultieren. Dieser Typ einer Überwachungstechnik verwendet somit Diagnoseprogramme, die periodisch ausführen, um derartige Diagnose-Informationen zu sammeln, wie beispielsweise Fehlernachrichten aus Protokolldateien, Systemabsturzdaten, eine Liste von installierten Patches und Revisionen, eine Hardwarekonfiguration (RAM, Plattenraum, SCSI-Vorrichtungen) und Verwaltungsprobleme (volle Plattenpartitionen, ein geringer Auslagerungsraum).
  • Ferner wurden bestimmte Computersysteme entwickelt, um eine integrierte Selbstüberwachungskomponente zum Überwachen eines bestimmten Aspekts der Computervorrichtung zu umfassen. Zum Beispiel das US-Patent Nr. 5,961,215 mit dem Titel „Temperature Sensor Integral with Microprocessor and Methods of Using Same" sieht einen Temperatursensor vor, der mit einem Mikroprozessor integriert ist, wobei der Tempera tursensor verwendet werden kann, um die Taktgeschwindigkeit des Mikroprozessors zu reduzieren, wenn die Mikroprozessortemperatur eine vorbestimmte Temperatur überschreitet, oder um Temperaturangabedaten in einem nichtflüchtigen Speicher des Mikroprozessors zu speichern, um eine Wärmehistorie des Mikroprozessors bereitzustellen.
  • Einige Systeme umfassen Techniken zum Protokollieren von Informationen über eine Eingabe eines Benutzers (z. B. Tastenanschläge) zu dem Computersystem. Derartige Techniken können zu Sicherheits- oder anderen Überwachungszwecken enthalten sein. Zum Beispiel umfassen bestimmte Systeme Techniken zum Protokollieren einer Verwendung eines gegebenen Software-Anwendungsprogramms durch einen Benutzer, um dem Benutzer eine zeit-/verwendungsbasierte Abrechnung bereitzustellen, wie beispielsweise in dem US-Patent Nr. 5,155,680 mit dem Titel „Billing System for Computing Software". Als ein anderes Beispiel offenbart das US-Patent Nr. 6,622,116 mit dem Titel „Time and Activity Tracker" ein Zeitverfolgungssystem, um zu dokumentieren, wie lange ein Benutzer an einer spezifischen Aufgabe gearbeitet hat, durch ein Protokollieren von Informationen hinsichtlich der Computeraktivität des Benutzers, wie beispielsweise einer Tastatur- und Mausaktivität, einer Dateizugriffsaktivität etc., um eine chronologische Zusammenfassung der Aktivitäten des Benutzers zu tabulieren, was ermöglicht, dass derartige Informationen zum Nachweisen der Menge an Arbeit verwendet werden können, die der Benutzer an einem gegebenen Projekt durchgeführt hat. Die obigen Techniken protokollieren jedoch eine Verwendung von Hardwarekomponenten eines Computersystems durch einen Benutzer nicht angemessen. Ferner haben die obigen Techniken keine wirksame Verwendung der protokollierten Informationen durch einen Computerhersteller zum Treffen von Entwurfsentscheidungen hinsichtlich des geeigneten Computersystems für die Kunden desselben geliefert.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein System, ein Verfahren und einen computerausführbaren Software-Code mit verbesserten Charakteristika zu schaffen.
  • Diese Aufgabe wird durch ein System gemäß Anspruch 1 und Anspruch 28, ein Verfahren gemäß Anspruch 17 und Anspruch 39 und einen computerausführbaren Software-Code gemäß Anspruch 34 gelöst.
  • Gemäß zumindest einem Ausführungsbeispiel weist ein System zumindest ein Computersystem auf, das ein Basiseingabe-Ausgabe-System („BIOS" =Basic Input/Output System) aufweist. Das System weist ferner eine Einrichtung zum Sammeln von Daten über eine Verwendung zumindest einer Hardwarekomponente des zumindest einen Computersystems über das BIOS auf.
  • Gemäß zumindest einem Ausführungsbeispiel weist ein Verfahren ein Sammeln von Daten über eine Verwendung zumindest einer Hardwarekomponente zumindest eines Computersystems über ein BIOS des zumindest einen Computersystems auf. Das Verfahren weist ferner ein Protokollieren der Hardwareverwendungsdaten zu einem nichtflüchtigen Speicher des zumindest einen Computersystems auf.
  • Gemäß zumindest einem Ausführungsbeispiel ist ein computerausführbarer Software-Code vorgesehen, der zu einem computerlesbaren Medium gespeichert ist. Der computerausführbare Software-Code weist einen Code zum Empfangen protokollierter Daten hinsichtlich einer Verwendung von Hardwarekomponenten einer Mehrzahl von Computersystemen und einen Code zum Erzeugen eines Verwendungsprofils für die Mehrzahl von Computersystemen zumindest teilweise basierend auf die empfangenen protokollierten Daten auf.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein exemplarisches Laptop-Computersystem, das ein Ausführungsbeispiel eines Protokollierens von Hardwareverwendungsdaten implementiert;
  • 2 einen Betriebsfluss gemäß einem Ausführungsbeispiel zum Protokollieren von Hardwareverwendungsdaten in einem Computersystem, wie beispielsweise durch den Protokolliermechanismus des beispielhaften Systems von 1;
  • 3 zeigt ein detaillierteres Betriebsflussdiagramm für ein exemplarisches Ausführungsbeispiel zum Protokollieren einer Hardwareverwendung;
  • 4 zeigt ein beispielhaftes Computersystem, das gemäß einem Ausführungsbeispiel zum Empfangen (oder „Ernten" bzw. Einsammeln) von Hardwareverwendungsinformationen von einem oder mehreren Computersystemen (wie beispielsweise dem beispielhaften Computersystem von 1) und Erzeugen eines Verwendungsprofils für (ein) derartiges) Computersystem(e) angepasst ist;
  • 5 einen Betriebsfluss gemäß einem Ausführungsbeispiel zum Empfangen von protokollierten Hardwareverwendungsdaten für überwachte Computersysteme und Erzeugen eines Verwendungsprofils für diese Computersysteme, wie beispielsweise durch den Verwendungsprofilgenerator des beispielhaften Systems von 4;
  • 6 ein detaillierteres Betriebsflussdiagramm für ein exemplarisches Ausführungsbeispiel zum Empfangen protokollierter Hardwareverwendungsdaten und Erzeugen eines Verwendungsprofils; und
  • 7 ein beispielhaftes Betriebsflussdiagramm zum Protokollieren einer Hardwareverwendung und Er zeugen eines Verwendungsprofils gemäß einem Ausführungsbeispiel.
  • Computerhersteller haben herkömmlicherweise Computerentwürfe für Kunden mit relativ geringen Informationen hinsichtlich dessen entwickelt, wie die Kunden derselben die Hardwarekomponenten der Computer tatsächlich verwenden. Eine Verwendung von Hardwarekomponenten kann von Kunde zu Kunde sehr stark variieren. Zum Beispiel lassen bestimmte Kunden die Laptop-Computer derselben viel häufiger als andere Kunden auf einer Batterieleistung laufen. Als ein anderes Beispiel öffnen und schließen bestimmte Kunden eventuell die Deckel der Laptop-Computer derselben viel häufiger als andere Kunden. Als noch ein anderes Beispiel schalten bestimmte Kunden eventuell die Computer derselben viel häufiger als andere Kunden ein/aus. Bei einem Entwerfen eines Computersystems für einen gegebenen Kunden, bei einem Bestimmen des optimalen von einer Mehrzahl von unterschiedlichen Computersystemen, die einem gegebenen Kunden empfohlen werden sollen, oder bei einem Versuchen, Ursachen von Problemen zu diagnostizieren, die bei einem Computersystem eines gegebenen Kunden auftreten, waren relativ wenige Informationen hinsichtlich dessen verfügbar, wie der gegebene Kunde die Hardwarekomponenten des Computersystems desselben verwendet.
  • Unten beschriebene Ausführungsbeispiele sehen Systeme und Verfahren zum Protokollieren von Verwendungsinformationen für ein Computersystem vor. Bei bestimmten Ausführungsbeispielen geben die Verwendungsinformationen insbesondere detailliert an, wie ein Benutzer Hardwarekomponenten des Computersystems verwendet. Zum Beispiel kann ein Laptop-Computersystem Daten protokollieren, die die Anzahl von Malen detailliert angeben, die der Benutzer den Deckel desselben geöffnet und geschlossen hat, wie oft der Benutzer eine Batterieleistung verwendet hat, wie viele Male der Benutzer dem System zyklisch Leistung bereitgestellt hat etc. Gemäß zumindest einem Ausführungsbeispiel ist ein neuartiger Protokollierungsmechanismus in dem BIOS (Basic Input/Output System = Basiseingabe-Ausgabe-System) des Computersystems zum Protokollieren verschiedener Daten hinsichtlich einer Verwendung der Hardware des Computersystems implementiert.
  • Ferner werden bei bestimmten Ausführungsbeispielen die protokollierten Verwendungsinformationen (die entweder über den neuartigen Protokollierungsmechanismus, der hierin offenbart ist, und/oder über andere Protokollierungsmechanismen, die jetzt bekannt sind oder später entwickelt werden, protokolliert werden können) eingebracht und verwendet, um ein Verwendungsprofil für den Benutzer des Computersystems zu erzeugen. Derartige Verwendungs-Informationen können für eine Mehrzahl von Computern (z. B. alle Computer von einem gegebenen Hersteller oder eine bestimmte Gemeinschaft von Computern, wie beispielsweise die Computer einer gegebenen Geschäftsorganisation) protokolliert werden und die protokollierten Verwendungs-Informationen für die Mehrzahl von Computern können eingebracht werden, um Verwendungsprofile für die Benutzer dieser Computer zu erzeugen. Derartige Verwendungsprofile können dann analysiert werden, um zu bestimmen, wie der Computerentwurf modifiziert/optimiert werden kann, um der Verwendung derartiger Computer durch die Benutzer zu entsprechen. Zum Beispiel für Kunden mit einem Verwendungsprofil, das ein hohes Auftreten einer Batterieverwendung angibt, kann ein Computersystem mit einer verbesserten Batterielebensdauer für diese Kunden entworfen werden. Ferner kann eine Batteriegarantie diese Kunden empfohlen werden, die stark von einer Batterieverwendung abhängen. Als ein anderes Beispiel kann für Kunden mit einem Verwendungsprofil, das ein hohes Auftreten eines Öffnens und Schließens des Deckels des Laptop-Computers derselben angibt, ein Computersystem mit einem verbesserten Deckel-Öffnungs-/Schließsystem (z. B. einem verbesserten Scharnier etc.) für diese Kunden entworfen werden. Das heißt, der Hersteller kann das Verwendungsprofil verwenden, um zu bestimmen, wie die Bemühungen desselben am besten auf ein Verbessern des Computersystems (oder eine zukünftige Entwicklung) gemäß der Verwendung des Kunden zu konzentrieren ist.
  • Gemäß bestimmten hierin vorgesehenen Ausführungsbeispielen kann eine Mehrzahl von unterschiedlichen Computersystemen jeweils einen Hardwareverwendungsmechanismus zum Protokollieren von Daten über die jeweiligen Hardwareverwendungen derselben umfassen und derartige protokollierte Daten können zum Ableiten eines Verwendungsprofils für die Mehrzahl von Computersystemen verwendet werden. Somit kann z. B. ein Hardwareverwendungsprofil für alle Computer eines gegebenen Herstellers, alle Computer einer bestimmten Geschäftsorganisation abgeleitet werden. Es ist klar, dass, wie dasselbe hierin verwendet wird, Geschäftsorganisation sich auf irgendeine Organisation (z. B. Firma, Bildungsentität, Regierungsentität etc.), irgendeine Abteilung einer Organisation oder irgendeinen anderen Teilsatz einer Organisation bezieht.
  • Gemäß bestimmten Ausführungsbeispielen werden die protokollierten Hardwareverwendungsinformationen verwendet, um eine Benutzerprofildatenbank beizubehalten, um einem Computerhersteller zu helfen, Produktverbesserungen durch ein Ermöglichen einer statistischen Analyse von Kundenumgebungen anzutreiben, und zusätzlich eine Unterstützung auf dritter Ebene bei Fehlersuchbemühungen hinsichtlich Problemen zu unterstützen, die durch einen Kunden angetroffen werden. Somit werden bei bestimmten Ausführungsbeispielen Hardwareverwendungsdaten gesammelt, um (1) ein Benutzerverwendungsprofil aufzubauen, um eine statistische Datenbank zu erzeugen, um einen Hersteller bei einem Systemvalidierungstestplan-Testen zu unterstützen, und (2) eine Systemausfalldatenbank aufzubauen, um dem Hersteller zu helfen, die zukünftigen Entwürfe desselben zu verbessern. Natürlich werden verschiedene andere Verwendungen für die protokollierten Hardwareverwendungsdaten ersichtlich.
  • Ein Beispiel einer Verwendung der protokollierten Hardwareverwendungsdaten bestünde in Batteriegarantiekosteneinsparungen. Die Batteriegarantie beträgt typischerweise ein Jahr und da eine Batterielebensdauer eine Funktion von Lade-/Entladezyklen ist, kann ein Hersteller zu Garantiezwecken einen Batterielaufzeitspielraum bestimmen. Die Wirkung bestünde darin, Garantiekosten zu senken und eine Garantiedauer zu erhöhen. Diese Daten könnten ferner durch den Hersteller verwendet werden, um den Systemvalidierungstestplan fein einzustellen, um zu der Umgebung des Kunden desselben zu passen.
  • Wie es oben beschrieben ist, wurden Techniken zum Protokollieren derartiger Informationen wie einer Benutzereingabe (z. B. Tastenanschläge) zu einem Computersystem, Protokollieren einer Verwendung einer gegebenen Softwareanwendung durch einen Benutzer (z. B. zu zeit-/verwendungsbasierten Abrechnungszwecken), Protokollieren von Ergebnissen aus Diagnoseprogrammen, die auf einem Computersystem laufen, und Protokollieren einer Temperatur eines Mikroprozessors in einem Computersystem bereitgestellt. Diese Techniken protokollieren jedoch eine Verwendung von Hardwarekomponenten eines Computersystems durch einen Benutzer nicht ausreichend. Außerdem verwendeten diese Techniken die protokollierten Informationen nicht, um Verwendungsprofile zu einer Verwendung durch einen Computerhersteller bei einem Treffen von Entwurfsentscheidungen zu entwickeln.
  • Bei bestimmten hierin vorgesehenen Ausführungsbeispielen wird eine „direkte" Hardwareverwendung durch einen Benutzer protokolliert. Eine direkte Hardwareverwendung bezieht sich auf eine Verwendung von Hardware, die direkt durch einen Benutzer eingeleitet wird, wie beispielsweise einen Benutzer, der den Deckel eines Laptop-Computers öffnet oder schließt, den Benutzer, der einen Laptop-Computer auf einer Batterieleistung laufen lässt, den Benutzer, der den Computer ein- oder ausschaltet, den Benutzer, der einen Laptop-Computer an eine Andockstation andockt oder von derselben abdockt, und den Benutzer, der ein Peripheriegerät verbindet oder abtrennt (z. B. der Benutzer, der ein Eingabegerät verbindet oder abtrennt, wie beispielsweise eine Maus, eine Tastatur, einen Scanner etc. oder ein Ausgabegerät, wie beispielsweise eine Anzeige, einen Drucker, eine externe Speicherungsvorrichtung etc.) als Beispiele. Bei derartigen direkten Hardwareverwendungen soll die Handlung des Benutzers die resultierende Wirkung auf die Hardware des Computers aufweisen, wie beispielsweise ein Öffnen/Schließen des Deckels, ein Laufen auf Batterieleistung, ein Ein-/Ausschalten des Computers, ein Andocken/Abdocken des Computers, ein Verbinden/Trennen von Peripheriegeräten etc. Natürlich kann in einigen Fällen der Benutzer einen bestimmten Zwischenprozess verwenden, um die erwünschte direkte Hardwareverwendung zu erreichen, wie beispielsweise ein in Wechselwirkung treten mit einer Benutzerschnittstelle, um den Computer herunterzufahren im Gegensatz zu einem physisch in Wechselwirkung treten mit der Hardware (z. B. durch ein Drücken eines Leistungsknopfs). Weil jedoch die Verwendung des Benutzers direkt die beabsichtigte Wirkung an der Hardware erzielt (z. B. den Computer herunterfahren), wird eine derartige Verwendung eines Vermittlers in dieser Hinsicht als eine direkte Hardwareverwendung betrachtet.
  • Bei bestimmten Ausführungsbeispielen wird auch eine „indirekte" Hardwareverwendung durch einen Benutzer protokolliert. Eine indirekte Hardwareverwendung bezieht sich auf eine Verwendung einer Hardware, die indirekt aus der Benutzerverwendung des Computers resultieren kann, wie beispielsweise ein Mikroprozessor, der eine größere Last und/oder eine erhöhte Temperatur als eine Folge davon auf sich lädt, dass ein Benutzer beispielsweise eine bestimmte Anwendung auf dem Computer ausführt. Falls ein Benutzer eine Ausführung einer bestimmten Anwendung auf einem Computer auslöst, was wiederum eine erhöhte Rechenlast und somit eine erhöhte Temperatur des Mikroprozessors des Computers als eine Folge der Mikroprozessor-Verarbeitungsanweisungen der Anwendung bewirkt, ist in diesem Fall die Folge, die ein Ausführen einer derartigen Anwendung hinsichtlich eines Erhöhens der Temperatur des Mikroprozessors hat, eine Wirkung, die indirekt ist und durch den Benutzer oft nicht bemerkt wird. Während der Benutzer beabsichtigt, die Anwendung auszuführen, beabsichtigt der Benutzer im Allgemeinen nicht, die Temperatur des Mikroprozessors zu erhöhen.
  • 1 zeigt ein beispielhaftes Laptop-Computersystem 100, das ein Ausführungsbeispiel zum Protokollieren von Hardwareverwendungsdaten implementiert. Während ein spezifisches beispielhaftes Ausführungsbeispiel gezeigt ist, wie es für einen Laptop-Computer implementiert ist, können natürlich ähnliche Ausführungsbeispiele auf irgendeinem anderen prozessorbasierten System zum Protokollieren einer Hardwareverwendung implementiert werden, wie beispielsweise auf einem Personalcomputer (PC), einem Arbeitsplatzrechner, einem Personaldigitalassistenten (PDA), einem Mobiltelefon etc. Zum Beispiel kann ein ähnliches Ausführungsbeispiel ohne weiteres angepasst sein, um auf einem Mobiltelefon implementiert zu sein, um z. B. die Anzahl von Malen zu protokollieren, die der Benutzer den Deckel eines „Klapptelefons" öffnet/schließt, wie häufig der Benutzer eine Antenne an dem Telefon erhöht/absenkt, wie häufig der Benutzer das Telefon mit einem Ladegerät zum Wiederaufladen der Batterie des Telefons verbindet etc. Folglich wird, wenn es nicht anderweitig spezifiziert ist, der Ausdruck „Computersystem" hierin breit verwendet und soll irgendein prozessorbasiertes System umschließen.
  • Bei dem beispielhaften Ausführungsbeispiel von 1 umfasst das Laptop-Computersystem 100 einen Protokolliermechanismus 101, der implementiert ist, um Hardwareverwendungsdaten zu protokollieren, wie es weiter unten beschrieben ist. Bei diesem beispielhaften Ausführungsbeispiel ist der Protokolliermechanismuscode 101 innerhalb des BIOS des Systemspeichers positioniert, der bei diesem Beispiel ein Flash-ROM 123 ist.
  • Das beispielhafte Laptop-Computersystem 100 umfasst eine zentrale Verarbeitungseinheit (CPU = central processing unit) 102, eine Nordbrücke 103, eine Südbrücke 104, eine Graphiksteuerung 105, ein Doppelreihenspeichermodul (DIMM = dual in-line memory modul) 106, eine Universalserienbus-Steuerung (USB-Steuerung; USB = Universal Serial Bus) 107, eine Integriert-Treiberelektronik-Steuerung (IDE-Steuerung; IDE = integrated drive electronics) 108, eine Systemverwaltungsbus-Steuerung ("SMBus"-Steuerung; SMBus – system management bus) 109, eine Wärme- und Lüftersteuerung 110, eine Peripheriekomponentenverbindungssteuerung (PCI-Steuerung; PCI – peripheral component interconnect) 111, eine Super-Eingang/Ausgang-Steuerung (Super-I/O-Steuerung) 112, einen Deckelschalter 113, eine SMBus-Steuerung 114, eine Batterie 115, eine Ladeschaltung 116, ein Diskettenlaufwerk 117, einen seriellen Port bzw. ein serielles Tor 118, einen parallelen Port 119, eine Tastatursteuerung (KBC = keyboard controller) 120, eine Tastatur (KB) 121, eine Maus 122, einen Flash-Nur-Lesespeicher (Flash-ROM; ROM – read only memory) 123, einen Komplementärmetalloxid-Halbleiterspeicher (CMOS-Speicher; CMOS = complementary metal-oxide semiconductor) 124 und einen Infrarotstrahlungsport (IR-Port; IR = infrared radiation) 126. Bei dem Beispiel von 1 ist das beispielhafte System ein IBMkompatibles mobiles Computersystem (z. B. ein Laptop), das ein INTEL-Architektursystem und ein ACPI-basiertes (ACPI = Advanced Configuration and Power Interface) WindowsTM-Betriebssystem (OS = operating system) aufweist.
  • Das beispielhafte System 100 implementiert einen neuartigen Protokolliermechanismus 101 innerhalb des System-BIOS. Wie es weiter unten beschrieben ist, können jedoch bei bestimmten Ausführungsbeispielen Hardwareverwendungsdaten über andere Protokolliermechanismen gesammelt werden. Bei bestimmten Ausführungsbeispielen können Hardwareverwendungsdaten beispielsweise über das Betriebssystem (OS) unter Verwendung bekannter Techniken gesammelt werden, die durch Windows Management Instrumentation (WMI), Self-Monitoring, Analysis und Reporting Technology (SMART) und/oder ACPI verfügbar sind, anstelle von oder zusätzlich zu einem Sammeln von Hardwareverwendungsdaten auf der BIOS-Ebene.
  • Während 1 eine beispielhafte Laptop-Systemarchitektur zeigt, an der ein Ausführungsbeispiel eines Hardwareverwendungsprotokollierens implementiert sein kann, wie es hierin weiter beschrieben ist, sind die hierin beschriebenen Ausführungsbeispiele natürlich nicht auf diese beispielhafte Architektur begrenzt. Anstelle dessen können andere Systemarchitekturen, die nun bekannt sind oder später entwickelt werden, verwendet werden und/oder verschiedene Elemente können zu der beispielhaften Architektur von 1 hinzugefügt werden und/oder von derselben entfernt werden. Zum Beispiel können hierin beschriebene Ausführungsbeispiele ohne weiteres für eine Verwendung bei einer Systemarchitektur angepasst werden, die nicht IBMkompatibel ist, kein INTEL-Architektursystem aufweist und/oder kein ACPI-basiertes WindowsTM-OS verwendet. Die spezifischen Elemente, die bei dem exemplarischen Laptop 100 von 1 gezeigt sind, sind weiter unten beschrieben, aber wiederum soll diese Architektur lediglich ein Beispiel sein und die Ausführungsbeispiele zum Protokollieren einer Hardwareverwendung, die hierin beschrieben sind, können ohne weiteres für eine Verwendung bei anderen Architekturen angepasst werden.
  • Die CPU 102 umfasst allgemein einen oder mehrere Prozessoren (z. B. Mikroprozessoren), die eine Einheit bilden, die eine Logikschaltungsanordnung enthält, die die Anweisungen der Programme des Computers ausführt, wie es auf dem Gebiet gut bekannt ist. Die Nordbrücke 103 und die Südbrücke 104 sind zwei Hauptkomponenten, die viele Prozessorarchitekturen zu umfassen entworfen sind, wie beispielsweise bei vielen der Prozessoren, die von INTEL-Corporation erhältlich sind. Bei vielen Systementwürfen ist die Nordbrücke 103 im Wesentlichen die Hauptkomponente der Hauptplatine und ist typischerweise die einzige Hauptplatinenschaltung neben dem Prozessor, die normalerweise mit einer vollen Hauptplatinengeschwindigkeit (Prozessorbusgeschwindigkeit) läuft. Die Nordbrücke 103 stellt eine Verbindung zu derartigen Hochgeschwindigkeitskomponenten her, wie beispielsweise der Graphiksteuerung 105 und dem DIMM 106.
  • Bei vielen Systementwürfen ist die Südbrücke 104 die Komponente mit niedrigerer Geschwindigkeit in dem Chipsatz. Zum Beispiel stellt die Südbrücke 104 im Allgemeinen eine Verbindung mit dem PCI-Bus (über die PCI-Steuerung 111) her und enthält normalerweise die Dual-IDE-Festplattensteuerungsschnittstellen 108 und die USB-Schnittstelle 107. Ferner stellt bei diesem Beispiel die Südbrücke 104 eine Verbindung mit der SMBus-Steuerung 109 her, die (unter anderem) eine Temperatur über die Wärme- und Lüftersteuerung 110 überwacht. Die Südbrücke 104 ist ferner kommunikativ mit der Super-I/O-Steuerung 112 gekoppelt. Im Allgemeinen ist die Super-I/O-Steuerung 112 ein Chip, der zum Steuern von Peripheriegeräten mit niedriger Geschwindigkeit verantwortlich ist, die in vielen Computersystemen zu finden sind, wie beispielsweise das Diskettenlaufwerk 117, der serielle Port 118, der parallele Port 119, der Flash-ROM 123 und der IR-Port 126. Da diese I/O-Vorrichtungen meistens standardisiert wurden, sind dieselben bei den meisten Computerarchitekturen praktisch die gleichen und somit kann ein Implementieren der Super-I/O-Steuerung 112, die die Steuerung dieser verschiedenen Vorrichtungen integriert, die Gesamtarchitektur vereinfachen. Natürlich kann eine derartige Super-I/O-Steuerung bei alternativen Architekturen mit getrennten I/O-Steuerungen ersetzt sein. Die Super-I/O-Steuerung 112 ist bei dem Beispiel von 1 ferner kommunikativ mit dem Deckelschalter 113, der SMBus-Steuerung 114 und der KBC 120 gekoppelt.
  • Gemäß diesem beispielhaften Ausführungsbeispiel sammelt der Flash-ROM 123 Daten basierend auf Unterbrechungsrufen, einer Systemverwaltungsunterbrechung (SMI = System Management Interrupt), ASL, Smbios, ACPI und/oder SMART. Bei bestimmten Ausführungsbeispielen wird z. B. eine Systemverwaltungsmodus-Programmierung (SMM-Programmierung; SMM = System Management Mode) (hierin auch als „SMBIOS" bezeichnet) durch den Protokolliermechanismus 101 in dem System-BIOS des Flash-ROM 123 zum Sammeln bestimmter Hardwareverwendungsinformationen verwendet. Ein derartiger BIOSbasierter Mechanismus zum Protokollieren einer Hardwareverwendung ist eine neuartige Technik, die hierin unten vollständiger beschrieben ist. Zusätzlich oder alternativ können bei bestimmten Ausführungsbeispielen andere Protokolliertechniken eingesetzt werden, wie beispielsweise Techniken, die Hardwareverwendungsdaten durch OS-Rufe sammeln. Ungeachtet der eingesetzten Hardwareverwendungs-Sammeltechniken sind neuartige Verwendungen für derartige gesammelte Daten hierin weiter beschrieben, wie beispielsweise ein Erzeugen von Kundenverwendungsprofilen.
  • Gemäß einer beispielhaften Implementierung zeigt Tabelle 1 unten Typen von Daten, die protokolliert werden, sowie wo derartige Daten gespeichert sind und den zum Sammeln der Daten verwendeten Mechanismus. Natürlich können andere Speicherungspositionen und/oder Protokolliermechanismen bei alternativen Implementierungen verwendet werden und unterschiedliche Daten können bei alternativen Implementierungen protokolliert werden.
  • Figure 00140001
  • Figure 00150001
  • Figure 00160001
    Tabelle 1
  • Bei dem beispielhaften System von 1 werden der CMOS 124 und der Flash-ROM 123 für eine temporäre Datenspeicherung der gesammelten Hardwareverwendungsdaten verwendet. Bei einem Ausführungsbeispiel sind Daten, die mehr als 1000 Mal aktualisiert werden sollen, temporär in dem CMOS 124 gespeichert, während Daten, die weniger als 1000 Mal aktualisiert werden sollen, temporär in dem Flash-ROM 123 ge speichert sind. Bei der beispielhaften Architektur von 1 erfolgt ein CMOS-Zugriff durch I/O-Ports 70h (Index) und 71h (Daten).
  • Eine Flash-Speichervorrichtung, wie beispielsweise der Flash-ROM 123 ist spezifiziert, um eine finite Zeitdauer zuverlässig programmiert zu werden (typischerweise näherungsweise 8000 Mal). Um den Flash-ROM 123 zu verwenden, ist es deshalb erwünscht, irgendwelche veränderten Daten in einer temporären Speicherung (reservierter Systemspeicherbereich) bei Laufzeit zu speichern, bis das System heruntergefahren wird. Dies würde ermöglichen, dass der Flash-ROM 123 weniger Male programmiert wird, um das Flash-Zuverlässigkeitsproblem zu vermeiden. Mit anderen Worten werden, wenn Hardwareverwendungsdaten während einer Laufzeit des Systems (ansprechend auf ein Auftreten einer gegebenen Hardwareverwendung, die protokolliert wird) aktualisiert werden, die aktualisierten Daten in einer temporären Speicherung, wie beispielsweise CMOS 124 protokolliert und derartige Daten werden auf eine Systemherunterfahrung hin zu dem System-ROM, d. h. Flash-ROM 123 geschrieben. Während diese Datenspeicherungsstrategie für bestimmte Ausführungsbeispiele eingesetzt wird, können andere Datenspeicherungsstrategien ähnlich zum Protokollieren der gesammelten Hardwareverwendungsdaten in einer erwünschten Weise eingesetzt werden.
  • Gemäß bestimmten Ausführungsbeispielen können die gesammelten Hardwareverwendungsdaten von dem überwachten System geerntet bzw. eingesammelt werden und einem Benutzer präsentiert werden. Gemäß einem Ausführungsbeispiel schreibt der Flash-ROM 123 z. B. die gesammelten Daten zu einer WMI-Datei (WMI = Windows Management Instrumentation). Ein Anwendungsprogramm, das eventuell auf einem getrennten Computersystem (wie beispielsweise auf einem Computersystem des Herstellers) ausgeführt wird, empfängt die WMI-Datendatei, verarbeitet dieselbe und zeigt dieselbe einem Benutzer für eine Analyse an. Beispiele der resultierenden verarbeiteten Informationen (z. B. Verwendungsprofile für eines oder mehrere Computersysteme), die einem Benutzer präsentiert werden können und durch denselben für eines oder mehrere Computersysteme analysiert werden können, sind weiter unten beschrieben. Durch ein Spezifizieren von WMI kann auf die Systemverwaltungs-Informationen in einer Unternehmensrechenumgebung zugegriffen werden. WMI ist eine Komponente des Microsoft® Windows® Betriebssystems und ist die Microsoft-Implementierung von WBEM (Web-Based Enterprise Management = Web-basierte Unternehmensverwaltung), was eine Industrieinitiative ist, um eine Standardtechnologie zum Zugreifen auf Verwaltungsinformationen in einer Unternehmensumgebung zu entwickeln. WMI verwendet den CIM-Industriestandard (CIM = Common Information Model = gemeinsames Informationsmodell), um Systeme, Anwendungen, Netzwerke, Vorrichtungen und andere verwaltete Komponenten darzustellen. WMI kann verwendet werden, um Verwaltungsaufgaben in einer Unternehmensumgebung zu automatisieren. Die gesammelten Daten können natürlich bei alternativen Ausführungsbeispielen zu anderen Typen von Dateien (anderen als WMI) geschrieben werden, falls es so erwünscht ist.
  • Wie es bei der beispielhaften Implementierung von 1 gezeigt ist, können verschiedene Typen einer Hardwareverwendung durch den Protokolliermechanismus 101 erfasst und protokolliert werden. Zum Beispiel kann der Deckelschalter 113 überwacht werden, um die Anzahl von Malen, die ein derartiger Deckelschalter 113 geöffnet und geschlossen wird, über GPIO und SMM zu zählen. GPIO ist ein Universal-Digital-Eingang/Ausgang-Signal (General Purpose Digital Input/Output). Dasselbe kann als ein Eingangssignal oder ein Ausgangssignal programmiert sein. In dem Fall des Deckelschließungszählwerts ist das GPIO als ein Eingangssignal programmiert und SMM wird durch den Protokolliermechanismus 101 verwendet, um die Anzahl von Malen zu zählen, die der Deckelschalter 113 geöffnet und geschlossen wird.
  • Ferner kann die Anzahl von Warmbootvorgängen zu dem System durch die KBC 120 über SMM gezählt werden. Bei diesem beispielhaften Ausführungsbeispiel soll SMM für fortgeschrittene Leistungsverwaltungsmerkmale und andere betriebssystemunabhängige Funktionen verwendet werden. Der Chipsatz ist programmiert, um viele Typen von Ereignissen und Zeitabläufen zu erkennen. Wenn ein derartiges Ereignis auftritt, aktiviert der Chipsatz den SMI#-Eingangsanschlussstift. Bei der nächsten Anweisungsgrenze sichert der Mikroprozessor den gesamten Zustand desselben und tritt in SMM ein.
  • Wenn der Mikroprozessor in SMM eintritt, aktiviert derselbe einen Ausgangsanschlussstift, SMIACT#. Dieser Anschlussstift dient dazu, den Chipsatz zu benachrichtigen, dass der Mikroprozessor in SMM eintritt. SMI# kann zu irgendeiner Zeit während irgendeines Betriebsmodus außer innerhalb von SMM selbst aktiviert werden. Der Chipsatz erkennt SMIACT# und richtet alle nachfolgenden Speicherzyklen zu einem geschützten Speicherbereich um, der spezifisch für SMM reserviert ist. Sofort nach einem Empfangen des SMI#-Eingangssignals und einem Aktivieren des SMIACT#-Ausgangssignals beginnt der Mikroprozessor, den gesamten inneren Zustand desselben zu diesem geschützten Speicherbereich zu sichern.
  • Nachdem der Mikroprozessorzustand zu einem Speicher gespeichert wurde, beginnt die spezielle SMM-Handhabungseinrichtung auszuführen. Bei einer beispielhaften Implementierung befindet sich der Prozessor in einem realen Modus, weisen alle Segmente 4-GB-Grenzen auf und sind alle Segmente les-/beschreibbar. Nachdem der SMM-Code ausgeführt hat, kehrt derselbe zu der vorhergehenden Betriebsumgebung zurück. Das Programm führt die RSM-Anweisung aus, um aus SMM auszutreten. RSM liest die Mikroprozessorzustandsdaten aus der Zustandssicherungsabbildung und stellt den gesamten Mikroprozessorzustand wieder her bzw. speichert denselben zurück. Wie LOADALL führt RSM praktisch keine Überprüfungen an den Daten in der Zustandssicherungsabbildung durch. Auf einen Abschluss von RSM hin wurde der gesamte Mikroprozessorzustand neu definiert und das vorhergehende Programm nimmt eine Ausführung genau da wieder auf, wo dasselbe aufgehört hat.
  • Verschiedene andere Typen von „direkten" Hardwareverwendungen können bei diesem System ähnlich erfasst werden, wie beispielsweise ein Betreiben des Systems auf einer Batterieleistung, dass der Benutzer den Laptop-Computer an eine Andockstation andockt oder von derselben abdockt, der Benutzer ein Peripheriegerät verbindet oder abtrennt etc. (wie beispielsweise die verschiedenen Typen von „direkten" Hardwareverwendungen von Tabelle 1 oben). Somit können verschiedene direkte Hardwareverwendungen durch einen Benutzer des Systems 100 durch den Protokolliermechanismus 101 erfasst und protokolliert werden.
  • Ferner können bestimmte indirekte Hardwareverwendungen durch den Protokolliermechanismus 101 erfasst und protokolliert werden. Zum Beispiel kann eine Systemtemperatur über die Wärmesteuerung 110 überwacht werden. Verschiedene Beispiele anderer Typen von „indirekten" Hardwareverwendungen, die bei diesem System erfasst werden können, sind in Tabelle 1 oben enthalten.
  • Ein beispielhaftes Protokoll von Hardwareverwendungsdaten, die durch den Protokolliermechanismus 101 gemäß einem Ausführungsbeispiel gesammelt werden können, ist in Tabelle 2 unten gezeigt.
  • Figure 00200001
  • Figure 00210001
    Tabelle 2
  • Jedes der obigen beispielhaften Felder von Tabelle 2 kann beispielsweise durch ein Computersystem auf der oben in Verbindung mit 1 beschriebenen Weise gesammelt/protokolliert werden. Die in Tabelle 2 oben enthaltenen Werte sind lediglich Beispiele von Daten, die für ein gegebenes System protokolliert werden können. Ferner sind die in Tabelle 2 enthaltenen Felder lediglich als Beispiele beabsichtigt und zusätzliche oder alternative Daten können bei alternativen Ausführungsbeispielen in dem Protokoll enthalten sein. Zum Beispiel kann die Anzahl von Malen, die ein Laptop auf einer Batterieleistung laufen gelassen wird, protokolliert werden, ein Zeitnehmer (Timer) kann verwendet werden, um die Gesamtzeitdauer zu protokollieren, die der Laptop auf einer Batterieleistung laufen gelassen wird, und/oder die Zeitdauer zu protokollieren, die der Laptop auf einer Batterieleistung jedes Mal laufen gelassen wird, wenn derselbe von einer AC-Leistung entfernt wird (somit können die protokollierten Informationen angeben, wie lange der Benutzer den Laptop typischerweise auf einer Batterieleistung laufen lässt, um beispielsweise zu bestimmen, ob bei der Batterie typischerweise eine Leistung im Wesentlichen aufgebraucht wird, bevor dieselbe durch den Benutzer wieder aufgeladen wird). Gleichermaßen kann anstelle oder zusätzlich zu einem Sammeln der Anzahl von Malen, die ein Laptop an/von einer Andockstation angedockt/abgedockt wird, ein Zeitnehmer verwendet werden, um die Menge an Zeit zu protokollieren, die der Laptop angedockt gegenüber abgedockt ist.
  • 2 zeigt einen Betriebsfluss gemäß einem Ausführungsbeispiel zum Protokollieren von Hardwareverwendungsdaten bei einem Computersystem, wie beispielsweise durch den Protokolliermechanismus 101 des Systems 100 von 1. Bei einem Betriebsblock 201 werden für zumindest ein Computersystem Daten über eine Verwendung zumindest einer Hardwarekomponente eines derartigen Computersystems (derartiger Computersysteme) über ein BIOS des Computersystems (der Computersysteme) gesammelt. Zum Beispiel ist der Deckel schalter 113 das beispielhafte System von 1 und erfasst das Öffnen/Schließen des Deckels. Das BIOS verfolgt die Anzahl von Offen/Geschlossen-Zyklen durch SMM. Das heißt, der Protokolliermechanismus 101 des Systems 100 sammelt Daten über die Anzahl von Malen, die der Deckel des Systems 100 geöffnet und geschlossen wird. Bei einem Betriebsblock 202 werden die Hardwareverwendungsdaten zu einem nichtflüchtigen Speicher des entsprechenden Computersystems (der entsprechenden Computersysteme) protokolliert. Zum Beispiel kann durch den Protokolliermechanismus 101 die Anzahl von Malen, die der Deckel des Systems 100 geöffnet und geschlossen wird, zu dem Flash-ROM 123 protokolliert werden.
  • 3 zeigt ein detaillierteres Betriebsflussdiagramm 300 für ein exemplarisches Ausführungsbeispiel zum Protokollieren einer Hardwareverwendung. Meistens kann eine jegliche Art von Daten durch ein Verwenden der Datenprotokollstruktur, die eingerichtet wurde, gesichert und wiedererlangt werden. Beispielsweise können die Anzahl und der Typ von Abschaltungen, Deckelschalteröffnungen und -schließungen und unterschiedliche Typen von Flash-Schreibvorgängen einschließlich des FBDA (Flash BIOS Data Area) und der Mikrosteuerung bei bestimmten Ausführungsbeispielen gesammelt werden. Daten werden bei unterschiedlichen Orten gehalten, wenn das System aktiv ist, und in dem FLASH-FBDA und dem CMOS gehalten, wenn das System inaktiv ist. Bei einem Block 301 ist ein Datenprotokollieren (z. B. der Protokolliermechanismus 101) in dem BIOS des Computersystems resident. Bei einem Block 302 ruft der Protokolliermechanismus 101 ansprechend auf eine Systemrücksetzung eine InitDataLog-Prozedur in einem SMM-Modus auf. Bei einem Block 303 liest die InitDataLog-Prozedur ein Datenprotokoll aus einer Flash-ROM-Vorrichtung (z. B. dem Flash-ROM 123 des Systems 100) (das Datenprotokoll wird von dem vorhergehenden System Herunterfahren zu dem Flash-ROM geschrieben) und speichert dasselbe in einem Puffer. INITDATALOG liest die Signatur (auch Prüfsumme genannt), um sicherzustellen, dass keine Datenverfälschung auftrat und das Datenprotokoll gültig ist. Falls die bekannte Signatur nicht mit der gelesenen Signatur übereinstimmt, wird das Datenprotokoll als ungültig betrachtet oder gelöscht und die Datenprotokollvariablen werden zu Null gelöscht.
  • Bei einem Block 304 werden, falls die Daten als gut betrachtet werden, Laufzeitvariablen zu einem Variablenraum in einer SMM-Struktur bewegt. In einigen Fällen, in denen Informationen in einem CMOS aktualisiert werden, werden Daten (KBC-Steuerungsaktualisierung, FBDA) aktualisiert, bevor dieselben zu der SMM-Struktur bewegt werden. Ein CMOS wird lediglich verwendet, um Daten temporär zwischen Bootvorgängen zu halten, bei denen das System eventuell nicht die Fähigkeit aufweist, dieselben zu dem FBDA aufzuzeichnen, bevor eine Abschaltung auftritt. Bei einem Block 305 ruft der Protokolliermechanismus 101 eine InitDataLog-DMI-Prozedur auf, um Daten zu einer DMI-Struktur zu bewegen. Eine Struktur ist ebenfalls als ein Datenfeld bekannt. DMI ist eine Desktop-Management-Interface-Softwarespezifikation. DMI erzeugt ein Standardrahmenwerk zum Verwalten und Verfolgen von Komponenten in einem Desktop-PC, Notebook oder Server. Der nächste Schritt in dem Prozess ist eine Prozedur namens InitDataLogDMI (POSTDMI.ASM), die die Daten zu der DMI-Struktur bewegt. Abhängig von den Daten werden dieselben entweder von dem Laufzeit-SMM-Variablenraum (eine für eine SMM-Programmierung reservierte Speicherregion) oder direkt von einem FBDA bewegt. Es ist zu beachten, dass ungeachtet dessen, wann die DMI-Daten gelesen werden, die Zählwerte lediglich zu der Zeit eines Systembootvorgangs aktuell sind. Dies ist so, weil die DMI-Struktur während POST in dem F000-Laufzeit-Segment platziert ist. Falls die aktuellen Daten zu irgendeiner speziellen Zeit erwünscht sind, dann kann das System heruntergefahren und wieder gebootet werden, um das Datenprotokoll zu aktualisieren.
  • Bei einem Block 306 werden Laufzeitdaten in einem CMOS (z. B. dem CMOS 124 des Systems 100) oder einem SMM- Variablenraum gespeichert. Bei einem Block 307 wird vor einer Systemabschaltung SaveDataLog ausgeführt, um alle gesammelten Daten zu lesen und dieselben zurück in FBDA zu speichern. Die in FBDA gesammelten Daten umfassen bei einer beispielhaften Implementierung die folgenden Daten:
    • 1. Zählwert der Anzahl von tastaturgesteuerten Aktualisierungen (KBC-Aktualisierungen; KBC = keyboard controlled);
    • 2. Zählwert der Anzahl von Deckelschaltereignissen;
    • 3. Zählwert der Anzahl von Warmbootvorgängen;
    • 4. Anzahl von (S5) Leistungsübergängen (Ausschalten) sichern;
    • 5. Zählwert der Anzahl von Bereitschaftsabschaltungen;
    • 6. Zählwert der Anzahl von FBDA-Aktualisierungen; und
    • 7. Zählwert der Anzahl von Flash-BIOS-Aktualisierungen.
  • Natürlich können, wie es oben beschrieben ist, bei anderen Implementierungen verschiedene andere Daten zusätzlich oder anstelle der obigen Daten durch den BIOS-Protokolliermechanismus protokolliert werden.
  • Gemäß bestimmten hierin vorgesehenen Ausführungsbeispielen werden protokollierte Hardwareverwendungsinformationen, die für eines oder mehrere Computersysteme (wie beispielsweise dieses, das durch den BIOS-Protokolliermechanismus 101 des Systems 100 und/oder irgendeinen anderen Protokolliermechanismus, der nun bekannt ist oder später entdeckt wird, protokolliert wird) protokolliert werden, durch ein anderes Computersystem (z. B. ein Computersystem eines Herstellers) eingesammelt und verwendet, um ein Verwendungsprofil zu erzeugen. Ferner können bei bestimmten Ausführungsbeispie len protokollierte Hardwareverwendungsinformationen, die zu jedem einer Mehrzahl unterschiedlicher Computersysteme protokolliert werden, durch ein anderes Computersystem eingesammelt werden und verwendet werden, um ein Verwendungsprofil für die Mehrzahl von unterschiedlichen Computersystemen zu erzeugen. Zum Beispiel kann jedes Computersystem eines gegebenen Kunden (z. B. eine gegebene Geschäftsorganisation) den Protokolliermechanismus umfassen, um die jeweiligen Hardwareverwendungsdaten desselben zu protokollieren, und die Hardwareverwendungsdaten von allen derartigen Kundencomputersystemen können durch ein Computersystem eines Herstellers periodisch gesammelt werden, um ein Verwendungsprofil für diesen Kunden zu erzeugen. Tabelle 3 unten zeigt ein Beispiel von Verwendungsprofilen, die für einen Satz von überwachten Computersystemen (d. h. Computersysteme, die jeweils einen Hardwareverwendungsprotokolliermechanismus umfassen) gesammelt werden können.
  • Figure 00260001
    Tabelle 3
  • Wie es in dem Beispiel von Tabelle 3 gezeigt ist, können Verwendungsprofilinformationen, wie beispielsweise diese von Tabelle 2 oben eingesammelt und einem Kunden zugeordnet werden. Zum Beispiel können die Verwendungsprofile einem entsprechenden Benutzer, einer entsprechenden Firma und/oder einer entsprechenden Abteilung der Firma zugeordnet werden. Bei dem Beispiel von Tabelle 3 identifiziert die erste Zeile einer derartigen Tabelle, dass die gesam melten Hardwareverwendungsinformationen einem gegebenen Benutzer, Benutzer A, entsprechen, der anstelle dessen ein gegebener Computer des Benutzers sein kann, wie beispielsweise ein Computer ID 123456. Die erste Zeile umfasst ferner ein Feld, das identifiziert, dass dieser Benutzer/dieses Computersystem einer „Firma X" gehört, und es ist ein Feld enthalten, das identifiziert, dass dieser Benutzer/dieses Computersystem in der „Buchhaltungsabteilung" einer derartigen Firma X verwendet wird. Das letzte Feld der ersten Zeile umfasst die entsprechenden Hardwareverwendungsdaten, die für diesen Benutzer/Computer protokolliert wurden, wie beispielsweise die beispielhaften Verwendungsinformationen von Tabelle 2 oben. Die folgenden Zeilen von Tabelle 3 umfassen gleichermaßen ein Feld, das einen gegebenen Benutzer/ein gegebenes Computersystem, eine entsprechende Firma, eine entsprechende Abteilung der Firma und die entsprechenden protokollierten Hardwareverwendungsdaten für einen derartigen Benutzer/ein derartiges Computersystem identifiziert.
  • Somit können die Verwendungsprofile verwendet werden, um ordnungsgemäße Entwurfserwägungen für einen gegebenen Benutzer, eine gegebene Firma (basierend auf einer Mehrzahl von Benutzern derselben, wie beispielsweise Benutzer A und B der Firma X in Tabelle 3) und/oder eine gegebene Abteilung einer Firma (z. B. alle Benutzer der Buchhaltungsabteilung von Firma X in Tabelle 3) zu bestimmen. Mit anderen Worten können die eingesammelten Daten von Tabelle 3 verwendet werden, um ein Verwendungsprofil für alle Benutzer der Firma X oder alle Benutzer der Buchhaltungsabteilung der Firma X oder alle Benutzer aller Buchhaltungsabteilungen über verschiedene unterschiedliche Firmen beispielsweise zu erzeugen. Somit können die eingesammelten Informationen zum Bestimmen der ordnungsgemäßen Entwurfserwägungen für einzelne Benutzer eines Kunden, spezifische Abteilungen des Kunden etc. verwendet werden. Der Hersteller kann diese Informationen beispielsweise verwenden, um einen geeigneten Computersystementwurf für eine Verwendung in einer Buchhal tungsabteilung einer Firma basierend auf dem Verwendungsprofil der Buchhaltungsabteilung dieser Firma und/oder basierend auf Verwendungsprofilen von Benutzern über Buchhaltungsabteilungen verschiedener unterschiedlicher Firmen vorzuschlagen. Als ein Beispiel kann die durchschnittliche Menge an Zeit, die ein Laptop-Computersystem durch Benutzer in der Buchhaltungsabteilung der Firma X auf einer Batterieleistung laufen gelassen wird, aus den entsprechenden protokollierten Hardwareverwendungsinformationen bestimmt werden und derartige Informationen können verwendet werden, um ein gegebenes Computersystem zu entwerfen und/oder vorzuschlagen, das zum Bedienen der Batterieverwendungsbedürfnisse der Buchhaltungsabteilung der Firma X am besten geeignet ist. Dies stellt somit ein Beispiel zum Erzeugen eines Verwendungsprofils für eine Geschäftsorganisation (z. B. eine Firma, eine Abteilung etc.) bereit, die von Interesse ist.
  • 4 stellt ein beispielhaftes Computersystem 400 dar, das gemäß einem Ausführungsbeispiel zum Empfangen (oder „Ernten" bzw. einsammeln) von Hardwareverwendungsinformationen von dem Protokolliermechanismus eines oder mehrerer überwachter Computersysteme (wie beispielsweise des Computersystems 100 von 1) und Erzeugen eines Verwendungsprofils für ein derartiges Computersystem (derartige Computersysteme) angepasst ist. Das Computersystem 400 kann beispielsweise an einem Ort eines Herstellers zum Empfangen protokollierter Hardwareverwendungsinformationen von Computersystemen implementiert sein, die durch einen derartigen Hersteller hergestellt werden (z. B. das Computersystem 100 von 1). Während ein beispielhaftes Computersystem 400 in 4 gezeigt und weiter unten beschrieben ist, sind hierin beschriebene Ausführungsbeispiele zum Empfangen protokollierter Hardwareverwendungsinformationen und Erzeugen von Verwendungsprofilen nicht auf diese beispielhafte Architektur begrenzt, sondern anstelle dessen kann irgendeine geeignete Computersystemarchitektur verwendet werden, die nun bekannt ist oder später entdeckt wird und die zum Unterstützen der hierin beschriebenen Operationen in der Lage ist.
  • Bei dem beispielhaften System 400 von 4 ist eine zentrale Verarbeitungseinheit (CPU = central processing unit) 401 mit einem Systembus 402 gekoppelt. Die CPU 401 kann irgendeine allgemeine CPU sein. Die CPU 401 kann die verschiedenen logischen Anweisungen zum Empfangen („Ernten") protokollierter Hardwareverwendungsdaten von einem oder mehreren Computern und Erzeugen eines Verwendungsprofils für einen derartigen Computer (derartige Computer) ausführen, wie es weiter hierin beschrieben ist. Die CPU 401 kann beispielsweise Anweisungen auf Maschinenebene gemäß den exemplarischen Betriebsflüssen ausführen, die unten in Verbindung mit 5 und 6 beschrieben sind.
  • Das Computersystem 400 umfasst ferner vorzugsweise einen Direktzugriffsspeicher (RAM – random access memory) 403, der ein SRAM, ein DRAM, ein SDRAM oder dergleichen sein kann. Das Computersystem 400 umfasst vorzugsweise einen Nur-Lesespeicher (ROM = read-only memory) 404, der ein PROM, EPROM, EEPROM oder dergleichen sein kann. Der RAM 403 und der ROM 404 halten Benutzer- und Systemdaten und Programme, wie beispielsweise einen Verwendungsprofilgenerator 416, der unten beschrieben ist, wie es auf dem Gebiet gut bekannt ist.
  • Das Computersystem 400 umfasst ferner vorzugsweise einen Eingang/Ausgang-Adapter (I/O-Adapter; I/O = input/output) 405, einen Kommunikationsadapter 411, einen Benutzerschnittstellenadapter 408 und einen Anzeigeadapter 409. Der I/O-Adapter 405, der Benutzerschnittstellenadapter 408 und/oder der Kommunikationsadapter 411 können bei bestimmten Ausführungsbeispielen ermöglichen, dass ein Benutzer mit dem Computersystem 400 in Wechselwirkung tritt, um Informationen zu demselben einzugeben. Zum Beispiel können protokollierte Hardwareverwendungsinformationen von dem entsprechenden Computer (den entsprechenden Computern) auf irgendeine geeignete Weise empfangen werden. Bei einem Ausführungsbeispiel können z. B. derartige protokollierte Hardwareverwendungsinformationen, die zu einem gegebenen Computersystem (z. B. dem Computersystem 100 von 1) gespeichert sind, durch das System 400 durch ein kommunikatives Koppeln der Hauptplatine eines derartigen gegebenen Computersystems mit dem System 400 (z. B. über einen USB-Port des Systems 400 (in 4 nicht gezeigt)) wiedererlangt werden. Als ein anderes Beispiel können protokollierte Hardwareverwendungsinformationen, die zu einem gegebenen Computersystem (z. B. dem Computersystem 100 von 1) gespeichert sind, durch das System 400 durch ein kommunikatives Koppeln des Systems 400 (zumindest temporär) mit einem derartigen gegebenen Computersystem über ein Netzwerk 412 wiedererlangt werden.
  • Der I/O-Adapter 405 verbindet vorzugsweise eine Speicherungsvorrichtung (Speicherungsvorrichtungen) 406, wie beispielsweise eines oder mehrere von einem Festplattenlaufwerk, einem CD-Laufwerk (CD = compact disc), einem Diskettenlaufwerk, einem Bandlaufwerk etc. mit dem Computersystem 400. Die Speicherungsvorrichtungen können verwendet werden, wenn der RAM 403 für die Speichererfordernisse unzureichend ist, die einem Speichern von Daten für Anwendungsprogramme zugeordnet sind. Der RAM 403, der ROM 404 und/oder andere Speicherungsvorrichtungen 406 können zum Speichern eines computerausführbaren Codes zum Empfangen von Hardwareverwendungsinformationen von einem Computersystem (von Computersystemen) und Erzeugen von Verendungsprofilen für ein derartiges Computersystem (derartige Computersysteme) gemäß den hierin beschriebenen Ausführungsbeispielen verwendet werden. Der Kommunikationsadapter 411 ist vorzugsweise angepasst, um das Computersystem 400 mit dem Netzwerk 412 zu koppeln, wie beispielsweise dem Internet, einem Intranet, dem World Wide Web (dem „Web"), anderen weiten und/oder lokalen Netzen (WANs und LANs; WAN = Wide Area Network; LAN = Local Area Network), einem drahtlosen Netzwerk und Kombinationen derselben.
  • Der Benutzerschnittstellenadapter 408 koppelt Benutzereingabegeräte, wie beispielsweise eine Tastatur 413, eine Zeigevorrichtung 407 und ein Mikrophon 414 und/oder Ausgabevorrichtungen, wie beispielsweise (einen) Lautsprecher 415 mit dem Computersystem 400. Der Anzeigeadapter 409 ist durch die CPU 401 getrieben, um die Anzeige an einer Anzeigevorrichtung 410 zu steuern.
  • Das System 400 umfasst einen Verwendungsprofilgenerator 416, der ein Softwareanwendungsprogramm ist, das durch die CPU 401 ausführbar ist und betreibbar ist, um protokollierte Hardwareverwendungsdaten 417 von einem oder mehreren „überwachten" Computersystemen (z. B. die Hardwareverwendungsdaten, die durch das System 100 von 1 protokolliert werden) zu empfangen und ein Verwendungsprofil 418 für ein derartiges überwachtes Computersystem (derartige überwachte Computersysteme) zu erzeugen. Wie es oben beschrieben ist, kann oder können das eine oder die mehreren Computersysteme (wie beispielsweise das Computersystem 100) selbstüberwacht sein dahingehend, dass dieselben einen Hardwareverwendungsprotokolliermechanismus zum Protokollieren der eigenen Hardwareverwendung derselben umfassen. Wie es ebenfalls oben beschrieben ist, können die protokollierten Hardwareverwendungsdaten 417 über ein Netzwerk 412 empfangen werden oder anderweitig zu dem Computersystem 400 eingegeben werden. Ferner kann das erzeugte Verwendungsprofil 418 zu dem RAM 403, dem ROM 404, der Speicherungsvorrichtung (Speicherungsvorrichtungen) 406 und/oder einem anderen Computersystem gespeichert werden, mit dem das System 400 (zumindest temporär) kommunikativ über das Netzwerk 412 gekoppelt ist.
  • 5 zeigt einen Betriebsfluss gemäß einem Ausführungsbeispiel zum Empfangen protokollierter Hardwareverwendungsdaten für überwachte Computersysteme und Erzeugen eines Verwendungsprofils für diese Computersysteme, wie beispielsweise durch den Verwendungsprofilgenerator 416 des Systems 400 von 4. Bei einem Betriebsblock 401 emp fängt der Verwendungsprofilgenerator 416 protokollierte Daten hinsichtlich einer Verwendung von Hardwarekomponenten einer Mehrzahl von Computersystemen (z. B. einer Mehrzahl von Laptop-Computersystemen 100 einer gegebenen Geschäftsorganisation). Der Verwendungsprofilgenerator 416 kann beispielsweise protokollierte Daten hinsichtlich einer Verwendung von Hardwarekomponenten für jedes einer Mehrzahl unterschiedlicher Computersysteme eines gegebenen Kunden (z. B. einer gegebenen Firma, einer gegebenen Abteilung einer gegebenen Firma oder einer anderen interessierenden Geschäftsorganisation) empfangen. Bei einem Betriebsblock 402 erzeugt der Verwendungsprofilgenerator 416 ein Verwendungsprofil für die Mehrzahl von Computersystemen zumindest teilweise basierend auf den empfangenen protokollierten Daten. Somit legt ein derartiges Verwendungsprofil für die Mehrzahl von Computersystemen die Hardwareverwendung des Kunden detailliert dar, die durch den Hersteller bei einem Entwerfen eines optimalen Computersystems für den Kunden, einer Fehlersuche von Problemen, die durch die Computersysteme des Kunden angetroffen werden, Empfehlen eines geeigneten Computersystems für den Kunden etc. vorteilhaft verwendet werden kann.
  • 6 zeigt ein detaillierteres Betriebsflussdiagramm für ein beispielhaftes Ausführungsbeispiel zum Empfangen protokollierter Hardwareverwendungsdaten und Erzeugen eines Verwendungsprofils. Bei einem Betriebsblock 601 werden eingesammelte Daten aus dem Flash-ROM (z. B. dem Flash-ROM 123 des Systems 100) eines überwachten Computersystems durch den Verwendungsprofilgenerator 416 wiedererlangt (der beispielsweise ein WINDOWS® Anwendungsprogramm sein kann). Dabei liest der Verwendungsprofilgenerator 416 DMI/SMBIOS-OEM-Aufzeichnungen (Datentyp 90H), was ein Datenfeld in der DMI-Software-Spezifikation ist. Bei einem Betriebsblock 602 werden die eingesammelten Daten zu einer Datei geschrieben. Bei einem Betriebsblock 603 wird die eingesammelte Datendatei zu einer Datenbank (z. B. über das Netzwerk 412, wie beispielsweise das Internet) für eine statistische Analyse heruntergeladen. Bei einem Betriebsblock 604 können die eingesammelten Daten für eine Verwendung bei derartigen Aufgaben analysiert werden wie: 1) einer Fehlerratenreduzierung, 2) einer Garantiekostenreduzierung, 3) einer Rückkopplung zu Entwicklungsteams hinsichtlich einer Zuverlässigkeit und zukünftigen Entwürfen und/oder 4) Fehlerbeseitigungsbemühungen.
  • 7 zeigt ein beispielhaftes Betriebsflussdiagramm zum Protokollieren einer Hardwareverwendung und Erzeugen eines Verwendungsprofils gemäß einem Ausführungsbeispiel. Bei einem Betriebsblock 701 werden Daten hinsichtlich einer Verwendung zumindest einer Hardwarekomponente zumindest eines überwachten Computersystems (z. B. Computersystem 100 von 1) über ein BIOS des zumindest einen überwachten Computersystems gesammelt. Bei einem Betriebsblock 702 werden die gesammelten Daten zu einer nichtflüchtigen Datenspeicherung des zumindest einen überwachten Computersystems protokolliert. Bei einem Betriebsblock 703 werden die protokollierten Daten von der nichtflüchtigen Speicherung zu einem zweiten Computersystem (z. B. dem Computersystem 400 von 4) empfangen und bei einem Betriebsblock 704 erzeugt das zweite Computersystem ein Verwendungsprofil für das zumindest eine überwachte Computersystem zumindest teilweise basierend auf den empfangenen protokollierten Daten.

Claims (45)

  1. System, das folgende Merkmale aufweist: eine Einrichtung zum Sammeln (101), über ein Basiseingabe-/Ausgabesystem (BIOS = basic input/output system) (123) zumindest eines Computersystems, von Daten über eine Verwendung zumindest einer Hardwarekomponente des zumindest einen Computersystems.
  2. System gemäß Anspruch 1, bei dem die Einrichtung zum Sammeln (101) Systemverwaltungsmodus-Befehle (SMM-Befehle; SMM = system management mode) zum Sammeln zumindest eines Abschnitts der Daten verwendet.
  3. System gemäß Anspruch 1 oder 2, bei dem die Einrichtung zum Sammeln (101) ein allgemeines digitales Eingang/Ausgang-Signal (GPIO-Signal; GPIO = General Purpose Digital Input/Output) zum Sammeln zumindest eines Abschnitts der Daten verwendet.
  4. System gemäß einem der Ansprüche 1 bis 3, bei dem die Einrichtung zum Sammeln (101) die Daten über zumindest eine Verwendung sammelt, die aus der Gruppe ausgewählt ist, die folgendes umfasst: eine Anzahl von Schließungen eines Deckels des zumindest einen Computersystems, eine Anzahl von Abschaltungen des zumindest einen Computersystems, eine Anzahl von Malen, die das zumindest eine Computersystem an eine Andockstation angedockt war, eine Anzahl von Malen, die ein externer Monitor, der mit dem zumindest einen Computersystem gekoppelt ist, eingeschaltet wurde, eine Anzahl von Malen, die eine externe Tastatur mit dem zumindest einen Computersystem gekoppelt war, eine Anzahl von Malen, die eine externe Maus mit dem zumindest einen Computersystem gekoppelt war, eine Anzahl von PCMCIA-Einbringungen (PCMCIA = Personal Com puter Memory Card International Association) zu dem zumindest einen Computersystem, eine Anzahl von PCMCIA-Entfernungen von dem zumindest einen Computersystem, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem ausgeschaltet wurde, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Wechselstromleistung (AC-Leistung; AC = alternating current) wirksam war, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einem Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Gleichstromleistung (DC-Leistung; DC = direct current) wirksam war, eine maximale Temperatur, die durch eine zentrale Verarbeitungseinheit (CPU = central processing unit) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die die CPU des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch ein Festplattenlaufwerk (HDD = hard-disk drive) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die das HDD des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch eine Batterie des zumindest einen Computersystems erreicht wurde, und eine Zeitdauer, die die Batterie des zumindest einen Computersystems bei der maximalen Temperatur verweilte.
  5. System gemäß einem der Ansprüche 1 bis 4, bei dem die Einrichtung zum Sammeln (101) Direkthardwareverwendungsdaten sammelt.
  6. System gemäß Anspruch 5, bei dem die Direkthardwareverwendungsdaten Daten über zumindest eine Hardwareverwendung aufweisen, die aus der Gruppe ausgewählt ist, die folgendes umfasst: eine Anzahl von Schließungen eines Deckels des zumindest einen Computersystems, eine Anzahl von Abschaltungen des zumindest einen Computersystems, eine Anzahl von Malen, die das zumindest eine Computersystem an eine Andockstation angedockt war, eine Anzahl von Malen, die ein externer Monitor, der mit dem zumindest einen Computersystem gekoppelt ist, eingeschaltet wurde, eine Anzahl von Malen, die eine externe Tastatur mit dem zumindest einen Computersystem gekoppelt war, eine Anzahl von Malen, die eine externe Maus mit dem zumindest einen Computersystem gekoppelt war, eine Anzahl von PCMCIA-Einbringungen (PCMCIA = Personal Computer Memory Card International Association) zu dem zumindest einen Computersystem, eine Anzahl von PCMCIA-Entfernungen von dem zumindest einen Computersystem, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem ausgeschaltet wurde, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Wechselstromleistung (AC-Leistung) wirksam war, und eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einem Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Gleichstromleistung (DC-Leistung) wirksam war.
  7. System gemäß einem der Ansprüche 1 bis 6, bei dem die Einrichtung zum Sammeln (101) Indirekthardwareverwendungsdaten sammelt.
  8. System gemäß Anspruch 7, bei dem die Indirekthardwareverwendungsdaten Daten über zumindest eine Hardwareverwendung aufweisen, die aus der Gruppe ausgewählt ist, die folgendes umfasst: eine maximale Temperatur, die durch eine zentrale Verarbeitungseinheit (CPU) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die die CPU des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch ein Festplattenlaufwerk (HDD) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die das HDD des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch eine Batterie des zumindest einen Computersystems erreicht wurde, und eine Zeitdauer, die die Batterie des zumindest einen Computersystems bei der maximalen Temperatur verweilte.
  9. System gemäß einem der Ansprüche 1 bis 8, das ferner folgendes Merkmal aufweist: eine Einrichtung zum Sammeln von Daten über eine Verwendung zumindest einer Hardwarekomponente des zumindest einen Computersystems über Betriebssystemaufrufe.
  10. System gemäß einem der Ansprüche 1 bis 9, das ferner folgendes Merkmal aufweist: eine Einrichtung zum zumindest temporären kommunikativen Koppeln mit dem zumindest einen Computersystem und Wiedererlangen der gesammelten Daten.
  11. System gemäß Anspruch 10, der ferner folgendes Merkmal aufweist: eine Einrichtung zum Erzeugen eines Verwendungsprofils für das zumindest eine Computersystem zumindest teilweise basierend auf den wiedererlangten gesammelten Daten.
  12. System gemäß einem der Ansprüche 1 bis 11, bei dem die Einrichtung zum Sammeln ferner folgendes Merkmal aufweist: eine Einrichtung zum Erzeugen eines Verwendungsprofils, wobei die Erzeugungseinrichtung die Verwendungsdaten der zumindest einen Hardwarekomponente empfängt und die empfangenen Daten verarbeitet, um ein Verwendungsprofil für das zumindest eine Computersystem zu erzeugen.
  13. System gemäß Anspruch 12, bei dem die Einrichtung zum Erzeugen eines Verwendungsprofils einen Durchschnitt der Hardwareverwendungsdaten einer Mehrzahl von Computersystemen berechnet.
  14. System gemäß einem der Ansprüche 1 bis 13, das ferner eine Einrichtung zum Erzeugen eines Verwendungsprofils für eine Mehrzahl von Computersystemen aufweist.
  15. System gemäß Anspruch 14, bei dem die Mehrzahl von Computersystemen alle Computersysteme eines speziellen Modells aufweisen.
  16. System gemäß Anspruch 14 oder 15, bei dem die Mehrzahl von Computersystemen alle Computer einer gegebenen Geschäftsorganisation aufweisen.
  17. Verfahren, das folgende Schritte aufweist: Sammeln (201), über ein Basiseingabe-/Ausgabesystem (BIOS = basic input/output system) zumindest eines Computersystems, von Daten über eine Verwendung zumindest einer Hardwarekomponente des zumindest einen Computersystems; und Protokollieren (202) der Hardwareverwendungsdaten zu einem nichtflüchtigen Speicher des zumindest einen Computersystems.
  18. Verfahren gemäß Anspruch 17, bei dem das Sammeln (201) folgenden Schritt aufweist: Verwenden von Systemverwaltungsmodus-Befehlen (SMM-Befehlen; SMM = system management mode), um die Daten zu sammeln.
  19. Verfahren gemäß Anspruch 17 oder 18, bei dem das Sammeln (201) folgenden Schritt aufweist: Verwenden eines allgemeinen digitalen Eingang/Ausgang-Signals (GPIO-Signal; GPIO = General Purpose Digital Input/Output), um die Daten zu sammeln.
  20. Verfahren gemäß einem der Ansprüche 19 bis 20, bei dem das Sammeln (201) folgenden Schritt aufweist: Sammeln von Direkthardwareverwendungsdaten.
  21. Verfahren gemäß Anspruch 20, bei dem das Sammeln von Direkthardwareverwendungsdaten ein Sammeln von zumindest einem aufweist, das aus der Gruppe ausgewählt ist, die folgendes umfasst: eine Anzahl von Schließungen eines Deckels des zumindest einen Computersystems, eine Anzahl von Abschaltungen des zumindest einen Computersystems, eine Anzahl von Malen, die das zumindest eine Computersystem an eine Andockstation angedockt war, eine Anzahl von Malen, die ein externer Monitor, der mit dem zumindest einen Computersystem gekoppelt ist, eingeschaltet wurde, eine Anzahl von Malen, die eine externe Tastatur mit dem zumindest einen Computersystem gekoppelt war, eine Anzahl von Malen, die eine externe Maus mit dem zumindest einen Computersystem gekoppelt war, eine An zahl von PCMCIA-Einbringungen (PCMCIA = Personal Computer Memory Card International Association) zu dem zumindest einen Computersystem, eine Anzahl von PCMCIA-Entfernungen von dem zumindest einen Computersystem, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem ausgeschaltet wurde, eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einen Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Wechselstromleistung (AC-Leistung; AC = alternating current) wirksam war, und eine Anzahl von Malen, die eine drahtlose Kommunikationsverbindung mit dem zumindest einem Computersystem verwendet wurde, während das zumindest eine Computersystem auf einer Gleichstromleistung (DC-Leistung; DC = direct current) wirksam war.
  22. Verfahren gemäß einem der Ansprüche 17 bis 21, bei dem das Sammeln (201) folgenden Schritt aufweist: Sammeln von Indirekthardwareverwendungsdaten.
  23. Verfahren gemäß Anspruch 22, bei dem das Sammeln von Indirekthardwareverwendungsdaten ein Sammeln von zumindest einem aufweist, das aus der Gruppe ausgewählt ist, die folgendes umfasst: eine maximale Temperatur, die durch eine zentrale Verarbeitungseinheit (CPU = central processing unit) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die die CPU des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch ein Festplattenlaufwerk (HDD = hard-disk drive) des zumindest einen Computersystems erreicht wurde, eine Zeitdauer, die das HDD des zumindest einen Computersystems bei der maximalen Temperatur verweilte, eine maximale Temperatur, die durch eine Batterie des zumindest einen Computersystems erreicht wurde, und eine Zeitdauer, die die Bat terie des zumindest einen Computersystems bei der maximalen Temperatur verweilte.
  24. Verfahren gemäß einem der Ansprüche 17 bis 23, das ferner folgenden Schritt aufweist:Sammeln von Daten über eine Verwendung zumindest einer Hardwarekomponente des zumindest einen Computersystems über Betriebssystemaufrufe.
  25. Verfahren gemäß einem der Ansprüche 17 bis 24, das ferner folgende Schritte aufweist: Empfangen der gesammelten Daten von dem zumindest einem Computersystem; und Erzeugen eines Verwendungsprofils für das zumindest eine Computersystem zumindest teilweise basierend auf den empfangenen gesammelten Daten.
  26. Verfahren gemäß Anspruch 25, bei dem das zumindest eine Computersystem eine Mehrzahl von Computersystemen aufweist und bei dem das Erzeugen folgenden Schritt aufweist: Erzeugen eines Verwendungsprofils für die Mehrzahl von Computersystemen.
  27. Verfahren gemäß Anspruch 26, bei dem das Erzeugen eines Verwendungsprofils folgenden Schritt aufweist: Berechnen eines Durchschnitts der Hardwareverwendungsdaten der Mehrzahl von Computersystemen.
  28. System, das folgende Merkmale aufweist: zumindest einen Prozessor (102); ein Basiseingabe-/Ausgabesystem (BIOS = Basic Input/Output) (123); eine nichtflüchtige Datenspeicherung; und einen Hardwareverwendungsprotokolliermechanismus (101), der in dem BIOS (123) implementiert ist und betreibbar ist, um Daten über benutzerausgelöste Hardwareereignisse des Systems zu der nichtflüchtigen Datenspeicherung zu protokollieren.
  29. System gemäß Anspruch 28, bei dem der Hardwareverwendungsprotokolliermechanismus (101) Systemverwaltungsmodus-Befehle (SMM-Befehle; SMM = system management mode) verwendet, um zumindest einen Abschnitt der Daten zu protokollieren.
  30. System gemäß Anspruch 28 oder 29, bei dem der Hardwareverwendungsprotokolliermechanismus (101) zumindest ein allgemeines digitales Eingang/Ausgang-Signal (GPIO-Signal; GPIO = General Purpose Digital Input/Output) verwendet, um zumindest einen Abschnitt der Daten zu protokollieren.
  31. System gemäß einem der Ansprüche 28 bis 30, bei dem der Hardwareverwendungsprotokolliermechanismus (101) Direkthardwareverwendungsdaten protokolliert.
  32. System gemäß Anspruch 31, bei dem der Hardwareverwendungsprotokolliermechanismus (101) ferner Indirekthardwareverwendungsdaten protokolliert.
  33. System gemäß einem der Ansprüche 28 bis 32, das ferner folgendes Merkmal aufweist: eine Kommunikationsschnittstelle zum zumindest temporären kommunikativen Koppeln mit einer prozessorbasierten Vorrichtung, um die protokollierten Daten zu der prozessorbasierten Vorrichtung zu kommunizieren.
  34. Computerausführbarer Software-Code, der zu einem computerlesbaren Medium gespeichert ist und folgende Merkmale aufweist: einen Code zum Empfangen (401) protokollierter Daten hinsichtlich einer Verwendung von Hardwarekomponenten einer Mehrzahl von Computersystemen; und einen Code zum Erzeugen (402) eines Verwendungsprofils für die Mehrzahl von Computersystemen zumindest teilweise basierend auf den empfangenen protokollierten Daten.
  35. Computerausführbarer Software-Code gemäß Anspruch 34, bei dem die protokollierten Daten Direkthardwareverwendungsdaten aufweisen.
  36. Computerausführbarer Software-Code gemäß Anspruch 34 oder 35, bei dem die protokollierten Daten Indirekthardwareverwendungsdaten aufweisen.
  37. Computerausführbarer Software-Code gemäß einem der Ansprüche 34 bis 36, bei dem die protokollierten Daten Daten aufweisen, die durch jedes der Mehrzahl von Computersystemen für die jeweilige Hardwareverwendung derselben protokolliert werden, und wobei der Code zum Erzeugen (402) eines Verwendungsprofils für die Mehrzahl von Computersystemen folgendes Merkmal aufweist: einen Code zum Verarbeiten der empfangenen Daten, um ein Verwendungsprofil für die Mehrzahl von Computersystemen zu erzeugen.
  38. Computerausführbarer Software-Code gemäß Anspruch 37, bei dem der Code zum Verarbeiten folgendes Merkmal aufweist: einen Code zum Berechnen eines Durchschnitts der Hardwareverwendungsdaten der Mehrzahl von Computersystemen.
  39. Verfahren, das folgende Schritte aufweist: Einsammeln, von jedem einer Mehrzahl von Computersystemen, protokollierter Daten hinsichtlich einer Verwendung von Hardwarekomponenten der Computersysteme; und Erzeugen eines Verwendungsprofils für die Mehrzahl von Computersystemen zumindest teilweise basierend auf den eingesammelten protokollierten Daten.
  40. Verfahren gemäß Anspruch 39, das ferner folgenden Schritt aufweist: Protokollieren der protokollierten Daten hinsichtlich der Verwendung von Hardwarekomponenten jedes jeweiligen Computersystems über ein BIOS jedes der Mehrzahl von Computersystemen.
  41. Verfahren gemäß Anspruch 40, bei dem das Protokollieren folgenden Schritt aufweist: Verwenden von Systemverwaltungsmodus-Befehlen (SMM-Befehlen; SMM = system management mode), um die Daten zu protokollieren.
  42. Verfahren gemäß einem der Ansprüche 39 bis 41, bei dem die protokollierten Daten Direkthardwareverwendungsdaten aufweisen.
  43. Verfahren gemäß einem der Ansprüche 39 bis 42, bei dem die protokollierten Daten Indirekthardwareverwendungsdaten aufweisen.
  44. Verfahren gemäß einem der Ansprüche 39 bis 43, bei dem die Mehrzahl von Computersystemen alle Computersysteme eines speziellen Modells aufweisen.
  45. Verfahren gemäß einem der Ansprüche 39 bis 44, bei dem die Mehrzahl von Computersystemen alle Computer einer gegebenen Geschäftsorganisation aufweisen.
DE102005042538A 2004-10-06 2005-09-07 System und Verfahren zum Protokollieren von Hardwareverwendungsdaten und Verwendungen für derartige protokollierte Hardwareverwendungsdaten Withdrawn DE102005042538A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/959,733 US7451064B2 (en) 2004-10-06 2004-10-06 System and method for logging hardware usage data, and uses for such logged hardware usage data
US10/959,733 2004-10-06

Publications (1)

Publication Number Publication Date
DE102005042538A1 true DE102005042538A1 (de) 2006-04-20

Family

ID=35335231

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005042538A Withdrawn DE102005042538A1 (de) 2004-10-06 2005-09-07 System und Verfahren zum Protokollieren von Hardwareverwendungsdaten und Verwendungen für derartige protokollierte Hardwareverwendungsdaten

Country Status (3)

Country Link
US (1) US7451064B2 (de)
DE (1) DE102005042538A1 (de)
GB (1) GB2419001A (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230196A1 (en) * 2005-03-30 2006-10-12 Inventec Corporation Monitoring system and method using system management interrupt
US7689616B2 (en) * 2005-04-15 2010-03-30 Microsoft Corporation Techniques for specifying and collecting data aggregations
US7979520B2 (en) * 2005-04-15 2011-07-12 Microsoft Corporation Prescriptive architecture recommendations
US20070011676A1 (en) * 2005-06-30 2007-01-11 Ravi Sahita Architecture and system for secure host management
CN100592262C (zh) * 2005-08-05 2010-02-24 鸿富锦精密工业(深圳)有限公司 保留桌面管理界面动态信息的系统及方法
US7433985B2 (en) * 2005-12-28 2008-10-07 Intel Corporation Conditional and vectored system management interrupts
US20070219747A1 (en) * 2006-03-07 2007-09-20 Hughes James E HDD throttle polling based on blade temperature
JP2008077794A (ja) * 2006-09-22 2008-04-03 Toshiba Corp 情報処理装置およびディスクドライブ制御方法
US20080316063A1 (en) * 2007-06-21 2008-12-25 Farzin Yassini Integrated Keyboard With Personal Computer
US8813056B2 (en) * 2007-08-15 2014-08-19 Nxp B.V. Profile based optimization of processor operating points
US8489668B2 (en) * 2007-11-13 2013-07-16 Intuit Inc. Open platform for managing an agent network
JP5136075B2 (ja) * 2008-01-21 2013-02-06 富士通モバイルコミュニケーションズ株式会社 情報処理装置
JP2009211510A (ja) * 2008-03-05 2009-09-17 Hitachi Ltd ディスクアレイ装置
US8873377B2 (en) 2009-11-18 2014-10-28 Juniper Networks, Inc. Method and apparatus for hitless failover in networking systems using single database
US8412857B2 (en) 2010-11-22 2013-04-02 Motorola Mobility Llc Authenticating, tracking, and using a peripheral
US8667303B2 (en) 2010-11-22 2014-03-04 Motorola Mobility Llc Peripheral authentication
KR101749301B1 (ko) * 2010-12-22 2017-06-21 삼성전자주식회사 검사장치 관리시스템 및 그 관리방법
CN103384879A (zh) * 2011-02-03 2013-11-06 泰格斯集团国际公司 便携式电子装置插接站
US9224359B2 (en) 2011-09-26 2015-12-29 Google Technology Holdings LLC In-band peripheral authentication
US9006000B2 (en) * 2012-05-03 2015-04-14 Sandisk Technologies Inc. Tj temperature calibration, measurement and control of semiconductor devices
US8904243B2 (en) * 2012-06-29 2014-12-02 Sap Se Event management systems and methods
US9389942B2 (en) 2013-10-18 2016-07-12 Intel Corporation Determine when an error log was created
CA2910341C (en) 2014-10-28 2022-07-26 Targus Group International, Inc. Power and data adapter, and related systems and methods
US9900420B2 (en) 2014-12-15 2018-02-20 Targus International Llc Power and data adapter
CN104899109B (zh) * 2015-05-06 2018-03-06 深圳市同泰怡信息技术有限公司 一种操作系统下获取cpu温度的方法
TWI604304B (zh) * 2016-03-28 2017-11-01 緯創資通股份有限公司 電子裝置及其檢測方法
US10705566B2 (en) 2016-09-09 2020-07-07 Targus International Llc Systems, methods and devices for native and virtualized video in a hybrid docking station
US11231448B2 (en) 2017-07-20 2022-01-25 Targus International Llc Systems, methods and devices for remote power management and discovery
US10663498B2 (en) 2017-07-20 2020-05-26 Targus International Llc Systems, methods and devices for remote power management and discovery
US11740657B2 (en) 2018-12-19 2023-08-29 Targus International Llc Display and docking apparatus for a portable electronic device
US11017334B2 (en) 2019-01-04 2021-05-25 Targus International Llc Workspace management system utilizing smart docking station for monitoring power consumption, occupancy, and usage displayed via heat maps
US11360534B2 (en) 2019-01-04 2022-06-14 Targus Internatonal Llc Smart workspace management system
TWI783163B (zh) * 2019-08-19 2022-11-11 緯創資通股份有限公司 電源調控裝置、電腦系統及其相關電源調控方法
CA3148974A1 (en) 2019-08-22 2021-02-25 Targus International Llc Systems and methods for participant-controlled video conferencing
CA3153964A1 (en) 2019-09-09 2021-03-18 Targus International Llc Systems and methods for docking stations removably attachable to display apparatuses and docking stand assemblies
CN113760585A (zh) * 2020-06-02 2021-12-07 佛山市顺德区顺达电脑厂有限公司 储存基本输入输出系统之除错讯息的方法
US11288216B1 (en) * 2020-09-30 2022-03-29 Dell Products L.P. Priority reversing data traffic for latency sensitive peripherals
CN112732544B (zh) * 2021-01-14 2022-08-02 东莞理工学院 一种计算机硬件适配智能分析系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155680A (en) 1986-10-24 1992-10-13 Signal Security Technologies Billing system for computing software
US5553235A (en) * 1992-10-23 1996-09-03 International Business Machines Corporation System and method for maintaining performance data in a data processing system
US5614559A (en) 1993-11-23 1997-03-25 Procept Inc. Compound for inhibiting HIV infectivity
US5699505A (en) 1994-08-08 1997-12-16 Unisys Corporation Method and system for automatically collecting diagnostic information from a computer system
US6292181B1 (en) * 1994-09-02 2001-09-18 Nec Corporation Structure and method for controlling a host computer using a remote hand-held interface device
US5668944A (en) 1994-09-06 1997-09-16 International Business Machines Corporation Method and system for providing performance diagnosis of a computer system
US5639163A (en) 1994-11-14 1997-06-17 International Business Machines Corporation On-chip temperature sensing system
US5491791A (en) 1995-01-13 1996-02-13 International Business Machines Corporation System and method for remote workstation monitoring within a distributed computing environment
US6185514B1 (en) 1995-04-17 2001-02-06 Ricos International, Inc. Time and work tracker with hardware abstraction layer
US5675510A (en) * 1995-06-07 1997-10-07 Pc Meter L.P. Computer use meter and analyzer
US5758071A (en) 1996-07-12 1998-05-26 Electronic Data Systems Corporation Method and system for tracking the configuration of a computer coupled to a computer network
US6000040A (en) * 1996-10-29 1999-12-07 Compaq Computer Corporation Method and apparatus for diagnosing fault states in a computer system
US6085244A (en) * 1997-03-17 2000-07-04 Sun Microsystems, Inc. Dynamic test update in a remote computer monitoring system
US5961215A (en) 1997-09-26 1999-10-05 Advanced Micro Devices, Inc. Temperature sensor integral with microprocessor and methods of using same
US6170064B1 (en) 1997-10-13 2001-01-02 Samsung Electronics Co., Ltd. Computer and a method for displaying the time of using system
US6651190B1 (en) * 2000-03-14 2003-11-18 A. Worley Independent remote computer maintenance device
US7028301B2 (en) * 2000-12-08 2006-04-11 Bmc Software, Inc. System and method for automatic workload characterization
US6948066B2 (en) 2001-01-17 2005-09-20 International Business Machines Corporation Technique for establishing provable chain of evidence
US6961716B2 (en) * 2001-07-31 2005-11-01 Hewlett-Packard Development Company, L.P. Network usage analysis system and method for determining excess usage
US7042852B2 (en) * 2002-05-20 2006-05-09 Airdefense, Inc. System and method for wireless LAN dynamic channel change with honeypot trap
JP4782353B2 (ja) * 2002-06-28 2011-09-28 キヤノン電子株式会社 情報管理装置、情報処理装置及びそれらの制御方法、情報管理システム、プログラム
US8010423B2 (en) 2002-08-29 2011-08-30 International Business Machines Corporation Anticipatory mobile system service brokering and resource planning from multiple providers
US6847872B2 (en) 2002-11-07 2005-01-25 International Business Machines Corporation Supplemental diagnostic and services resource planning for mobile systems

Also Published As

Publication number Publication date
GB2419001A (en) 2006-04-12
US20060075286A1 (en) 2006-04-06
GB0519297D0 (en) 2005-11-02
US7451064B2 (en) 2008-11-11

Similar Documents

Publication Publication Date Title
DE102005042538A1 (de) System und Verfahren zum Protokollieren von Hardwareverwendungsdaten und Verwendungen für derartige protokollierte Hardwareverwendungsdaten
DE102016200514B4 (de) Verfahren und Vorrichtungen für gesteuerte Wiederherstellung von Fehlerinformationen zwischen unabhängig voneinander betreibbaren Prozessoren
DE4309532C2 (de) Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE69332942T2 (de) Tragbares Rechnersystem
DE112015002522B4 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112005002360T5 (de) Bereitstellung einer Unterstützung für einen Zeitgeber, der einem Virtual-Machine-Monitor zugeordnet ist
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012100738A1 (de) Verfahren zur Konfiguration eines BIOS in einem Computersystem sowie Computerprogrammprodukt
DE112010006087T5 (de) Architektur zum Testen, zur Validierung und zur Fehlerbereinigung
DE112008004006T5 (de) Verfahren und System zum Bereitstellen von Hybrid-Herunterfahr- und schnellen Hochfahr-Prozessen
DE10141626A1 (de) Dynamische Angleichung von Leistungsvermögen und Strombedarf
DE102014003690A1 (de) Prozessoren, Verfahren und Systeme zur Befehlsemulation
DE112010003049T5 (de) Dateisystem für duale Betriebssysteme
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE102007033346A1 (de) Verfahren und Vorrichtung zur Administration von Computern
DE102009045953A1 (de) System und Verfahren zum Nutzen von Ressourcen in einem Informationsverarbeitungssystem
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
CN109032822A (zh) 一种死机信息的保存方法和装置
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R002 Refusal decision in examination/registration proceedings
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130403