DE102012221253B4 - Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür - Google Patents

Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür Download PDF

Info

Publication number
DE102012221253B4
DE102012221253B4 DE102012221253.1A DE102012221253A DE102012221253B4 DE 102012221253 B4 DE102012221253 B4 DE 102012221253B4 DE 102012221253 A DE102012221253 A DE 102012221253A DE 102012221253 B4 DE102012221253 B4 DE 102012221253B4
Authority
DE
Germany
Prior art keywords
count
counter
event
value
mantissa
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.)
Active
Application number
DE102012221253.1A
Other languages
English (en)
Other versions
DE102012221253A1 (de
Inventor
Giles R. Frazier
Venkat R. Indukuru
Alexander E. Mericas
John F. Spannaus
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012221253A1 publication Critical patent/DE102012221253A1/de
Application granted granted Critical
Publication of DE102012221253B4 publication Critical patent/DE102012221253B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3082Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by aggregating or compressing the monitored data
    • 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
    • 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/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, aufweisend:Empfangen eines Signals, das anzeigt, wenn ein bestimmtes Ereignis der elektronischen Einheit auftritt;Erhöhen eines Ereigniszählers bei jedem Mal, wenn eine variable Anzahl der betroffenen Ereignisse aufgetreten ist, wobei das Erhöhen eine Zählermantisse des Ereigniszählers erhöht; undautomatisches Erhöhen der variablen Anzahl, wenn sich ein Gesamtzählwert der betreffenden Ereignisse erhöht, wobei die variable Anzahl jedes Mal geometrisch erhöht wird, wenn die Zählwertmantisse als Folge dieser Erhöhung überläuft,wobei ein Zählwertexponent des Ereigniszählers jedes Mal erhöht wird, wenn die Zählwertmantisse überläuft; unddie variable Anzahl ein Vorteilungswert ist, der gleich einer Zählerbasis ist, die zu einer Potenz mit dem aktuellen Wert des Zählwertexponenten erhoben wurde,ferner aufweisend das programmierbare Setzen der Zählerbasis undferner aufweisend das Setzen der Zählwertmantisse auf einen Übergangswert jedes Mal, wenn die Zählwertmantisse als Folge der Erhöhung überläuft, wobei der Übergangswert gleich einem Überlaufwert der Zählwertmantisse, dividiert durch die Zählerbasis, ist.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Computersysteme und insbesondere ein Verfahren zum Zählen des Auftretens von Ereignissen in einem Computersystem, um die Leistung zu überwachen.
  • Beschreibung des Stands der Technik
  • Als Folge der immer komplizierter werdenden elektronischen Systeme gibt es einen zunehmenden Bedarf nach Überwachung der Leistung der Systeme, um den optimalen Betrieb zu gewährleisten und Fehler oder entwurfsbedingte Probleme zu erkennen. Dieser Gesichtspunkt ist bei integrierten Schaltungen, wie beispielsweise Prozessoren von besonderer Bedeutung, die bei Computersystemen verwendet werden. In 1 ist ein beispielhafter Prozessor 10 veranschaulicht, der verschiedene Ausführungseinheiten, Register, Puffer, Speicher und andere Funktionseinheiten enthält, die alle zusammen durch integrierte Schaltkreistechnik gebildet werden. Der Prozessor 10 ist über eine Busschnittstelleneinheit (Bus Interface Unit, BIU) 14 innerhalb des Prozessors 10 mit einem System- oder Strukturbus 12 verbunden, der die Übertragung von Daten zwischen dem Prozessor 10 und anderen mit dem Systembus 12 verbundenen Einheiten steuert, zum Beispiel mit einem Hauptspeicher. Die BIU 14 ist mit einem Anweisungscache mit Speicherverwaltungseinheit (Memory Management Unit, MMU) 16 und einem Datencache mit MMU 18 verbunden. Über schnelle Cachespeicher, wie zum Beispiel jene innerhalb des Anweisungscache mit MMU 16 und des Datencache mit MMU18 kann der Prozessor 40 relativ kurze Zugriffszeiten auf eine Teilmenge von Daten oder Anweisungen erreichen, die zuvor aus dem Hauptspeicher in die Cachespeicher übertragen wurden, und dadurch die Arbeitsgeschwindigkeit des Host-Datenverarbeitungssystems verbessern. Der Anweisungscache mit MMU 16 ist ferner mit einer sequenziellen Abrufeinheit 20 verbunden, die bei jedem Zyklus Anweisungen aus dem Anweisungscache mit MMU 16 zur Ausführung abruft. Die sequenzielle Abrufeinheit 20 überträgt Verzweigungsanweisungen, die aus dem Anweisungscache mit MMU 16 abgerufen wurden, zu einer Verzweigungsvorhersageeinheit 22, um die Abrufadresse der nächsten Anweisung zu berechnen, speichert aber die sequenziellen Anweisungen zeitweilig innerhalb einer Anweisungswarteschlange 24 zur Ausführung durch eine andere Ausführungsschaltung innerhalb des Prozessors 10. Die Ausführungsschaltung des Prozessors 10 weist mehrere Ausführungseinheiten zum Ausführen sequenzieller Anweisungen auf, zu denen eine oder mehrere Festkommaeinheiten (Fixed-Point Units, FXUs) 26, Lade- und Speichereinheiten (Load-Store Units, LSUs) 28, Gleitkommaeinheiten (Floating-Point Units, FPUs) 30 und Verzweigungsverarbeitungseinheiten (Branch Processing Units, BPUs) 32 gehören. Diese Ausführungseinheiten 26, 28, 30 und 32 führen bei jedem Prozessorzyklus eine oder mehrere Anweisungen einer bestimmten Art aus und nutzen hierzu Quelloperanden, die von angegebenen Mehrzweckregistern (General Purpose Registers. GPRs) 34 oder GPR-Umbenennungspuffern 36, oder von Gleitkommaregistern (Floating-Point Registers, FPRs) 38 oder von FPR-Umbenennungspuffern 40 empfangen wurden.
  • Heutige Prozessoren sind normalerweise mit Leistungsüberwachungszählern ausgestattet, die die Zeit, Zyklen oder andere Arten von Ereignissen zwischen einem ersten Ereignis und einem zweiten Ereignis bereitstellen. Wenn zum Beispiel die Latenzzeit gemessen werden soll, handelt es sich bei den gezählten Ereignissen normalerweise um Zyklen, und typische Start- und Stoppereignisse könnten der Anweisungsabruf und der Anweisungsabschluss, der Ladeabruf und der Ladeabschluss oder ein Cachespeicherfehler und das Neuladen des Cachespeichers sein. Wenn der Grund für eine große Latenzzeit beim Neuladen des Cache untersucht wird, könnten typische Start- und Stoppereignisse alternativ das Laden des Cachespeichers und das Neuladen des Cachespeichers sein, und bei den gezählten Ereignissen könnte es sich um Ladeversuche in der Struktur oder um eine bestimmte Aktion handeln, die zum Neuladen des Cachespeichers durchgeführt wird.
  • Außer dem Zählen von Ereignissen zwischen einem Start- und einem Stoppereignis ist es oft wünschenswert, festzustellen, ob die Anzahl gezählter Ereignisse einen vorgegebenen Schwellenwert überschreitet, oder zu messen, wie oft die Anzahl gezählter Ereignisse den Schwellenwert überschreitet. Zur Bereitstellung dieser zusätzlichen Funktionalität kann die Hardware ein Schwellenwertregister unterstützen, das den Wert erhält, mit dem die Gesamtzahl gezählter Ereignisse zu vergleichen ist.
  • Die DE 25 59 261 A1 offenbart einen elektronischen Zähler mit großem Zählbereich, bestehend aus einem mehrstelligen Vorteiler und einem nachgeschalteten mehrstelligen Hauptzähler mit Überlaufausgang, insbesondere für Impulszählung und Zeitmessung, gekennzeichnet durch Mittel zur Umschaltung des Vorteilers auf ein um eine Stelle höheres Teilverhältnis und zur Rückstellung des Hauptzählers auf den Zustand 100... beim Überlauf des Hauptzählers und zur Speicherung des jeweiligen Teilverhältnisses.
  • Die wissenschaftliche Veröffentlichung „New Design Techniques of Variable Prescaling Counters for Spaceborne Experiments" von S. Cantarano und G. V. Pallottino, erschienen im April 1970 in in IEEE Transactions on Nuclear Science, Vol. 17, Issue 2, S. 34 - 39 überprüft die Entwurfstechniken von Vorskalierungszählern für die automatische Kompression von Partikelmessdaten an Bord von Raumfahrzeugen und schlägt neue Kriterien vor, die durch Beispiele veranschaulicht werden. Die Standardtechnik zur Verwirklichung logarithmischer Zähler wird kritisiert und es werden alternative Verfahren vorgeschlagen, die sowohl die Wirkung des statistischen Fehlers bei der Zählung von Ereignissen aus Zufallsquellen als auch die effiziente Verwendung aller a priori verfügbaren Informationen über die erwarteten Zählungen berücksichtigen. Die resultierende Struktur besteht aus einem Vorskalierungszähler, wobei die Anzahl der eingefügten Stufen des Vorskalierers nicht mehr mit dem Inhalt des Exponentenabschnitts übereinstimmt, sondern eine beliebige Funktion dieser Zahl ist.
  • Die US 2005 / 0 165 569 A1 offenbart ein Gerät zur Pulsbreitenmessung, das die Pulsbreite eines zu messenden Signals auf Grundlage eines Zählwerts und eines Zähl-Taktgebersignals berechnet. In der Impulsbreiten-Messeinrichtung hat die Zählerschaltung eine Vielzahl von Bits, die in einen Exponenten und eine Mantisse aufgeteilt sind. Die Steuereinheit der Impulsbreiten-Messvorrichtung beinhaltet: eine Exponenten-Speichereinheit, die einen Exponenten-Einstellwert speichert, der die Anzahl der Bits des Exponenten der Zählerschaltung repräsentiert; und eine Decodiereinheit, die ein Zählwert-Einstellsignal zum Umschreiben des Zählwertes der Zählerschaltung auf der Grundlage des in der Exponenten-Speichereinheit gespeicherten Exponenten-Einstellwertes erzeugt, wenn der Zählwert in der Zählerschaltung überläuft, wobei die Decodiereinheit dann das Zählwert-Einstellsignal an die Zählerschaltung ausgibt.
  • Die US 2009 / 0 007 134 A1 offenbart eine Leistungsüberwachungseinheit (PMU) und ein Verfahren zur Überwachung der Leistung von Ereignissen, die in einem Multiprozessorsystem ausgeführt werden. Das Multiprozessorsystem umfasst eine Vielzahl von Prozessorvorrichtungseinheiten, wobei jede Prozessorvorrichtung Signale erzeugt, die das Auftreten von Ereignissen in der Prozessorvorrichtung darstellen, und eine einzige gemeinsam genutzte Zählerressource zur Leistungsüberwachung. Die Leistungsüberwachungseinheit wird von allen Prozessorkernen im Multiprozessorsystem gemeinsam genutzt. Die PMU umfasst: eine Vielzahl von Leistungszählern, jeder zum Zählen von Signalen, die das Auftreten von Ereignissen von einer oder mehreren der Vielzahl von Prozessoreinheiten in dem Multiprozessorsystem repräsentieren; und eine Vielzahl von Eingabevorrichtungen zum Empfangen der Ereignissignale von einer oder mehreren Prozessorvorrichtungen der Vielzahl von Prozessoreinheiten, wobei die Vielzahl von Eingabevorrichtungen programmierbar ist, um Ereignissignale zum Empfang durch einen oder mehrere der Vielzahl von Leistungszählern zum Zählen auszuwählen, wobei die PMU von mehreren Verarbeitungseinheiten oder innerhalb einer Gruppe von Prozessoren in dem Multiprozessorsystem gemeinsam genutzt wird. Die PMU ist ferner so programmiert, dass sie von Nichtprozessorgeräten ausgegebene Ereignissignale überwacht.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde, das Auftreten von Ereignissen zu zählen, die eine Überwachung der Leistung von immer komplizierter werdenden elektronischen Systemen, insbesondere von Computersystemen, ermöglichen. Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Die vorliegende Erfindung ist auf ein Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit gerichtet, indem ein Signal empfangen wird, das anzeigt, wenn ein bestimmtes Ereignis der elektronischen Einheit auftritt, indem ein Ereigniszähler jedes Mal erhöht wird, wenn eine variable Anzahl der betreffenden Ereignisse aufgetreten ist, und indem diese variable Anzahl automatisch erhöht wird, wenn sich der Gesamtzählwert der betreffenden Ereignisse erhöht. Erfindungsgemäß erhöht die Steuerlogik eine Zählwertmantisse des Ereigniszählers, und die variable Anzahl erhöht sich jedes Mal geometrisch, wenn die Zählwertmantisse überläuft. Der Ereigniszähler kann auch einen Zählwertexponenten enthalten, der jedes Mal erhöht wird, wenn die Zählwertmantisse überläuft, und die variable Anzahl ist ein vorgeteilter Wert, der gleich einer Zählwertbasis ist, die zu einer Potenz mit dem aktuellen Wert des Zählwertexponenten erhoben wurde. Beispielsweise könnte der Ereigniszähler einen 3-Bit-Exponenten, eine 7-Bit-Mantisse und eine Zählerbasis von 4 haben. Die Zählerbasis kann programmtechnisch über eine Software-Leistungsüberwachung festgelegt werden. Die Steuerlogik kann ferner die Zählwertmantisse jedes Mal auf einen Übergangswert setzen, wenn die Zählwertmantisse überläuft, wobei der Übergangswert gleich einem Überlaufwert der Zählwertmantisse, dividiert durch die Zählerbasis, ist. Die Software-Leistungsüberwachung kann das betreffende zu zählende Ereignis, ein Startereignis, das den Zähler zurückgesetzt, und ein Endeereignis auswählen, das die Zählung stoppt. Die Software-Leistungsüberwachung kann darüber hinaus einen Schwellenwert festlegen und überwachen, wann der Schwellenwert durch den aktuellen Wert des Ereigniszählers überschritten wird.
  • Der vorstehende Text sowie weitere Zielsetzungen, Merkmale und Vorteile der vorliegenden Erfindung werden in der folgenden eingehenden Beschreibung deutlich.
  • Figurenliste
  • Die vorliegende Erfindung wird leichter verständlich, und die zahlreichen Aufgaben, Merkmale und Vorteile der Erfindung werden Fachleuten durch Bezugnahmen auf die beigefügten Zeichnungen deutlich.
    • 1 ist ein Blockschaltbild eines herkömmlichen Mikroprozessors für ein Computersystem, bei dem verschiedene Ereignisse auftreten, die durch eine Leistungsüberwachung gezählt werden sollen;
    • 2 ist ein Blockschaltbild eines Computersystems, das so programmiert ist, dass es die Leistungsüberwachung einschließlich der Steuerung von Hardware-Ereigniszählern gemäß einer Realisierungsform der vorliegenden Erfindung durchführt;
    • 3 ist ein Übersichtsschema einer Ausführungsform eines Gleitkomma-Hardware-Ereigniszählers mit automatischer Vorteilung, der gemäß der vorliegenden Erfindung aufgebaut ist;
    • 4 ist ein Ablaufplan, der den logischen Ablauf bei der softwaretechnischen Steuerung des Zählers aus 3 gemäß einer Realisierungsform der vorliegenden Erfindung veranschaulicht; und
    • 5 ist ein Ablaufplan, der den logischen Ablauf beim laufenden Zählprozess veranschaulicht, der durch den Hardware-Ereigniszähler aus 3 gemäß einer Realisierungsform der vorliegenden Erfindung durchgeführt wird.
  • Die Verwendung derselben Bezugssymbole in unterschiedlichen Zeichnungen weist auf ähnliche oder identische Elemente hin.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM(EN)
  • Wegen der Komplexität heutiger Prozessoren gibt es eine große Zahl unterschiedlicher Arten von Ereignissen, die gezählt werden können, sowie eine große Anzahl unterschiedlicher möglicher Start- und Stoppereignisse, die angegeben werden müssen. Daher kann die typische Anzahl gezählter Ereignisse zwischen dem Start- und Stoppereignis bei einem komplexen Computersystem enorm stark variieren. Zum Beispiel können manche Paare von Start- und Stoppereignissen nur durch wenige gezählte Ereignisse voneinander getrennt sein, während andere Paare von Ereignissen durch eine Million oder mehr gezählte Ereignisse voneinander getrennt sein können. Wegen dieser Schwankungen des Zählwertes müssen die Ereigniszählerregister und alle Schwellenwertregister eine große Anzahl von Bits enthalten, wodurch erhebliche Hardwarekosten und ein zusätzlicher Stromverbrauch entstehen. Außerdem verlängert dieser Aufbau die Zeit, die ein übergeordnetes Programm benötigt, um Zählerkontext zu speichern und wiederherzustellen, wenn ein auf dem Computersystem ausgeführtes Softwareprogramm in die Verarbeitung ein- oder aus dieser ausgegliedert wird. Diese Probleme werden weiter verschärft, wenn durch die Hardware mehrere Zähler bereitgestellt werden, wie dies oft bei modernen Prozessoren der Fall ist.
  • Um das Ausmaß dieses Problems zu verringern, wird bei manchen Realisierungsformen von Zählern die Anzahl der unterstützten Registerbits verkleinert und der Zähler durch die Software vorgeteilt, indem der Zähler so konfiguriert wird, dass er alle n gezählten Ereignisse zählt und nicht jedes einzelne gezählte Ereignis. Hierzu ist jedoch erforderlich, dass die Software zuerst einen entsprechenden Vorteilungswert n ermittelt. Um diesen Wert zu ermitteln, muss oftmals n auf einen kleinen Wert gesetzt werden, ein Test durchgeführt werden, um festzustellen, ob der Zähler überläuft, und anschließend der Test mit ansteigenden Werten von n so oft wie nötig wiederholt werden, bis der Zähler nicht überläuft und der korrekte Teilungsfaktor herausgefunden wurde. Dieser Prozess ist zeitraubend, und die dafür benötigte Zeit hat Einfluss darauf, wie die mehreren Gruppen von Start- und Stoppereignissen zu analysieren sind, da sie durch eine unbekannte Anzahl von gezählten Ereignissen voneinander getrennt sind.
  • Es wäre daher wünschenswert, ein verbessertes Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit zu entwickeln, das eine verringerte Zahl von Hardwarezählerbits nutzen und dennoch bei möglichen Zählwerten einen großen Bereich bereitstellen könnte. Es wäre ferner vorteilhaft, wenn das Verfahren die Notwendigkeit beseitigen könnte, dass die Software einen Vorteilungswert ermitteln muss. Die vorliegende Erfindung erreicht diese Zielsetzungen durch automatisches Vorteilen der Zählrate, um eine Anpassung an die Anzahl beobachteter Ereignisse vorzunehmen. Obwohl der Zähler bei großen Zählwerten nicht zu 100 % genau ist, kann er einen sehr hohen und konstanten Genauigkeitsprozentsatz aufrechterhalten, indem er den Vorteilungswert jedes Mal geometrisch erhöht, wenn der Gesamtzählwert einen bestimmten Wert erreicht.
  • Bei der im Folgenden beschriebenen beispielhaften Ausführungsform wird ein numerisches Gleitkommaformat des Zählers verwendet, sodass die Umwandlung und Rückumwandlung des Gleitkommawertes in einen tatsächlichen Zählwert für die Software einfacher wird. Das Format des Zählers ist eine Gleitkommazahl mit der Basis B, einem n-Bit-Exponenten und einer m-Bit-Mantisse. Die Anzahl erforderlicher Bits beträgt bei diesem Zähler daher n+m, und die Anzahl unterstützter Zählung beträgt 2m × B2^n - 1. Zum Beispiel kann ein 10-Bit-Gleitkommazähler mit der Basis 4 bei m=7 und n=3 27 × 47 Zählwerte (über 2 Mio.) unterstützen, während ein binärer 10-Bit-Zähler lediglich 1024 Zählungen unterstützen kann. Zur Funktion des Zählers der vorliegenden Erfindung gehört, dass der Vorteilungswert jedes Mal um einen Faktor der Gleitkommabasis erhöht wird, wenn die Mantisse überläuft. Bei diesem Beispiel wird jedes Mal, wenn die Mantisse überläuft (bei einem Binärzählwert von 127), der Vorteilungswert um einen Faktor von 4 erhöht. Diese Realisierungsform führt zu einer maximalen Ungenauigkeit des Zählwertes von 4/128 (3,1 %), da die Mantisse nach dem Zählwert 128 nicht erhöht wird, bis der Zählwert 128+4=132 beträgt, und dieser Genauigkeitswert bleibt bei Faktoren des Vorteilungswertes konstant. Falls eine höhere Genauigkeit benötigt wird, kann eine größere Anzahl von Mantissenbits oder eine kleinere Gleitkommabasis gewählt werden, aber in den meisten Anwendungsfällen einschließlich der typischen Leistungsüberwachung ist eine Basis von 4 mit einer Genauigkeit von 3,1 % wahrscheinlich mehr als ausreichend. In vielen Situationen besteht keine Notwendigkeit, über den Bereich hinaus zu zählen, in dem der Zähler um 1 erhöht wird (d.h. der binäre Mantissenwert bzw. 128 in diesem Beispiel), und innerhalb dieses Bereiches besteht keine Ungenauigkeit des Zählwertes.
  • Unter Bezugnahme auf die Figuren und insbesondere jetzt unter Bezugnahme auf 2 ist dort eine Ausführungsform 50 eines Computersystems abgebildet, bei dem eine Software-Leistungsüberwachung gemäß der vorliegenden Erfindung realisiert sein kann, um verschiedene Ereignisse zu zählen, die innerhalb der integrierten Schaltkreiseinheiten des Computersystems auftreten. Bei dem Computersystem 50 handelt es sich um ein symmetrisches Multiprozessorsystem (SMP) mit einer Vielzahl von Prozessoren 52a, 52b, die mit einem Systembus 54 verbunden sind. Der Systembus 54 ist ferner mit einer Kombination aus Speichersteuereinheit und Host Bridge (Memory Controller/Host Bridge, MC/HB) 56 verbunden, die eine Schnittstelle zum Systemspeicher 58 bereitstellt. Bei dem Systemspeicher 58 kann es sich um eine lokale Speichereinheit oder alternativ um eine Vielzahl verteilter Speichereinheiten, vorzugsweise um dynamischen Direktzugriffsspeicher (Dynamic Random Access Memory (DRAM) handeln. In der Speicherhierarchie können weitere, nicht abgebildete Strukturen vorhanden sein, beispielsweise Onboard-Cachespeicher (L1) und Cachespeicher der zweiten (L2) oder dritten Ebene (L3).
  • Die MC/HB 56 hat außerdem eine Schnittstelle zu den PCIe-Verbindungen (PCle = Peripheral Component Interconnect Express) 60a, 60b, 60c. Jede PCIe-Verbindung 60a, 60b ist mit einem entsprechenden PCIe-Adapter 62a, 62b verbunden, und jeder PCIe-Adapter 62a, 62b ist mit einer entsprechenden Eingabe/Ausgabe-Einheit (E/A-Einheit) 64a, 64b verbunden. Die MC/HB 56 kann zusätzlich eine Schnittstelle zu einem E/A-Bus 66 haben, die mit einem Schalter (E/A-Struktur) 68 verbunden ist. Der Schalter 68 stellt dem E/A-Bus eine Ausgangsverzweigung auf eine Vielzahl von PCI-Verbindungen 60d, 60e, 60f bereit. Diese PCI-Verbindungen sind mit einem oder mehreren PCIe-Adaptern 62c, 62d, 62e verbunden, die wiederum mehrere E/A-Einheiten 64c, 64d, 64e unterstützen. Zu den E/A-Einheiten können, ohne darauf beschränkt zu sein, eine Tastatur, eine grafische Zeigeeinheit (Maus), ein Mikrofon, eine Anzeigeeinheit, Lautsprecher, eine Permanentspeichereinheit (Festplattenlaufwerk) oder eine Anordnung derartiger Speichereinheiten, ein optisches Plattenlaufwerk und eine Netzwerkkarte gehören. Jeder PCIe-Adapter stellt eine Schnittstelle zwischen der PCI-Verbindung und der betreffenden E/A-Einheit bereit. Die MC/HB 56 stellt einen Pfad mit niedriger Latenzzeit bereit, über den die Prozessoren 52a, 52b auf PCI-Einheiten zugreifen können, die an beliebiger Stelle innerhalb des Busspeicher- oder des E/A-Adressraums abgebildet sein können. Die MC/HB 56 stellt ferner einen breitbandigen Pfad bereit, über den die PCI-Einheiten auf den Speicher 58 zugreifen können. Der Schalter 68 kann den Datenaustausch zwischen gleichberechtigten Einheiten (Peer-to-Peer) zwischen unterschiedlichen Endpunkten bereitstellen, und dieser Datenverkehr muss nicht zur MC/HB 56 weitergeleitet werden, wenn es sich dabei nicht um Speicherdatenübertragungen zwischen Cachespeichern handelt. Der Schalter 68 ist als separate Logikkomponente gezeigt, könnte aber auch in die MC/HB 56 integriert sein.
  • Bei dieser Ausführungsform verbindet die PCI-Verbindung 60c die MC/HB 56 mit einer Serviceprozessorschnittstelle 70, um den Datenaustausch zwischen der E/A-Einheit 64a und einem Serviceprozessor 72 zu ermöglichen. Der Serviceprozessor 72 ist mit den Prozessoren 52a, 52b über eine JTAG-Schnittstelle 74 verbunden und nutzt eine Signalisierungsleitung 76, die den Betrieb der Prozessoren 52a, 52b unterbricht. Der Serviceprozessor 72 kann seinen eigenen lokalen Speicher 78 haben und ist mit einem Nur-Lese-Speicher (Read Only Memory, ROM) 80 verbunden, in dem verschiedene Programmanweisungen für den Systemanlauf gespeichert sind. Der Serviceprozessor 72 kann auch Zugriff auf ein Hardwarebedienfeld 82 haben, um den Systemstatus und Diagnoseinformationen bereitzustellen.
  • Bei alternativen Ausführungsformen kann das Computersystem 50 Abänderungen dieser Hardwarekomponenten oder ihrer Verbindungen oder weitere Komponenten aufweisen, sodass das abgebildete Beispiel hinsichtlich der vorliegenden Erfindung nicht als Einschränkung der Architektur auszulegen ist. Die Erfindung kann ferner in einem gleichwertigen Cloud-Datenverarbeitungsnetzwerk realisiert sein.
  • Wenn das Computersystem 50 zum ersten Mal eingeschaltet wird, nutzt der Prozessor 72 die JTAG-Schnittstelle 74, um die (Host)-Prozessoren 52a, 52b und die MC/HB 56 des Systems abzufragen. Nach Abschluss der Abfrage übernimmt der Serviceprozessor 72 eine Bestandsübersicht und eine Topologie des Computersystems 50. Der Serviceprozessor 72 führt anschließend verschiedene Tests wie zum Beispiel interne Selbsttests (Built-in-Self-Tests, BISTs), grundlegende Funktionstests (Basic Assurance Tests, BATs) und Speichertests an den Komponenten des Computersystems 50 durch. Alle Fehlerdaten über Störungen, die während der Tests festgestellt wurden, werden durch den Serviceprozessor 72 an das Bedienfeld 82 gemeldet. Wenn eine gültige Konfiguration von Systemressourcen noch möglich ist, nachdem alle Komponenten ausgegliedert wurden, die während der Tests als defekt festgestellt wurden, kann das Computersystem 50 den Betrieb fortsetzen. In den Speicher 58 wird ausführbarer Code geladen, und der Serviceprozessor 72 gibt die Host-Prozessoren 52a, 52b zur Ausführung des Programmcodes frei, d.h. eines Betriebssystems (BS), das zum Starten von Anwendungen verwendet wird, und insbesondere einer Software-Leistungsüberwachung gemäß der vorliegenden Erfindung, deren Ergebnisse auf einem Festplattenlaufwerk des Systems (eine E/A-Einheit 64) gespeichert werden können. Während die Host-Prozessoren 52a, 52b Programmcode ausführen, kann der Serviceprozessor 72 in einen Modus des Überwachens und Meldens beliebiger Betriebsparameter oder Fehler, wie beispielsweise der Drehzahl und Funktion des Kühlerlüfters, der Wärmesensoren, der Netzteilregler und behebbarer und nichtbehebbarer Fehler wechseln, die von den Prozessoren 52a, 52b, dem Speicher 58 und der MC/HB 56 gemeldet wurden. Auf der Grundlage der Arten von Fehlern oder festgelegter Schwellenwerte kann der Serviceprozessor 72 weitere Maßnahmen ergreifen.
  • Fachleuten wird klar sein, dass die vorliegende Erfindung in Form eines Systems, Verfahrens oder Computerprogrammprodukts verkörpert sein kann. Dementsprechend kann die vorliegende Erfindung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, die im vorliegenden Dokument allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden. Ferner kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem beliebigen materiellen computerlesbaren Ausdrucksmedium verkörpert ist, auf dem computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computernutzbarer oder computerlesbarer Medien verwendet werden. Das computernutzbare oder computerlesbare Medium kann beispielsweise und ohne darauf beschränkt zu sein ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder ein Ausbreitungsmedium sein. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: elektrische Verbindung mit einer oder mehreren der Leitungen, Computerdiskette, Festplatte, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), Lichtwellenleiter, Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), optische Speichereinheit, ein Übertragungsmedium wie beispielsweise solche, die das Internet oder ein Intranet unterstützen, oder magnetische Speichereinheit. Das computernutzbare oder computerlesbare Medium könnte sogar Papier oder ein anderes geeignetes Medium sein, auf dem das Programm gedruckt ist, da das Programm elektronisch erfasst werden kann, zum Beispiel durch optisches Scannen des Papiers oder anderen Mediums, anschließend wenn notwendig kompiliert, interpretiert oder anderweitig in geeigneter Weise verarbeitet und danach in einem Computerspeicher gespeichert werden kann. Im Kontext dieser Erfindung kann ein computernutzbares oder computerlesbares Medium ein beliebiges Medium sein, das ein Programm enthalten, speichern, übertragen, verbreiten oder transportieren kann, das von oder in Verbindung mit dem System, der Vorrichtung oder der Einheit zur Befehlsausführung genutzt werden kann. Das computernutzbare Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle verbreitetes Datensignal mit darin verkörpertem computernutzbarem Programmcode aufweisen. Der computernutzbare Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, beispielsweise und ohne darauf beschränkt zu sein, drahtlos, drahtgebunden, über Glasfaserkabel, Hochfrequenz (HF) usw.
  • Computerprogrammcode zur Ausführung von Operationen der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen geschrieben sein, die für eine Vielfalt von Plattformen wie beispielsweise eine AIX-Umgebung oder Betriebssysteme wie beispielsweise Windows 7 oder Linux geschrieben wurden. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Die vorliegende Erfindung ist nachstehend unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Methoden, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer oder andere programmierbare Datenverarbeitungsvorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis zu schaffen, das die Anweisungen enthält, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisiert. Flüchtige Speicher zählen nicht zu derartigen Speichermedien.
  • Die Computerprogrammanweisungen können ferner in einen Computer oder in andere programmierbare Datenverarbeitungsvorrichtungen geladen werden, um zu bewirken, dass auf dem Computer oder auf anderen programmierbaren Vorrichtungen eine Reihe von Arbeitsschritten ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, mit dessen Hilfe die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß den verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder einzelne Block im Ablaufplan bzw. in den Blockschaltbildern ein Modul, ein Segment oder einen Teil des Codes darstellen, der eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen umfasst. Bei einigen alternativen Realisierungsformen können die im Block angegebenen Funktionen in einer anderen als der in den Figuren angegebenen Reihenfolge ausgeführt werden. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der damit verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Jeder Block der dargestellten Blockschaltbilder und/oder des dargestellten Ablaufplans sowie Kombinationen von Blöcken in den dargestellten Blockschaltbildern und/oder im dargestellten Ablaufplan kann bzw. können mithilfe von speziellen Systemen auf der Grundlage von Hardware zur Ausführung der angegebenen Funktionen bzw. Aktionen oder mithilfe von Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden.
  • Das Computersystem 50 führt Programmanweisungen einer Software-Leistungsüberwachung durch, die Kontrollfunktionen für Hardware-Ereigniszähler enthalten können, die über das ganze System verteilt sind. Dementsprechend kann ein Programm, das die Erfindung verkörpert, herkömmliche Aspekte verschiedener Hilfsprogramme zur Leistungsüberwachung enthalten, und diese Details werden Fachleuten durch Bezug auf diese Offenbarung klar. Bei diesem Beispiel sind die Hardware-Ereigniszähler 84 als in den Prozessoren 52a, 52b enthalten veranschaulicht, d.h., ein gegebener Hardware-Zähler ist auf demselben Halbleitersubstrat der integrierten Schaltung wie sein entsprechender Prozessor aufgebaut. Es könnten jedoch andere Hardware-Zähler für eine beliebige integrierte Schaltungseinheit des Computersystems 10 verwendet werden, und die Zähler müssen nicht notwendigerweise auf derselben Einheit angeordnet sein, sodass dieses Beispiel nicht in einem einschränkenden Sinne auszulegen ist. Ein einzelner Prozessor oder eine andere Halbleitereinheit könnten auch mehr als einen Zähler enthalten.
  • Unter Bezugnahme auf 3 ist dort in schematischer Form eine Ausführungsform eines Gleitkomma-Hardware-Ereigniszählers 84 mit automatischer Vorteilung dargestellt, der gemäß der vorliegenden Erfindung aufgebaut ist. Bei dieser Ausführungsform besteht der Zweck des Zählers 84 darin, zu zählen, wie oft ein bestimmtes Ereignis (das „gezählte“ Ereignis) ab der Zeit auftritt, zu der ein Ereignis eintritt (das „Start“-Ereignis), bis ein weiteres Ereignis eintritt (das „Ende“-Ereignis), ohne dass ein dazwischen auftretendes Startereignis eintritt, d.h., der Zähler wird bei jedem Auftreten des Startereignisses auf null zurückgesetzt. Die Arten der zu zählenden (oder als Start- und Endeereignisse verwendeten) Ereignisse sind nicht begrenzt, aber die gezählten Ereignisse, die Start- und Endeereignisse unterscheiden sich normalerweise, und es kann sich dabei um beliebige erkennbare Ereignisse der integrierten Schaltungseinheit handeln. Der Zähler 84 besteht im Allgemeinen aus einer Vielzahl elektrischer Schaltungen, zu denen unter anderen ein Ereigniszählerregister 90, ein Schwellenwertregister 92, ein Steuerregister 94, Logik für Steuerung und automatische Vorteilung 96, ein Schwellenwertbildungszähler 106, ein Grenzwertregister für den Schwellenwertzähler 108 und eine Interrupt-Logik 98 gehören. Bei der beispielhaften Realisierungsform werden Zahlen durch den Zähler im Gleitkommazahlenformat auf der Basis 4 („Viererzahlen“) dargestellt, aber der Entwickler könnte eine beliebige Basis wählen.
  • Das Ereigniszählerregister 90 überwacht den aktuellen Ereigniszählwert (d.h. die Anzahl gezählter Ereignisse seit dem letzten Startereignis) und weist drei Exponentenbits und sieben Mantissenbits für einen Zählwertbereich von null bis über zwei Millionen unter Verwendung der Basis 4 auf. Das Schwellenwertregister 92 hat ebenfalls drei Exponentenbits und sieben Mantissenbits, um unter Verwendung derselben Basis wie das Ereigniszählerregister 90 einen Schwellenwert im Gleitkommaformat darzustellen. Das Steuerregister 94 enthält verschiedene Felder, die den Zählerbetrieb steuern, zu denen ein Feld „Zählerbasis“, ein Feld „Startereignis“, ein Feld „Endeereignis“, ein Feld „Ereignisauswahl“ und ein Feld „Modus“ gehören. Das Zählerbasis-Feld ist ein 2-Bit-Feld zur direkten oder indirekten Angabe der Basis, die bei der Gleitkommaumwandlung (bei diesem Beispiel 4) zu verwenden ist. Das Startereignis-Feld ist ein 4-Bit-Feld zur Angabe des Ereignisses, bei dem der Zähler mit dem Zählen beginnt. Das Endeereignis-Feld ist ein 4-Bit-Feld zur Angabe des Ereignisses, bei dem der Zähler das Zählen beendet. Das Ereignisauswahl-Feld ist ein 4-Bit-Feld zur Angabe des zu zählenden Ereignisses. Bei einigen Realisierungsformen können bestimmte Ereignisse, die als Start- und Stoppereignisse verwendet werden könnten, unter Umständen keinesfalls als gezählte Ereignisse verwendet werden, sodass die Anzahl möglicher unterschiedlicher gezählter Ereignisse kleiner sein kann und das Ereignisauswahl-Feld möglicherweise dementsprechend weniger Bits nutzt. Das Modus-Feld ist ein 1-Bit-Feld, das anzeigt, ob eine grundlegende Zähloperation durchzuführen oder ob die Schwellenwertbildungsfunktion aufzurufen ist. Jeder bzw. jedes der Ereigniszähler, Schwellenwertregister, Schwellenwertbildungszähler, Grenzwertregister für den Schwellenwertzähler und Steuerregister ist über die Software zugänglich, d.h., sie sind durch die Software-Leistungsüberwachung nach Bedarf lesbar oder beschreibbar, wobei ein an die Prozessoren 52a, 52b angepasster Befehlssatz verwendet wird.
  • Zur Auslösung der Messung setzt die Softwareüberwachung entsprechend den erwünschten Tests die Zählerbasis, das Startereignis, Endeereignis und das gezählte Ereignis im Steuerregister und aktiviert die Zählerlogik durch Initialisieren des Ereigniszählerregisters 90 auf null, wonach die Logik zur Steuerung und automatischen Vorteilung 96 konfiguriert wird, um den Zählwert durch 1 zu dividieren (d.h. jedes angegebene Ereignis zu zählen). Die Vorteilungsschaltung innerhalb der Logik zur Steuerung und automatischen Vorteilung 96 berechnet den Vorteilungswert unter Verwendung der Eingangs-Zählerbasis aus dem Steuerregister 94 und der aktuellen Zähler-Exponentenbits aus dem Ereigniszählerregister 90. Wenn die Schwellenwertbildungsfunktion ein erwünschter Bestandteil der Tests ist, dann wird der vorgegebene Schwellenwert ebenfalls im Schwellenwertregister 92 gesetzt, und das Schwellenwertmodusbit im Steuerregister 90 wird auf 1 gesetzt (anderenfalls wird das Schwellenwertmodusbit auf 0 gesetzt). Fachleuten wird klar sein, dass ein gemäß der vorliegenden Erfindung aufgebauter Ereigniszähler bei einer einfachen Zähloperation genutzt werden kann, ohne die Schwellenwertbildungsfunktion zu realisieren, wobei in diesem Fall das Schwellenwertregister 92 nicht gesetzt zu werden braucht.
  • Der Zähler 84 wartet dann auf das Auftreten des Starterereignisses, d.h., die Logik zur Steuerung und automatischen Vorskalierung 96 beginnt nicht mit dem Erhöhen des Ereigniszählerregisters 90, bis sie durch das Startereignissignal aktiviert wird.
  • Die verschiedenen im System angelegten Ereignissignale können auf einem Ereignisbus 100 zusammengefasst werden, der als Eingang für mehrere interne Multiplexer der Logik zur Steuerung und automatischen Vorteilung 96 dient. Einer der Multiplexer wird durch die Kennung im Startereignis-Feld des Steuerregisters 94 gesteuert und leitet das Startsignal zum Zurücksetzen des Ereigniszählerregisters 90 und zur Benachrichtigung des internen Summenfeldes der Logik zur Steuerung und automatischen Vorteilung 96 weiter, dass die Zählung beginnen kann. Ein zweiter Multiplexer wird durch die Kennung im Ereignisauswahl-Feld des Steuerregisters 94 gesteuert und leitet das Ereignissignal an das Summenfeld weiter. Wenn das Summenfeld eine Anzahl gezählter Ereignisse erkannt hat (aktive Ereignissignale), die dem Vorteilungswert entspricht, erhöht es den Mantissenteil des Ereigniszählerregisters 90. Ein dritter Multiplexer wird durch die Kennung im Endeereignis-Feld des Steuerregisters 94 gesteuert. Wenn das Schwellenwertmodusbit auf 0 gesetzt ist und dadurch angezeigt wird, dass die Schwellenwertbildung nicht durchgeführt wird, leitet dieser Multiplexer ein Signal zur Interrupt-Logik 98 weiter, wenn das Endeereignis-Signal aktiv ist (über das UND-Gatter 102), woraufhin ein Interrupt auftritt und die Zählung stoppt. Die Softwareüberwachung kann dann den im Ereigniszählerregister 90 enthaltenen aktuellen Zählwert überprüfen und eine beliebige notwendige Analyse durchführen, zu der das Protokollieren der erhaltenen Daten und das Wiederholen des Prozesses mit verschiedenen Steuerregisterwerten gehören können. Die tatsächliche Anzahl von Zählwerten kann unter Verwendung des aus dem Ereigniszählerregister 90 ausgelesenen Wertes berechnet werden, indem die Mantisse um das Doppelte des Zähler-Exponentenwertes nach links verschoben wird. Dieser einfache Umwandlungsprozess ermöglicht der Software, den Gleitkommazählwert mit vernachlässigbarem Aufwand zu erhalten. Wenn die Anzahl gezählter Ereignisse weniger als 127 beträgt, besteht keine Notwendigkeit einer Umwandlung, und der im Zähler dargestellte Zählwert entspricht der exakten Anzahl der aufgetretenen Ereignisse.
  • Da die Vorteilungslogik zur Zählung im Abstand von 1 initialisiert wurde, wird während der Zählphase jedes Ereignis bis zur Anzahl von 127 Ereignissen gezählt, wonach die Mantisse des Zählers überläuft. Die Überlaufschaltung innerhalb der Logik zur Steuerung und automatischen Vorteilung 96 erkennt den Überlauf der Mantisse und reagiert mit zwei Maßnahmen. Als Erstes wird der Exponententeil des Ereigniszählerregisters 90 erhöht. Als Zweites wird der Mantissenteil des Ereigniszählerregisters 90 auf einen Übergangswert gesetzt, der dem Gleitkomma-Äquivalent des Überlaufwertes entspricht, wobei der neue Exponentenwert berücksichtigt wird. Bei diesem Beispiel entsprechen sieben Mantissenbits dem Überlaufwert von 128, sodass bei der Zählerbasis von 4 die Mantisse des Zählers auf binär 0100000 (32 zur Basis 10) zurückgesetzt wird, was einem Gleitkommawert von 128 (32 × 41) entspricht. Allgemeiner ausgedrückt ist der Übergangswert gleich dem Wert des Mantissenüberlaufs, dividiert durch die Basis, d.h. 2m/B.
  • Die Vorteilungsschaltung innerhalb der Logik zur Steuerung und automatischen Vorteilung 96 berechnet dann unter Verwendung des neuen Zähler-Exponentenwertes automatisch den Vorteilungswert neu, und das Summenfeld erhöht danach die Zählermantisse nur, wenn die Anzahl gezählter Ereignisse gleich dem neuen Vorteilungswert ist. Das Zählen unter Verwendung des neuen Vorteilungswertes wird fortgesetzt, bis die Mantisse erneut überläuft und zu diesem Zeitpunkt die vorgehenden Schritte iterativ wiederholt werden, d.h., der Exponent wird erhöht, die Mantisse wird auf den Übergangswert gesetzt, und der Vorteilungswert wird neu berechnet. Die Tabelle 1 zeigt die Vorteilung und Bereiche von Ereigniszählwerten, die jedem Wert des Zählerexponenten bei der veranschaulichenden Realisierungsform mit der Basis 4 entspricht. Tabelle 1
    Exponent Ereignisse pro Zählwert (Vorteilungswert) Mindestanzahl von Ereignissen Maximale Anzahl von Ereignissen
    0 1 0 127
    1 4 128 508
    2 16 512 2,032
    3 64 2.048 7.936
    4 256 8.192 32.512
    5 1.024 32.768 130.048
    6 4.096 131.072 522.240
    7 16.384 524.288 2.093.056
  • Fachleuten wird klar sein, dass, wenn dieser Zähler seinen maximalen Exponenten nutzt und alle 16.384 Ereignisse nur einmal erhöht wird, die tatsächliche Anzahl von Ereignissen, die diesem Wert des Zählers entspricht, innerhalb von 16.384 aus 524,288 bzw. von ca. 3,1 % liegt. Diese konstante Genauigkeit von 3,1 % gilt für alle Werte der Zählungen. In den meisten Anwendungsfällen, zu denen auch Anwendungen zur Leistungsüberwachung von Computern gehören, reichen Ergebnisse, deren Genauigkeit einen derart kleinen Prozentwert aufweist, zur Analyse der meisten Probleme aus. Genauigkeiten von beispielsweise innerhalb von 10 Zählwerten bei Gesamtzählwerten von 100.000 werden sehr selten benötigt.
  • Wenn auch Schwellenwerttests erwünscht sind, schreibt die Softwareüberwachung eine „1“ auf das Modusbit im Steuerregister 94, um anzuzeigen, dass die Schwellenwertbildungsfunktion durchzuführen ist, definiert die Schwellenwertanzahl von Ereignissen, um eine Überschreitung der Anzahl aufgetretener Ereignisse zu signalisieren, z.B. 50, 100, 256, 512, 1024 usw., und schreibt diese Zahl auf das Schwellenwertregister 92. Wenn der zu schreibende Schwellenwert den Maximalwert der Mantisse überschreitet, kann der Schwellenwert N in das Gleitkommaformat der Register 90, 92 umgewandelt werden, wobei hierzu die einfache Technik des Verschiebens des numerischen Wertes von N um zwei Stellen nach rechts und des Erhöhens des Schwellenwertexponenten um 1 verwendet wird, bis alle sieben niederwertigen Bits von N Nullen sind. Die Schwellenwertmantisse wird dann auf diese sieben niederwertigen Bits gesetzt. Ein Komparator 104 prüft jeden Zyklus, um festzustellen, ob der Wert im Ereigniszählerregister 90 gleich dem Wert im Schwellenwertregister 92 ist, und aktiviert ein „Schwellenwert überschritten“-Signal, wenn die Schwellenwertbildung durchgeführt wird. Dieses Signal wird zu einem Schwellenwertbildungszähler 106 übertragen, der überwacht, wie oft der Schwellenwert überschritten worden ist. Der Wert im Schwellenwertbildungszähler 106 wird über einen anderen Komparator 109 mit dem Schwellenwertzählwert-Grenzwert 108 verglichen, wobei dieser Komparator ein Interrupt-Signal an die Interrupt-Logik 98 sendet, sobald der Schwellenwertzählwert-Grenzwert der Anzahl entspricht, wie oft der Schwellenwert überschritten worden ist. Wenn dieses Interrupt-Signal auftritt, wird der Wert im Ereigniszählerregister 90 weitergezählt, bis das Endeereignis auftritt und somit die Anzahl gezählter Ereignisse enthält, die zwischen dem Start- und dem Stoppereignis auftraten. Diese Information kann von der Softwareüberwachung verwendet werden, um den tatsächlichen Betrag festzustellen, um den der Schwellenwert überschritten wurde, nachdem der Schwellenwert zum Zeitpunkt des Interrupts erreicht wurde.
  • Es gibt mehrere Variationen des oben beschriebenen Zählers, die entsprechend den Bedürfnissen des Entwicklers realisiert werden könnten. Zur Veränderung der Genauigkeit kann entweder die Gleitkommabasis oder die Anzahl von Bits in der Mantisse angepasst werden. Auch der Bereich der Zählwerte kann variiert werden, indem die Anzahl von Bits im Exponenten geändert wird. Auf diese Weise kann der Zähler auf eine breitgefächerte Auswahl von Anwendungen zugeschnitten werden, um einen beliebigen erwünschten Zählbereich mit einer beliebigen erwünschten Genauigkeit bereitzustellen. Diese Variationen können entweder im Schaltungsentwurf vorkonfiguriert oder durch die Software angegeben werden.
  • Ein weiteres Merkmal, das dem Zähler hinzugefügt werden kann, ist die Bereitstellung von Ereignissen, die verschiedene Schwellenwerte angeben. Zum Beispiel können Ereignisse wie „32_zählbare_Ereignisse aufgetreten“ oder „64_zählbare_Ereignisse aufgetreten“ oder „16.000_zählbare_Ereignisse aufgetreten“ vorgesehen werden. Die Software kann dann einen anderen Zähler konfigurieren, um diese Ereignisse zu zählen und zu unterbrechen, wenn dieser Zählwert überschritten wurde. Zum Zählen dieser Ereignisse kann ein einfacher Leistungs-Registerzähler verwendet werden. Diese Funktion ermöglicht der Software, eine ungefähre Angabe über den Bereich zählbarer Ergebnisse zwischen einem Start- und einem Stoppereignis zu erhalten. Bei Bedarf kann der Schwellenwertzähler verwendet werden, um einen genaueren Schwellenwert anzugeben. Einige Realisierungsformen können eine große Anzahl derartiger Ereignisse vorsehen, wodurch die Notwendigkeit eines Schwellenwertregisters beseitigt wird.
  • Bei Realisierungsformen, die mehrere Zähler unterstützen, ermöglicht die Verringerung der Anzahl der pro Zähler erforderlichen Bits, dass zwei oder mehr Zähler in ein einziges Register passen. Dies verringert die Anzahl von Registern, die zur Unterstützung derselben Anzahl von Zählern erforderlich ist, um einen Faktor von 2, wodurch die Zeit zum Speichern bzw. erneuten Speichern beim Ausschalten des Ereigniszählers, des Schwellenwert- und des Steuerregisters gesenkt wird. Dies stellt einen bedeutenden Vorteil beim Cloud-Computing und in anderen Umgebungen dar, bei denen sich der Programmkontext häufig ändert.
  • Eine weitere Verbesserung besteht darin, „Zähler lesen“- oder „Schwellenwert schreiben“-Anweisungen vorzusehen, die auf Schaltungen zum automatischen Umwandeln einer Binärzahl in den entsprechenden Zählerwert beruhen. Dies ist nicht unbedingt notwendig, da die oben beschriebenen Umwandlungsoperationen sehr einfach sind, könnte aber bei einigen Anwendungen hilfreich sein, um für diese Funktionen einfache Hardware bereitzustellen.
  • Die Erfindung wird unter Bezugnahme auf den Ablaufplan aus 4 möglicherweise noch verständlicher, der den Software-Steuerungsprozess 110 der beispielhaften Realisierungsform veranschaulicht. Der Prozess 110 beginnt, wenn die Softwareüberwachung den Ereigniszähler auf null initialisiert und den Schwellenwertmodus setzt, um anzuzeigen, ob die Schwellenwertbildung durchzuführen ist oder nicht (112). Wenn die Schwellenwertbildung durchgeführt wird (114), initialisiert sie auch den Schwellenwertbildungszähler 106 auf null, setzt den Schwellenwert N, und setzt den Schwellenwertbildungsgrenzwert, d.h. die Anzahl, wie oft der Schwellenwert überschritten werden darf, bevor ein Interrupt auftritt (116). Die Softwareüberwachung setzt außerdem die Zählerbasis und wählt das Startereignis, das Endeereignis und die Zählereignisse (118). Die Softwareüberwachung wechselt dann in den Standby-Modus (120), bis er durch die Hardware unterbrochen wird (122), wenn in Abhängigkeit davon, ob die Schwellenwertbildungsfunktion durchgeführt wird, eine der folgenden Aktionen durchgeführt wird. Wenn die Schwellenwertbildungsfunktion nicht durchgeführt wird, liest die Software das Ereigniszählerregister, um die Anzahl gezählter Ereignisse zu ermitteln, die zwischen dem Startereignis und dem Endeereignis aufgetreten sind, protokolliert die Daten (124) und führt eine beliebige notwendige Analyse durch. Wenn die Schwellenwertbildung durchgeführt wird, zeigt das Auftreten des Interrupts an, dass die Anzahl gezählter Ereignisse zwischen dem Startereignis und dem Stoppereignis den Schwellenwert-Grenzwert so oft überschritten hat, wie im Schwellenwertbildungs-Grenzwert 108 angegeben ist. Die Softwareüberwachung kann diese Information zur Verwendung bei einer späteren Analyse protokollieren. Die Softwareüberwachung kann dann je nach Wunsch den Prozess bei anderen Ereignissen, anderen Zähler-Basiswerten, unterschiedlichen Schwellenwerten oder unterschiedlichen Schwellenwertzählwert-Grenzwerten (126) wiederholen.
  • 5 veranschaulicht den laufenden Hardwareprozess 140 zum Zählen der Ereignisse. Der Prozess 140 beginnt, indem geprüft wird, ob das Startereignis aufgetreten ist (142). Sobald das Startereignis auftritt, wird der Ereigniszähler zurückgesetzt (144), und der Vorteilungswert wird unter Verwendung der Zählerbasis und des Zählerexponenten berechnet (146). Dann wird der Status des ausgewählten Ereignissignals geprüft (148). Wenn das ausgewählte Ereignissignal nicht aktiv ist, prüft der Prozess jeden Zyklus iterativ auf das Startereignis (150), und setzt den Ereigniszähler jedes Mal zurück, wenn ein Startereignis aufgetreten ist (144); ansonsten wird die Zählung bei Block 146 fortgesetzt. Wenn das ausgewählte Ereignissignal aktiv ist, wird das Ereignis durch die Logik zur Steuerung und automatischen Vorteilung summiert (152). Sobald die Anzahl summierter Ereignisse gleich dem Vorteilungswert ist (154), wird die Zählermantisse erhöht (156). Wenn die Anzahl summierter Ereignisse kleiner als der Vorteilungswert ist, kehrt der Prozess zum Block 150 zurück, um auf ein erneutes Auftreten des Startereignisses zu prüfen. Jedes Mal, wenn die Zählermantisse erhöht wird, prüft die Logik zur Steuerung und automatischen Vorteilung auf einen Mantissenüberlauf (158). Wenn kein Überlauf aufgetreten ist, kehrt der Prozess zum Block 150 zurück, um auf ein erneutes Auftreten des Startereignisses zu prüfen. Wenn ein Überlauf aufgetreten ist, wird der Zählerexponent erhöht, und die Zählermantisse wird auf den Überlauf-Rücksetzwert zurückgesetzt (160). Nach dem Aktualisieren des Ereigniszählers kehrt der Prozess wieder zum Block 150 zurück, um auf ein erneutes Auftreten des Startereignisses zu prüfen.
  • Die vorliegende Erfindung weist demzufolge viele Vorteile gegenüber bestehenden binären oder vorgeteilten Zählern auf. Insbesondere verringert die Erfindung die Anzahl von Schnittstellenbits erheblich, die zur Unterstützung sehr großer Zählbereiche erforderlich sind, was wiederum die Hardwarekosten der Ereigniszähler- und Schwellenwertregister senkt und die Zeit verringert, die zum Speichern bzw. erneuten Speichern bei Kontextänderungen erforderlich ist. Die mittels Hardware realisierte automatische Vorteilung beseitigt ferner jegliche Notwendigkeit, per Software Vorteilungswerte zu ermitteln. Die Erfindung behält die hohe Genauigkeit bei sehr großen Ereigniszählwerten bei und liefert innerhalb eines Zählbereiches von null bis zum maximalen Mantissenwert (z.B. 128) exakte Werte. Die Erfindung ermöglicht außerdem sehr effiziente Verfahren zum Umwandeln von Zählerwerten in tatsächliche Werte (entweder in der Hardware oder in der Software). Die Erfindung verleiht dem Entwickler eine große Flexibilität, indem sie je nach dem Basiswert und der Anzahl von Bits im Exponenten und in der Mantisse einen beliebigen Zählwertbereich oder eine prozentuale Genauigkeit gewährleistet.

