-
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.