-
HINTERGRUND
-
Die vorliegende Anmeldung betrifft allgemein Computersysteme und genauer Prozessorkerne.
-
Anwendungsleistungsverbesserungen waren in hohem Maße das Ergebnis erhöhter Hardwareleistung. Da Strukturgrößen nicht nur technologische und ökonomische, sondern auch grundlegende physikalische Grenzen erreichen, sind vergleichbare Leistungszugewinne, die einer Hardwareentwicklung zuzuschreiben sind, nicht länger zu erwarten.
-
Es verbleibt jedoch Potenzial zum Optimieren von Software. Zum Beispiel könne die Softwarealgorithmen selbst verbessert werden. Vielleicht vielversprechender ist ein hardwarebewusstes Abstimmen der Software. Bisher kann es wünschenswert sein, Kenntnis der Hardwareeinheiten zu haben, die derzeit die Anwendungsleistung begrenzen, d. h. welche Hardwareeinheit den Engpass einer gegebenen Anwendung darstellt. Zum Beispiel kann die Arbeitsspeichereinheit einen Engpass der Anwendung darstellen, während die Berechnungseinheiten unterausgelastet sind. Dann kann es möglich sein, die Software anzupassen, dass sie weniger der Arbeitsspeichereinheit verwendet, aber mehr der Berechnungseinheit verwendet. Alternativ oder zusätzlich kann die Kenntnis des Engpasses ein Entwickeln zukünftiger Hardware erlauben, die mehr an Anwendungsbedürfnisse angepasst ist. Daher können Verfahren und Systeme für verbesserte Prozessorkerne wünschenswert sein.
-
Die Druckschrift
US 7 536 229 B2 betrifft ein Informationsverarbeitungsgerät, das einen ersten Informationsprozessor, eine Vielzahl von zweiten Informationsprozessoren und eine Vielzahl von Temperaturerfassungseinheiten umfasst, die die Temperatur in der Nähe von jedem der Vielzahl von zweiten Informationsprozessoren erfassen. Der erste Informationsprozessor umfasst eine Steuereinheit für die Ausführung von Anwendungsprogrammen, die die Ausführung eines Anwendungsprogramms steuert, eine Steuereinheit für die verteilte Verarbeitung, die die verteilte Verarbeitung steuert, eine Aufzeichnungseinheit, die erste Informationen bezüglich der von der Temperaturerfassungseinheit erfassten Temperatur und zweite Informationen bezüglich der Ausführung des Prozesses des zweiten Informationsprozessors aufzeichnet, eine Anomalie-Erfassungseinheit, die eine Anomalie in der von der Temperaturerfassungseinheit erfassten Temperatur erfasst, und eine Anomalie-Zeit-Steuereinheit, die die verteilte Verarbeitung der Steuereinheit für die verteilte Verarbeitung in Reaktion auf die von der Anomalie-Erfassungseinheit erfasste Temperaturanomalie steuert.
-
Die Druckschrift
US 7 549 075 B2 betrifft ein Verfahren zum Einstellen der Ausführungsfrequenz einer zentralen Verarbeitungseinheit (CPU) in einem elektronischen Gerät. Das Verfahren umfasst die folgenden Schritte: (a) Erhalten eines Zustands einer CPU-Arbeitslast in Echtzeit; (b) Prüfen einer Eigenschaftsfrequenz und einer Ausführungsfrequenz der CPU; (c) Bestimmen, ob der Zustand der CPU-Arbeitslast in einem höheren Zustand oder einem normalen Zustand ist; (d) Bestimmen, ob die Ausführungsfrequenz der CPU entsprechend dem Zustand der CPU-Arbeitslast geändert werden muss; (e) Berechnen eines Frequenzwertes gemäß der Eigenschaftsfrequenz und der Ausführungsfrequenz, wenn die Ausführungsfrequenz der CPU geändert werden muss; (f) Erzeugen einer geeigneten Frequenz gemäß dem Frequenzwert; und (g) Anpassen der Ausführungsfrequenz der CPU gemäß der geeigneten Frequenz.
-
Die Druckschrift
US 9 086 876 B2 betrifft Verfahren zum Betreiben einer Prozessorvorrichtung, welche mindestens einen Prozessorkern aufweist. Das Verfahren umfasst: Ausführen mehrerer Aufgaben auf dem mindestens einen Prozessorkern, wobei die mehreren Aufgaben in mindestens zwei Gruppen derart gruppiert sind, dass Aufgaben von mindestens zwei verschiedenen Gruppen auf dem mindestens einen Prozessorkern ablaufen, wobei Aufgaben von den mindestens zwei Gruppen, welche auf dem mindestens einen Prozessorkern ablaufen, relativ zueinander abweichende Anforderungen an die Kernleistung aufweisen und jeder der mindestens zwei Gruppen eine oder mehrere Gruppeneinstellungen zugeordnet sind, welche die abweichenden Anforderungen an die Kernleistung widerspiegeln; Überwachen der Nutzung des mindestens einen Prozessorkerns durch Aufgaben in den mindestens zwei verschiedenen Gruppen und Kompilieren der überwachten Nutzungen auf einer Gruppenbasis; Aggregieren der kompilierten Nutzungen des mindestens einen Prozessorkerns über die mindestens zwei verschiedenen Gruppen gemäß der einen oder den mehreren Gruppeneinstellungen, um eine Nutzung des mindestens einen Prozessorkerns durch die mindestens zwei verschiedenen Gruppen zu bestimmen, wobei die eine oder die mehreren Gruppeneinstellungen den jeweiligen Beitrag von jeder der einzelnen Gruppen zur Aggregation steuern; Ableiten eines Lastparameters für den mindestens einen Prozessorkern basierend auf der bestimmten Nutzung des Prozessorkerns durch die mindestens zwei verschiedenen Gruppen, wobei der Lastparameter auf die aggregierte Nutzung des mindestens einen Prozessorkerns durch die Aufgaben in den Gruppen, wie durch die eine oder die mehreren Gruppeneinstellungen gesteuert, über die mindestens zwei verschiedenen Gruppen schließen lässt; Auswählen einer Betriebsfrequenz für den mindestens einen Prozessorkern basierend auf dem Lastparameter; Ändern der Betriebsfrequenz des mindestens einen Prozessorkerns auf die ausgewählte Betriebsfrequenz.
-
Die Druckschrift WO 2017/ 016 074 A1 betrifft ein Verfahren zur Ermittlung der CPU-Belegungsrate. Das Verfahren umfasst: Erfassen einer ersten Ausführungsdauer und einer ersten Unterbrechungsdauer einer voreingestellten Aufgabe bei einer CPU innerhalb einer aktuellen Erfassungsperiode; wenn die erste Ausführungsdauer und die erste Unterbrechungsdauer erfasst sind, Verwenden einer Differenz zwischen der ersten Ausführungsdauer und der ersten Unterbrechungsdauer als eine erste tatsächliche Ausführungsdauer der voreingestellten Aufgabe bei der CPU innerhalb der aktuellen Erfassungsperiode; und Erfassen einer zweiten tatsächlichen Ausführungsdauer der voreingestellten Aufgabe in der CPU innerhalb einer vorherigen Erfassungsperiode und Berechnen einer Ausführungsbelegungsrate der voreingestellten Aufgabe in der CPU auf der Grundlage der ersten tatsächlichen Ausführungsdauer, der zweiten tatsächlichen Ausführungsdauer und der Erfassungsperiode.
-
KURZDARSTELLUNG
-
Die Erfindung betrifft einen Prozessorkern, ein computerumgesetztes Verfahren sowie ein Computersystem zum Erkennen eines Engpasses in einem Prozessorkern, deren Merkmalen in den entsprechenden Patentansprüchen angegeben sind. Ausführungsformen sind in den abhängigen Patentansprüchen angegeben.
-
Aspekte der Offenbarung betreffen einen Prozessorkern, der mindestens eine Ausführungseinheit und eine Auslastungsverhältnis-Steuereinheit enthält. Die Ausführungseinheit ist zum Ausführen eines an die Ausführungseinheit weitergeleiteten Befehls betreibbar. Die Auslastungsverhältnis-Steuereinheit ist betriebsmäßig mit der Ausführungseinheit verbunden. Die Auslastungsverhältnis-Steuereinheit ist zum Steuern des Auslastungsverhältnisses der Ausführungseinheit betreibbar. Dies entspricht dem Anteil der Gesamtausführungszeit, während derer die Ausführungseinheit Befehle ausführt.
-
Andere Aspekte der Offenbarung betreffen ein Verfahren zum Erkennen oder Analysieren eines Engpasses in einem Prozessorkern für eine gegebene Anwendung. Die Ausführung einer gegebenen Anwendung entspricht einem gegebenen Satz von Befehlen, die durch die Ausführungseinheiten eines Prozessorkerns auszuführen sind. Das Verfahren enthält ein Steuern des Auslastungsverhältnisses von mindestens einer Ausführungseinheit des Prozessorkerns und ein Messen der sich ergebenden Anwendungsleistung.
-
Die vorstehende Kurzdarstellung soll nicht jede veranschaulichte Ausführungsform oder jede Umsetzung der vorliegenden Offenbarung beschreiben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die folgende detaillierte Beschreibung, die beispielhaft gegeben ist und nicht die Erfindung allein darauf beschränken soll, wird am besten in Verbindung mit den begleitenden Zeichnungen ersehen, in denen:
- 1 ein beispielhaftes Computersystem gemäß einer Ausführungsform der vorliegenden Offenbarung ist;
- 2 einen ersten beispielhaften Prozessorkern gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt;
- 3 einen zweiten beispielhaften Prozessorkern gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt;
- 4 einen dritten beispielhaften Prozessorkern gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt;
- 5 einen vierten beispielhaften Prozessorkern gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt;
- 6 einen fünften beispielhaften Prozessorkern gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt; und
- 7 ein Ablaufplan ist, der ein beispielhaftes Verfahren zum Erkennen eines Engpasses in einem Prozessorkern für eine gegebene Anwendung gemäß einer Ausführungsform der vorliegenden Offenbarung darstellt.
-
Die Zeichnungen sind nicht notwendigerweise maßstäblich. Die Zeichnungen sind lediglich schematische Darstellungen und nicht als spezifische Parameter der Erfindung wiedergebend gedacht. Die Zeichnungen sollen nur übliche Ausführungsformen der Erfindung darstellen. In den Zeichnungen steht eine gleiche Nummerierung für gleiche Elemente.
-
DETAILLIERTE BESCHREIBUNG
-
Detaillierte Ausführungsformen der beanspruchten Strukturen und Verfahren werden hierin offenbart; es versteht sich jedoch, dass die offenbarten Ausführungsformen lediglich veranschaulichend für die beanspruchten Strukturen und Verfahren sind, die in vielfältigen Formen ausgeführt sein können. Diese Erfindung kann jedoch in vielen unterschiedlichen Formen ausgeführt sein und sollte nicht als auf die hierin dargelegten beispielhaften Ausführungsformen beschränkt angesehen werden. In der Beschreibung können Details allgemein bekannter Merkmale und Techniken weggelassen sein, um ein unnötiges Verschleiern der vorgelegten Ausführungsformen zu vermeiden.
-
Ausführungsformen der vorliegenden Erfindung betreffen allgemein das Gebiet von Computersystemen und genauer von Prozessorkernen. Die folgenden beschriebenen beispielhaften Ausführungsformen stellen ein System, Verfahren und Computerprogrammprodukt zum, neben anderen Dingen, Verwenden einer Arbeitszyklus-Steuereinheit zum Messen einer Leistung und von Leistungsbegrenzungen in einem Prozessorkern bereit. Daher besitzen die vorliegenden Ausführungsformen die Fähigkeit, das technische Gebiet von Computersystemen durch Bereitstellen einer Art eines Identifizierens eines Engpasses einer gegebenen Anwendung auf Grundlage eines Bestimmens von kritischen Komponenten des Systems, des Bedürfnisses nach mehreren Einheiten in dem System und der Identifizierung unterausgelasteter Einheiten in dem System, neben anderen Parametern, zu verbessern. Insbesondere können Ausführungsformen der vorliegenden Offenbarung die Auslastungsverhältnisse einer Mehrzahl von Ausführungseinheiten steuern und eine Anwendungsleistungsabhängigkeit zu den jeweiligen Auslastungsverhältnissen bestimmen, welche die Identifizierung eines Engpasses des Prozessorkerns erlauben können, der die Leistung einer Anwendung begrenzt.
-
Nun Bezug nehmend auf 1 wird ein beispielhaftes Computersystem/ein beispielhafter Server 12, das oder der anwendbar ist, um die Ausführungsformen der vorliegenden Offenbarung umzusetzen, gezeigt. Das Computersystem/der Server 12 ist nur veranschaulichend und soll nicht auf irgendeine Einschränkung im Hinblick auf den Umfang der Verwendung oder die Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung hindeuten.
-
Wie in 1 gezeigt, ist das Computersystem/der Server 12 in der Form einer universellen Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 12 können, ohne auf diese beschränkt zu sein, einen oder mehrere Prozessoren oder eine oder mehrere Verarbeitungseinheiten 16, einen Systemspeicher 28 und ein Bus 18 enthalten, der vielfältige Systemkomponenten einschließlich des Systemspeichers 28 mit dem Prozessor 16 verbindet.
-
Der Bus 18 steht für eine oder mehrere jeder beliebigen von verschiedenen Arten von Busstrukturen, die einen Speicherbus oder eine Speichersteuereinheit, einen Peripherieeinheiten-Bus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus unter Verwendung jeder beliebigen einer Vielfalt von Busarchitekturen enthalten. In beispielhafter Weise und ohne Einschränkung enthalten solche Architekturen einen ISA-Bus (Industry Standard Architecture (ISA) bus), einen MCA-Bus (Micro Channel Architecture (MCA) bus), einen erweiterten ISA-Bus (Enhanced ISA (EISA) bus), einen lokalen VESA-Bus (Video Electronics Standards Association (VESA) local bus) und einen PCI-Bus (Peripheral Component Interconnect (PCI) bus).
-
Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch Computersysteme lesbaren Medien. Bei solchen Medien kann es sich um jedes beliebige verfügbare Medium handeln, auf welches durch das Computersystem/den Server 12 zugegriffen werden kann, und es enthält sowohl flüchtige als auch nichtflüchtige Medien, Wechsel- und Nicht-Wechsel-Medien.
-
Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher, wie beispielsweise einen Direktzugriffsspeicher (random access memory (RAM)) 30, und/oder einen Cachespeicher 32 enthalten. Das Computersystem/der Server 12 kann ferner weitere Wechsel-/Nicht-Wechsel-, flüchtige/nichtflüchtige Computersystem-Datenspeicherungsmedien enthalten. In lediglich beispielhafter Weise kann ein Datenspeicherungssystem 34 für ein Lesen von und Schreiben auf ein nichtflüchtiges magnetisches Nicht-Wechsel-Medium bereitgestellt werden (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet). Obwohl nicht gezeigt, kann auch ein magnetisches Plattenlaufwerk zum Lesen von und Schreiben auf eine nichtflüchtige magnetische Wechselplatte (z.B. eine „Floppydiskette“) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine nichtflüchtige optische Wechselplatte, wie beispielsweise ein CD-ROM, DVD-ROM oder ein anderes optisches Medium, bereitgestellt werden. In solchen Beispielen kann jedes durch eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachstehend weiter dargestellt und beschrieben wird, kann der Speicher 28 mindestens ein Programmprodukt enthalten, das einen Satz (z.B. mindestens eines) von Programmmodulen besitzt, die konfiguriert sind, die Funktionen von Ausführungsformen der Erfindung auszuführen.
-
Ein Programm/Dienstprogramm (utility) 40 mit einem Satz (mindestens einem) von Programmmodulen 42 kann in dem Speicher 28 in beispielhafter Weise und ohne Einschränkung auch als Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten gespeichert sein. Jedes von dem Betriebssystem, dem einen oder den mehreren Anwendungsprogrammen, den anderen Programmmodulen und den Programmdaten oder irgendeine Kombination davon kann eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen allgemein die Funktionen und/oder Verfahrensweisen von Ausführungsformen der hierin beschriebenen Erfindung aus.
-
Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie beispielsweise einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/dem Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 12 befähigen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe(E/A)-Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netzwerk (local area network (LAN)), einem allgemeinen Weitverkehrsnetzwerk (wide area network (WAN)) und/oder einem öffentlichen Netzwerk (z.B. dem Internet), über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte verstanden werden, dass andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können, auch wenn sie nicht gezeigt sind. Beispiele enthalten, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Datenarchivierungs-Speicherungssysteme usw.
-
Es sollte festgehalten werden, dass Ausführungsformen der vorliegenden Offenbarung als das Programm/Dienstprogramm 40 oder die Programmmodule 42 von 1 umgesetzt werden können.
-
Nun Bezug nehmend auf 2 wird ein erster beispielhafter Prozessorkern 100 gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Der erste beispielhafte Prozessorkern 100 enthält eine Ausführungseinheit 120, die zum Ausführen eines Befehls betreibbar ist. In dem Beispiel von 2 wird die Ausführungseinheit 120 auch als Einheit A bezeichnet. Der erste beispielhafte Prozessorkern 100 kann auch mehr als eine Ausführungseinheit 120 enthalten. Zum Beispiel kann der erste beispielhafte Prozessorkern 100 zusätzliche eine Einheit B, eine Einheit C usw. enthalten (in der Figur nicht gezeigt). Zusätzlich zu einem Eingang zum Empfangen eines Befehls C, der auch Ausgabebefehl genannt werden kann, enthält die Ausführungseinheit zum Starten der Datenverarbeitung auch weitere Eingänge 121. Zum Beispiel können die weiteren Eingänge 121 verwendet werden, um Daten zu empfangen, die durch die Ausführungseinheit 120 zu manipulieren sind. Es sollte festgehalten werden, dass die Ausführung einer gegebenen Anwendung einem gegebenen Satz von Befehlen entspricht, die durch die Ausführungseinheiten eines Prozessorkerns auszuführen sind.
-
Des Weiteren enthält der erste beispielhafte Prozessor 100 eine oder mehrere Auslastungsverhältnis-Steuereinheiten 130. Die Auslastungsverhältnis-Steuereinheit 130 kann auch „Bereitschaftsblocker“ genannt werden. Jede Auslastungsverhältnis-Steuereinheit 130 ist betriebsmäßig mit einer oder mehreren Ausführungseinheiten 120 verbunden. Jede Auslastungsverhältnis-Steuereinheit 130 kann zum Steuern des Auslastungsverhältnisses ihrer verbundenen Ausführungseinheiten 130 betreibbar sein. Wie dem Fachmann bekannt ist, kann eine Ausführungseinheit eines Prozessorkerns nur für eine Zeit tA einer Beobachtungszeitperiode T aktiv sein. Das Verhältnis tA / T wird Auslastungsverhältnis genannt.
-
Die Ausführungseinheit 120 kann ein Bereitschaftssignal R übertragen, das angibt, dass die vorhergehende Berechnung durchgeführt wurde und dass die Ausführungseinheit 120 zum Ausführen der nächsten Berechnung bereit ist. Die Auslastungsverhältnis-Steuereinheit 130 ist zum Erzeugen eines modifizierten Bereitschaftssignals R* aus dem Bereitschaftssignal R betreibbar, wie in der Figur gezeigt.
-
Der erste beispielhafte Prozessorkern 100 kann ferner eine Ausgabeeinheit 110 enthalten, die zum Weiterleiten des nächsten Befehls C betreibbar ist, der die Ausführungseinheit veranlasst, eine Berechnung auf Grundlage des modifizierten Bereitschaftssignals R* zu starten. Die Ausgabeeinheit 110 kann weitere Eingänge 111 enthalten, durch die weitere Signale empfangen werden müssen, bevor die Ausgabeeinheit 110 den Befehl C ausgibt.
-
Die Auslastungsverhältnis-Steuereinheit 130 kann das Bereitschaftssignal Reinen bestimmten Prozentsatz der Zeit maskieren. Dementsprechend kann das modifizierte Bereitschaftssignal R* an die Ausgabeeinheit 110 nicht jedes Mal übertragen werden, wenn die Auslastungsverhältnis-Steuereinheit 130 das Bereitschaftssignal R von der Ausführungseinheit 120 empfängt. Somit kann das Auslastungsverhältnis der Ausführungseinheit 120 modifiziert, insbesondere verringert, werden. Das Bereitschaftssignal R und/oder das modifizierte Bereitschaftssignal R* können einer statischen Spannung (d.h. hoch oder niedrig) auf einer statischen elektrischen Verbindung zwischen den entsprechenden Einheiten entsprechen. Es kann jedoch auch möglich sein, das Bereitschaftssignal R und das modifizierte Bereitschaftssignal R* als Nachrichten auf einem Bus zu übertragen.
-
Die individuelle Modifizierung des Auslastungsverhältnisses der einzelnen Ausführungseinheit kann eine detaillierte Analyse eines Engpasses ermöglichen, der die Leistung der gegebenen Anwendung begrenzt, verglichen mit einem Verringern der Betriebsfrequenz des Prozessorkerns. Von bekannten Verfahren zum Analysieren des Hardwareeinflusses auf die Anwendungsleistung bekannte Nebenwirkungen können vermieden werden. Zum Beispiel kann eine Verringerung einer Betriebsfrequenz des Prozessorkerns nicht nur das Auslastungsverhältnis der Ausführungseinheiten verringern, sondern kann auch das elektrische Verhalten des Prozessorkerns, z.B. Spannungen, Ströme, Kapazitäten, beeinflussen. Darüber hinaus können die in dieser Anmeldung vorgeschlagenen Techniken verglichen mit traditionellen Verfahren zum Beeinflussen der Hardwareleistung eine feinere Granularität bereitstellen. Zum Beispiel können das vorgeschlagene Verfahren und zugeordnete System eine feinere Granularität bereitstellen als ein einfaches Verwenden von mehr oder weniger Prozessoren pro Sockel. Des Weiteren können die vorgeschlagenen Auslastungsverhältnis-Steuereinheiten den zusätzlichen Vorteil besitzen, dass sie für unterschiedliche Ausführungseinheiten verwendet werden können. Zum Beispiel kann derselbe Typ von Auslastungsverhältnis-Steuereinheit für eine Ausführungseinheit, die arithmetische Berechnungen durchführt und eine Ausführungseinheit, die einen Speicherzugriff steuert, verwendet werden.
-
Unabhängig können ein Steuern der Auslastungsverhältnisse einer Mehrzahl von Ausführungseinheiten und ein Bestimmen einer Anwendungsleistungsabhängigkeit von den jeweiligen Auslastungsverhältnissen ein Identifizieren eines Engpasses des Prozessorkerns erlauben, der eine gegebene Leistung einer Anwendung begrenzt.
-
Die Auslastungsverhältnis-Steuereinheit 130 kann ein Rückkopplungsschieberegister 132 und ein UND-Gatter 131 zum Bereitstellen des modifizierten Bereitschaftssignals R* enthalten. Das UND-Gatter 131 empfängt an einem ersten Eingang das Bereitschaftssignal R und ein durch das Rückkopplungsschieberegister 132 übertragenes Gattersteuerungssignal G an einem zweiten Eingang. Das Rückkopplungsschieberegister 132 kann mit jedem Taktzyklus des ersten beispielhaften Prozessorkerns 100 verschieben. Man kann sehr leicht Rückkopplungsschieberegister und UND-Gatter in integrierten Schaltungen umsetzen. Insbesondere können Rückkopplungsschieberegister und UND-Gatter sehr wenig Raum auf einem Halbleiterchip erfordern. Das Rückkopplungsschieberegister 132 kann ein n-Bit-Rückkopplungsschieberegister sein. Das Rückkopplungsschieberegister 132 kann bei der Initialisierungszeit mit einer Anzahl von j Nullen („0“) und einer Anzahl von k Einsen („1“) vorgeladen sein, wobei die Summe von j und k gleich n ist. Das Verhältnis zwischen j (oder k) und n kann den Anteil von Taktzyklen bestimmen, für welchen die Auslastungsverhältnis-Steuereinheit 130 das Bereitschaftssignal R maskieren wird. Die Anzahl n von Bits des Rückkopplungsschieberegisters 132 kann bestimmen, wie fein dieser Anteil ausgewählt werden kann. Zum Beispiel kann die Länge des Rückkopplungsschieberegisters 132 kürzer als 100 Bit, insbesondere kürzer als 50 Bit, und länger als 5 Bit, insbesondere 10 Bit, sein.
-
Nun Bezug nehmend auf 3 ist ein zweiter beispielhafter Prozessorkern 200 einschließlich einer Ausgabeeinheit 210 mit Eingängen 211, einer Ausführungseinheit 220 mit Eingängen 221 und einer Auslastungsverhältnis-Steuereinheiteneinheit (usage ratio controller unit) 230 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Betreffend die Interaktion der Ausgabeeinheit 211, der Ausführungseinheit 221, der Eingänge 211 und der Auslastungsverhältnis-Steuereinheiteneinheit 230 miteinander, wird Bezug auf die vorstehenden Erklärungen für den ersten beispielhaften Prozessorkern 100 von 2 und seine entsprechenden Elemente genommen: die Ausgabeeinheit 110, die weiteren Eingänge 111, die Ausführungseinheit 120, die weiteren Eingänge 121 und die Auslastungsverhältnis-Steuereinheit 130.
-
Der zweite beispielhafte Prozessorkern 200 unterscheidet sich von dem ersten beispielhaften Prozessorkern 100 in der inneren Struktur der Auslastungsverhältnis-Steuereinheiteneinheit 230. Die Auslastungsverhältnis-Steuereinheiteneinheit 230 enthält ein UND-Gatter 231 wie die Auslastungsverhältnis-Steuereinheit 130 das UND-Gatter 131 enthält, und beide UND-Gatter 131, 231 empfangen an einem ersten Eingang das Bereitschaftssignal R von der jeweiligen Ausführungseinheit 120, 130 und übertragen ein modifiziertes Bereitschaftssignal R* an die jeweilige Ausgabeeinheit 110, 210. Ein Vergleicher 233 vergleicht eine Zufallszahl B, die von einem Zufallszahlengenerator 235, z.B. einem Pseudozufallszahlengenerator, kommend empfangen wird, mit einer in einem Grenzregister 234 gespeicherten Grenze A.
-
Der Zufallszahlengenerator 235 kann eine Zufallszahl B zwischen Null und n-1 erzeugen. Entsprechend kann das Grenzregister 234 eine Grenze A zwischen Null und n-1 speichern. Nur wenn die Zufallszahl B kleiner als die Grenze A ist, wird der Vergleicher 233 ein Gattersteuerungssignal G an das UND-Gatter 231 übertragen. Das Erzeugen des Gattersteuerungssignals auf Grundlage einer Zufallszahl kann ein Erzeugen von regelmäßigen Schritten innerhalb der elektrischen Schaltungen des Prozessorkerns vermeiden, was unerwartete Nebenwirkungen besitzen kann.
-
Nun Bezug nehmend auf 4 ist ein dritter beispielhafter Prozessorkern 300 einschließlich einer Ausgabeeinheit 310 mit Eingängen 311, einer Ausführungseinheit 320 mit Eingängen 321 und einer Auslastungsverhältnis-Steuereinheiteneinheit 330 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Betreffend die Interaktion der Ausgabeeinheit 310, der Eingänge 311, der Ausführungseinheit 320, der Eingänge 321 und der Auslastungsverhältnis-Steuereinheiteneinheit 330 miteinander, wird Bezug auf die vorstehenden Erklärungen für den ersten beispielhaften Prozessorkern 100 von 2 und seine entsprechenden Elemente genommen: die Ausgabeeinheit 110, die weiteren Eingänge 111, die Ausführungseinheit 120, die weiteren Eingänge 121 und die Auslastungsverhältnis-Steuereinheit 130.
-
Der dritte beispielhafte Prozessorkern 300 unterscheidet sich von dem ersten beispielhaften Prozessorkern 100 und dem zweiten beispielhaften Prozessorkern 200 in der inneren Struktur der Auslastungsverhältnis-Steuereinheiteneinheit 330. Die Auslastungsverhältnis-Steuereinheiteneinheit 330 enthält einen Vergleicher 333, ein Grenzregister 334 und einen Zufallsgenerator 335 wie die Auslastungsverhältnis-Steuereinheiteneinheit 230 den Vergleicher 233, das Grenzregister 234 und den Zufallsgenerator 235 enthält. Der Vergleicher 333 überträgt jedoch das Gattersteuerungssignal G an eine finite Zustandsmaschine (finite state machine (FSM)) anstatt des UND-Gatters 231.
-
Die finite Zustandsmaschine 336 empfängt das Bereitschaftssignal R als erste Eingabe und das Gattersteuerungssignal G als zweite Eingabe und überträgt ihren aktuellen Zustand, d.h. Eins oder Null, als modifiziertes Bereitschaftssignal R*. Falls sowohl das Bereitschaftssignal R als auch das Gattersteuerungssignal G Eins betragen, d.h. R/G = 1/1, gibt die finite Zustandsmaschine 336 den Zustand Eins, d.h. „1“, ein. Solange das Bereitschaftssignal R 1 beträgt, d.h. R/G = 1/-, hält die finite Zustandsmaschine 336 den Zustand Eins, d.h. „1“, aufrecht. Nur wenn das Bereitschaftssignal R Null wird, d.h. R/G = 0/-, gibt die finite Zustandsmaschine 336 den Zustand Null, d.h. „0“, ein. Solange entweder das Bereitschaftssignal R Null bleibt, d.h. R/G = 0/- oder das Gattersteuerungssignal G Null bleibt, d.h. R/G = -/0, bleibt die finite Zustandsmaschine 336 in dem Zustand Null, d.h. „0“, der an die Ausgabeeinheit 310 überragen wird.
-
Die vorgeschlagene Auslastungsverhältnis-Steuereinheiteneinheit 330, welche die finite Zustandsmaschine 336 verwendet, kann nur ein Erhöhen des Auslastungsverhältnisses der Ausführungseinheit 320 erlauben, sie wird keine zusätzlichen Belegtzyklen einstreuen, sobald die FSM in Zustand 1 ist und die Ausführungseinheit 320 auf neue Befehle wartet.
-
Dies wird das Problem verbessern, aber nicht zu 100 % beseitigen, dass die vorherigen zwei Umsetzungen Belegtzyklen einstreuen werden, egal wie lange die Ausführungseinheit bereits auf neue Befehle gewartet hat. Darüber hinaus kann der Zufallsgenerator 335 dabei helfen, die Bildung von Schritten zu vermeiden.
-
In einer alternativen Ausführungsform der Auslastungsverhältnis-Steuereinheiteneinheit 330 könnte der Schaltkreis, der den Vergleicher 333, das Grenzregister 334 und den Zufallsgenerator 335 enthält, durch ein Rückkopplungsschieberegister ähnlich dem Rückkopplungsschieberegister 132 ersetzt werden.
-
Nun Bezug nehmend auf 5 ist ein vierter beispielhafter Prozessorkern 400 einschließlich einer Ausgabeeinheit 410 mit Eingängen 411, einer Ausführungseinheit 420 mit Eingängen 421 und einer Auslastungsverhältnis-Steuereinheiteneinheit 430 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Betreffend die Interaktion dieser Elemente: der Ausgabeeinheit 410, der Eingänge 411, der Ausführungseinheit 420, der Eingänge 421 und der Auslastungsverhältnis-Steuereinheiteneinheit 430 miteinander, wird Bezug auf die vorstehenden Erklärungen für den ersten beispielhaften Prozessorkern 100 von 2 und seine entsprechenden Elemente genommen: die Ausgabeeinheit 110, die weiteren Eingänge 111, die Ausführungseinheit 120, die weiteren Eingänge 121 und die Auslastungsverhältnis-Steuereinheit 130.
-
Der vierte beispielhafte Prozessorkern 400 unterscheidet sich von den vorgenannten beispielhaften Prozessorkernen 100, 200, 300 in der inneren Struktur der Auslastungsverhältnis-Steuereinheiteneinheit 430. Die Auslastungsverhältnis-Steuereinheit 430 enthält ein UND-Gatter 431 wie die Auslastungsverhältnis-Steuereinheiteneinheiten 130 und 230 die UND-Gatter 131 bzw. 231 enthalten. Ähnlich den UND-Gattern 131 und 231 empfängt das UND-Gatter 431 an einem ersten Eingang das Bereitschaftssignal R von der entsprechenden Ausführungseinheit 420. Zusätzlich empfängt das UND-Gatter 431 an einem zweiten Eingang ein Gattersteuerungssignal G von einem Auslastungsverhältnisbegrenzer 436.
-
Der Auslastungsverhältnisbegrenzer 436 enthält eine Auslastungsverhältnisschaltung 440, die das letzte Auslastungsverhältnis der Ausführungseinheit 420 misst. Die Auslastungsverhältnisschaltung 440 enthält ein Schieberegister 441, welches das Bereitschaftssignal von der Ausführungseinheit 420 und einen Zähler 442 empfängt. Der Zähler empfängt an einem ersten Eingang ein Signal von dem Schieberegister 441, das den in dem Zähler 442 gespeicherten Wert dekrementiert, und an einem zweiten Eingang das Bereitschaftssignal R von der Ausführungseinheit 420, das den in dem Zähler 442 gespeicherten Wert inkrementiert. Der Zähler 442 kann die Anzahl von „Einsen“ in dem Schieberegister 441 zählen. In einer alternativen Ausführungsform kann eine Auslastungsverhältnisschaltung für eine Mehrzahl von N Ausführungseinheiten verwendet werden. Die N Ausführungseinheiten können mehreren Instanzen derselben Ausführungseinheit entsprechen. In diesem Fall kann die Auslastungsverhältnisschaltung eine Anzahl von N Bereitschaftssignalen R von den N Ausführungseinheiten empfangen. Anstatt des Einschiebens/Hinzufügens von „0“ und „1“, wie hierin vorstehend beschrieben, würde die Anzahl von Bereitschaftssignalen R, die „1“ betragen, eingeschoben/hinzugefügt.
-
Der in dem Zähler 442 gespeicherte Wert kann das Auslastungsverhältnis der Ausführungseinheit 420 angeben. Ein Vergleicher 443 vergleicht den durch den Zähler 442 übermittelten Wert mit einer in dem Grenzregister 434 gespeicherten Grenze. Wenn das Auslastungsverhältnis größer als das gewünschte Auslastungsverhältnis ist, überträgt der Vergleicher 433 das Gattersteuerungssignal G an das UND-Gatter 431.
-
Die in dem Grenzregister 434 gespeicherte Grenze und die Anzahl von Bits des Schieberegisters 441 kann eine maximales gewünschtes Auslastungsverhältnis der Ausführungseinheit bestimmen. Je größer die Anzahl von Bits in dem Schieberegister, desto feiner ist die Granularität des Auslastungsverhältnisbegrenzers 436 und desto länger ist das Messfenster. Zum Beispiel kann die Anzahl von Bits des Schieberegisters 5 bis 100 Bit, insbesondere 10 bis 50 Bit, betragen.
-
Ein Messen eines jüngsten tatsächlichen Auslastungsverhältnisses der Ausführungseinheit kann ein Erweitern des scheinbaren Auslastungsverhältnisses nur erlauben, wenn das jüngste tatsächliche Auslastungsverhältnis bereits relativ hoch ist. Ein Erhöhen des Auslastungsverhältnisses einer bereits stark verwendeten Ausführungseinheit kann eine bessere Erkennung erlauben, ob eine stark verwendete Ausführungseinheit wirklich einen Engpass für die Leistung der gegebenen Anwendung darstellt.
-
Nun Bezug nehmend auf 6 ist ein fünfter beispielhafter Prozessorkern 500 einschließlich einer Ausgabeeinheit 510 mit Eingängen 511, einer Ausführungseinheit 520 mit Eingängen 521 und einer Auslastungsverhältnis-Steuereinheiteneinheit 530 gemäß einer Ausführungsform der vorliegenden Offenbarung gezeigt. Betreffend die Interaktion dieser Elemente: der Ausgabeeinheit 510, der Eingänge 511, der Ausführungseinheit 520, der Eingänge 521 und der Auslastungsverhältnis-Steuereinheiteneinheit 530 miteinander, wird Bezug auf die vorstehenden Erklärungen für den ersten beispielhaften Prozessorkern 100 von 1 und seine entsprechenden Elemente genommen: die Ausgabeeinheit 110, die weiteren Eingänge 111, die Ausführungseinheit 120, die weiteren Eingänge 121 und die Auslastungsverhältnis-Steuereinheit 130.
-
Die Auslastungsverhältnisschaltung 540 entspricht der Auslastungsverhältnisschaltung 440 und enthält auch ein Schieberegister 541 und einen Zähler 542. Insbesondere kann die Auslastungsverhältnisschaltung 540 auch so modifiziert werden, dass sie für eine Mehrzahl von Ausführungseinheiten verwendet werden kann, wie vorstehend beschrieben.
-
Ein Multiplexer 550 empfängt das Signal von dem Auslastungsverhältnisbegrenzer 536 und überträgt abhängig von seinen Werten entweder die in einem höheren Grenzregister 538 gespeicherte höhere Grenze oder die in einem niedrigeren Grenzregister 539 gespeicherte niedrigere Grenze an den Vergleicher 533. Der Vergleicher 533 vergleicht den empfangenen Wert mit einer von einem Zufallszahlengenerator 535 empfangenen Zufallszahl und überträgt das Gattersteuerungssignal G abhängig von dem Ergebnis des Vergleichs an das UND-Gatter 531.
-
Die vorgeschlagene Auslastungsverhältnis-Steuereinheiteneinheit 530 kann ein Steuern des Auslastungsverhältnisses auf Grundlage eines Vergleichs des gemessenen Auslastungsverhältnisses und eines gewünschten Auslastungsverhältnisses erlauben. Wenn das gemessene Auslastungsverhältnis größer als das gewünschte Auslastungsverhältnis ist, kann eine hohe Wahrscheinlichkeit für ein Übertragen eines Gattersteuerungssignals ausgewählt werden. Wenn umgekehrt das gemessene Auslastungsverhältnis kleiner als das gewünschte Auslastungsverhältnis ist, kann eine niedrigere Wahrscheinlichkeit für das Übertragen eines Gattersteuerungssignals ausgewählt werden.
-
Nun Bezug nehmend auf 7 ist ein Ablaufplan, der die Schritte eines Verfahrens zum Erkennen eines Engpasses in einem Prozessorkern für eine gegebene Anwendung gemäß einer Ausführungsform der vorliegenden Offenbarung beschreibt, gezeigt. Bei Schritt 702 wird ein Auslastungsverhältnis einer Ausführungseinheit des Prozessorkerns gesteuert, wobei die Ausführungseinheit einen an die Ausführungseinheit weitergeleiteten Befehl ausführt. Bei Schritt 704 kann eine Anwendungsleistung auf Grundlage des Auslastungsverhältnisses gemessen werden. Das Auslastungsverhältnis entspricht einem Anteil einer Gesamtbeobachtungszeitperiode, während derer die Ausführungseinheit den Befehl ausführt.
-
In manchen Ausführungsformen kann eine Ausgabeeinheit zum Weiterleiten des Befehls an die Ausführungseinheit auf Grundlage des modifizierten Bereitschaftssignals verwendet werden. Ferner kann eine Periode, während derer das Bereitschaftssignal angibt, dass die Ausführungseinheit das Ausführen des Befehls starten kann, in manchen Instanzen begrenzt sein.
-
In anderen Ausführungsformen kann das modifizierte Bereitschaftssignal auf Grundlage eines Zufallssignals erzeugt werden und das Auslastungsverhältnis auf Grundlage eines gewünschten Auslastungsverhältnisses gesteuert werden.
-
Daher betreffen Ausführungsformen der vorliegenden Offenbarung einen Prozessorkern einschließlich einer Ausführungseinheit, wobei die Ausführungseinheit zum Ausführen eines an die Ausführungseinheit weitergeleiteten Befehls betreibbar ist; und eine Auslastungsverhältnis-Steuereinheit, die betriebsmäßig mit der Ausführungseinheit verbunden ist, wobei die Auslastungsverhältnis-Steuereinheit zum Steuern eines Auslastungsverhältnisses der Ausführungseinheit betreibbar ist und das Auslastungsverhältnis dem Anteil der Gesamtbeobachtungszeitperiode entspricht, während derer die Ausführungseinheit Befehle ausführt.
-
Gemäß einer Ausführungsform ist die Auslastungsverhältnis-Steuereinheit zum Erzeugen eines modifizierten Bereitschaftssignals von einem durch die Ausführungseinheit übertragenen Bereitschaftssignal betreibbar, und das Bereitschaftssignal gibt an, dass die Ausführungseinheit zum Empfangen des Befehls bereit ist.
-
Gemäß einer weiteren Ausführungsform enthält der Prozessorkern eine Ausgabeeinheit, die zum Weiterleiten des Befehls an die Ausführungseinheit auf Grundlage des modifizierten Bereitschaftssignals betreibbar ist.
-
In einer weiteren Ausführungsform enthält die Auslastungsverhältnis-Steuereinheit einen Auslastungsverhältnisbegrenzer, und der Auslastungsverhältnisbegrenzer ist zum Begrenzen einer Periode betreibbar, während derer das Bereitschaftssignal angibt, dass die Ausführungseinheit das Ausführen des Befehls starten kann.
-
Einer zusätzlichen Ausführungsform folgend enthält die Auslastungsverhältnis-Steuereinheit ein Schieberegister zum Abtasten des durch die Ausführungseinheit erzeugten Bereitschaftssignals und einen Schaltkreis zum Erzeugen des modifizierten Bereitschaftssignals auf Grundlage von Inhalt des Schieberegisters.
-
Gemäß einer weiteren Ausführungsform enthält die Auslastungsverhältnis-Steuereinheit einen Zufallsgenerator zum Erzeugen eines Zufallssignals und einen Schaltkreis zum Erzeugen des modifizierten Bereitschaftssignals auf Grundlage des Zufallssignals.
-
In einer Ausführungsform ist die Ausführungseinheit eine Lade-Speicher-Einheit oder ein Teil davon. Die Ausführungseinheit kann auch eine Vektoreinheit und/oder eine binärcodierte Dezimaleinheit (binary-coded decimal unit (BCD unit)) sein.
-
Einer weiteren Ausführungsform folgend, ist die Ausführungseinheit eine arithmetische Einheit.
-
Darüber hinaus betrifft die Offenbarung ein Verfahren zum Erkennen oder Analysieren eines Engpasses in einem Prozessorkern für eine gegebene Anwendung einschließlich Steuern eines Auslastungsverhältnisses von mindestens einer Ausführungseinheit des Prozessorkerns; und Messen einer Anwendungsleistung.
-
In einer Ausführungsform enthält das Verfahren ein Erzeugen eines modifizierten Bereitschaftssignals von einem durch die Ausführungseinheit übertragenen Bereitschaftssignal, das Bereitschaftssignal gibt an, dass die Ausführungseinheit zum Empfangen des Befehls bereit ist.
-
Gemäß einer weiteren Ausführungsform enthält das Verfahren ein Verwenden einer Ausgabeeinheit zum Weiterleiten des Befehls an die Ausführungseinheit auf Grundlage des modifizierten Bereitschaftssignals.
-
Einer zusätzlichen Ausführungseinheit folgend, enthält das Verfahren ein Begrenzen einer Periode, während derer das Bereitschaftssignal angibt, dass die Ausführungseinheit das Ausführen des Befehls starten kann.
-
In einer weiteren Ausführungsform enthält das Verfahren ferner ein Erzeugen des modifizierten Bereitschaftssignals auf Grundlage des Zufallssignals.
-
Gemäß einer weiteren Ausführungsform enthält das Verfahren ein Steuern des Auslastungsverhältnisses auf Grundlage eines gewünschten Auslastungsverhältnisses.
-
Einer weiteren Ausführungsform folgend enthält das Verfahren ferner ein Steuern eines zweiten Auslastungsverhältnisses einer zweiten Ausführungseinheit, ein Bestimmen einer Anwendungsleistungsabhängigkeit von dem Auslastungsverhältnis der einen Ausführungseinheit und dem zweiten Auslastungsverhältnis der zweiten Ausführungseinheit.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speicherungsmedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich zum Beispiel um eine elektronische Speicherungseinheit, eine magnetische Speicherungseinheit, eine optische Speicherungseinheit, eine elektromagnetische Speicherungseinheit, eine Halbleiterspeicherungseinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speicherungsmediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speicherungsmedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speicherungsmedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speicherungseinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server enthalten. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speicherungsmedium innerhalb der entsprechenden Datenverarbeitungs-/ Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speicherungsmedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speicherungsmedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt enthält, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) enthalten. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Während Schritte des offenbarten Verfahrens und Komponenten des offenbarten Systems und der offenbarten Umgebungen sequentiell oder seriell unter Verwendung von Zahlen und Buchstaben identifiziert wurden, ist ein solches Versehen mit Zahlen und Buchstaben keine Angabe, dass solche Schritte in der angegebenen Reihenfolge durchgeführt werden müssen, und wird lediglich bereitgestellt, um eine klare Bezugnahme der Schritte des Verfahrens zu ermöglichen. Des Weiteren können Schritte des Verfahrens parallel durchgeführt werden, um ihre beschriebene Funktionalität durchzuführen.
-
Die Beschreibungen der vielfältigen Ausführungsformen der vorliegenden Erfindung wurden zu Zwecken der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt beabsichtigt. Viele Modifikationen und Variationen sind für den Fachmann ersichtlich, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt anzutreffenden Technologien am besten zu erklären oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.