Claims (6)

  1. Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, aufweisend: Empfangen eines Signals, das anzeigt, wenn ein bestimmtes Ereignis der elektronischen Einheit auftritt; Erhöhen eines Ereigniszählers bei jedem Mal, wenn eine variable Anzahl der betroffenen Ereignisse aufgetreten ist, wobei das Erhöhen eine Zählermantisse des Ereigniszählers erhöht; und automatisches Erhöhen der variablen Anzahl, wenn sich ein Gesamtzählwert der betreffenden Ereignisse erhöht, wobei die variable Anzahl jedes Mal geometrisch erhöht wird, wenn die Zählwertmantisse als Folge dieser Erhöhung überläuft, wobei ein Zählwertexponent des Ereigniszählers jedes Mal erhöht wird, wenn die Zählwertmantisse überläuft; und die variable Anzahl ein Vorteilungswert ist, der gleich einer Zählerbasis ist, die zu einer Potenz mit dem aktuellen Wert des Zählwertexponenten erhoben wurde, ferner aufweisend das programmierbare Setzen der Zählerbasis und ferner aufweisend das Setzen der Zählwertmantisse auf einen Übergangswert jedes Mal, wenn die Zählwertmantisse als Folge der Erhöhung überläuft, wobei der Übergangswert gleich einem Überlaufwert der Zählwertmantisse, dividiert durch die Zählerbasis, ist.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Auswählen des betreffenden Ereignisses als Startereignis und eines Endeereignisses aus einer Vielzahl von Ereignissen der elektronischen Einheit; Zurücksetzen des Ereigniszählers jedes Mal, wenn das Startereignis erkannt wird; und Protokollieren eines Zählwertes des Ereigniszählers, wenn das Endeereignis erkannt wird.
  3. Verfahren nach Anspruch 1, ferner aufweisend: Speichern eines Schwellenwertes; Vergleichen des Schwellenwertes mit einem aktuellen Zählwert des Ereigniszählers; und Signalisieren, wenn der aktuelle Zählwert den Schwellenwert überschreitet.
  4. Ereigniszähler für eine integrierte Schaltungseinheit, aufweisend; ein Ereigniszählerregister, das einen aktuellen Zählwert zu einem bestimmten Ereignis der integrierten Schaltungseinheit enthält, wobei das Ereigniszählerregister eine Zählwertmantisse aufweist; und Steuerlogik, die das Ereigniszählerregister jedes Mal erhöht, wenn eine variable Anzahl der betreffenden Ereignisse aufgetreten ist und die variable Anzahl automatisch erhöht, wenn sich ein Gesamtzählwert der betreffenden Ereignisse erhöht, wobei die variable Anzahl jedes Mal geometrisch erhöht wird, wenn die Zählwertmantisse als Folge dieser Erhöhung überläuft, wobei ein Zählwertexponent des Ereigniszählers jedes Mal erhöht wird, wenn die Zählwertmantisse überläuft; und die variable Anzahl ein Vorteilungswert ist, der gleich einer Zählerbasis ist, die zu einer Potenz mit dem aktuellen Wert des Zählwertexponenten erhoben wurde, ferner aufweisend das programmierbare Setzen der Zählerbasis und ferner aufweisend das Setzen der Zählwertmantisse auf einen Übergangswert jedes Mal, wenn die Zählwertmantisse als Folge der Erhöhung überläuft, wobei der Übergangswert gleich einem Überlaufwert der Zählwertmantisse, dividiert durch die Zählerbasis, ist..
  5. Computersystem mit einer Vielzahl integrierter Schaltungseinheiten, darunter ein oder mehrere Prozessoren, eine oder mehrere Speichereinheiten und eine oder mehrere Eingabe/Ausgabe-Adaptereinheiten, ferner aufweisend: einen Ereigniszähler nach einem der vorhergehenden Ansprüche und eine Softwareüberwachung, die einen oder mehrere programmierbare Eingangswerte in den Ereigniszähler schreibt und einen aktuellen Wert des Ereigniszählerregisters liest.
  6. Computerprogrammprodukt, aufweisend: ein computerlesbares Speichermedium; und Programmanweisungen, die ein Verfahren nach einem der vorhergehenden Ansprüche ausführen.
