DE112015003759B4 - Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung - Google Patents

Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung Download PDF

Info

Publication number
DE112015003759B4
DE112015003759B4 DE112015003759.4T DE112015003759T DE112015003759B4 DE 112015003759 B4 DE112015003759 B4 DE 112015003759B4 DE 112015003759 T DE112015003759 T DE 112015003759T DE 112015003759 B4 DE112015003759 B4 DE 112015003759B4
Authority
DE
Germany
Prior art keywords
counters
memory
processor
command
counter group
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
DE112015003759.4T
Other languages
English (en)
Other versions
DE112015003759T5 (de
Inventor
Jonathan David Bradbury
Daniel Vincent Rosa
Donald William Schmidt
Jane Bartik
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 DE112015003759T5 publication Critical patent/DE112015003759T5/de
Application granted granted Critical
Publication of DE112015003759B4 publication Critical patent/DE112015003759B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available 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
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Ein System und Verfahren zum Implementieren eines Befehls zum Bearbeiten einer Mehrzahl von Zählern, der ein Festlegen einer Zählergruppe auf der Grundlage des Befehls zum Bearbeiten, ob eine Berechtigung für den Zugang zu der Zählergruppe vorliegt und eines Speicherblocks in einem Speicher auf der Grundlage des Befehls zum Bearbeiten beinhaltet. In Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt, extrahieren das System und Verfahren die Mehrzahl von Zählern aus der Zählergruppe in Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt, und speichern die Mehrzahl von Zählern in dem Speicherblock.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf ein Bearbeiten (servicing) mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung und insbesondere auf einen Befehl zum Speichern aller Zähler in einer Zählergruppe mittels einer Prüfung von Zugangssteuerelementen (access controls) in Bezug auf diese Zählergruppe, um ein effektives Bearbeiten der Zähler zu ermöglichen.
  • In dem Maße, wie die Komplexität von Computersystemen zunimmt, vergrößert sich die Anzahl von Hardware-Messzählern (hardware instrumentation counters), um Informationen über die Hardware-Leistungsfähigkeit zu erhalten. Betriebssysteme, auf denen Client-Anwendungen ausgeführt werden, die die Hardware verwenden, fassen diese Messzähler zusammen, um Informationen über den Verlauf der Arbeitslast zu bekommen. Diese Messzähler werden häufig gemeinsam in Zählergruppen gruppiert, die Informationen eines gemeinsamen Teilsystems sammeln. Jede Zählergruppe enthält zugehörige Aktivierungs- und Berechtigungs-Steuerelemente. Wenn heutzutage die Messzähler bearbeitet werden, werden die Zähler lediglich nacheinander extrahiert. Somit muss für jeden Zähler in der Zählergruppe eine Zugangsprüfung für diesen Zähler ausgeführt werden, was einen zusätzlichen Verarbeitungsaufwand zur Folge hat.
  • BESCHREIBUNG STAND DER TECHNIK
  • Messzähler können so betrieben werden, dass sie einen oder mehrere Zählerstände einer oder mehrerer ausgewählter Aktivitäten erfassen, und Register können so betrieben werden, dass sie einen Satz von Leistungszähler-Konfigurationen speichern. Vor diesem Hintergrung offenbart US 2013 / 0 019 086 eine Zustandsmaschine, um automatisch ein Register aus den Registern auszuwählen, um den einen oder die mehreren Messzählern als Reaktion auf den Empfang eines ersten Signals neu zu konfigurieren. Die Zustandsmaschine kann ferner so betrieben werden, dass sie den einen oder die mehreren Messzählern auf der Grundlage einer Konfiguration rekonfiguriert, die in dem ausgewählten Register angegeben ist. Die Zustandsmaschine kann ferner so betrieben werden, dass sie als Reaktion auf den Empfang eines zweiten Signals Daten in einem oder mehreren ausgewählten Messzählern in eine Speicherstelle kopiert oder Daten von der Speicherstelle in die Zähler kopiert. Der Zustandsautomat kann betreibbar sein, um die Zählerwerte und die Konfiguration des Zustandsautomaten als Reaktion auf ein Kontextwechselereignis zu speichern oder wiederherzustellen.
  • US 2006 / 0 167 658 A1 offenbart ein Verfahren, eine Vorrichtung und ein Computerprogrammprodukt zum Abtasten aller von einem Prozessor erzeugten Leistungsereignissignale. Ein Leistungsmonitor ist in dem Prozessor enthalten. Der Leistungsmonitor empfängt Leistungsereignissignale von dem Prozessor. Diese Leistungsereignissignale zeigen den aktuellen Vollereigniszustand des Prozessors an. Eine begrenzte Anzahl von Zählern ist im Leistungsmonitor vorgesehen, um nur eine ausgewählte Teilmenge der Leistungsereignissignale zu zählen. Im Leistungsmonitor ist ein Ereignisregister vorgesehen, das die Leistungsereignissignale abfängt, bevor die Teilmenge der Leistungsereignissignale gezählt wird. Die Leistungsereignissignale werden zusammen als eine Einheit im Ereignisregister gespeichert. Die Einheit ist ein vollständiger Satz verfügbarer Performance-Ereignissignale, die den aktuellen vollständigen Ereigniszustand des Prozessors anzeigen.
  • US 2009/0 077 571 A1 beschreibt ein System zum Überwachen einer großen Anzahl von gleichzeitigen Ereignissen, das eine hybride Zählerfeldvorrichtung mit einem ersten Zählerteil implementiert, der Zählervorrichtungen umfasst, wobei jede Zählervorrichtung zum Empfangen von Signalen dient, die das Auftreten von Ereignissen von einer Ereignisquelle darstellen, und einen ersten Zählwert bereitstellt, der Bits niedrigerer Ordnung des hybriden Zählerfeldes entspricht. Ein zweiter Zählerabschnitt umfasst eine Speicherfeldvorrichtung mit adressierbaren Speicherplätzen in Übereinstimmung mit den Zählervorrichtungen, wobei jeder adressierbare Speicherplatz zum Speichern eines zweiten Zählwertes dient, der Bits höherer Ordnung darstellt. Eine Steuervorrichtung überwacht jede der Zählereinrichtungen und veranlasst die Aktualisierung eines Wertes eines entsprechenden zweiten Zählwertes, der an der entsprechenden adressierbaren Speicherstelle gespeichert ist. Das System enthält eine Unterbrechungsvoranzeige zur Bereitstellung eines schnellen Unterbrechungsauslösers für eine Prozessoreinrichtung, wenn ein Zählwert, der sich auf ein Ereignis bezieht, gleich einem Schwellenwert ist. Ein Datentransfer-Subsystem ermöglicht zusätzlich einen oder mehrere der folgenden Punkte: Lesezugriff oder Schreibzugriff auf die Zählwerte in den ersten und zweiten Zählerabschnitten über einen schmalen Bus, wobei der Lese-/Schreibzugriff zum Zwecke der Initialisierung und der Bestimmung des Status der Zählwerte für einen überwachten Ereignistyp als Reaktion auf eine Anforderung der Prozessorvorrichtung erfolgt.
  • US 2012 / 0 089 984 A1 beschreibt ein Verfahren bei dem Zählerregister von mehreren Threads, die auf mehreren Prozessorkernen ausgeführt werden, gemeinsam genutzt werden. Ein Ereignis innerhalb des Prozessorkerns wird ausgewählt. Ein Multiplexer vor jedem einer Anzahl von Zählern ist so konfiguriert, dass er das Ereignis an einen Zähler weiterleitet. Eine Anzahl von Zählern wird für das Ereignis jedem einer Vielzahl von Threads zugewiesen, die für eine Vielzahl von Anwendungen auf einer Vielzahl von Prozessorkernen laufen, wobei jeder der Zähler eine Thread-Kennung im Unterbrechungs-Thread-Identifikationsfeld und eine Prozessor-Kennung im Prozessor-Identifikationsfeld enthält. Die Anzahl der Zähler ist so konfiguriert, dass sie eine Anzahl von Interrupt-Thread-Identifikationsfeldern und eine Anzahl von Prozessor-Identifikationsfeldern aufweist, um einen Thread zu identifizieren, der eine Anzahl von Interrupts erhält.
  • AUFGABE DER ERFINDUNG
  • Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren, Sytem und Computerprogrammprodukt zum Implementieren eines Befehls zum Bearbeiten einer Mehrzahl von Zählern zu schaffen. Die Aufgaben werden durch die Merkmale der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • KURZDARSTELLUNG
  • Gemäß einer Ausführungsform der vorliegenden Erfindung handelt es sich um ein Verfahren zum Implementieren eines Befehls zum Bearbeiten (servicing instruction) einer Mehrzahl von Zählern, das beinhaltet: Festlegen einer Zählergruppe auf der Grundlage des Bearbeitungsbefehls; Ermitteln, ob eine Berechtigung für einen Zugang auf die Zählergruppe vorliegt; Festlegen eines Speicherblocks in einem Speicher auf der Grundlage des Bearbeitungsbefehls und in Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt; Extrahieren der Mehrzahl von Zählern aus der Zählergruppe in Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt; und Speichern der Mehrzahl von Zählern in dem Speicherblock.
  • Zusätzliche Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung realisiert. Weitere Ausführungsformen und Aspekte der Erfindung werden an dieser Stelle genau beschrieben und als Teil der beanspruchten Erfindung betrachtet. Für ein besseres Verständnis der Erfindung mit den Vorteilen und Merkmalen wird auf die Beschreibung und die Zeichnungen Bezug genommen.
  • Figurenliste
  • Der Gegenstand, der als die Erfindung betrachtet wird, wird in den Ansprüchen am Ende der Beschreibung besonders hervorgehoben und eindeutig beansprucht. Die vorhergehenden und weitere Merkmale und Vorteile der Erfindung werden aus der folgenden genauen Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen erfolgt, in denen:
    • 1 eine schematische Darstellung einer Datenverarbeitungseinheit eines Begleitsystems (servicing system) veranschaulicht;
    • die 2A bis B Komponenten einer schematischen Darstellung einer Datenverarbeitungseinheit eines Begleitsystems weiter veranschaulichen;
    • 3 einen Prozessablauf durch ein Begleitsystem veranschaulicht;
    • 4 eine Darstellung eines Bearbeitungsbefehls veranschaulicht; und
    • 5 einen weiteren Prozessablauf durch ein Begleitsystem veranschaulicht.
  • GENAUE BESCHREIBUNG
  • Wie oben angegeben entsteht bei derzeitigen Verfahren zum Verfolgungen und Extrahieren von Zählern ein zusätzlicher Aufwand für Betriebssysteme. Daher wird ein Befehl benötigt, um alle Zähler in einer Zählergruppe mit lediglich einer Prüfung von Zugangssteuerelementen in Bezug auf diese Zählergruppe zu speichern, um ein effektives Bearbeiten der Zählerwerte zu ermöglichen.
  • Im Allgemeinen können Ausführungsformen der vorliegenden Erfindung, die hier offenbart wird, ein Begleitsystem, ein Verfahren und/oder ein Computerprogrammprodukt („Begleitsystem“) enthalten, die einen Befehl zum Bearbeiten einer Mehrzahl von Zählern über eine Gruppenextraktion in einen Speicher ausführen. Beispielsweise ist jeder aus der Mehrzahl von Zählern einer Mehrzahl von Berechtigungs- oder Zugangssteuerelementen zugehörig. Des Weiteren können einige Zähler einer überlappenden Menge von Berechtigungssteuerelementen zugehörig sein (und sind somit in einer Zählergruppe gruppiert). Auf der Grundlage des Befehls wählt das Begleitsystem wiederum eine Zählergruppe und validiert oder prüft die Berechtigungssteuerelemente für diese Zählergruppe. Wenn das Begleitsystem die Berechtigungssteuerelemente bestätigt, extrahiert das Begleitsystem eine spezifizierte Anzahl von Zählern, die dieser Zählergruppe zugehörig sind, aus der Mehrzahl von Zählern als eine Gruppe und speichert die Gruppe von Zählern in einem Speicherblock. Auf diese Weise verbessert das Begleitsystem die Effektivität der Bearbeitung der Mehrzahl von Zählern dahingehend, dass die Berechtigungssteuerelemente jedes Zählers nicht einzeln angesprochen werden und deswegen Verarbeitungsressourcen nicht einzeln in Anspruch genommen werden.
  • In 1 ist ein beispielhaftes Begleitsystem 100 gezeigt, das eine Datenverarbeitungseinheit 112 enthält. Bei dem Begleitsystem 100 handelt es sich lediglich um ein Beispiel eines geeigneten Datenverarbeitungsknotens, und es soll keine Einschränkung in Bezug auf den Verwendungsumfang oder Funktionsfähigkeit der hier beschriebenen Erfindung unterstellen (es können tatsächlich zusätzliche oder alternative Komponenten und/oder Umsetzungen verwendet werden). Das heißt, das Begleitsystem 100 und darin vorhandene Elemente können viele unterschiedliche Formen annehmen und mehrere und/oder alternative Komponenten und Einrichtungen enthalten. Das Begleitsystem 100 kann des Weiteren eine beliebige Anzahl und Kombination von Datenverarbeitungseinheiten und Netzwerken enthalten und/oder verwenden, bei denen zahlreiche Datenübertragungstechnologien genutzt werden, die hier beschrieben werden. Unabhängig davon kann das Begleitsystem 100 umgesetzt werden und/oder jede der hier dargestellten Funktionen ausführen.
  • Bei dem Begleitsystem 100 gibt es eine Datenverarbeitungseinheit 112, die mit zahlreichen anderen von universellen oder speziellen Datenverarbeitungssystem-Umgebungen oder Konfigurationen betrieben werden kann. Bei Systemen und/oder Datenverarbeitungseinheiten wie beispielsweise dem Begleitsystem 100 und/oder der Datenverarbeitungseinheit 112 kann jedes von mehreren Computer-Betriebssystemen verwendet werden, darunter Versionen und/oder Variationen der Betriebssysteme AIX UNUX und z/OS, die durch International Business Machines Corporation, Armonk, New York vertrieben werden, das Betriebssystem Microsoft Windows, das Betriebssystem Unix (z.B. das Betriebssystem Solaris, das durch Oracle Corporation, Redwood Shores, Kalifornien vertrieben wird), das Betriebssystem Linux, die Betriebssysteme Mac OS X und iOS, die durch Apple Inc., Cupertino, Kalifornien vertrieben werden, das BS BlackBerry, das durch Research In Motion, Waterloo, Kanada vertrieben wird, und das Betriebssystem Android, das durch Open Headset Alliance entwickelt wurde, ohne auf diese beschränkt zu sein. Zu Beispielen von Datenverarbeitungssystemen, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit der Datenverarbeitungseinheit 112 geeignet sein können, gehören Personal Computersysteme, Server-Computersysteme, Thin Clients, Thick Clients, handgehaltene oder Laptop-Einheiten, Multiprozessorsysteme, mikroprozessorgestützte Systeme, Settop-Boxes, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Computer-Arbeitsstationen, Server, Desktops, Notebooks, Netzwerk-Einheiten, Mainframe-Computersysteme und verteilte Cloud-Datenverarbeitungsumgebungen, zu denen alle oben genannten Systeme und Einheiten gehören, und dergleichen, ohne auf diese beschränkt zu sein.
  • Die Datenverarbeitungseinheit 112 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Befehlen beschrieben werden, wie beispielsweise Programmmodule, die durch ein Computersystem ausgeführt werden. Programmmodule können allgemein Routinen, Programme, Objekte, Komponenten, Logikschaltungen, Datenstrukturen usw. enthalten, die spezielle Aufgaben ausführen oder spezielle abstrakte Datentypen umsetzen. Die Datenverarbeitungseinheit 112 kann in verteilten Cloud-Datenverarbeitungsumgebungen realisiert werden, bei denen Aufgaben durch ferne Verarbeitungseinheiten ausgeführt werden, die über ein Datenverarbeitungsnetzwerk verbunden sind. Bei einer verteilten Cloud-Datenverarbeitungsumgebung können Programmmodule sowohl in lokalen als auch fernen Computersystem-Speichermedien angeordnet sein, darunter Speichereinheiten.
  • Wie in 1 dargestellt ist die Datenverarbeitungseinheit 112 in dem Begleitsystem 100 in Form einer Universal-Datenverarbeitungseinheit gezeigt, die auf der Grundlage der Operation und Funktionalität des Begleitsystems 100, seiner Verfahren und/oder seiner Elemente verbessert ist. Zu den Komponenten der Datenverarbeitungseinheit 112 können ein oder mehrere Prozessoren oder Verarbeitungseinheiten (z.B. der Prozessor 114, der wenigstens einen Kern 114a enthält, der eine Mehrzahl von Threads 115 unterstützt; ein Begleitsystem 100 enthält z.B. einen Kern 114a eines Prozessors 114, der zwei oder mehrere Threads 115 aufweist; der Prozessor 114 enthält z.B. Zähler, die in Zählergruppen 116a und Berechtigungssteuerelemente 116b unterteilt sind), einen Speicher 117 und einen Bus 118, der die zahlreichen Systemkomponenten, darunter der Prozessor 114 und der Speicher 117, verbindet, ohne auf diese beschränkt zu sein. Die Datenverarbeitungseinheit 112 enthält außerdem üblicherweise eine Mehrzahl von durch ein Computersystem lesbaren Medien. Bei diesen Medien kann es sich um alle handelsüblichen Medien handeln, auf die durch die Datenverarbeitungseinheit 112 zugegriffen werden kann, und dazu zählen flüchtige und nichtflüchtige Medien, Wechsel- und Nichtwechselmedien.
  • Der Prozessor 114 kann computerlesbare Programmbefehle vom Speicher 117 empfangen und diese ausführen, wodurch ein oder mehrere Prozesse ausgeführt werden, die durch das Begleitsystem 100 definiert sind. Der Prozessor 114 kann jede Verarbeitungshardware, jede Software und jede Kombination von Hardware und Software enthalten, die durch die Datenverarbeitungseinheit 114 genutzt werden, die die computerlesbaren Programmbefehle durch Ausführen arithmetischer, logischer und/oder Eingabe/Ausgabe-Operationen ausführt. Zu Beispielen des Prozessors 114 und Hardware-Teileinheiten des Kerns 114a gehören eine arithmetische Logikeinheit, die arithmetische und logische Operationen ausführt, eine Steuereinheit, die Befehle aus einem Speicher extrahiert, decodiert und ausführt, ohne darauf beschränkt zu sein.
  • 2A veranschaulicht eine Ausführungsform einer Datenverarbeitungsumgebung, die den Prozessor 114 enthält, der mit einer Steuereinheit 215 verbunden ist. Bei einem Beispiel enthält eine Datenverarbeitungsumgebung auf der Grundlage der z/Architektur einen System z Server, der von der International Business Machine Corporation, Armonk, New York angeboten wird. Die Datenverarbeitungseinheit 112 kann beispielsweise einen oder mehrere physische Kerne enthalten (z.B. Core 1 bis Core m), mit denen ein Level-0-Hypervisor 214 betrieben wird (z.B. ein Manager einer logischen Partition), der eine oder mehrere Partitionen verwaltet (z.B. logische Partitionen LP1 bis LPn). Die Steuereinheit 215 kann zentralisierte Logikschaltungen enthalten, die zum Arbitrieren zwischen verschiedenen Kern-Anforderungen zuständig sind. Wenn beispielsweise die Steuereinheit 215 eine Anforderung Speicherzugriff empfängt, ermittelt sie, ob ein Zugriff auf diese Speicherposition zulässig ist, und wenn das der Fall ist, stellt sie die Inhalte dieser Speicherposition dem Prozessor 114 bereit, während eine Speicherkonsistenz zwischen Prozessoren innerhalb dieses Komplexes aufrechterhalten wird. Eine weitere Steuereinheit 215 kann die Anforderungen an und von der E/A-Schnittstelle 130 und dem Netzwerkadapter 132 verwalten, die in 1 gezeigt sind.
  • Physische Kerne sind den logischen Partitionen zugeordnet. Eine logische Partition kann einen oder mehrere logische Prozessoren enthalten, wobei jeder von diesen alle oder einen Teil der physischen Prozessorressourcen repräsentiert, die der Partition zugeordnet sind. Die physischen Kerne können entweder den logischen Kernen einer bestimmten Partition zugehörig sein, so dass physische Prozessorressourcen des zugrunde liegenden Kerns bzw. der zugrunde liegenden Kerne für diese Partition reserviert sind; oder können mit den logischen Kernen einer anderen Partition gemeinsam genutzt werden, so dass es sich bei physischen Prozessorressourcen des zugrunde liegenden Kerns bzw. der zugrunde liegenden Kerne um Ressourcen handelt, die potenziell für eine andere Partition zur Verfügung stehen. Jede logische Partition ist in der Lage, als ein separates System zu funktionieren. Das heißt, jede logische Partition kann unabhängig zurückgesetzt werden, bei Bedarf anfangs mit einem Betriebssystem geladen werden (z.B. ein Betriebssystem BS1 bis BSn) und mit unterschiedlichen Programmen betrieben werden. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer logischen Partition lausgeführt wird, kann scheinbar Zugriff auf ein vollständiges und abgeschlossenes System haben, in der Realität steht jedoch lediglich ein Abschnitt des gesamten Systems zur Verfügung. Eine Kombination aus Hardware und Licensed Internal Code (der auch als Firmware, Mikrocode oder Millicode bezeichnet wird) verhindert, dass ein Programm in einer logischen Partition auf ein Programm in einer anderen logischen Partition zugreift oder dieses stört. Das ermöglicht, dass mehrere unterschiedliche logische Partitionen in einem einzigen oder mehreren logischen Kernen in einem Zeitscheibenverfahren betrieben werden können. Bei einer Ausführungsform enthält jeder physische Kern einen oder mehreren zentrale Prozessoren (die hier auch als „physische Threads“ bezeichnet werden). Bei dem in 2A gezeigten Beispiel hat jede physische Partition ein residentes Betriebssystem, das sich für eine oder mehrere logische Partitionen unterscheiden kann. Bei jeder logischen Partition handelt es sich um ein Beispiel einer virtuellen Maschine oder einer Gast-Konfiguration, in denen ein Betriebssystem ausgeführt werden kann.
  • Bei der in 2A gezeigten Ausführungsform werden die logischen Partitionen LP1 bis LPn durch den Level-0-Hypervisor 214 verwaltet, der durch Firmware umgesetzt ist, die auf den physischen Kernen Core1 bis Core m ausgeführt wird. Die logischen Partitionen LP1 bis LPn und der Hypervisor 214 weisen jeweils ein oder mehrere Programme auf, die sich in entsprechenden Abschnitten des zentralen Speichers (Speicher) befinden, die den physischen Kernen Core 1 bis Core m zugehörig sind. Bei dem Prozessorressourcen/System-Manager (PR/SM™), der von International Business Machines Corporation, Armonk, New York angeboten wird, handelt es sich um ein Beispiel des Hypervisor 214.
  • 2B veranschaulicht eine Ausführungsform mit einer Mehrzahl von Zählergruppen 116a und einer entsprechenden Mehrzahl von BerechtigungsSteuerelementen 116b, wobei jedem Zähler (z.B. CNTR 1.1, CNTR 1.2, CNTR 1.3, CNTR 2.1, CNTR 2.2, CNTR 2.3, CNTR 2.4, CNTR 3.1, CNTR 3.2 und CNTR Z.Y) ein Berechtigungs-Steuerelement zugehörig ist (z.B. AC 1, AC 2, AC 3 und AC Z). Das Verarbeitungssystem 100 wählt daraufhin auf der Grundlage des Befehls eine Zählergruppe 116a.1, 116a.2, 116a.3, usw. und validiert oder prüft das entsprechende Berechtigungs-Steuerelement AC 1, AC 2, AC 3 usw. Bei einem Zähler kann es sich um einen binären Programmzähler handeln, der eines von vielen Registern in der Hardware des Prozessors 114 sein kann. Bei einem Zähler kann es sich des Weiteren um eine Bank von binären Signalspeichern handeln, von denen jeder ein Bit des Zählers repräsentiert, wobei die Anzahl von Bits (die Breite des Zählers) der Prozessorarchitektur entspricht. Wenn es sich bei dem Zähler um einen binären Zähler handelt, kann er erhöht werden, wenn ein Impuls an seinen Signaleingang COUNT UP angelegt wird.
  • In 1 kann der Speicher 117 eine materielle Einheit enthalten, die computerlesbare Programmbefehle halten und speichern kann, die durch das Begleitsystem 100 zur Verwendung durch den Prozessor 114 der Datenverarbeitungseinheit 112 bereitgestellt werden. Der Speicher 117 kann von einem Computersystem lesbare Medien in Form eines flüchtigen Speichers enthalten wie beispielsweise der Direktzugriffsspeicher (RAM) 120, der Cache-Speicher 122 und/oder das Speichersystem 124. Der Bus 118 repräsentiert einen oder mehrere Typen von verschiedenen Busstruktur-Typen, darunter ein Speicherbus oder eine Speichersteuereinheit, ein peripherer Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder Lokalbus unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Zu derartigen Architekturen gehören beispielsweise Industry-Standard-Architecture- (ISA-) Bus, Micro-Channel-Architecture- (MCA-) Bus, Enhanced-ISA- (EISA-) Bus, Video-Electronics-Standards-Association- (VESA-) Lokalbus und Peripheral-Component-Interconnect- (PCI-) Bus, ohne auf diese beschränkt zu sein.
  • Das Speichersystem 124 kann lediglich beispielhaft zum Lesen von und zum Schreiben auf nichtflüchtige Nichtwechsel-Medien (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Ein magnetisches Festplattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige Wechsel-Magnetplatte (z.B. ein „Floppy-Disc“) und ein optisches Plattenlaufwerk zum Lesen von oder zum Schreiben auf eine nichtflüchtige optische Wechsel-Platte wie z.B. ein CD-ROM, DVD-ROM oder andere optische Medien können bereitgestellt werden, wobei diese nicht gezeigt sind. Wie des Weiteren dargestellt und nachfolgend beschrieben kann der Speicher 117 wenigstens ein Programmprodukt mit einer Gruppe von Programmmodulen (z.B. wenigstens ein Programmmodul) enthalten, die zum Ausführen der Operationen von Ausführungsformen der Erfindung eingerichtet sind. Das Speichersystem 124 (und/oder der Speicher 117) können eine Datenbank, eine Datenablage oder andere Datenspeicher enthalten und können verschiedene Arten von Mechanismen zum Speichern, Zugreifen auf und Abrufen von verschiedenen Datenarten enthalten, darunter eine hierarchische Datenbank, eine Gruppe von Dateien in einem Dateisystem, eine Anwendungsdatenbank in einem geschützten Format, ein relationales Datenbank-Verwaltungssystem (RDBMS) usw. Das Speichersystem 124 kann im Allgemeinen wie dargestellt in der Datenverarbeitungseinheit 112 enthalten sein, ein Computer-Betriebssystem wie eines der oben erwähnten verwenden und über ein Netzwerk in einer oder mehreren aus einer Vielfalt von Arten aufgerufen werden.
  • Ein Programm/Dienstprogramm 125 mit einer Gruppe von Programmmodulen 128 (wenigstens einem Programmmodul) sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten können lediglich beispielhaft im Speicher 117 gespeichert sein, ohne darauf beschränkt zu sein. Jedes von Betriebssystem, einem oder mehreren Anwendungsprogrammen, weiteren Programmmodulen und Programmdaten oder eine bestimmte Kombination hiervon kann eine Umsetzung einer Netzwerkumgebung enthalten.
  • Die Datenverarbeitungseinheit 112 kann außerdem über eine Eingabe/Ausgabe- (E/A-) Schnittstelle 130 und/oder über einen Netzwerkadapter 132 Daten austauschen. Die E/A-Schnittstelle 130 und/oder der Netzwerkadapter 132 können einen physischen und/oder virtuellen Mechanismus enthalten, der von der Datenverarbeitungseinheit 112 für einen Datenaustausch zwischen internen und/oder externen Elementen der Datenverarbeitungseinheit 112 genutzt wird. Die E/A-Schnittstelle 130 kann beispielsweise mit einer oder mehreren externen Einheiten 140 wie z.B. eine Tastatur, eine Zeigeeinheit, eine Anzeige 140 usw.; einer oder mehreren Einheiten, die ermöglichen, dass ein Benutzer mit der Datenverarbeitungseinheit 112 interagiert; und/oder Einheiten (z.B. Netzwerkkarte, Modem usw.) Daten austauschen, die ermöglichen, dass die Datenverarbeitungseinheit 112 mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten austauscht. Des Weiteren kann die Datenverarbeitungseinheit 112 mit einem oder mehreren Netzwerken wie beispielsweise ein Lokalbereichsnetzwerk (LAN), ein allgemeines Weitbereichsnetzwerk (WAN) und/oder ein öffentliches Netzwerk (z.B. das Internet) über Netzwerkadapter 132 Daten austauschen. Daher können die E/A-Schnittstelle 130 und/oder der Netzwerkadapter 132 zum Empfangen oder Senden von Signalen oder Daten in die oder für die Datenverarbeitungseinheit 112 eingerichtet sein. Wie dargestellt tauschen die E/A-Schnittstellen 130 und der Netzwerkadapter 132 mit den anderen Komponenten der Datenverarbeitungseinheit 112 über den Bus 118 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten, obwohl nicht gezeigt, in Verbindung mit der Datenverarbeitungseinheit 112 verwendet werden könnten. Zu Beispielen gehören Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Arrays aus Festplattenlaufwerken, RAID-Systeme, Bandlaufwerke und Datenarchiv-Speichersysteme usw., ohne auf diese beschränkt zu sein.
  • Obwohl einzelne Elemente für das Begleitsystem 100 (und weitere Elemente) in 1 dargestellt sind, sollen diese Darstellungen nicht einschränkend sein, und daher kann jedes Element eine Mehrzahl von Elementen darstellen. Der Prozessor 114 kann beispielsweise eine Mehrzahl von Zählern enthalten, wobei jeder von diesen auf der Grundlage des hier beschriebenen Bearbeitungsbefehls bearbeitet wird.
  • Somit wird in Hinblick auf das oben Stehende eine Ausführungsform eines Befehls des Begleitsystems 100 unter Bezugnahme auf 3 beschrieben, die einen Prozessablauf 300 zum Speichern aller Zähler in einer Zählergruppe in einen Blockspeicher bei lediglich einer Validierung oder Prüfung von Zugangssteuerelementen, die dieser Zählergruppe entsprechen, veranschaulicht. Es ist zu beachten, dass zu den Parametern des Befehls („Bearbeitungsbefehl“) eine Anzahl von Zählern der Zählergruppe, von der gespeichert werden soll (z.B. erster Operand), eine Speicheradresse (z.B. zweiter Operand) und eine Zählergruppe (z.B. dritter Operand) gehören. Es ist zu beachten, dass im Allgemeinen die Inhalte eines Bereichs von Zählern, der durch den ersten und den dritten Operanden spezifiziert wird, an der Adresse gespeichert wird, die durch den zweiten Operanden spezifiziert wird. Zum Unterstützen der Beschreibung des Prozessablaufs 300 wird eine Ausführungsform des Bearbeitungsbefehls unter Bezugnahme auf 4 beschrieben, die einen Plan 400 veranschaulicht. Bei dem Plan 400 handelt es sich um ein Beispiel eines Layouts des Bearbeitungsbefehls im Speicher (z.B. Bits 0 bis 47), wobei es sich bei dem Feld ‚EB‘ um den Operationscode handelt, der den Befehl spezifiziert oder kennzeichnet, es sich bei dem Feld R_1 um den ersten Operanden handelt, es sich bei M_3 um den dritten Operanden handelt, die Felder B_2, DH_2 und DL_2 verknüpft werden, um den zweiten Operanden zu bilden, und es sich um ein Feld `17` handelt, das eine Operationscode-Erweiterung spezifiziert, die zusammen mit dem Operationscode den Befehl spezifiziert oder kennzeichnet.
  • Wenn in 3 das Begleitsystem 100 den Bearbeitungsbefehl empfängt (der beispielsweise durch die Felder `EB` und `17` gekennzeichnet ist), beginnt der Prozessablauf 300 am Startblock 305, bei dem das Begleitsystem 100 die Zählergruppe liest, um daraus eine Mehrzahl von Zählern aus dem Bearbeitungsbefehl zu extrahieren. Wie in 4 dargestellt handelt es sich bei dem Feld M_3 um ein codiertes Feld, das spezifiziert, welche Zählergruppe aus der Mehrzahl von Zählern zu extrahieren ist. Das heißt, das Feld M_3 spezifiziert einen Code, der verwendet wird, um die Zählergruppe anzugeben, die gespeichert werden soll, und wenn das Feld M_3 einen reservierten Wert spezifiziert, kann eine Spezifikationsausnahme erkannt werden. Das Feld M_3 kann beispielsweise eine Zählergruppe wie folgt spezifizieren: ‚0‘ bedeutet eine erweiterte Zählergruppe; ‚1‘ bedeutet eine grundlegende Zählergruppe; ‚2‘ bedeutet eine problematische Zählergruppe; usw. Jede Zählergruppe hat ihre eigene Berechtigung. Somit wird auf der Grundlage dessen, welche Zählergruppe durch das Feld M_3 spezifiziert wird, eine bestimmte Berechtigung geprüft.
  • Anschließend führt das Begleitsystem 100 im Ermittlungsblock 310 eine einzelne Zugangsprüfung für die Zählergruppe aus, die im Block 305 spezifiziert wurde. Auf der Grundlage der spezifizierten Zählergruppe 116a.1, 116a.2, 116a.3 usw. validiert oder prüft das Begleitsystem 100 beispielsweise die entsprechenden Berechtigungs-Steuerelemente AC 1, AC 2, AC 3 usw. Wenn die Zugangsprüfungen bestanden werden, geht der Prozessablauf 300 zum Block 315 (wie beispielsweise durch den Pfeil `Pass` angegeben), in dem das Begleitsystem 100 eine Startadresse eines Speicherblocks definiert, an der die Extraktion auf der Grundlage der Speicheradresse des Bearbeitungsbefehls zu erfolgen hat. Wie in 4 dargestellt handelt es sich bei dem zweiten Operanden um eine Adresse des Speicherblocks, in dem das Begleitsystem 100 die Zähler speichern wird. Der zweite Operand beruht auf den Inhalten der Bits 20 bis 39 (z.B. ein 20-Bit-Wert von den Feldern DL_2 und DH_2) und den Inhalten eines Registers, das durch die Bits 16 bis 19 spezifiziert ist (z.B. das Feld B_2). Beispielsweise wird ein Bitwert des Felds DH_2 mit einem Bitwert des Felds DL_2 verknüpft, um eine vorzeichenbehaftete 20-Bit-Zahl zu erzeugen, die zu einem Bitwert in einem Register addiert wird, das durch das Feld B_2 spezifiziert ist, um die Adresse zu berechnen.
  • Anschließend wird im Block 320 eine Anzahl von Zählern aus der Zählergruppe durch das Begleitsystem 100 gekennzeichnet. In diesem Fall muss die Anzahl von Zählern in der Zählergruppe ermittelt werden, so dass das Begleitsystem 100 die Anzahl von Zählern, die in der Blockspeichereinrichtung gehalten werden, mit der Anzahl von Zählern in der Zählergruppe vergleichen kann, wenn eine Berechtigung für die Zählergruppe vorliegt.
  • Sodann geht der Prozessablauf 300 zum Entscheidungsblock 325, in dem eine Anzahl von Zählern aus der Zählergruppe, die durch den Bearbeitungsbefehl definiert wird, in Bezug auf die Anzahl von Zählern in der Zählergruppe geprüft wird. Wie angegeben handelt es sich bei dem ersten Operanden um ein Universalregister, das die Anzahl von Zählern spezifiziert, die gespeichert werden sollen (z.B. der Wert in dem Register, der durch die Bits 8 bis 11 des Felds R_1 von 4 spezifiziert ist).
  • Wenn die Anzahl von Zählern, die gefordert werden, gleich der Anzahl von Zählern in der Zählergruppe ist, wird ein Bedingungscode auf einen ersten Wert eingestellt, z.B. null, und alle Zähler in der Zählergruppe werden durch das Begleitsystem 100 gespeichert (z.B. wie durch den Pfeil ‚0‘, Block 330 und Block 342 dargestellt). Wenn wie beispielsweise in 2B dargestellt die Zählergruppe 116a.1 spezifiziert ist und die Anzahl von geforderten Zählern drei ist, wird der Bedingungscode auf null eingestellt, da die Zählergruppe 116a.1 drei Zähler CNTR 1.1, CNTR 1.2, CNTR 1.3 enthält, wobei es sich dabei um die Anzahl von geforderten Zählern handelt. Ein Bedingungscode kann ein Wert sein, der beispielsweise bei einer Hardware-Ausführungsform von dem Begleitsystem 100 ausgegeben wird; er kann jedoch austauschbar mit einem Rückgabecode einer Emulator-Ausführungsform verwendet werden wie nachfolgend beschrieben wird.
  • Wenn die Anzahl von Zählern, die gefordert werden, kleiner ist als die Anzahl von Zählern in der Zählergruppe, wird ein Bedingungscode auf einen zweiten Wert eingestellt, beispielsweise eins, und eine Teilmenge der Zähler in der Zählergruppe wird durch das Begleitsystem 100 gespeichert (z.B. wie dargestellt durch den Pfeil ‚1‘, Block 335 und Block 342). Wenn beispielsweise wie in 2B dargestellt die Zählergruppe 116a.2 spezifiziert ist und die Anzahl von geforderten Zählern drei ist, wird der Bedingungscode auf eins eingestellt, da die Zählergruppe 116a.2 vier Zähler CNTR 2.1, CNTR 2.2, CNTR 2.3, CNTR 2.4 enthält, wobei es sich dabei um eine größere Anzahl als die Anzahl der geforderten Zähler handelt.
  • Wenn die Anzahl von Zählern, die gefordert werden, größer ist als die Anzahl von Zählern in der Zählergruppe, wird ein Bedingungscode auf einen dritten Wert eingestellt, beispielsweise zwei, und alle Zähler in der Zählergruppe werden durch das Begleitsystem 100 gespeichert (z.B. wie durch den Pfeil ‚2‘, Block 340 und Block 342 dargestellt). Wenn beispielsweise wie in 2B dargestellt die Zählergruppe 116a.3 spezifiziert ist und die Anzahl von geforderten Zählern drei ist, wird der Bedingungscode auf zwei eingestellt, da die Zählergruppe 116a.3 zwei Zähler CNTR 3.1, CNTR 3.2 enthält, wobei es sich dabei um eine kleinere Anzahl als die Anzahl der geforderten Zähler handelt.
  • Wenn im Block 310 die Zugangsprüfungen nicht bestanden werden, wird ein Bedingungscode auf einen vierten Wert eingestellt, beispielsweise drei, und die Zählergruppe wird nicht durch das Begleitsystem 100 blockweise gespeichert (wie z.B. dargestellt durch den Pfeil ‚Fail‘ Block 345 und Block 350). Es wird angemerkt, wenn es sich bei dem Bedingungscode um den vierten Wert handelt, hat das Begleitsystem 100 keine Berechtigung in Bezug auf die Zählergruppe oder die Anzahl von Zählern in der Zählergruppe, die durch den Bearbeitungsbefehl definiert ist, ist null.
  • Eine weitere Ausführungsform des Bearbeitungsbefehls von dem Begleitsystem 100 wird unter Bezugnahme auf 5 beschrieben, die einen Prozessablauf 500 veranschaulicht. Der Prozessablauf 500 beginnt im Block 505, in dem das Begleitsystem 100 einen Befehl als einen Bearbeitungsbefehl kennzeichnet (wie beispielsweise gekennzeichnet durch die Felder ‚EB‘ und ‚17‘ von 4). Anschließend kennzeichnet das Begleitsystem 100 eine Zählergruppe von dem Bearbeitungsbefehl (wie beispielsweise gekennzeichnet durch das Feld M_3 von 4). Anschließend führt das Begleitsystem 100 im Block 515 eine einzige Zugangsprüfung für die Zählergruppe aus, die im Block 505 spezifiziert wurde.
  • Wenn die Zugangsprüfungen bestanden werden, geht der Prozessablauf 500 zum Block 520 (wie dargestellt durch den Pfeil `Pass`), in dem das Begleitsystem 100 eine Speicheradresse berechnet, die durch den Bearbeitungsbefehl definiert ist (z.B. ein Bitwert des Felds DH_2 wird mit einem Bitwert des Felds DL_2 verknüpft, um eine vorzeichenbehaftete 20-Bit-Zahl zu erzeugen, die zum Berechnen der Adresse zu einem Bitwert in einem Register addiert wird, das durch das Feld B_2 spezifiziert ist). Anschließend vergleicht das Begleitsystem 100 im Block 525 eine Anzahl von Zählern, die durch den Bearbeitungsbefehl gefordert wird, mit der Anzahl von Zählern in der Zählergruppe (beispielsweise ein Wert in einem Register, der durch die Bits 8 bis 11 des Felds R_1 von 4 spezifiziert ist). Die Zähler werden anschließend im Block 530 an der berechneten Speicheradresse gespeichert (die beispielsweise durch das Begleitsystem 100 bearbeitet wird). Sodann stellt das Begleitsystem 100 auf der Grundlage des Vergleichs im Block 535 einen Rückgabecode ein. Bei einem Rückgabecode kann es sich um einen Wert handeln, der von dem Begleitsystem 100 beispielsweise bei einer Emulator-Ausführungsform ausgegeben wird; er kann jedoch wie oben beschrieben austauschbar mit einem Bedingungscode einer Hardware-Ausführungsform verwendet werden.
  • Wenn die Zugangsprüfungen nicht bestanden werden, geht der Prozessablauf 500 zum Block 550 (wie beispielsweise durch den Pfeil ‚Fail‘ dargestellt), in dem die Befehlsausführung mit einer Angabe beendet wird, dass die Zugangsprüfungen nicht bestanden wurden (z.B. Einstellen eines Rückgabecodes oder Signalisieren einer Ausnahme).
  • In Bezug auf die hier beschriebenen Beispiele des Prozessablaufs (z.B. 300, 400) kann das Begleitsystem 100 Programmunterbrechungscodes auf der Grundlage einer bestimmten Fehlerrückgabe bei der Zählergruppe, dem Speicherblock und/oder der Anzahl von Zählern ausführen. Programmunterbrechungscodes bewirken, dass der Bearbeitungsprozess auf der Grundlage der Fehlerbedingung beendet wird. Das Begleitsystem 100 kann beispielsweise eine Zugangsausnahme verarbeiten, wenn es sich bei der Adresse, die bei dem Befehl durch den zweiten Operanden spezifiziert wird, nicht um einen gültigen Operanden handelt (wenn beispielsweise eine Adresse außerhalb eines zulässigen Speicherbereichs liegt oder durch das Begleitsystem 100 ausgelagert wird, wird eine Zugangs-Programmunterbrechung ausgegeben). Das Begleitsystem 100 kann eine Operationsausnahme verarbeiten, wenn das Begleitsystem 100 eine ältere Hardware nutzt als die durch den Befehl unterstützte Hardware (wenn beispielsweise keine Einrichtung zur Mehrfach-Speicherung von CPU-Zählern installiert ist, wird eine Operations-Programmunterbrechung ausgegeben). Das Begleitsystem 100 kann eine privilegierte Operationsausnahme verarbeiten, wenn der Befehl ausgeführt wird, wenn kein Supervisor-Zustand vorliegt (wenn beispielsweise eine Anwendung versucht, auf Zähler zuzugreifen und das nicht zulässig ist, wird eine privilegierte Operationsausnahme ausgegeben). Das Begleitsystem 100 kann eine Spezifikationsausnahme verarbeiten, wenn ein ungültiger Parameter durch den Befehl definiert wird, wenn eine ungültige Zählergruppe spezifiziert wird, wenn eine Zähleranforderung zu umfangreich ist oder wenn eine Adresse des zweiten Operanden nicht an einer Doppelwort-Grenze liegt (wenn beispielsweise die Zählergruppe reserviert ist, wird eine Spezifikations-Programmunterbrechung ausgegeben). Das Begleitsystem 100 kann eine Transaktionseinschränkungs-Ausnahme verarbeiten, wenn versucht wird, den Befehl innerhalb einer Hardware-Transaktion im Prozessor auszuführen (wenn das der Fall ist, wird beispielsweise eine Transaktionseinschränkungs-Programmunterbrechung ausgegeben).
  • Datenverarbeitungseinheiten können im Allgemeinen einen Prozessor (z.B. einen Prozessor 114 von 1) und ein computerlesbares Speichermedium (z.B. einen Speicher 117 von 1) enthalten, wobei der Prozessor computerlesbare Programmbefehle beispielsweise von dem computerlesbaren Speichermedium empfängt und diese Befehle ausführt, wodurch ein oder mehrere Prozesse ausgeführt werden, darunter ein oder mehrere der hier beschriebenen Prozesse.
  • Computerlesbare Programmbefehle können von Computerprogrammen kompiliert oder interpretiert werden, die erzeugt werden unter Verwendung von Assembler-Befehlen, Befehlen mit Befehlssatz-Architektur (ISA), Maschinenbefehlen, maschinenabhängigen Befehlen, Mikrocode, Firmware-Befehlen, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf einer Datenverarbeitungseinheit, teilweise auf der Datenverarbeitungseinheit, als ein eigenständiges Software-Paket, teilweise auf einer lokalen Datenverarbeitungseinheit und teilweise auf einer Datenverarbeitungseinheit oder nur auf der fernen Datenverarbeitungseinheit ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem lokalen Computer durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen. Computerlesbare Programmbefehle, die hier beschrieben werden, können außerdem von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk (z.B. jede Kombination aus Datenverarbeitungseinheiten und Verbindungen, die den Datenaustausch unterstützen) zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Bei dem Netzwerk kann es sich z.B. um das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk handeln, es kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen und eine Mehrzahl von Datenübertragungstechnologien nutzen wie beispielsweise Funktechnologien, Zellen-Technologien usw.
  • Bei den computerlesbaren Speichermedien kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit (z.B. eine Datenverarbeitungseinheit, die oben beschrieben wurde) halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht auf diese beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Daher können das Verarbeitungssystem und das Verfahren und/oder Elemente hiervon als computerlesbare Programmbefehle auf einem oder mehreren Datenverarbeitungseinheiten umgesetzt werden, die auf einem diesen zugehörigen computerlesbaren Speichermedium gespeichert sind. Ein Computerprogrammprodukt kann diese computerlesbaren Programmbefehle aufweisen, die auf einem computerlesbaren Speichermedium zum Ausführen und/oder zum Bewirken gespeichert sind, dass ein Prozessor die Operationen des Verarbeitungssystem und des Verfahrens ausführt. Das Verarbeitungssystem und das Verfahren und/oder Elemente hiervon, die umgesetzt und/oder beansprucht werden, verbessern das Funktionieren eines Computers und/oder des eigentlichen Prozessors wegen der Fähigkeit, mehrere Zähleinrichtungen mit einem einzigen Befehl und einer einzigen Zugangsprüfung zu speichern, wodurch Effektivität und Geschwindigkeit der Verarbeitungsressource verbessert werden.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um zu bewirken, dass eine Reihe von Funktionsschritten, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, einen durch einen Computer umgesetzten Prozess erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme umgesetzt werden können, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen oder Kombinationen aus spezieller Hardware und Computerbefehlen realisieren.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Erläuterung dargestellt, es ist jedoch nicht vorgesehen, dass sie für die offenbarten Ausführungsformen erschöpfend oder einschränkend sein sollen. Viele Modifikationen und Variationen werden einem Fachmann offensichtlich erscheinen, ohne vom Umfang und Erfindungsgeist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber Technologien, die am Markt vorhanden sind, am besten zu erläutern oder um andere Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.
  • Die hier verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll die Erfindung nicht einschränken. Die hier verwendeten Singular-Formen „ein“ und „der/die/das“ sollen ebenso die Plural-Formen einschließen, falls im Kontext nicht ausdrücklich anders angegeben. Es ist ferner klar, dass die Ausdrücke „weist auf und/oder „aufweisend“ bei Verwendung in dieser Spezifikation das Vorhandensein von festgestellten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifiziert, jedoch nicht das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder deren Gruppen ausschließt.
  • Bei den hier dargestellten Ablaufplänen handelt es sich lediglich um ein Beispiel. Es kann bei diesem Plan oder den Schritten (oder Operationen), die hier beschrieben werden, viele Variationen geben, ohne vom Umfang der Erfindung abzuweichen. Die Schritte können beispielsweise in einer anderen Reihenfolge ausgeführt werden oder Schritte können angefügt, gelöscht oder modifiziert werden, alle diese Variationen werden als Teil der beanspruchten Erfindung betrachtet.
  • Zwar wurde die bevorzugte Ausführungsform der Erfindung beschrieben, es ist jedoch klar, dass Fachleute gegenwärtig oder zukünftig zahlreiche Verbesserungen und Erweiterungen durchführen können, die in den Umfang der nachfolgenden Ansprüche fallen. Diese Ansprüche sollten so ausgelegt werden, dass sie den geeigneten Schutz für die oben beschriebene Erfindung beibehalten.

Claims (18)

  1. Verfahren zum Implementieren eines Befehls zum Bearbeiten einer Mehrzahl von Zählern, wobei das Verfahren aufweist: durch einen Prozessor Festlegen einer Zählergruppe auf der Grundlage des Befehls zum Bearbeiten; durch den Prozessor Feststellen, ob eine Berechtigung für den Zugang zu der Zählergruppe vorliegt; durch den Prozessor Festlegen eines Speicherblocks in einem Speicher auf der Grundlage des Befehls zum Bearbeiten und in Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt; durch den Prozessor Extrahieren der Mehrzahl von Zählern aus der Zählergruppe in Reaktion auf ein Feststellen, dass eine Berechtigung für den Zugang vorliegt; und durch den Prozessor Speichern der Mehrzahl von Zählern in dem Speicherblock.
  2. Verfahren nach Anspruch 1, wobei der Befehl zum Bearbeiten einen ersten Operanden, der eine geforderte Anzahl von Zählern kennzeichnet, und einen zweiten Operanden enthält, der eine Adresse des Speicherblocks kennzeichnet.
  3. Verfahren nach Anspruch 1, wobei die Zählergruppe durch ein Bitfeld des Befehls zum Bearbeiten festgelegt wird.
  4. Verfahren nach Anspruch 1, wobei Festlegen des Speicherblocks in einem Speicher aufweist: Verknüpfen eines ersten Bitfelds mit einem zweiten Bitfeld, um eine Zahl zu erzeugen; und Addieren der Zahl zum Inhalt eines Registers, das durch ein drittes Bitfeld bezeichnet wird, um eine Adresse des Speicherblocks in dem Speicher zu erzeugen.
  5. Verfahren nach Anspruch 1, das ferner aufweist: Vergleichen einer geforderten Anzahl von Zählern, die durch den Befehl zum Bearbeiten gekennzeichnet ist, mit einer Anzahl von Zählern, die der Zählergruppe entspricht; und Ausgeben eines Bedingungscodes auf der Grundlage des Vergleichens.
  6. Verfahren nach Anspruch 1, das ferner aufweist: Erkennen einer Fehlerbedingung in Bezug auf den Befehl zum Bearbeiten; und Ausgeben einer Unterbrechung zum Beenden des Verfahrens.
  7. System zum Implementieren eines Befehls zum Bearbeiten für eine Mehrzahl von Zählern, das aufweist: einen Prozessor und einen Speicher, wobei der Prozessor eingerichtet ist zum: Festlegen einer Zählergruppe auf der Grundlage des Befehls zum Bearbeiten; Ermitteln, ob für einen Zugang auf die Zählergruppe eine Berechtigung vorliegt; Festlegen eines Speicherblocks in einem Speicher auf der Grundlage des Befehls zum Bearbeiten und in Reaktion auf ein Feststellen, dass für den Zugang eine Berechtigung vorliegt; Extrahieren der Mehrzahl von Zählern in der Zählergruppe in Reaktion auf ein Feststellen, dass für den Zugang eine Berechtigung vorliegt; und Speichern der Mehrzahl von Zählern in dem Speicherblock.
  8. System nach Anspruch 7, wobei der Befehl zum Bearbeiten einen ersten Operanden, der eine geforderte Anzahl von Zählern kennzeichnet, und einen zweiten Operanden enthält, der eine Adresse des Speicherblocks kennzeichnet.
  9. System nach Anspruch 7, wobei die Zählergruppe durch ein Bitfeld des Befehls zum Bearbeiten festgelegt ist.
  10. System nach Anspruch 7, wobei in Bezug auf das Festlegen des Speicherblocks in einem Speicher der Prozessor ferner eingerichtet ist zum: Verknüpfen eines ersten Bitfelds mit einem zweiten Bitfeld, um eine Zahl zu erzeugen; und Addieren der Zahl zum Inhalt eines Registers, das durch ein drittes Bitfeld bezeichnet ist, um eine Adresse des Speicherblocks in dem Speicher zu erzeugen.
  11. System nach Anspruch 7, wobei der Prozessor ferner eingerichtet ist zum: Vergleichen einer geforderten Anzahl von Zählern, die durch den Befehl zum Bearbeiten gekennzeichnet ist, mit einer Anzahl von Zählern, die der Zählergruppe entspricht; und Ausgeben eines Bedingungscodes auf der Grundlage des Vergleichens.
  12. System nach Anspruch 7, wobei der Prozessor ferner eingerichtet ist zum: Erkennen einer Fehlerbedingung in Bezug auf den Befehl zum Bearbeiten; und Ausgeben einer Unterbrechung zum Beenden des Verfahrens.
  13. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit Programmbefehlen aufweist, die einen Befehl zum Bearbeiten für eine Mehrzahl von Zählern implementieren, die darin verkörpert sind, wobei die Programmbefehle durch einen Prozessor ausführbar sind, um zu bewirken, dass der Prozessor ausführt: Festlegen einer Zählergruppe auf der Grundlage des Befehls zum Bearbeiten; Ermitteln, ob für den Zugang zu der Zählergruppe eine Berechtigung vorliegt; Festlegen eines Speicherblocks in einem Speicher auf der Grundlage des Befehls zum Bearbeiten und in Reaktion auf ein Feststellen, dass für den Zugang eine Berechtigung vorliegt; Extrahieren der Mehrzahl von Zählern in der Zählergruppe in Reaktion auf ein Feststellen, dass für den Zugang eine Berechtigung vorliegt; und Speichern der Mehrzahl von Zählern in dem Speicherblock.
  14. Computerprogrammprodukt nach Anspruch 13, wobei der Befehl zum Bearbeiten einen ersten Operanden, der eine geforderte Anzahl von Zählern kennzeichnet, und einen zweiten Operanden enthält, der eine Adresse des Speicherblocks kennzeichnet.
  15. Computerprogrammprodukt nach Anspruch 13, wobei die Zählergruppe durch ein Bitfeld des Befehls zum Bearbeiten festgelegt ist.
  16. Computerprogrammprodukt nach Anspruch 13, wobei in Bezug auf ein Festlegen des Speicherblocks in einem Speicher die Programmbefehle ferner durch den Prozessor ausführbar sind, um zu bewirken, dass der Prozessor ausführt: Verknüpfen eines ersten Bitfelds mit einem zweiten Bitfeld, um eine Zahl zu erzeugen; und Addieren der Zahl zum Inhalt eines Registers, das durch ein drittes Bitfeld bezeichnet wird, um eine Adresse des Speicherblocks in dem Speicher zu erzeugen.
  17. Computerprogrammprodukt nach Anspruch 13, wobei die Programmbefehle ferner durch den Prozessor ausführbar sind, um zu bewirken, dass der Prozessor ausführt: Vergleichen einer geforderten Anzahl von Zählern, die durch den Befehl zum Bearbeiten gekennzeichnet ist, mit einer Anzahl von Zählern, die der Zählergruppe entspricht; und Ausgeben eines Bedingungscodes auf der Grundlage des Vergleichens.
  18. Computerprogrammprodukt nach Anspruch 13, wobei die Programmbefehle ferner durch den Prozessor ausführbar sind, um zu bewirken, dass der Prozessor ausführt: Erkennen einer Fehlerbedingung in Bezug auf den Befehl zum Bearbeiten; und Ausgeben einer Unterbrechung zum Beenden des Verfahrens.
DE112015003759.4T 2014-10-03 2015-09-14 Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung Active DE112015003759B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/506,099 2014-10-03
US14/506,099 US9760302B2 (en) 2014-10-03 2014-10-03 Servicing multiple counters based on a single access check
PCT/EP2015/070979 WO2016050496A1 (en) 2014-10-03 2015-09-14 Servicing multiple counters based on a single access check

Publications (2)

Publication Number Publication Date
DE112015003759T5 DE112015003759T5 (de) 2017-08-17
DE112015003759B4 true DE112015003759B4 (de) 2023-01-19

Family

ID=54207464

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015003759.4T Active DE112015003759B4 (de) 2014-10-03 2015-09-14 Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung

Country Status (6)

Country Link
US (3) US9760302B2 (de)
JP (1) JP6537598B2 (de)
CN (1) CN106796501B (de)
DE (1) DE112015003759B4 (de)
GB (1) GB2546926B (de)
WO (1) WO2016050496A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760302B2 (en) 2014-10-03 2017-09-12 International Business Machines Corporation Servicing multiple counters based on a single access check
WO2020235628A1 (ja) * 2019-05-21 2020-11-26 クラレノリタケデンタル株式会社 光学的立体造形用樹脂組成物
CN113835927B (zh) * 2021-09-23 2023-08-11 武汉深之度科技有限公司 一种指令执行方法、计算设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167658A1 (en) 2005-01-27 2006-07-27 International Business Machines Corporation Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
US20090077571A1 (en) 2006-08-21 2009-03-19 International Business Machines Corporation Method and apparatus for efficient performance monitoring of a large number of simultaneous events
US20120089984A1 (en) 2010-10-08 2012-04-12 International Business Machines Corporation Performance Monitor Design for Instruction Profiling Using Shared Counters
US20130019086A1 (en) 2010-01-08 2013-01-17 International Business Machines Corporation Hardware support for software controlled fast multiplexing of performance counters

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62257547A (ja) 1986-04-30 1987-11-10 Toshiba Corp 計算機システムの負荷測定方式
US6278959B1 (en) * 1999-03-19 2001-08-21 International Business Machines Corporation Method and system for monitoring the performance of a data processing system
US6963967B1 (en) * 2000-06-06 2005-11-08 International Business Machines Corporation System and method for enabling weak consistent storage advantage to a firmly consistent storage architecture
US7016349B1 (en) * 2000-09-29 2006-03-21 Cypress Semiconductor Corp. Logic for generating multicast/unicast address (es)
US8762694B1 (en) * 2003-02-19 2014-06-24 Intel Corporation Programmable event-driven yield mechanism
US7272754B2 (en) 2003-09-27 2007-09-18 International Business Machines Corporation Implementation-efficient multiple-counter value hardware performance counter
US20050183065A1 (en) 2004-02-13 2005-08-18 Wolczko Mario I. Performance counters in a multi-threaded processor
US20050251791A1 (en) * 2004-04-14 2005-11-10 Robert Hundt Systems and methods for branch profiling loops of an executable program
US7889750B1 (en) * 2004-04-28 2011-02-15 Extreme Networks, Inc. Method of extending default fixed number of processing cycles in pipelined packet processor architecture
US20060203722A1 (en) * 2005-03-14 2006-09-14 Nokia Corporation System and method for managing performance of mobile terminals via remote diagnostics
US7548964B2 (en) * 2005-10-11 2009-06-16 International Business Machines Corporation Performance counters for virtualized network interfaces of communications networks
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US8607228B2 (en) 2006-08-08 2013-12-10 Intel Corporation Virtualizing performance counters
US7904704B2 (en) * 2006-08-14 2011-03-08 Marvell World Trade Ltd. Instruction dispatching method and apparatus
WO2008058088A1 (en) 2006-11-03 2008-05-15 Bay Microsystems, Inc. Highly-scalable hardware-based traffic management within a network processor integrated circuit
JP4973149B2 (ja) 2006-11-22 2012-07-11 富士通株式会社 仮想計算機の性能モニタ方法および計算機システム
US8230433B2 (en) 2007-06-26 2012-07-24 International Business Machines Corporation Shared performance monitor in a multiprocessor system
US9218183B2 (en) 2009-01-30 2015-12-22 Arm Finance Overseas Limited System and method for improving memory transfer
US8468275B2 (en) * 2010-01-08 2013-06-18 International Business Machines Corporation Hardware support for software controlled fast reconfiguration of performance counters
US8595389B2 (en) 2010-01-08 2013-11-26 International Business Machines Corporation Distributed performance counters
US8495318B2 (en) * 2010-07-26 2013-07-23 International Business Machines Corporation Memory page management in a tiered memory system
US8855970B2 (en) 2010-10-13 2014-10-07 The Trustees Of Columbia University In The City Of New York System and methods for precise microprocessor event counting
US8595472B2 (en) 2010-11-22 2013-11-26 International Business Machines Corporation Ganged hardware counters for coordinated rollover and reset operations
US20120226477A1 (en) 2011-03-04 2012-09-06 International Business Machines Corporation Reducing Overhead and Increasing Precision with Code Instrumentation
US8869118B2 (en) 2011-06-01 2014-10-21 International Business Machines Corporation System aware performance counters
US9021206B2 (en) * 2011-08-25 2015-04-28 International Business Machines Corporation Use of cache statistics to ration cache hierarchy access
EP2713519A1 (de) * 2012-09-27 2014-04-02 Nxp B.V. Elektronischer Zähler in einem nichtflüchtigen Speicher mit begrenzter Ausdauer
US9369371B2 (en) * 2012-10-05 2016-06-14 Cisco Technologies, Inc. Method and system for path monitoring using segment routing
US9344487B2 (en) * 2013-03-14 2016-05-17 Alcatel Lucent Method for networking cPaaS components for application on-boarding
US9424142B2 (en) * 2014-07-24 2016-08-23 Intel Corporation Hardware-assisted application checkpointing and restoring
US9760302B2 (en) * 2014-10-03 2017-09-12 International Business Machines Corporation Servicing multiple counters based on a single access check

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060167658A1 (en) 2005-01-27 2006-07-27 International Business Machines Corporation Method, apparatus, and computer program product in a performance monitor for sampling all performance events generated by a processor
US20090077571A1 (en) 2006-08-21 2009-03-19 International Business Machines Corporation Method and apparatus for efficient performance monitoring of a large number of simultaneous events
US20130019086A1 (en) 2010-01-08 2013-01-17 International Business Machines Corporation Hardware support for software controlled fast multiplexing of performance counters
US20120089984A1 (en) 2010-10-08 2012-04-12 International Business Machines Corporation Performance Monitor Design for Instruction Profiling Using Shared Counters

Also Published As

Publication number Publication date
US9760302B2 (en) 2017-09-12
US20160098273A1 (en) 2016-04-07
GB2546926B (en) 2019-08-21
DE112015003759T5 (de) 2017-08-17
CN106796501A (zh) 2017-05-31
JP6537598B2 (ja) 2019-07-03
US10534557B2 (en) 2020-01-14
US9710184B2 (en) 2017-07-18
US20170371549A1 (en) 2017-12-28
JP2017536602A (ja) 2017-12-07
GB2546926A (en) 2017-08-02
GB201706933D0 (en) 2017-06-14
US20160098202A1 (en) 2016-04-07
WO2016050496A1 (en) 2016-04-07
CN106796501B (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
DE112012000797B4 (de) Mehrfach-Modellierungsparadigma für eine Vorhersageanalytik
DE112011103048B4 (de) Ein Verfahren zum Beglaubigen einer Vielzahl von Datenverarbeitungssystemen
DE112017003937T5 (de) System, Verfahren und Computerprogrammprodukt zur Störungserkennung und - Lokalisierung in Stromnetz
DE112010003595T5 (de) Verfahren, System und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112018004660T5 (de) Verwenden von kommentaren zum bereitstellen von optimierungen
DE112016005823T5 (de) Überwachen des betriebs eines prozessors
DE112020005071B4 (de) Verfahren für eine datenschutzgerechte anomalie-erkennung im iot
DE112015003759B4 (de) Bearbeiten mehrerer Zähler auf der Grundlage einer einzigen Zugangsprüfung
DE112011105098T5 (de) Virtuelles BIOS
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE102016100773A1 (de) Erfassen von Komprimierungsleistungsmesswerten für die Verarbeitung von Daten
DE112020000891T5 (de) Erzeugung von nativem code für cloud-services
DE112020004487T5 (de) Erkennen von mutationsereignissen zum überwachen der integrität
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE112018004636T5 (de) Gleichzeitige änderung einer gemeinsam genutzten cachezeile durch mehrere prozessoren
DE112019001493T5 (de) Ermitteln der abfrageerkennungsresilienz in virtuellen agentensystemen
DE112021001974T5 (de) Proaktives durchführen von aufgaben auf der grundlage eines schätzens vonhardwarerekonfigurationszeiten
DE102016203828A1 (de) Auf Zugriffsrechten beruhender Speicherfixierungsmechanismus
DE112021004115B4 (de) Sicherheitssystem für eine Segmentierung von Computerdatei-Metadaten
DE112019002426T5 (de) Netzwerkleistungsbewertung ohne topologische informationen

Legal Events

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