DE102012221253.1A 2011-12-06 2012-11-21 Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür Active DE102012221253B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/312,715 2011-12-06
US13/312,715 US8514999B2 (en) 2011-12-06 2011-12-06 Floating-point event counters with automatic prescaling

Publications (2)

Publication Number Publication Date
DE102012221253A1 DE102012221253A1 (de) 2013-06-06
DE102012221253B4 true DE102012221253B4 (de) 2021-09-30

Family

ID=48431570

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012221253.1A Active DE102012221253B4 (de) 2011-12-06 2012-11-21 Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür

Country Status (3)

Country Link
US (1) US8514999B2 (de)
DE (1) DE102012221253B4 (de)
GB (1) GB2499487B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8875069B1 (en) * 2013-01-24 2014-10-28 Cadence Design Systems, Inc. System and method for generating constrained random values associated with an electronic design
US9363136B2 (en) * 2013-12-20 2016-06-07 Intel Corporation Mechanism to monitor quality of service
US9419625B2 (en) 2014-08-29 2016-08-16 International Business Machines Corporation Dynamic prescaling for performance counters
US20170177336A1 (en) * 2015-12-22 2017-06-22 Intel Corporation Hardware cancellation monitor for floating point operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2559261A1 (de) 1975-12-31 1977-07-14 Christian Dipl Ing Nitschke Elektronischer impulszaehler mit grossem zaehlbereich
US20050165569A1 (en) 2003-04-10 2005-07-28 Fujitsu Limited Pulse width measuring device with automatic range setting function
US20090007134A1 (en) 2007-06-26 2009-01-01 International Business Machines Corporation Shared performance monitor in a multiprocessor system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866024A (en) * 1973-10-23 1975-02-11 Scope Inc Digital log-time generator
US4005364A (en) 1974-11-15 1977-01-25 Mdh Industries, Inc. Digital circuit for measuring relative frequency in separate pulse trains
US4099048A (en) * 1976-11-09 1978-07-04 Westinghouse Electric Corp. Count logic circuit
EP0048896B1 (de) * 1980-09-25 1985-12-27 Kabushiki Kaisha Toshiba Schaltung zum Erzeugen eines Taktsynchronisierungssignals
US4477920A (en) * 1982-02-26 1984-10-16 Hewlett-Packard Company Variable resolution counter
JPS6095382A (ja) 1983-10-31 1985-05-28 Ando Electric Co Ltd 時間測定回路
US5412580A (en) * 1991-07-03 1995-05-02 Hughes Aircraft Company Pseudo-random vector generated testable counter
JPH0695382A (ja) * 1991-09-14 1994-04-08 Sannopuko Kk 感光性樹脂組成物
FR2764139B1 (fr) 1997-05-29 1999-07-23 Alsthom Cge Alcatel Dispositif de division de frequence a prediviseur suivi d'un compteur programmable, prediviseur et synthetiseur de frequence correspondants
US5903521A (en) * 1997-07-11 1999-05-11 Advanced Micro Devices, Inc. Floating point timer
US6115439A (en) 1997-11-14 2000-09-05 Texas Instruments Incorporated Free running digital phase lock loop
US6088421A (en) * 1998-07-28 2000-07-11 Intel Corporation Method and apparatus for providing scaled ratio counters to obtain agent profiles
CA2249927C (en) * 1998-10-09 2006-12-19 Celestica North America Inc. Multifunction processor timer
US6820103B2 (en) 2000-11-03 2004-11-16 Qualcomm Inc. Digital filter with state storage
US6959404B2 (en) 2001-08-23 2005-10-25 Texas Instruments Incorporated Extended dynamic range watchdog timer
US6633185B2 (en) 2001-10-16 2003-10-14 Altera Corporation PLL/DLL circuitry programmable for high bandwidth and low bandwidth applications
US6873670B1 (en) 2002-10-04 2005-03-29 National Semiconductor Corporation Automatic pre-scaler control for a phase-locked loop
US6833765B2 (en) 2003-01-23 2004-12-21 Ess Technology, Inc. Frequency locked loop with improved stability using binary rate multiplier circuits
US7282937B2 (en) 2003-12-31 2007-10-16 Intel Corporation On-chip frequency degradation compensation
US8224602B2 (en) 2008-11-11 2012-07-17 Nxp B.V. Automatic on-demand prescale calibration across multiple devices with independent oscillators over an I2C Bus interface
US8212704B2 (en) * 2010-06-14 2012-07-03 Infineon Technologies Ag Floating point timer techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2559261A1 (de) 1975-12-31 1977-07-14 Christian Dipl Ing Nitschke Elektronischer impulszaehler mit grossem zaehlbereich
US20050165569A1 (en) 2003-04-10 2005-07-28 Fujitsu Limited Pulse width measuring device with automatic range setting function
US20090007134A1 (en) 2007-06-26 2009-01-01 International Business Machines Corporation Shared performance monitor in a multiprocessor system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
„New Design Techniques of Variable Prescaling Counters for Spaceborne Experiments" von S. Cantarano und G. V. Pallottino, erschienen im April 1970 in in IEEE Transactions on Nuclear Science, Vol. 17, Issue 2, S. 34 - 39
CANTARANO, S.; PALLOTTINO, G. V.: New Design Techniques of Variable Prescaling Counters for Spaceborne Experiments. Nuclear Science, IEEE Transactions on, 1970, 17. Jg., Nr. 2, S. 34-39

Also Published As

Publication number Publication date
US20130142301A1 (en) 2013-06-06
GB2499487A (en) 2013-08-21
DE102012221253A1 (de) 2013-06-06
US8514999B2 (en) 2013-08-20
GB2499487B (en) 2014-02-12

Similar Documents

Publication Publication Date Title
DE102019111995A1 (de) Training eines künstlichen neuronalen Netzes unter Verwendung von flexiblen Gleitkommatensoren
DE112012005014B4 (de) Verfahren zum Ausführen arithmetischer Operationen unter Verwendung sowohl von großen als auch kleinen Gleitkommawerten und Vorrichtung sowie Computerprogrammprodukt hierfür
DE102012221253B4 (de) Verfahren zum Zählen von Ereignissen in einer elektronischen Einheit, Ereigniszähler für eine integrierte Schaltungseinheit sowie Computersystem und Computerprogrammprodukt hierfür
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE112013002054T5 (de) Neu konfigurierbare Wiederherstellungsmodi in Hochverfügbarkeitsprozessoren
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE112015001477T5 (de) Hardwarezähler zum Verfolgen einer Auslastung in einem Multithreading-Computersystem
DE102014204403A1 (de) Datenverarbeitungssystem und Verfahren zum Betreiben desselben
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102020105939A1 (de) Enhanced-Serial-Peripheral-Interface-(eSPI)-Signalisierung zurAbsturzereignisbenachrichtigung
DE2418650C2 (de) Einrichtung zur Prüfung und Überwachung von Stromversorgungseinrichtungen
DE112016003974T5 (de) Dynamisches Abstimmen von Multiprozessor-/Multikern-Rechnersystemen
DE102018127141A1 (de) Techniken zur Abschwächung von Anweisungen mit hoher Latenz in hoch frequentierten Ausführungspfaden
DE19960574B4 (de) Peripheral Component Interconnection-(PCI) Debuggingvorrichtung und -verfahren
DE102019121571A1 (de) Verfahren und einrichtung, um auf hochvolumige prüfdaten über hochgeschwindigkeitsschnittstellen zuzugreifen
DE102005020656B4 (de) Flankenerfassungsschaltung
US10445219B1 (en) Extracting transaction level information from a circuit interface
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE112017005778T5 (de) Mikrocontroller-energie-profiler
DE112015003759B4 (de) Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung
DE102013009364B4 (de) Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern
DE112017006932T5 (de) Simulationseinrichtung, Simulationsverfahren und Simulationsprogramm
DE2733921A1 (de) Schaltungsanordnung fuer eine indirekt gesteuerte vermittlungsanlage, insbesondere fernsprechvermittlungsanlage
DE112017008061T5 (de) Simulationsvorrichtung, simulationsverfahren und simulationsprogramm
DE60212455T2 (de) System und verfahren zum takten eines ip-core während einer fehlersuchoperation

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final