DE112021006005T5 - Filtern von zusatzprozessor-befehlstypen - Google Patents

Filtern von zusatzprozessor-befehlstypen Download PDF

Info

Publication number
DE112021006005T5
DE112021006005T5 DE112021006005.8T DE112021006005T DE112021006005T5 DE 112021006005 T5 DE112021006005 T5 DE 112021006005T5 DE 112021006005 T DE112021006005 T DE 112021006005T DE 112021006005 T5 DE112021006005 T5 DE 112021006005T5
Authority
DE
Germany
Prior art keywords
command
instruction
type filtering
filtering mode
adjunct processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021006005.8T
Other languages
English (en)
Inventor
Louis P. Gomes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/122,363 external-priority patent/US12026555B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112021006005T5 publication Critical patent/DE112021006005T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Fats And Perfumes (AREA)

Abstract

Eine Zusatzprozessor-Befehlstypfilterung umfasst ein Ermitteln, ob der Ziel-Zusatzprozessor so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus unterstützt, und ob ein weiterer Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt. Auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, wird ein Befehl zu dem anderen Zusatzprozessor zur Verarbeitung weitergeleitet, um zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist. Auf der Grundlage der Verarbeitung bei dem anderen Zusatzprozessor wird eine Angabe erhalten, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist. Auf der Grundlage eines Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, wird der Befehl zur Ausführung an den Ziel-Zusatzprozessor gesendet.

Description

  • HINTERGRUND
  • Ein oder mehrere Aspekte betreffen allgemein ein Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung und insbesondere ein Erleichtern der Verarbeitung in Zusammenhang mit der Befehlsverarbeitung innerhalb der Datenverarbeitungsumgebung.
  • Datenverarbeitungsumgebungen enthalten oftmals unterschiedliche Arten von Prozessoren zum Verbessern der Verarbeitung. Eine Datenverarbeitungsumgebung kann zum Beispiel eine oder mehrere Zentraleinheiten enthalten, die als Hauptprozessoren angesehen werden, und einen oder mehrere Zusatzprozessoren, die als den Zentraleinheiten untergeordnet angesehen werden. Ein Zusatzprozessor führt normalerweise bestimmte Arten von Aufgaben durch. Zum Beispiel handelt es sich bei einem bestimmten Beispiel eines Zusatzprozessors um eine Verschlüsselungskarte (Verschlüsselungskarte), die zum Durchführen von kryptografischen Operationen verwendet wird.
  • Bei einem Beispiel einer bei International Business Machines Corporation, Armonk, New York, erhältlichen Verschlüsselungskarte handelt es sich um eine an einem Kanal angeschlossene Crypto-Express-Karte. Eine Crypto-Express-Karte ist so definiert, dass sie mehrere Typen von Befehlen wie z.B. Befehle unter Verwendung verschlüsselter Schlüssel (die als Befehle mit sicheren Schlüsseln bezeichnet werden), Befehle unter Verwendung unverschlüsselter Schlüssel (die als Befehle mit unverschlüsselten Schlüsseln bezeichnet werden), Hash-Befehle, Abfragebefehle, Zufallszahlengeneratorbefehle usw. unterstützt. Ferner ist eine Crypto-Express-Karte so ausgelegt, dass sie mehrere Modi unterstützt, unter anderem zum Beispiel: einen CCA-Modus (CCA = Common Cryptographic Architecture), einen Beschleunigermodus, einen Modus gemäß den Enterprise Public Key Cryptographic Standards (PKCS) (PKCS-Modus) (der auch als XCP/EP11-Enterprise-PKCS#11-Modus bezeichnet wird) unterstützt. Jeder Modus ist so konfiguriert, dass er bestimmte Typen von Befehlen verarbeitet.
  • Eine Crypto-Express-Karte kann so konfiguriert sein, dass sie für die Dauer der aktivierten Computerkonfiguration in einem der unterschiedlichen mehreren Modi arbeitet. Wenn ein Kunde die unterschiedlichen Modi verwenden möchte, würde die Datenverarbeitungsumgebung daher mindestens die Anzahl von Karten für die unterschiedlichen mehreren Modi enthalten, wobei jede in einem anderen Modus konfiguriert und in der Lage ist, bestimmte Typen von Befehlen zu verarbeiten, die für diesen Modus definiert sind.
  • KURZDARSTELLUNG
  • Mängel des Stands der Technik werden überwunden und weitere Vorteile bereitgestellt, indem ein Computerprogrammprodukt zum Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung bereitgestellt wird. Das Computerprogrammprodukt enthält ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, um ein Verfahren durchzuführen. Das Verfahren umfasst ein Ermitteln, ob ein Ziel-Zusatzprozessor einer Mehrzahl von Zusatzprozessoren der Datenverarbeitungsumgebung so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus unterstützt und prüft, ob ein weiterer Zusatzprozessor der Mehrzahl von Zusatzprozessoren so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt. Auf der Grundlage eines Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, wird ein Befehl zu dem anderen Zusatzprozessor zur Verarbeitung weitergeleitet, um zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist. Auf der Grundlage der Verarbeitung bei dem anderen Zusatzprozessor wird eine Angabe erhalten, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist. Der Befehl wird auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, zur Verarbeitung an den Ziel-Zusatzprozessor gesendet.
  • Indem der Befehl durch den anderen Zusatzprozessor verarbeitet wird, wird eine Ausführung des Befehls simuliert, sodass bekannt ist, ob der Befehl zur Ausführung auf dem Ziel-Zusatzprozessor gültig ist. Die Simulation beseitigt die Notwendigkeit, für jeden unterstützten Zusatzprozessortyp eine statische Liste von Zusatzprozessorbefehlen jedes Befehlstypfilterungsmodus aufrechtzuerhalten. Somit werden die Verarbeitung erleichtert und die Leistung verbessert.
  • Bei einer Ausführungsform wird der Befehl auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist, als für den ausgewählten Befehlstypfilterungsmodus ungültig zurückgewiesen, und die Ausführung auf dem Ziel-Zusatzprozessor wird unterlassen. Somit werden die Verarbeitung erleichtert und die Leistung verbessert, indem der Befehl auf dem anderen Zusatzprozessor simuliert und festgestellt wird, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist und daher nicht wie angefordert auf dem Ziel-Zusatzprozessor ausgeführt werden soll.
  • Bei einer Ausführungsform umfasst das Zurückweisen ein Ablegen eines Fehlercodes an einem zentralen Speicherort, um das Zugreifen auf den Fehlercode zu erleichtern. Das Verwenden einer von den Modi des Zusatzprozessors unabhängigen Stelle zum Zurückgeben des Fehlercodes erleichtert das Lokalisieren der Fehlercodes durch das Programm unabhängig davon, wer den Fehler erzeugt (z.B. der Hypervisor unter Verwendung einer Simulation der Befehlstypfilterung, der Zusatzprozessor in einem bestimmten Modus usw.).
  • Bei einer Ausführungsform wird auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, ein Befehl als Befehl des ausgewählten Befehlstypfilterungsmodus zu einer Befehlsliste hinzugefügt. Die Befehlsliste soll zum Ermitteln verwendet werden, welche Befehle zur Ausführung auf dem Ziel-Zusatzprozessor gültig sind. Ferner wird bei einer Ausführungsform auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist, der Befehl als gültiger Zusatzprozessorbefehl zu der Befehlsliste hinzugefügt. Die Befehlsliste, die dynamisch aktualisiert wird, erleichtert die Verarbeitung und verbessert die Leistung, indem eine Ermittlung erleichtert wird, welche Befehle für den Zielprozessor gültig sind. Die Befehlsliste ist jedoch optional, da die Befehle auf einem oder mehreren Zusatzprozessoren simuliert werden können, die den/die ausgewählten Befehlstypfilterungsmodus/-modi unterstützen.
  • Bei einer Ausführungsform wird der Befehl auf der Grundlage des Feststellens zurückgewiesen, dass die Mehrzahl von Zusatzprozessoren nicht so konfiguriert sind, dass sie den ausgewählten Befehlstypfilterungsmodus unterstützen. Bei einer Ausführungsform wird die Simulation nicht durchgeführt, wenn keiner der Zusatzprozessoren den ausgewählten Befehlstypfilterungsmodus unterstützt; dadurch werden die Verarbeitung erleichtert und die Leistung verbessert.
  • Bei einer Ausführungsform wird auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, wird eine Ermittlung dahingehend durchgeführt, ob sich der Befehl auf einer Befehlsliste befindet, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, ob der Befehl auf dem Ziel-Zusatzprozessor ausgeführt werden soll. Der Befehl wird auf der Grundlage des Feststellens, dass sich der Befehl nicht auf der Befehlsliste befindet, zu dem anderen Zusatzprozessor zur Verarbeitung weitergeleitet. Die Befehlsliste, die dynamisch aktualisiert wird, erleichtert die Verarbeitung und verbessert die Leistung, indem eine Ermittlung erleichtert wird, welche Befehle für den Ziel-Zusatzprozessor gültig sind.
  • Bei einer Ausführungsform wird auf der Grundlage einer erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor der Befehl als gültiger Befehl des ausgewählten Befehlstypfilterungsmodus zu der Befehlsliste hinzugefügt. Bei einer Ausführungsform wird auf der Grundlage einer nicht erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor der Befehl als gültiger Zusatzprozessorbefehl zu der Befehlsliste hinzugefügt.
  • Bei dem ausgewählten Befehlstypfilterungsmodus handelt es sich zum Beispiel um einen zustandslosen Befehlsfilterungsmodus. Ferner weist die Mehrzahl von Zusatzprozessoren beispielhaft eine Mehrzahl von Verschlüsselungskarten auf.
  • Außerdem werden hierin mit Hilfe von Computern realisierte Verfahren und Systeme beansprucht, die einen oder mehrere Aspekte betreffen. Ferner werden hierin Dienste beschrieben und unter Umständen beansprucht, die einen oder mehrere Aspekte betreffen.
  • Weitere Merkmale und Vorteile werden durch die hierin beschriebenen Techniken realisiert. Andere Ausführungsformen und Aspekte werden hierin eingehend beschrieben und als Teil der beanspruchten Aspekte betrachtet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein oder mehrere Aspekte werden in den Ansprüchen, die im Anschluss an die Beschreibung folgen, besonders hervorgehoben und ausdrücklich beansprucht. Das Vorstehende und Aufgaben, Merkmale und Vorteile eines oder mehrerer Aspekte werden anhand der folgenden eingehenden Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, in denen:
    • 1A ein Beispiel einer Datenverarbeitungsumgebung bildlich darstellt, in der ein oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
    • 1B ein weiteres Beispiel einer Datenverarbeitungsumgebung bildlich darstellt, in der ein oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
    • die 2A bis 2D ein Beispiel einer Anweisung einer Zusatzprozessor-Verarbeitungswarteschlange bildlich darstellt, die gemäß einem oder mehreren Aspekten der vorliegenden Erfindung verwendet wird;
    • 3A ein Beispiel einer Zusatzprozessor-Befehlsanforderungsnachricht gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 3B ein Beispiel eines Anforderungs-Verbindungsprogrammierungs-Anforderungsblocks (Request Connectivity Programming Request Block, CPRB) gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 3C ein Beispiel einer Zusatzprozessor-Befehlsantwortnachricht gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 3D ein Beispiel eines Antwort-Verbindungsprogrammierungs-Anforderungsblocks (Reply Connectivity Programming Request Block, CPRB) gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 3E ein Beispiel eines Feldes der Kopfdaten (header) in 3C gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 4A ein Beispiel eines Befehlstypfilterungsprozesses gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 4B ein Beispiel eines Ablaufs zum Simulieren von Befehlstypfilterung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • die 5A bis 5B eine Ausführungsform von Aspekten, die das Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellen;
    • 6A ein Beispiel einer Datenverarbeitungsumgebung bildlich darstellt, in der ein oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
    • 6B ein weiteres Beispiel einer Datenverarbeitungsumgebung bildlich darstellt, in der ein oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
    • 6C ein Beispiel weiterer Einzelheiten eines Speichers von 6B gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 6D ein weiteres Beispiel weiterer Einzelheiten eines Speichers von 6B gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 7A ein weiteres Beispiel einer Datenverarbeitungsumgebung bildlich darstellt, in der ein oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
    • 7B weitere Einzelheiten des Speichers von 7A gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt;
    • 8 eine Ausführungsform eine Cloud-Computing-Umgebung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt; und
    • 9 ein Beispiel von Abstraktionsmodellschichten gemäß einem oder mehreren Aspekten der vorliegenden Erfindung bildlich darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Bei einem oder mehreren Aspekten der vorliegenden Erfindung wird eine Filterungsfähigkeit bereitgestellt, die einem Zusatzprozessor wie z.B. einer Verschlüsselungskarte (Krypto-Karte) dynamisch pro Befehl zu ermitteln ermöglicht, ob ein durch den Zusatzprozessor erhaltener Befehl durch den Zusatzprozessor ausgeführt werden soll. Zum Beispiel werden ein oder mehrere Pro-Befehl-Filterungsindikatoren (z.B. ausgewählte Befehlstypfilterungsindikatoren) verwendet, um zu ermitteln, ob ein empfangener Befehl einen gültigen Befehlstyp wie durch die Pro-Befehl-Filterungsindikatoren angegeben ist und somit durch den Zusatzprozessor ausgeführt werden soll. Bei einer Ausführungsform werden pro Befehl ein oder mehrere Pro-Befehl-Filterungsindikatoren auf der Grundlage einer Datenverarbeitungsrichtlinie festgelegt, die einem Anforderer des Befehls zugehörig ist. Somit kann es sich bei einem durch einen Anforderer ausgegebenen Befehl um einen gültigen Befehlstyp zur Ausführung handeln, aber bei Ausgabe durch einen weiteren Anforderer kann er ungültig sein, wie durch die Pro-Befehl-Filterungsindikatoren angegeben, die auf der Grundlage von Datenverarbeitungsrichtlinien der Anforderer festgelegt wurden.
  • Bei einem oder mehreren Aspekten muss mindestens eine Filterungsfunktion (filtering facility) auf dem Zusatzprozessor installiert sein, sodass ein Zusatzprozessor an der Pro-Befehl-Filterung teilnehmen kann. Es können unterschiedliche Filterungsfunktionen installiert sein, und jede Funktion hat mindestens einen zugehörigen Filterungsindikator (z.B. einen ausgewählten Befehlstypfilterungsindikator), der bei der Pro-Befehl-Filterung verwendet werden soll. Ein Beispiel einer Filterungsfunktion ist eine Filterungsfunktion für zustandslose Befehle, in der ausgewählte Befehlstypen (z.B. zustandslose Befehlstypbefehle) zur Ausführung gültig sind. Wenn zum Beispiel ein Zusatzprozessor z.B. die Filterungsfunktion für zustandslose Befehle unterstützt und ein empfangener Befehl einen Indikator der zustandslosen Befehlstypfilterung hat, der auf einen ausgewählten Wert gesetzt ist, z.B. eins, muss der Befehl ein zustandsloser Befehlstypbefehl sein, der ausgeführt werden soll. Wenn es sich bei dem Befehl um einen anderen Befehlstyp handelt, selbst um einen, der durch den konfigurierten Modus des Zusatzprozessors unterstützt wird (z.B. Common-Cryptographic-Architecture-Modus (CCA-Modus); der auch als Coprozessormodus bezeichnet wird), würde er als ungültig angesehen werden. Wenn jedoch der Indikator der zustandslosen Befehlstypfilterung in dem Befehl auf einen anderen Wert gesetzt ist, z.B. null, muss es sich bei dem Befehl um einen beliebigen durch den konfigurierten Modus des Zusatzprozessors unterstützten Befehlstyp handeln, der ausgeführt werden soll. Somit kann bei einem Beispiel, wenn eine Filterungsfunktion wie z.B. eine Filterungsfunktion für zustandslose Befehle unterstützt wird, der Zusatzprozessor, der in einem Modus konfiguriert ist, der hierin als Befehlsfestlegungsmodus bezeichnet wird, verwendet werden, um entweder einen vollständigen Satz von Befehlstypen, die in dem konfigurierten Modus (z.B. einem Coprozessormodus) unterstützt werden, oder einen verringerten Satz von Befehlstypen auszuführen (z.B. nur zustandslose Befehlstypbefehle).
  • Zwar ist die Filterungsfunktion für zustandslose Befehle hierin beispielhaft beschrieben, es können jedoch andere Filterungsfunktionen oder -techniken angewendet werden. Zum Beispiel kann eine Masterschlüssel-Filterungsfunktion verwendet werden, in der es sich bei den ausgewählten Befehlstypen um Masterschlüssel-Verwaltungsschlüsselbefehle handelt. Weiterhin beispielhaft kann Filterung mit durch Richtlinien auferlegte Anwendungsfallgrenzwerte realisiert sein. Wenn zum Beispiel für einen ausgewählten Befehlszugriff ein Preis festgelegt ist, der sich von allgemeinen Kryptografiebefehlszugriffen unterscheidet, kann für den erworbenen Anwendungsfall ein Filter auferlegt werden. Eine weitere Ebene der Filterung kann auf einer Dienstleistungsvereinbarung beruhen, bei der Befehle auf der Grundlage des erworbenen Leistungsgrads mit hohen oder niedrigen Prioritäten der Reaktion zur Erfüllung der Leistungsvereinbarung versehen werden. Andere Filterungsfunktionen oder -techniken können ebenfalls verwendet werden. Die Anwendung jeder der Filterungsfunktionen ist zulässig, ohne dass der Zusatzprozessor für einen anderen Modus neu konfiguriert wird. Die Filterungsfunktionen können in Verbindung miteinander oder getrennt voneinander verwendet werden. Viele Beispiele sind möglich.
  • Bei einem oder mehreren Aspekten umfasst die Datenverarbeitungsumgebung eine Mehrzahl von Zusatzprozessoren, und einer oder mehrere der Zusatzprozessoren unterstützen möglicherweise keine Befehlstypfilterungs- und/oder keine bestimmte Befehlstypfilterungsfunktion. Daher wird bei einer Ausführungsform auf der Grundlage eines Erhaltens einer Befehlsanforderung eine Ermittlung vorgenommen, ob der Ziel-Zusatzprozessor der Anforderung die Filterungsfunktion unterstützt (was auch als Befehlstypfilterungsmodus bezeichnet wird), die durch die Anforderung angegeben ist. Wenn der Ziel-Zusatzprozessor die angeforderte Funktion nicht unterstützt, aber ein anderer Zusatzprozessor dies tut, wird gemäß einem Aspekt der vorliegenden Erfindung die Operation des ausgewählten Befehlstypfilterungsmodus simuliert, indem der Prozessor auf dem anderen Zusatzprozessor ausgeführt wird. Wenn die Ausführung des Befehls auf dem anderen Zusatzprozessor gültig ist, wird der Befehl auf dem Zielprozessor ausgeführt.
  • Eine Ausführungsform einer Datenverarbeitungsumgebung, bei der eine oder mehrere Aspekte der vorliegenden Erfindung einbezogen und verwendet werden, wird unter Bezugnahme auf 1A beschrieben. Bei einem Beispiel umfasst eine Datenverarbeitungsumgebung 100 mindestens eine Zentraleinheit 102 und mindestens einen Zusatzprozessor (adjunct processor, AP) 104, die jeweils mit mindestens einem Speicherabschnitt verbunden sind, der als Systemspeicher 106 bezeichnet wird. Weiterhin beispielhaft umfasst der Systemspeicher 106 einen Hardwaresystembereich, auf den indirekt zugegriffen werden kann und der für Programme nicht sichtbar ist, die auf der/den Zentraleinheit/en ausgeführt werden. („Indirekt zugänglich“ im hierin verwendeten Sinne bedeutet, dass nur durch bestimmte eingeschränkte Anweisungen auf den Hardwaresystembereich oder darin gespeicherte Zusatzprozessorwarteschlangen (nachstehend beschrieben) und nicht anderweitig zugegriffen werden kann (z.B. diese nicht geladen werden können, Programme keine Kenntnis von Adressen haben usw.)). Innerhalb des Systemspeichers befinden sich eine oder mehrere Zusatzprozessorwarteschlangen 108. Diese Warteschlangen sind aus Benutzerprogrammen heraus nicht direkt sichtbar und werden stattdessen als Teil des Computers betrachtet (d.h., des Computers, der die Zentraleinheit(en), den Systemspeicher und den/die Zusatzprozessor/en enthält). Eine Zentraleinheit hat Zugriff auf die Warteschlangen im Systemspeicher durch zum Beispiel Ausgeben von Anweisungen, um Anforderungen in der Warteschlange abzulegen und/oder Antworten aus der Warteschlange zu entfernen. Der Zusatzprozessor hat jedoch keinen direkten Zugriff auf die Warteschlangen über z.B. eine Transportschicht 110 (z.B. i390CO), und ist dafür zuständig, Anforderungen aus der Warteschlange zu entnehmen, die Anforderungen zu verarbeiten und Antworten auf die Anforderungen in der Warteschlange abzulegen.
  • Eine weitere Ausführungsform einer Datenverarbeitungsumgebung, bei der eine oder mehrere Aspekte der vorliegenden Erfindung einbezogen und verwendet werden, wird unter Bezugnahme auf 1B beschrieben. Bei einer Ausführungsform umfasst der Computer eine virtuelle Unterstützung, und es ist mindestens eine Host-Zentraleinheit 150 vorhanden, die eine Mehrzahl von Gästen 152 (z.B. Gastbetriebssysteme und/oder Gastprogramme) enthält. Die Host-Zentraleinheit ist mit mindestens einem Speicherabschnitt verbunden, der als Systemspeicher 154 bezeichnet wird. Darüber hinaus ist mindestens ein Zusatzprozessor 156 vorhanden, der ebenfalls mit dem Systemspeicher 154 verbunden ist, zum Beispiel über eine Transportschicht 160. Als weiteres Beispiel enthält der Systemspeicher 154 einen Hardwaresystembereich, und innerhalb des Systemspeichers befinden sich eine oder mehrere Zusatzprozessorwarteschlangen 158.
  • Wie angegeben, gibt es unterschiedliche Arten von Zusatzprozessoren, unter anderem und ohne auf diese beschränkt zu sein, Verschlüsselungskarten oder -adapter. Bei einem speziellen Beispiel einer Verschlüsselungskarte handelt es sich um eine Crypto-Express-Karte, die bei International Business Machines Corporation, Armonk, New York, erhältlich ist. Zwar ist eine beispielhafte Verschlüsselungskarte bereitgestellt, es können jedoch andere bei International Business Machines Corporation und/oder anderen Unternehmen erhältliche Verschlüsselungskarten einen oder mehrere Aspekte der vorliegenden Erfindung einbeziehen und/oder verwenden. Ferner können andere Arten von Zusatzprozessoren einen oder mehrere Aspekte der vorliegenden Erfindung einbeziehen und/oder nutzen.
  • Beispielhaft unterstützt bei einer Ausführungsform ein Zusatzprozessor wie z.B. eine Verschlüsselungskarte (z.B. eine Crypto-Express-Karte) eine Mehrzahl von Modi, unter anderem und ohne auf diese beschränkt zu sein, einen Coprozessormodus, einen Beschleunigermodus und einen Modus gemäß den Enterprise Public Key Cryptographic Standards (PKCS) (z.B. XCP/EP11-Enterprise PKCS#11). Darüber hinaus können bei anderen Beispielen weniger und/oder andere Modi unterstützt werden. Jeder der Modi kann seine eigenen AP-Nachrichtenstrukturen und -formate haben.
  • Beispielhaft besteht eine Zusatzprozessornachricht aus mehreren Datensegmenten, und die Datensegmente müssen einander nicht benachbart sein; stattdessen können ein oder mehrere verschachtelt sein. Diese Datensegmente werden als Scatter-Gather-Datensegmente bezeichnet. Bei einem Beispiel hat eine Verschlüsselungskarte keinen direkten Zugriff auf die in der Warteschlange eingereihte AP-Nachricht, und ein Abschnitt der Nachricht (z.B. der untere Teil der AP-Nachricht) enthält die Daten, die z.B. durch die Verschlüsselungskarte zum Ausführen des AP-Befehls verwendet werden sollen. Daher kopiert die AP-Befehlstransportschicht (z.B. die Transportschicht 110, 160) die relevanten Daten aus der AP-Befehlsanforderungsnachricht, packt sie in ein Format, das die Verschlüsselungskarte versteht (z.B. Befehlsanforderungsnachricht der Verschlüsselungskarte) und sendet sie an die Verschlüsselungskarte. Ebenso erzeugt die Verschlüsselungskarte, nachdem der AP-Befehl durch die Verschlüsselungskarte ausgeführt wurde, eine Verschlüsselungskarten-Befehlsantwortnachricht, die z.B. die Pakete 5 und 6 enthält, und sendet sie an die AP-Befehlstransportschicht, die sie wieder in eine AP-Befehlsantwortnachricht packt. Zum Beispiel verwendet die Transportschicht verschiedene Teile der AP-Befehlsanforderungsnachricht und der Befehlsantwortnachricht der Verschlüsselungskarte, um die AP-Befehlsantwortnachricht einschließlich der Kopfdaten, der untergeordneten Kopfdaten (sub-header) und der Pakete bereitzustellen. Die Transportschicht sendet die AP-Befehlsantwortnachricht anschließend an die AP-Warteschlange zur späteren Entnahme aus der Warteschlange durch das Programm. Weitere Einzelheiten einer AP-Befehlsanforderungsnachricht und einer AP-Befehlsantwortnachricht sind nachstehend beschrieben, unter anderem Aspekte der Nachricht, die gemäß der Befehlstypfilterung eines oder mehrerer Aspekte der vorliegenden Erfindung verwendet werden.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Zusatzprozessor (z.B. eine Verschlüsselungskarte) so ausgelegt, dass er zulässt, dass der Computer-Hypervisor Befehlstypfilterung gemäß Datenverarbeitungsrichtlinien anfordert (z.B. die Lizenzbestimmungen, Berechtigungen und/oder Ressourcenanforderungen wie z.B. Hochverfügbarkeitsanforderungen von Kunden usw.). Da Kunden unterschiedliche Datenverarbeitungsrichtlinien zugehörig sind (z.B. Lizenzbestimmungen, Berechtigungen und/oder Ressourcenanforderungen wie z.B. Hochverfügbarkeitsanforderungen), stehen einem bestimmten Benutzer möglicherweise nicht alle Typen von Befehlen zur Verfügung. Daher wird gemäß einem Aspekt der vorliegenden Erfindung Befehlstypfilterung bereitgestellt, sodass ein ausgewählter Zusatzprozessor (z.B. eine Verschlüsselungskarte, die für einen bestimmten Modus (z.B. Coprozessormodus) konfiguriert ist), für Kunden mit unterschiedlichen Datenverarbeitungsrichtlinien und somit unterschiedlichen Berechtigungen verwendet werden kann, ohne dass der Zusatzprozessor neu in einen anderen unterstützten Modus konfiguriert werden muss.
  • Beispielhaft wird eine AP-Befehlstypfilterungsfunktion (AP command-type filtering facility, APFT) bereitgestellt, die ermöglicht, dass AP-Befehle auf der Grundlage einer oder mehrerer ausgewählter AP-Befehlstypfilterungsfunktionen gemäß einem oder mehreren Aspekten der vorliegenden Erfindung gefiltert werden können. Bei einem Beispiel umfassen die einen oder die mehreren ausgewählten AP-Befehlstypfilterungsfunktionen eine Filterungsfunktion für zustandslose AP-Befehle (stateless AP command filtering facility, SAPCF). Aspekte der AP-Befehlstypfilterungsfunktion und der Filterungsfunktion für zustandslose AP-Befehle werden hierin in Bezug auf eine bestimmte Architektur wie z.B. die z/Architecture®-Hardwarearchitektur beschrieben, die bei International Business Machines Corporation, Armonk, New York, erhältlich ist. Eine Ausführungsform der z/Architecture-Hardwarearchitektur ist in „z/Architecture Principles of Operation,“ IBM-Veröffentlichungsnr. SA22-7832-12, dreizehnte Ausgabe, September 2019, beschrieben die in ihrer Gesamtheit durch Bezugnahme hierin einbezogen ist. IBM und Z/ARCHITECTURE sind eingetragene Marken von International Business Machines Corporation in mindestens einem juristischen Geltungsbereich. Bei der z/Architecture-Hardwarearchitektur handelt es sich jedoch nur um eine beispielhafte Architektur. Aspekte der Erfindung können auch auf anderen Architekturen beruhen, unter anderem und ohne auf diese beschränkt zu sein, auf den Intel-x86-Architekturen, anderen Architekturen von International Business Machines Corporation und/oder Architekturen von anderen Unternehmen.
  • Bei einem Beispiel ist die AP-Befehlstypfilterungsfunktion installiert, wenn die zustandslose AP-Befehlsfilterungsfunktion installiert ist. Um zu ermitteln, ob die zustandslose AP-Befehlsfilterungsfunktion installiert ist, wird eine Anweisung einer Zusatzprozessor-Verarbeitungswarteschlange gemäß einem Aspekt der vorliegenden Erfindung verwendet.
  • Ein Beispiel einer Anweisung einer Zusatzprozessor-Verarbeitungswarteschlange (PQAP-Anweisung) wird unter Bezugnahme auf 2A beschrieben. Wie gezeigt, umfasst bei einem Beispiel eine Anweisung 200 einer Zusatzprozessor-Verarbeitungswarteschlange Operationscode (Opcode) 202 (z.B. Bits 0 bis 15 einer 32-Bit-Anweisung), der eine Prozessoperation einer Zusatzprozessorwarteschlange angibt. Bei einer Ausführungsform nutzt die Zusatzprozessor-Verarbeitungswarteschlange eine Mehrzahl von allgemeinen Registern, unter anderem die allgemeinen Register 0, 1 und 2. Die AP-Warteschlange, die durch die AP-Warteschlangennummer (AP queue number, APQN) im allgemeinen Register 0 bezeichnet ist, wird gemäß dem im allgemeinen Register 0 angegebenen Funktionscode verarbeitet. Beispiele der allgemeinen Register 0, 1 und 2 werden nachstehend weiter beschrieben.
  • Unter Bezugnahme auf 2B handelt es sich bei einer Ausführung bei dem allgemeinen Register 0 (GR0) 210 z.B. um ein 64-Bit-Register, das zum Beispiel einen Funktionscode (FC) 212 (z.B. Bits 32 bis 39) enthält, um eine ausgewählte Funktion anzugeben, die durchgeführt werden soll; einen Funktionen-testen-Indikator (T) 214 (z.B. Bit 40), der verwendet wird, um anzugeben, ob eine Maske von installierten Funktionen im allgemeinen Register 2 bereitgestellt ist; und eine Zusatzprozessorwarteschlangennummer (APQN) 216 (z.B. Bits 48 bis 63), die eine Zusatzprozessorwarteschlange (z.B. AP-Warteschlange 108 (1A); AP-Warteschlange 158 (1B)) angibt, die gemäß dem Funktionscode verarbeitet wird.
  • Auf der Grundlage des Ausgebens der Anweisung der Zusatzprozessor-Verarbeitungswarteschlange umfasst der Funktionscode 212 einen einer Mehrzahl von geeigneten Codes, von denen ein Beispiel der Code „00 Test AP Queue (TAPQ)“ ist.
  • Gemäß einer oder mehreren Ausführungsformen ist Bit 40 des allgemeinen Registers 0, wenn sich die Datenverarbeitungsumgebung z.B. im z/Architecture-Architekturmodus befindet und die APFT-Funktion installiert ist, wenn der TAPQ-Funktionscode angegeben ist (z.B. FC = 00 in GR0), als Funktionen-testen-Bit (T) 214 für die TAPQ-Funktion definiert. Wenn T eins ist, werden die Bits 0 bis 31 des allgemeinen Registers 2 durch eine Maske von installierten AP-Funktionen und andere zugehörige Informationen ersetzt, von denen nachstehend ein Beispiel beschrieben wird. Wenn T null ist, was zum Beispiel angibt, dass die APFT-Funktion nicht installiert ist, werden die Ergebnisse im allgemeinen Register 2 auf z.B. die Bitpositionen 32 bis 63 eingegrenzt, und die Bitpositionen 0 bis 31 werden ignoriert und bleiben unverändert. In diesem Fall sind das AT-Feld und das QD-Feld (nachstehend beschrieben) gültig, und die anderen Bitpositionen werden als Nullen gespeichert.
  • Wie angegeben, werden das allgemeine Register 0 sowie die allgemeinen Register 1 und 2, von denen nachstehend jedes weiter beschrieben wird, durch die Anweisung der Zusatzprozessor-Verarbeitungswarteschlange verwendet.
  • Unter Bezugnahme auf 2C handelt es sich bei einer Ausführungsform bei dem allgemeinen Register 1 (GR1) 220 z.B. um ein 64-Bit-Register, das zum Beispiel ein Zusatzprozessor-Warteschlangenstatuswort (adjunct processor queue status word, APQSW) 222 (z.B. Bits 32 bis 63) enthält. Bei Beendigung der Anweisung der Zusatzprozessor-Verarbeitungswarteschlange enthält das APQSW-Feld ein AP-Warteschlangenstatuswort, sofern bei einer bestimmten Funktion nichts anderes angegeben ist. Das AP-Warteschlangenstatuswort gibt z.B. den Zustand der AP-Warteschlange bei Beendigung der Anweisung an.
  • Ferner handelt es sich unter Bezugnahme auf 2D bei einer Ausführungsform bei dem allgemeinen Register 2 (GR2) 230 z.B. um ein 64-Bit-Register, das eine Mehrzahl von Feldern enthält. Wie hierin beschrieben, umfassen die Bitpositionen 0 bis 31 im gesetzten Zustand eine Maske von installierten AP-Funktionen und andere zugehörige Informationen. Zu beispielhaften Feldern von GR2 gehören gemäß einem oder mehreren Aspekten der vorliegenden Erfindung zum Beispiel:
  • Modus 232: Im gesetzten Zustand gibt dieses Feld (z.B. Bits 3 bis 5) eine Mehrzahl von möglichen AP-Modusfunktionen an. Wenn zum Beispiel D (z.B. Bit 3) eins ist, stellt der angegebene AP die Coprozessormodusfunktion bereit; wenn A (z.B. Bit 4) eins ist, stellt der angegebene AP die Beschleunigermodusfunktion bereit; und wenn X (z.B. Bit 5) eins ist, stellt der API die XCP-Modusfunktion bereit;
  • SL 234: Wenn dieses Feld (z.B. Bit 7) eins ist, ist die zustandslose AP-Befehlsfilterungsfunktion (SAPCF) eines oder mehrerer Aspekte der vorliegenden Erfindung installiert. Bei der SAPCF-Funktion handelt es sich zum Beispiel um ein Merkmal einer PCI-X-Verschlüsselungseinheit (PCI-X = Peripheral Component Interconnect eXtended), das z.B. bei einer Ausführungsform im z/Architecture-Architekturmodus installiert ist.
  • Klassifizierung 236: Dieses Feld (z.B. Bits 8 bis 15) enthält Informationen bezüglich der funktionalen Fähigkeiten des angegebenen Zusatzprozessors (AP). Jedes Bit steht für eine bestimmte funktionale Fähigkeit in Verbindung mit der durch den Zusatzprozessor bereitgestellten Funktion, wie in einem Modusfeld des Registers angegeben (z.B. Bits 3 bis 5). Wenn Nullen z.B. in den Bits 8 bis 15 des Klassifizierungsfelds gespeichert sind, stehen dem angegebenen AP die vollständigen nativen Kartenfunktionen zur Verfügung. Das Klassifizierungsfeld ist kein Merkmal der PCI-X-Verschlüsselungseinheit und wird nicht durch die Firmware des Systems gesetzt. Vielmehr wird es optional durch den Hypervisor gesetzt, um entweder die vollständigen nativen Kartenfunktionen oder eine oder mehrere Teilmengen der vollständigen nativen Kartenfunktionen bereitzustellen. Beispielhaft gibt Bit 8 die Funktion „Vollständiger AP-Befehlssatz“ (Full AP Command Set, FAPCS) an. Wenn Bit 8 auf einen Wert gesetzt ist (z.B. eins), gibt dies an, dass die vollständigen nativen Kartenfunktionen für den angegebenen Zusatzprozessor verfügbar sind. Wenn Bit 8 gesetzt ist (z.B. auf eins), wird (bei einem Beispiel) null in Bit 9 gespeichert. Bit 9 gibt zum Beispiel eine zustandslose AP-Befehlsfunktion (SAPC-Funktion) an. Wenn Bit 9 auf einen Wert gesetzt ist (z.B. eins), gibt dies an, dass nur zustandslose Funktionen für den angegebenen Zusatzprozessor verfügbar sind. Wenn Bit 9 gesetzt ist (z.B. auf eins), wird (bei einem Beispiel) null in Bit 8 gespeichert. Bits 10 bis 15 sind bei einem Beispiel reserviert.
  • Andere Funktionen und/oder Informationen, die eine oder mehrere Funktionen betreffen, die durch die Datenverarbeitungsumgebung unterstützt werden können, können durch ein oder mehrere Bits der Maske, z.B. in den Bits 0 bis 31, angegeben werden.
  • Zusatzprozessortyp (AT) 238: Dieses Feld (z.B. Bitpositionen 32 bis 39) enthält beispielhafte gültige AP-Typ-Werte in dem Bereich von z.B. 0 bis 255, die verschiedene Zusatzprozessortypen angeben;
  • Anzahl von AP-Warteschlangeneinträgen (QD) 240: Die Anzahl von Warteschlangeneinträgen in jeder AP-Warteschlange in der Konfiguration. QD ist ein Wert in dem Bereich von z.B. 0 bis 31, was für eine Anzahl von Warteschlangeneinträgen in dem Bereich von z.B. dezimal 1 bis 32 steht.
  • Bei einem Beispiel gelten die Informationen über installierte Funktionen, die im allgemeinen Register 2 zurückgegeben werden, für alle APs desselben AP-Typs und bei konsolidierten APs (z.B. AP-Typ 10 und höher) im selben Konfigurationsmodus. Die Informationen über installierte Funktionen bleiben bei einem Beispiel mindestens bis zu dem nächsten Zurücksetzen des Teilsystems erhalten. Eine Funktion kann gleichzeitig hinzugefügt werden. Eine Funktion kann gleichzeitig entfernt werden oder nicht, wenn die Konfiguration des letzten AP eines AP-Typs aufgehoben wurde.
  • Das allgemeine Register 2 wird wie festgelegt modifiziert, wenn die TAPQ-Funktion z.B. mit dem Bedingungscode 0 (erfolgreiche Beendigung); oder mit dem Bedingungscode 3, Antwortcodes, z.B. 02 bis 05 (unerwartete Bedingungen; z.B. AP-Warteschlange wird zurückgesetzt, AP-Konfiguration aufgehoben, AP-Kontrollstopp, AP beschäftigt) beendet wird. Anderenfalls wird das allgemeine Register 2 nicht modifiziert.
  • Zwar sind hierin bei einer Ausführungsform bestimmte Felder, Speicherorte von Feldern, Größen von Feldern, Bits und Werte von Feldern oder Bits für die Anweisung der Zusatzprozessor-Verarbeitungswarteschlange und deren zugehörige Register beschrieben, es können jedoch andere Felder, Speicherorte von Feldern, Größen von Feldern, Bits und/oder Werte von Feldern oder Bits verwendet werden, ohne dass dies eine Abweichung von einem oder mehreren Aspekten der Erfindung darstellen würde. Felder und/oder Bits eines jeden der allgemeinen Register, die hierin nicht beschrieben sind, können leer sein, einen vordefinierten Wert (z.B. null) haben und/oder Werte enthalten, die bei einer Ausführungsform ignoriert werden. Es bestehen viele Möglichkeiten.
  • Gemäß einem oder mehreren Aspekten enthält der Zusatzprozessor (z.B. Verschlüsselungskarte) Logik, die Attribute von unterschiedlichen Typen von Befehlen erkennt. Diese Attribute definieren bei einer Ausführungsform Sätze und Teilsätze von Befehlen, wenn sie zusammen berücksichtigt werden. Die unterschiedlichen Typen von Befehlen werden bei einer Ausführungsform durch einen Hypervisor bereitgestellt. Der Hypervisor ermittelt zum Beispiel einen Satz von Befehlstypkennzeichen auf der Grundlage z.B. eines Satzes von Kunden, von denen Befehlsanforderungen empfangen werden können. Zum Beispiel beruhen die Typen von Befehlen, die durch den Satz von Befehlstypkennzeichen dargestellt werden sollen, z.B. auf den Datenverarbeitungsrichtlinien (z.B. Lizenzierungsbestimmungen; Berechtigungen; Ressourcenanforderungen wie z.B. Hochverfügbarkeitsanforderungen usw.) der Kunden, von denen Befehlsanforderungen empfangen werden sollen.
  • Bei einem Beispiel enthält ein Befehl einen Satz von damit in Zusammenhang stehenden Kennzeichen (z.B. Richtlinien- oder Filterungskennzeichen), der die Attribute des Befehls darstellt, und Befehle, die ein gleiches Kennzeichen haben, können als Gruppe betrachtet werden. Derselbe Befehl kann auf der Grundlage des durch den Hypervisor auferlegten Satzes von Befehlstypkennzeichen in mehreren Befehlstypsätzen auftreten. Zum Beispiel kann ein Befehl ein Kennzeichen eines zustandslosen Befehlstyps haben, um anzugeben, dass es sich bei dem Befehl um einen gültigen zustandslosen Befehlstypbefehl handelt, ein Masterschlüssel-Befehlstypkennzeichen, um anzugeben, dass es sich bei dem Befehl um einen gültigen Masterschlüssel-Befehlstypbefehl handelt usw. Es bestehen unterschiedliche Möglichkeiten von Befehlstypen, Befehlstypfunktionen und Befehlstypbefehlen, und zu jedem Befehl können ein oder mehrere Befehlstypkennzeichen gehören.
  • Eine Angabe des Satzes von Befehlstypkennzeichen wird durch den Zusatzprozessor erhalten (z.B. bereitgestellt, empfangen, abgerufen usw.). Der Zusatzprozessor (z.B. Zusatzprozessor-Firmware) trennt auf der Grundlage des Satzes von Befehlstypkennzeichen, die durch den Hypervisor angefordert werden können, erwartete Befehle in unterschiedliche Sätze von Befehlen. Zum Beispiel empfängt der Zusatzprozessor bei einem bestimmten Beispiel einen Satz von Befehlstypkennzeichen, der ein Kennzeichen für Befehlstypbefehle mit sicheren Schlüsseln (das z.B. zum Deaktivieren von Befehlen mit sicheren Schlüsseln verwendet wird, wenn dies durch einen Aufrufer angefordert wird); und ein Kennzeichen für zustandslose Befehlstypbefehle enthält. Daher betrachtet der Zusatzprozessor Befehle, die verschlüsselte Schlüssel verwenden (z.B. Befehlstypbefehle mit sicheren Schlüsseln) als Teil eines Satzes von Befehlstypbefehlen mit sicheren Schlüsseln; und der Rest der Befehle wird unter Verwendung der Befehlsattribute jedes Befehls als Teil eines Satzes von zustandslosen Befehlstypbefehlen betrachtet. Bei anderen Ausführungsformen, bei denen der Hypervisor anderer Kennzeichen für andere Filterungsfunktionen bereitstellt, werden andere Befehlssätze mit Befehlen bereitgestellt, die den anderen Kennzeichen entsprechen. Viele Typen von Befehlssätzen sind möglich.
  • Ferner ist eine Befehlsanforderung bei einer Ausführungsform so konfiguriert, dass sie eine oder mehrere Filterungsindikatoren wie z.B. einen oder mehrere Befehlstypfilterungsindikatoren enthält, die zum Bereitstellen einer Pro-Befehl-Filterung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung verwendet werden. Weitere Einzelheiten hinsichtlich ausgewählter Befehlstypfilterungsindikatoren, die in einer Befehlsanforderung enthalten sind, werden unter Bezugnahme auf die 3A bis 3B beschrieben.
  • Unter Bezugnahme auf 3A enthält eine AP-Befehlsanforderungsnachricht 300 bei einem Beispiel Kopfdaten 302, untergeordnete Kopfdaten 304 und eine Mehrzahl von Paketen 306 bis 312. Bei einem Beispiel sind eines oder mehrere der Pakete (z.B. eines oder mehrere von Paket-1 308 bis 310) so konfiguriert, dass sie einen Befehl bereitstellen, und eines oder mehrere der Pakete (z.B. Paket-2 312) sind so konfiguriert, dass sie Eingabedaten bereitstellen. Eines der Pakete enthält gemäß einem Aspekt der vorliegenden Erfindung einen Anforderungs-Verbindungsprogrammierungs-Anforderungsblock (308), der einen oder mehrere Filterungsindikatoren enthält, die Befehlstypfilterung betreffen.
  • Zum Beispiel enthält der Anforderungs-CPRB 308 wie in 3B gezeigt eine AP-Befehlsfiltermaske 320, die einen oder mehrere Befehlstypfilterungsindikatoren enthält. Ein Beispiel eines Befehlstypfilterungsindikators ist ein Indikator 322 für zustandslose Befehlstypen. Der Indikator gibt an, ob der zulässige Befehlssatz für zustandslose Befehlstypbefehle (z.B. Indikator 322, wie z.B. ein ausgewähltes Bit, das auf eins gesetzt ist) oder für den vollständigen Befehlssatz gedacht ist (z.B. auf eins gesetzter Indikator 322). Andere Indikatoren, Merker (flags), Bits usw. können in dem Anforderungs-CPRB 308 enthalten sein, um andere Typen von Befehlen anzugeben, die gefiltert werden können. Zum Beispiel kann ein weiterer Indikator eine auf Masterschlüsseln beruhende Filterung angeben. Viele andere Beispiele sind möglich.
  • Als Reaktion auf eine Nachricht wird eine Antwort bereitgestellt und liegt bei einem Beispiel in Form einer AP-Befehlsantwortnachricht vor, von der ein Beispiel in 3C bildlich dargestellt ist. Wie gezeigt, enthält eine AP-Befehlsantwortnachricht 330 zum Beispiel Kopfdaten 332, untergeordnete Kopfdaten 334 und eine Mehrzahl von Paketen 336 bis 340. Eines der Pakete enthält gemäß einem Aspekt der vorliegenden Erfindung einen Antwort-CPRB 336, der eine Antwort auf die Anforderung enthält und einen Fehler angeben kann.
  • Zum Beispiel enthält der Antwort-CPRB 336 wie in 3D gezeigt eine Fehlerangabe 350. Die Fehlerangabe kann einen zu meldenden Fehlercode (z.B. CPRB-Rückgabecode/Ursachencode) enthalten, dass ein durch einen Kunden angeforderter Befehl aufgrund eines definierten Satzes von Befehlstypkennzeichen (die z.B. durch einen Hypervisor oder eine andere Entität auferlegt wurden) nicht zulässig ist.
  • Bei einem Beispiel wird unter Bezugnahme auf 3E der Fehlercode in einen ausgewählten AP-Antwortcode übersetzt (z.B. 8B Ungültiger zustandsloser Befehl) und in den Kopfdaten 332 in einem Antwortcodefeld 352 gespeichert. Dies stellt einen zentralen Speicherort für den Fehlercode bereit.
  • Bei einer Ausführungsform wird, nachdem eine AP-Befehlsanforderungsnachricht in den Verarbeitungszustand gelangt, die normale Verarbeitung der Befehlsanforderung beendet, wenn die Filterungsfunktion für zustandslose AP-Befehle installiert ist und eine AP-Befehlsanforderungsnachricht das Bit für den zustandslosen Befehlstyp (z.B. Indikator 322 für zustandslose Befehlstypen) in dem CPRB auf eins setzt, aber keinen zustandslosen AP-Befehl angibt, oder wenn die Filterungsfunktion für zustandslose AP-Befehle nicht installiert ist, aber eine Funktion für zustandslose AP-Befehle installiert ist und eine AP-Befehlsanforderungsnachricht keinen zustandslosen AP-Befehl angibt. Beispielhaft wird eine Befehlsantwortnachricht des Typs 86, die untergeordnete Kopfdaten des Formats 1 festlegt, mit dem Antwortcode 8B zurückgegeben.
  • Bei einem Aspekt ist eine Befehlsanforderungsnachricht an einen bestimmten Zusatzprozessor gerichtet, der hierin als Ziel-Zusatzprozessor bezeichnet wird. Daher wird gemäß einem Aspekt der vorliegenden Erfindung eine Ermittlung vorgenommen, ob der Ziel-Zusatzprozessor in der Lage ist, den Befehl auszuführen. Wenn zum Beispiel die Befehlsanforderung einen Filterungsindikator enthält (z.B. einen ausgewählten Befehlstypfilterungsindikator wie z.B. den Indikator 322 für zustandslose Befehlstypen), der angibt, dass dem Anforderer nur erlaubt ist, Befehle einer bestimmten Filterungsfunktion oder eines bestimmten Filterungsmodus auszuführen, wird eine Ermittlung vorgenommen, ob der Ziel-Zusatzprozessor Befehlstypfilterung und insbesondere die spezifische Filterungsfunktion unterstützt, die durch den Befehl angegeben wird. Bei einem Beispiel wird dies durch eine Anweisung der Zusatzprozessor-Verarbeitungswarteschlange oder eine ähnliche Anweisung ermittelt. Wenn der Ziel-Zusatzprozessor den bestimmten Befehlstypfilterungsmodus nicht unterstützt, wird der Befehl gemäß einem Aspekt der vorliegenden Erfindung simuliert, indem der Befehl auf einem weiteren Zusatzprozessor ausgeführt wird, der den bestimmten Befehlstypfilterungsmodus unterstützt, die Ergebnisse geprüft werden und anschließend der Befehl auf dem Ziel-Zusatzprozessor ausgeführt wird, wenn die Ergebnisse einen gültigen Befehl für den ausgewählten Befehlstypfilterungsmodus angeben.
  • Weitere Einzelheiten, die die Befehlssimulation betreffen, sind unter Bezugnahme auf die 4A bis 4B beschrieben. Bei dem Beispiel der 4A bis 4B handelt es sich bei der Datenverarbeitungsumgebung um eine Cloud-Umgebung; bei anderen Ausführungsformen handelt es sich bei der Datenverarbeitungsumgebung nicht um eine Cloud-Umgebung. Aspekte der Erfindung sind nicht auf eine bestimmte Datenverarbeitungsumgebung beschränkt. Ferner handelt es sich bei dem Beispiel der 4A bis 4B bei dem Zusatzprozessor um eine Verschlüsselungskarte. Filterung kann jedoch durch andere Zusatzprozessoren verwendet werden; die Verschlüsselungskarte ist lediglich ein Beispiel.
  • Unter Bezugnahme auf 4A erhält (z.B. empfängt, wird bereitgestellt, ruft ab, hat Zugriff auf usw.) ein Hypervisor (z.B. Hypervisor 672 (6C); 692 (6D), nachstehend beschrieben) eine Anforderungsrichtlinie 402 (z.B. eine Cloud-Anforderungsrichtlinie) für den Gast, die auf einer Kontokonfiguration 404 (z.B. Cloud-Kontokonfiguration) beruht, und ermittelt den Betriebsmodus des Gastes, SCHRITT 400. Die Anforderungsrichtlinie 402 enthält zum Beispiel eine Angabe der für jeden Anforderer (z.B. Gast; Aufrufer; Kunde) zulässigen Befehlstypen, die für den Anforderer auf der Grundlage der Datenverarbeitungsrichtlinie des Anforderers (z.B. Lizenzbestimmungen; Ressourcenanforderungen wie z.B. Hochverfügbarkeitsanforderungen; und/oder Berechtigungen usw.) verarbeitet werden sollen, die durch die Kontokonfiguration 404 bereitgestellt werden. Auf der Grundlage der Anforderungsrichtlinie legt der Hypervisor mindestens eine Angabe (z.B. mindestens ein Bit) in der Klassifizierung 236 fest, um die Fähigkeiten des Gastes für die Konfiguration anzugeben. Wenn der Gast zum Beispiel auf der Grundlage der Anforderungsrichtlinie auf den vollständigen AP-Befehlssatz zugreifen darf, wird Bit 8 auf eins gesetzt, und Bit 9 wird auf null gesetzt; wenn der Gast jedoch nur auf einen ausgewählten Teilsatz von Befehlen wie z.B. zustandslose Befehlstypbefehle zugreifen darf, wird Bit 8 auf null gesetzt, und Bit 9 wird auf eins gesetzt. Bei anderen Arten von Funktionen würden andere Bits verwendet werden. Das Setzen der Bits gilt für alle Zusatzprozessoren der Konfiguration und gibt den Betriebsmodus des Gastes für die Konfiguration an. Zum Beispiel wird das Setzen der Klassifizierung 236 als anfänglicher Programmladevorgang (initial program load, IPL) des Gastes auf der Grundlage des Empfangens der Anforderung oder zu einem anderen Zeitpunkt für einen oder mehrere Gäste durchgeführt, um den Betriebsmodus jedes Gastes wiederzugeben, und gespeichert (z.B. eine Klassifizierung für jeden Gast). Andere Ausführungsformen sind möglich.
  • Darüber hinaus erhält der Hypervisor (z.B. empfängt, wird bereitgestellt, ruft ab, hat Zugriff auf usw.) eine anfängliche Zusatzprozessorbefehlsliste 408, die bei dem Simulationsprozess verwendet werden soll, wie hierin beschrieben. Zum Beispiel erzeugt der Hypervisor dynamisch eine AP-Befehlsliste auf der Grundlage von Informationen, die von einer Verschlüsselungskarte erhalten wurden, die die ausgewählte Befehlstypfilterungsfunktion (z.B. Filterungsfunktion für zustandslose AP-Befehle) nicht unterstützt, und verwendet die Befehlsliste beim Simulieren z.B. der Filterungsoperation für zustandslose AP-Befehle auf der Ziel-Verschlüsselungskarte, die die ausgewählte Befehlstypfilterungsfunktion nicht unterstützt, wie nachstehend beschrieben. Bei einem Beispiel initialisiert er die AP-Befehlsliste mit Standardwerten wie z.B. nur Nullen (eine leere Liste) oder eine Liste bekannter zustandsloser AP-Befehle mit einem Indikator für zustandslose AP Befehle (oder Befehle von anderen Funktionen).
  • Ferner erhält der Hypervisor (z.B. empfängt, wird bereitgestellt, hat Zugriff auf usw.) eine AP-Befehlsanforderungsnachricht 406 (z.B. Nachricht 300) von einem Gast, SCHRITT 405. Beispielhaft fängt der Hypervisor den AP-Befehl von einem Gast ab, bevor der AP-Befehl auf der Grundlage dessen, dass das Gastprogramm den AP-Befehl über eine Anweisung zur Einreihung in eine Warteschlange wie z.B. eine NQAP-Anweisung (NQAP = Enqueue Adjunct Processor Queue) der z/Architecture-Hardwarearchitektur oder einer anderen Anweisung zur Einreihung in eine Warteschlange einer anderen Architektur in die Ziel-AP-Warteschlange eingereiht wird.
  • Der Hypervisor ermittelt, ob der Gast für den konfigurierten Befehlssatzmodus des Zusatzprozessors (z.B. vollständiger Satz von Coprozessorbefehlen) berechtigt ist, ABFRAGE 410. Beispielhaft ermittelt der Hypervisor, ob der Gast Zugriff auf den vollständigen Satz von Befehlen (z.B. Coprozessormodus) oder einen verringerten Satz von Befehlen (z.B. Filterungsmodus für zustandslose Befehle) hat, indem er die Klassifizierung 236 prüft, die auf der Anforderungsrichtlinie 402 beruht (die auf der Datenverarbeitungsrichtlinie des Gastes beruht). Wenn der Gast für den konfigurierten Befehlssatzmodus berechtigt ist, sendet der Hypervisor den AP-Befehl an den Ziel-Zusatzprozessor, der AP-Befehl wird auf dem Ziel-Zusatzprozessor (z.B. der Verschlüsselungskarte) ausgeführt, und die Ergebnisse werden an den Gast zurückgegeben, SCH RITT 412.
  • Wenn der Gast jedoch nicht für den konfigurierten Befehlssatzmodus berechtigt ist, ABFRAGE 410, sondern stattdessen für einen ausgewählten Modus wie z.B. einen Filterungsmodus für zustandslose Befehle berechtigt ist, wird eine weitere Ermittlung durch z.B. den Hypervisor vorgenommen, ob eine Verschlüsselungskarte in der Computerkonfiguration vorhanden ist, die die ausgewählte Befehlstypfilterungsfunktion unterstützt, ABFRAGE 414. Zum Beispiel wird eine Ermittlung vorgenommen, ob die Filterungsfunktion für zustandslose Befehle durch eine beliebige der Verschlüsselungskarten unterstützt wird. Dies kann zum Beispiel ermittelt werden, indem die Anweisung der Zusatzprozessor-Verarbeitungswarteschlange für jede Verschlüsselungskarte durchgeführt wird. Wenn festgestellt wird, dass keine Verschlüsselungskarte vorhanden ist, die die ausgewählte Befehlstypfilterungsfunktion unterstützt, weist der Hypervisor den AP-Befehl zurück, da der Gast keine der Verschlüsselungskarten verwenden darf, SCHRITT 416.
  • Wenn jedoch unter erneuter Bezugnahme auf die ABFRAGE 414 mindestens eine Verschlüsselungskarte vorhanden ist, die die ausgewählte Befehlstypfilterungsfunktion unterstützt, wird eine weitere Ermittlung zum Beispiel durch den Hypervisor vorgenommen, ob die Ziel-Verschlüsselungskarte die ausgewählte Befehlstypfilterungsfunktion unterstützt, ABFRAGE 420. Wenn die Ziel-Verschlüsselungskarte die ausgewählte Befehlstypfilterungsfunktion unterstützt, wie durch die Anweisung der Zusatzprozessor-Verarbeitungswarteschlange angegeben, setzt der Hypervisor einen Filterungsindikator wie z.B. einen Indikator für die ausgewählte Befehlstypfilterung in der Befehlsanforderung auf einen Wert (z.B. 1) und sendet den Befehl zur Verarbeitung an die Ziel-Verschlüsselungskarte, SCHRITT 422. Zum Beispiel wird der Indikator 322 für zustandslose Befehlstypen in dem Anforderungs-CPRB 308 auf eins gesetzt, und anschließend wird die Anforderung zur Verarbeitung an die Ziel-Verschlüsselungskarte gesendet.
  • Die Ziel-Verschlüsselungskarte erhält (z.B. empfängt, wird bereitgestellt, ruft ab usw.) die Befehlsanforderungsnachricht und ermittelt, ob es sich bei dem Befehl um einen gültigen Befehl für den ausgewählten Befehlstypfilterungsmodus handelt, ABFRAGE 424. Zum Beispiel, ist der Befehl Teil des Satzes von Befehlen der ausgewählten Befehlstypfilterungsfunktion? Wenn der Befehl Teil des Satzes von Befehlen der ausgewählten Befehlstypfilterungsfunktion ist, wird der Befehl durch die Ziel-Verschlüsselungskarte ausgeführt, und die Ergebnisse werden in einer Befehlsantwortnachricht der Verschlüsselungskarte abgelegt, die zum Beispiel an die AP-Transportschicht gesendet wird, SCHRITT 426. Die Transportschicht übersetzt die von der Verschlüsselungskarte empfangene Befehlsantwortnachricht in eine AP-Befehlsantwortnachricht (z.B. Nachricht 330), die an den Gast zurückgegeben wird, SCHRITT 428.
  • Unter Rückkehr zur ABFRAGE 424 wird, wenn der Befehl kein gültiger Befehl der ausgewählten Befehlstypfilterung ist (z.B. ist er nicht in dem Satz von Befehlen der ausgewählten Befehlstypfilterungsfunktion enthalten), der Befehl durch die Ziel-Verschlüsselungskarte als ungültiger Befehl der ausgewählten Befehlstypfilterung zurückgewiesen, und eine derartige Angabe wird an die Transportschicht zurückgegeben, SCHRITT 430. Zum Beispiel ist ein ausgewählter Fehlercode (z.B. Fehlercode 350) in einem Antwort-CPRB der Antwortnachricht der Verschlüsselungskarte enthalten, und die Antwortnachricht wird zum Beispiel an die Transportschicht gesendet. Die Transportschicht übersetzt die von der Verschlüsselungskarte empfangene Antwortnachricht, indem eine AP-Befehlsantwortnachricht 330 bereitgestellt wird, die den Fehlercode 350 des Antwort-CPRB 336 sowie einen Antwortcode 352 in den Kopfdaten 332 enthält. Zum Beispiel übersetzt die Transportschicht den ausgewählten Fehlercode in dem CPRB in einen AP-Antwortcode (z.B. 8B) und legt ihn in einem AP-Antwortcodefeld der Kopfdaten der AP-Antwortnachricht (z.B. Antwortcode 352) ab, um den Zugriff auf den Antwortcode zu ermöglichen, SCHRITT 432. Die Antwortnachricht wird an den Gast gesendet, SCHRITT 428.
  • Unter Rückkehr zur ABFRAGE 420 simuliert, wenn die Ziel-Verschlüsselungskarte die ausgewählte Befehlstypfilterungsfunktion (z.B. Filterungsfunktion für zustandslose Befehle) nicht unterstützt, der Hypervisor gemäß einem Aspekt der vorliegenden Erfindung die ausgewählte Befehlstypfilterungsoperation (z.B. Filterungsoperation für zustandslose Befehle) wie nachstehend beschrieben, und die Ergebnisse der Operation werden an den Gast zurückgegeben, SCHRITT 450. Weitere Einzelheiten des Simulierens einer ausgewählten Befehlstypfilterungsoperation werden unter Bezugnahme auf 4B beschrieben.
  • Unter Bezugnahme auf 4B prüft der Hypervisor bei einer Ausführungsform eine AP-Befehlsliste (z.B. AP-Befehlsliste 408) auf den angeforderten Befehl, SCHRITT 452. Zum Beispiel prüft der Hypervisor die AP-Befehlsliste, um festzustellen, ob der Ziel-AP-Befehl in der AP-Befehlsliste enthalten ist. Wenn der angeforderte Befehl nicht in der Liste enthalten ist, ABFRAGE 454, wird der entsprechende Filterungsindikator (z.B. ein Indikator für die ausgewählte Befehlstypfilterung wie z.B. ein Indikator 322 für zustandslose Befehlstypen) auf einen ausgewählten Wert gesetzt, z.B. eins, SCHRITT 456, und der Befehl wird an eine der Verschlüsselungskarten gesendet, die die ausgewählte Befehlstypfilterungsfunktion unterstützen.
  • Die Verschlüsselungskarte verarbeitet den Befehl, und der Hypervisor prüft die Ergebnisse, SCHRITT 458. Wenn die Ergebnisse auf einen gültigen Befehl für die Befehlstypfilterungsfunktion hinweisen, ABFRAGE 460, fügt der Hypervisor den AP-Befehl zu der AP-Befehlsliste als Befehl der ausgewählten Befehlstypfilterung hinzu (z.B. als Befehl des zustandslosen AP-Befehlstyps), SCHRITT 462. Außerdem wird der AP-Befehl auf der Ziel-Verschlüsselungskarte ausgeführt, und die Ergebnisse werden an den Gast zurückgegeben, SCH RITT 464.
  • Unter Rückkehr zur ABFRAGE 460 fügt, wenn die Ergebnisse, z.B. über einen Fehlercode, auf einen ungültigen Befehl für die ausgewählter Befehlstypfilterungsfunktion hindeuten, der Hypervisor den Befehl zu der Befehlsliste als gültigen AP-Befehl (aber nicht als gültigen Befehl der ausgewählten Befehlstypfilterung) hinzu, SCHRITT 466, und der AP-Befehl wird zurückgewiesen, SCHRITT 468. Zum Beispiel weist der Hypervisor den AP-Befehl als ungültigen Befehl der ausgewählten Befehlstypfilterung zurück, indem er eine Fehlerantwortnachricht über den ungültigen zustandslosen AP-Befehl mit dem neuen AP-Antwortcode 8B in dem AP-Antwortcodefeld (z.B. Antwortcode 352) der Kopfdaten der AP-Befehlsantwortnachricht (z.B. Kopfdaten 332) zusammensetzt und die zusammengesetzte AP-Antwortnachricht an ihren Gast zurückgibt, der den AP-Befehl in die Warteschlange eingereiht hat, um den Gast darauf hinzuweisen, dass es sich bei dem Befehl nicht um einen Befehl des ausgewählten AP-Befehlstyp handelt.
  • Unter Rückkehr zur ABFRAGE 454 wird, wenn sich der AP-Befehl auf der AP-Befehlsliste befindet, eine weitere Abfrage vorgenommen, z.B. durch den Hypervisor, ob es sich bei dem Befehl um einen gültigen Befehl für die ausgewählte Befehlstypfilterungsfunktion handelt, ABFRAGE 470. Wenn der Befehl für die ausgewählte Befehlstypfilterungsfunktion gültig ist, geht die Verarbeitung zu SCHRITT 464, in dem der AP-Befehl durch den Hypervisor an die Ziel-Verschlüsselungskarte gesendet wird, der Befehl auf der Ziel-Verschlüsselungskarte ausgeführt wird und die Ergebnisse an den Gast zurückgegeben werden. Wenn der AP-Befehl jedoch für die ausgewählte Befehlstypfilterungsfunktion ungültig ist, wird der AP-Befehl durch den Hypervisor als ungültiger Befehl für die ausgewählte Befehlstypfilterungsfunktion zurückgewiesen, und die Ergebnisse werden an den Gast zurückgegeben, SCHRITT 468, wie vorstehend beschrieben.
  • Bei einer Ausführungsform empfängt das Gastprogramm, wenn es die AP-Befehlsantwortnachricht (z.B. Nachricht 330) über zum Beispiel eine Anweisung zum Entfernen aus der Warteschlange wie z.B. die Anweisung „Dequeue Adjunct Process Queue“ (DQAP) der z/Architecture-Hardwarearchitektur oder eine Anweisung einer anderen Architektur aus der AP-Warteschlange entfernt, die verarbeitete AP-Befehlsantwortnachricht von der Verschlüsselungskarte (entweder aus der Hypervisor-Simulation oder von der Verschlüsselungskarte). Das Gastprogramm erkennt denselben Fehlercode, z.B. Code 8B, in dem AP-Antwortcode (z.B. Antwortcode 352) unabhängig davon, ob der AP-Befehl durch die Hypervisor-Simulation oder die Verschlüsselungskarte zurückgewiesen wurde. Bei einer Ausführungsform würde das Gastprogramm jedoch nur den Fehlercode in dem CPRB der Befehlsantwortnachricht erkennen, wenn die Verschlüsselungskarte und nicht die Hypervisor-Simulation den AP-Befehl verarbeitet hat. Daher kann der CPRB-Fehlercode verwendet werden, um den Erzeuger des Fehlers zu ermitteln, indem die AP-Befehlsantwortnachricht untersucht wird.
  • Wie hierin beschrieben, simuliert, wenn der Gast nur einen Teilsatz von Befehlen (z.B. zustandslose Befehlstypbefehle) ausführen darf, aber keine der Verschlüsselungskarten in der Konfiguration des Hypervisors den ausgewählten Modus (z.B. Filterung zustandsloser AP-Befehle) unterstützt, der Hypervisor bei einer Ausführungsform die Filterungsfunktion für zustandslose AP-Befehle nicht von sich aus und lässt nicht zu, dass der Gast Verschlüsselungskarten verwendet.
  • Gemäß einem Aspekt der vorliegenden Erfindung führt, wenn der Gast in einem ausgewählten Befehlstypfilterungsmodus (z.B. Filterungsmodus für zustandslose AP-Befehle) läuft, aber die ausgewählte Filterungsfunktion für zustandslose AP-Befehle nicht installiert ist, jedoch eine Prüfung durch, um festzustellen, ob es sich bei dem AP-Befehl um einen Befehl der ausgewählten Befehlstypfilterungsfunktion handelt, indem er den Befehl simuliert. Dies wird bei einem Beispiel anstelle des Aufrechterhaltens einer statischen Liste von ausgewählten Befehlen für jede Verschlüsselungskarte durchgeführt, die sie unterstützt, was ziemlich mühsam und nicht ohne Weiteres in einer Zeit zu erreichen ist, um den Computer in einen Prüfzustand zu versetzen. Hierbei werden die Informationen aus einer der anderen Verschlüsselungskarten verwendet, die den ausgewählten Befehlstypmodus unterstützt, um den Befehl auf der Ziel-Verschlüsselungskarte zu simulieren, die die ausgewählte Befehlstypmodusfunktion nicht unterstützt. Die AP-Befehlsantwortnachricht wird durch den Hypervisor zusammengesetzt, und die Ergebnisse werden an den Gast gesendet.
  • Wenn der Gast in dem ausgewählten Befehlstypmodus läuft und die ausgewählte AP-Befehlstypfilterungsfunktion, die dem ausgewählten Befehlstypmodus entspricht, auf der Ziel-Verschlüsselungskarte installiert ist, setzt der Hypervisor den Indikator für zustandslose Befehlstypen in dem CPRB und sendet den Befehl zum Ausführen an die Ziel-Verschlüsselungskarte.
  • Bei einer Ausführungsform empfängt die Verschlüsselungskarte eine Befehlsanforderungsnachricht (z.B. AP-Befehlsanforderungsnachricht 300) von dem Hypervisor, ermittelt auf der Grundlage von Befehlstypfilterungsindikatoren in dem CPRB, die durch den Hypervisor gesetzt wurden, ob der Befehl ausgeführt werden darf, führt den Befehl aus, wenn der Befehl auf der Grundlage der durch den Hypervisor gesetzten Befehlstypindikatoren als gültig ermittelt wurde, und die Ergebnisse werden in einer Befehlsantwortnachricht abgelegt. Die Befehlsantwortnachricht wird z.B. an die AP-Befehlstransportschicht (z.B. Transportschicht 110, 160) gesendet, und die AP-Befehlstransportschicht übersetzt die Befehlsantwortnachricht in die AP-Befehlsantwortnachricht 330. Ferner übersetzt sie den Filterungsfehlercode (sofern gefunden) in dem CPRB in einen ausgewählten AP-Antwortcode, z.B. in 8B. Die Transportschicht legt den Antwortcode in dem AP-Antwortcodefeld (z.B. Antwortcode 352) in den Kopfdaten (z.B. Kopfdaten 332) der AP-Befehlsantwortnachricht ab und sendet die Ergebnisse an den Gast.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Fehlercode (z.B. Fehlercode für ungültige zustandslose AP-Befehle) in dem Fehlermeldefeld in dem Antwort-CPRB der AP-Befehlsantwortnachricht definiert, sodass die Verschlüsselungskarte melden kann, dass ein Gast einen AP-Befehl angefordert hat, der aufgrund von durch den Hypervisor gesetzten Befehlstypfilterungsindikatoren nicht zulässig ist. Die Verschlüsselungskarte meldet den Fehlercode für AP-Befehlstypfilterung in dem Fehlermeldefeld in dem Antwort-CPRB der AP-Befehlsantwortnachricht. Der Fehlercode der Verschlüsselungskarte in dem CPRB befindet sich jedoch bei unterschiedlichen Modi an unterschiedlichen Offsets (z.B. Coprozessormodus, Modus EP11), und ihre Nachrichtenstrukturen und -formate unterscheiden sich. Daher wird ein zentraler Ort zum Zurückgeben des AP-Fehlercodes (z.B. AP-Antwortcode) bereitgestellt, der von Zusatzprozessormodi unabhängig ist, sodass der/die Hypervisor/en sowie der/die Gast/Gäste den Fehlercode unabhängig davon leicht finden können, wer den Fehler erzeugt hat. Infolgedessen wird ein Fehlercode für ungültige ausgewählte Modi (z.B. AP-Fehlercode 8B) in dem AP-Antwortcodefeld (z.B. Antwortcode 352) in den Kopfdaten der AP-Befehlsantwortnachricht definiert, um den Fehler über gefilterte nicht zustandslose AP-Befehle zu melden. Bei dem AP-Fehlercode handelt es sich um das gemeinsame Fehlermeldefeld für eine AP-Nachricht, da es dem Gast ermöglicht, den Fehlercode unabhängig davon zu finden, wer den Fehler erzeugt hat (Hypervisor unter Verwendung Einer Simulation der Befehlstypfilterung, Verschlüsselungskarte im Coprozessormodus, Verschlüsselungskarte im XCP-Modus oder Verschlüsselungskarte im Beschleunigermodus usw.). Die Verschlüsselungskarte hat jedoch keinen Zugriff auf das AP-Antwortcodefeld und speichert daher den AP-Antwortcode nicht in dem AP-Antwortcode in den Kopfdaten der AP-Befehlsantwortnachricht. Die Fehlercodes der Verschlüsselungskarte, die in dem Fehlermeldefeld in dem Antwort-CPRB der AP-Befehlsantwortnachricht gespeichert sind, befinden sich im Allgemeinen außerhalb des Bereichs der AP-Architektur. Daher ist die Transportschicht so konfiguriert, dass sie in dem Fehlermeldefeld des Antwort-CPRB der AP-Befehlsantwortnachricht nach dem Fehlercode für den ausgewählten Befehlstypfilterungsmodus sucht und den Fehlercode in dem CPRB in den Antwortcode, z.B. 8B, übersetzt und ihn in dem AP-Antwortcode ablegt.
  • Die Verfügbarkeit des Fehlercodes für ungültige Befehle des ausgewählten Modus in dem Fehlermeldefeld in dem Antwort-CPRB der AP-Antwortnachricht ist zur Fehlersuche und -beseitigung von Fehlern (debugging) nützlich, um zu ermitteln, ob der AP-Fehlercode durch die Verschlüsselungskarte oder die Hypervisor-Simulation erzeugt wurde, da die Hypervisor-Simulation den Fehlercode für ungültige Befehle des ausgewählten Modus nicht in dem Fehlermeldefeld in dem Antwort-CPRB der AP-Befehlsantwortnachricht speichert.
  • Ein oder mehrere Aspekte der vorliegenden Erfindung sind untrennbar mit der Computertechnologie verbunden und erleichtern die Verarbeitung, unter anderem die Befehlsverarbeitung, innerhalb einer Datenverarbeitungsumgebung und verbessern dadurch deren Leistung. Weitere Einzelheiten einer Ausführungsform von Aspekten, die das Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung betreffen, werden unter Bezugnahme auf die 5A bis 5B beschrieben.
  • Unter Bezugnahme auf 5A wird bei einer Ausführungsform eine Ermittlung vorgenommen, ob ein Ziel-Zusatzprozessor einer Mehrzahl von Zusatzprozessoren der Datenverarbeitungsumgebung so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus (500) unterstützt, und eine Prüfung wird vorgenommen, ob ein weiterer Zusatzprozessor der Mehrzahl von Zusatzprozessoren so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus (502) unterstützt.
  • Auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, wird ein Befehl zu dem anderen Zusatzprozessor zur Verarbeitung weitergeleitet, um zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus (504) gültig ist. Auf der Grundlage der Verarbeitung auf dem anderen Zusatzprozessor (506) wird eine Angabe erhalten, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist.
  • Der Befehl wird auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus (508) gültig ist, zur Verarbeitung an den Ziel-Zusatzprozessor gesendet.
  • Bei einer Ausführungsform wird der Befehl auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus (510) ungültig ist, als für den ausgewählten Befehlstypfilterungsmodus ungültig zurückgewiesen, und das Ausführen auf dem Ziel-Zusatzprozessor wird unterlassen.
  • Darüber hinaus wird bei einem Beispiel ein Fehlercode an einem zentralen Ort abgelegt, um das Zugreifen auf den Fehlercode (512) zu erleichtern.
  • Beispielhaft handelt es sich bei dem ausgewählten Befehlstypfilterungsmodus um einen Filterungsmodus (514) für zustandslose Befehle, und die Vielzahl von Zusatzprozessoren umfasst eine Vielzahl von Verschlüsselungskarten (516).
  • Unter Bezugnahme auf 5B wird bei einer Ausführungsform auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, ein Befehl als Befehl des ausgewählten Befehlstypfilterungsmodus zu einer Befehlsliste hinzugefügt (518). Die Befehlsliste soll zum Ermitteln verwendet werden, welche Befehle zur Ausführung auf dem Ziel-Zusatzprozessor gültig sind (520). Ferner wird bei einer Ausführungsform auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist, der Befehl als gültiger Zusatzprozessorbefehl zu der Befehlsliste hinzugefügt (522).
  • Bei einer Ausführungsform wird der Befehl auf der Grundlage des Feststellens zurückgewiesen, dass die Mehrzahl von Zusatzprozessoren nicht so konfiguriert sind, dass sie den ausgewählten Befehlstypfilterungsmodus unterstützen (524).
  • Ferner wird bei einer Ausführungsform auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, wird eine Ermittlung dahingehend durchgeführt, ob sich der Befehl auf einer Befehlsliste befindet, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, ob der Befehl auf dem Ziel-Zusatzprozessor ausgeführt werden soll (526). Auf der Grundlage des Feststellens, dass sich der Befehl nicht in der Befehlsliste befindet, wird der Befehl zur Verarbeitung zu dem anderen Zusatzprozessor weitergeleitet (528).
  • Bei einer Ausführungsform wird auf der Grundlage einer erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor der Befehl als gültiger Befehl des ausgewählten Befehlstypfilterungsmodus zu der Befehlsliste hinzugefügt (530). Darüber hinaus wird auf der Grundlage einer nicht erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor der Befehl als gültiger Zusatzprozessorbefehl zu der Befehlsliste hinzugefügt (532).
  • Andere Varianten und Ausführungsformen sind möglich.
  • Befehlstypfilterung eines oder mehrerer Aspekte der vorliegenden Erfindung kann in viele Datenverarbeitungsumgebungen einbezogen und in diesen verwendet werden. Eine beispielhafte Datenverarbeitungsumgebung wird unter Bezugnahme auf 6A beschrieben. Beispielhaft beruht die Datenverarbeitungsumgebung auf der z/Architecture®-Hardwarearchitektur, die bei International Business Machines Corporation, Armonk, New York, erhältlich ist. Bei der z/Architecture-Hardwarearchitektur handelt es sich jedoch nur um eine beispielhafte Architektur. Die Datenverarbeitungsumgebung kann auch auf anderen Architekturen beruhen, unter anderem und ohne auf diese beschränkt zu sein, auf den Intel-x86-Architekturen, anderen Architekturen von International Business Machines Corporation und/oder Architekturen von anderen Unternehmen.
  • Wie in 6A gezeigt, enthält eine Datenverarbeitungsumgebung 600 zum Beispiel ein Computersystem 602, das z.B. in Form einer Universal-Datenverarbeitungseinheit gezeigt ist. Das Computersystem 602 kann, ohne auf diese beschränkt zu sein, einen oder mehrere Prozessoren oder Verarbeitungseinheit 604 (z.B. Zentraleinheiten (CPUs)), einen Speicher 606 (beispielsweise auch als Systemhauptspeicher, Hauptarbeitsspeicher, Hauptspeicher, zentraler Speicher oder Speicher bezeichnet) und eine oder mehrere Eingangs-/Ausgangsschnittstellen (E/A-Schnittstellen) 608 enthalten, die untereinander über einen oder mehrere Busse und/oder andere Verbindungen 610 verbunden sind.
  • Der Bus 610 stellt eine oder mehrere beliebiger verschiedener Arten von Busstrukturen dar, zu denen ein Speicherbus oder eine Speichersteuereinheit, ein Peripheriebus, ein Accelerated Graphics Port und ein Prozessorbus oder lokaler Bus gehören, die eine beliebige einer Vielfalt von Busarchitekturen nutzen. Als Beispiel und nicht als Einschränkung gedacht gehören zu derartigen Architekturen der ISA-Bus (ISA = Industry Standard Architecture), der MCA-Bus (MCA = Micro Channel Architecture), der lokale EISA-Bus (EISA = Enhanced ISA), der lokale VESA-Bus (VESA = Video Electronics Standards Association) und der PCI-Bus (PCI = Peripheral Component Interconnect).
  • Der Speicher 606 kann zum Beispiel einen Cache 612 wie z.B. einen gemeinsam genutzten Cache enthalten, der mit lokalen Caches 614 von Prozessoren 604 verbunden sein kann. Ferner kann der Speicher 606 ein oder mehrere Programme oder eine oder mehrere Anwendungen 616, mindestens ein Betriebssystem 618 und eine oder mehrere durch einen Computer lesbare Programmanweisungen 620 enthalten. Die durch einen Computer lesbaren Programmanweisungen 620 können so konfiguriert sein, dass Funktionen von Ausführungsformen von Aspekten der Erfindung ausgeführt werden.
  • Bei einer Ausführungsform ist der Speicher 606 (z.B. mindestens ein Hardwaresystembereich des Speichers 606) mit einem oder mehreren Zusatzprozessoren 621 über einen oder mehrere Zusatzprozessorbusse 623 und bei einer oder mehreren Ausführungsformen über eine AP-Transportschicht verbunden.
  • Das Computersystem 602 kann z.B. über E/A-Schnittstellen 608 mit einer oder mehreren externen Einheiten 630 wie z.B. mit einem Benutzerendgerät, einem Bandlaufwerk, einer Zeigeeinheit, eine Anzeige und einer oder mehreren Datenspeichereinheiten 634 usw. Daten austauschen. Eine Datenspeichereinheit 634 kann ein oder mehrere Programme 636, eine oder mehrere durch einen Computer lesbare Programmanweisungen 638 und/oder Daten usw. speichern. Die durch einen Computer lesbaren Programmanweisungen können so konfiguriert sein, dass Funktionen von Ausführungsformen von Aspekten der Erfindung ausgeführt werden.
  • Das Computersystem 602 kann außerdem z.B. über E/A-Schnittstellen 608 Daten mit der Netzwerkschnittstelle 632 austauschen, die dem Computersystem 602 ermöglicht, Daten mit einem oder mehreren Netzwerken wie z.B. mit einem lokalen Netzwerk (Local Area Network, LAN), einem allgemeinen Weitbereichsnetzwerk (Wide Area Network, WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) auszutauschen, die Datenaustausch mit anderen Datenverarbeitungseinheiten oder -systemen bereitstellen.
  • Das Computersystem 602 kann wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten oder mit diesem verbunden sein. Zum Beispiel kann es ein nichtwechselbares, nichtflüchtiges Magnetmedium (in der Regel als „Festplatte“ bezeichnet), ein Magnetplattenlaufwerk zum Lesen von einer und Schreiben auf eine wechselbare nichtflüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von einer oder Schreiben auf eine wechselbare nichtflüchtige optische Platte wie zum Beispiel ein CD-ROM, DVD-ROM oder ein anderes optisches Medium enthalten oder mit diesen verbunden sein. Es sollte klar sein, dass andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem 602 verwendet werden könnten. Zu Beispielen gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerksanordnungen, RAID-Systeme (RAID = Redundant Array of Independent Disks), Bandlaufwerke, Speichersysteme zur Datenarchivierung usw.
  • Das Computersystem 602 kann in Verbindung mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystemumgebungen oder derartigen Konfigurationen betriebsfähig sein. Zu Beispielen allgemein bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung in Verbindung mit dem Computersystem 602 geeignet sind, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme (PC-Systeme), Server-Computersysteme, Thin-Clients, Thick-Clients, Hand- oder Notebook-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Einheiten der Konsumgüterelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, zu denen beliebige der oben erwähnten Systeme oder Einheiten gehören, und dergleichen.
  • Ein weiteres Beispiel einer Datenverarbeitungsumgebung, die in einen oder mehrere Aspekte der vorliegenden Erfindung einbezogen und verwendet werden kann, wird unter Bezugnahme auf 6B beschrieben. Beispielhaft kann die Datenverarbeitungsumgebung von 6B auf der z/Architecture®-Hardwarearchitektur beruhen, die bei International Business Machines Corporation erhältlich ist. Bei der z/Architecture-Hardwarearchitektur handelt es sich jedoch nur um eine beispielhafte Architektur. Um noch einmal darauf hinzuweisen, die Datenverarbeitungsumgebung kann auch auf anderen Architekturen beruhen, unter anderem und ohne auf diese beschränkt zu sein, auf den Intel-x86-Architekturen, anderen Architekturen von International Business Machines Corporation und/oder Architekturen von anderen Unternehmen.
  • Bei einem Beispiel umfasst die Datenverarbeitungsumgebung 650 einen zentralen Elektronikkomplex (central electronics complex, CEC) 652. Der CEC 652 enthält eine Mehrzahl von Komponenten wie z.B. einen Speicher 654 (der auch als Systemspeicher, Arbeitsspeicher, Hauptspeicher, Zentralspeicher, Speicher bezeichnet wird), der mit einem oder mehreren Prozessoren (die auch als Zentraleinheiten (CPUs) bezeichnet werden) 656 und mit einem Eingabe/Ausgabe-Teilsystem (E/A-Teilsystem) 658 verbunden ist. Ferner ist der Speicher 654 (z.B. mindestens ein Hardwaresystembereich des Speichers 654) bei einer Ausführungsform mit einem oder mehreren Zusatzprozessoren 657 über einen oder mehrere Zusatzprozessorbusse und bei einer oder mehreren Ausführungsformen über eine AP-Transportschicht verbunden.
  • Das E/A-Teilsystem 658 kann Teil des zentralen Elektronikkomplexes oder davon getrennt sein. Es leitet den Informationsfluss zwischen dem Hauptspeicher 654 und Eingabe/Ausgabe-Steuereinheiten 660 und Eingabe/Ausgabe-Einheiten (E/A-Einheiten) 662, die mit dem zentralen Elektronikkomplex verbunden sind.
  • Viele Arten von E/A-Einheiten können verwendet werden. Bei einer bestimmten Art handelt es sich um eine Datenspeichereinheit 664. Auf der Datenspeichereinheit 664 können ein oder mehrere Programme 666, eine oder mehrere durch einen Computer lesbare Programmanweisungen 668 und/oder Daten usw. gespeichert sein. Die durch einen Computer lesbaren Programmanweisungen können so konfiguriert sein, dass Funktionen von Ausführungsformen von Aspekten der Erfindung ausgeführt werden.
  • Der zentrale Elektronikkomplex 652 kann wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten oder mit diesen verbunden sein. Zum Beispiel kann es ein nichtwechselbares, nichtflüchtiges Magnetmedium (in der Regel als „Festplatte“ bezeichnet), ein Magnetplattenlaufwerk zum Lesen von einer und Schreiben auf eine wechselbare nichtflüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von einer oder Schreiben auf eine wechselbare nichtflüchtige optische Platte wie z.B. ein CD-ROM, DVD-ROM oder andere optische Medien enthalten oder mit diesen verbunden sein. Es sollte klar sein, dass andere Hardware- und/oder Softwarekomponenten in Verbindung mit dem zentralen Elektronikkomplex 652 verwendet werden könnten. Zu Beispielen gehören, ohne auf diese beschränkt zu sein: Mikrocode, Gerätetreiber, redundante Verarbeitungseinheiten, externe Festplatten-Anordnungen, RAID-Systeme (RAID = Redundant Array of Independent Disks), Bandlaufwerke, Speichersysteme zur Datenarchivierung usw.
  • Ferner kann der zentrale Elektronikkomplex 652 in Verbindung mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystemumgebungen oder derartigen Konfigurationen betriebsfähig sein. Zu Beispielen allgemein bekannter Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung in Verbindung mit dem zentralen Elektronikkomplex 652 geeignet sind, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme (PC-Systeme), Server-Computersysteme, Thin-Clients, Thick-Clients, Hand- oder Notebook-Einheiten, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Einheiten der Konsumgüterelektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, zu denen beliebige der oben erwähnten Systeme oder Einheiten gehören, und dergleichen.
  • Der zentrale Elektronikkomplex 652 stellt bei einer oder mehreren Ausführungsformen eine Unterstützung für logische Partitionierung und/oder Virtualisierung bereit. Bei einer Ausführungsform enthält der Speicher 654 wie in 6C gezeigt zum Beispiel eine oder mehrere logische Partitionen 670, einen Hypervisor 672, der die logischen Partitionen verwaltet, und Prozessor-Firmware 674 bereit. Bei einem Beispiel des Hypervisors 672 handelt es sich um den Processor Resource/System Manager (PR/SM), der bei International Business Machines Corporation, Armonk, New York, erhältlich ist. Im hierin verwendeten Sinne gehört zu der Firmware z.B. der Mikrocode des Prozessors. Er enthält zum Beispiel die Anweisungen auf der Hardwareebene und/oder Datenstrukturen, die zur Realisierung eines höheren Maschinencodes verwendet werden. Bei einer Ausführungsform umfasst er zum Beispiel einen proprietären Code, der normalerweise als Mikrocode bereitgestellt ist und vertrauenswürdige Software oder vertrauenswürdigen Mikrocode umfasst, der für die zugrunde liegende Hardware spezifisch ist und den Zugriff des Betriebssystems auf die Systemhardware steuert.
  • Jede logische Partition 670 ist in der Lage, als separates System zu fungieren. Das heißt, jede logische Partition kann unabhängig voneinander zurückgesetzt werden, ein Gastbetriebssystem 676 wie z.B. das Betriebssystem z/OS®, das bei International Business Machines Corporation, Armonk, New York, erhältlich ist, oder anderen Steuercode 678 wie z.B. CFSS (coupling facility control code) ausführen und mit unterschiedlichen Programmen 680 zusammenarbeiten. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer logischen Partition läuft, scheint Zugriff auf ein vollständiges und komplettes System zu haben, aber in Wirklichkeit steht ihm nur ein Abschnitt davon zur Verfügung. Zwar ist z/OS beispielhaft aufgeführt, aber gemäß einem oder mehreren Aspekten der vorliegenden Erfindung können auch andere Betriebssysteme verwendet werden.
  • Der Speicher 654 ist mit CPUs 656 (6B) verbunden, bei denen es sich um physische Prozessorressourcen handelt, die den logischen Partitionen zugeordnet werden können. Zum Beispiel umfasst eine logische Partition 670 einen oder mehrere logische Prozessoren, von denen jeder für die gesamte physische Prozessorressource 656 oder einen Teil davon steht, die/der der logischen Partition dynamisch zugeordnet werden kann.
  • Bei noch einer weiteren Ausführungsform stellt der zentrale Elektronikkomplex eine Unterstützung für virtuelle Maschinen bereit (entweder mit oder ohne Unterstützung der logischen Partitionierung). Wie in 6D gezeigt, umfasst der Speicher 654 des zentralen Elektronikkomplexes 652 zum Beispiel eine oder mehrere virtuelle Maschinen 690, einen Manager für virtuelle Maschinen wie z.B. einen Hypervisor 692, der die virtuellen Maschinen verwaltet, und Prozessor-Firmware 694. Bei einem Beispiel des Hypervisors 692 handelt es sich um den Hypervisor z/VM®, der bei International Business Machines Corporation, Armonk, New York, erhältlich ist. Der Hypervisor wird manchmal auch als Host bezeichnet. z/ OS und z/VM sind eingetragene Marken von International Business Machines Corporation in mindestens einem juristischen Geltungsbereich.
  • Die Unterstützung des CPC für virtuelle Maschinen stellt die Fähigkeit bereit, große Anzahlen von virtuellen Maschinen 690 zu betreiben, die jeweils in der Lage sind, mit unterschiedlichen Programmen 696 zusammenzuarbeiten und ein Gastbetriebssystem 698 wie z.B. das Betriebssystem Linux® auszuführen. Jede virtuelle Maschine 690 ist in der Lage, als separates System zu fungieren. Das heißt, jede virtuelle Maschine kann unabhängig voneinander zurückgesetzt werden, ein Gastbetriebssystem ausführen und mit unterschiedlichen Programmen zusammenarbeiten. Ein Betriebssystem oder ein Anwendungsprogramm, das in einer virtuellen Maschine läuft, scheint Zugriff auf ein vollständiges und komplettes System zu haben, aber in Wirklichkeit steht ihm nur ein Abschnitt davon zur Verfügung. Zwar sind z/VM und Linux beispielhaft aufgeführt, aber gemäß einem oder mehreren Aspekten der vorliegenden Erfindung können auch andere Manager für virtuelle Maschinen und Betriebssysteme verwendet werden. Die eingetragene Marke Linux® wird in Übereinstimmung mit einer Unterlizenz von der Linux Foundation verwendet, dem ausschließlichen Lizenznehmer von Linus Torvalds als weltweitem Eigentümer der Marke.
  • Eine weitere Ausführungsform einer Datenverarbeitungsumgebung, bei der eine oder mehrere Aspekte der vorliegenden Erfindung einbezogen und verwendet werden, wird unter Bezugnahme auf 7A beschrieben. Bei diesem Beispiel enthält eine Datenverarbeitungsumgebung 10 zum Beispiel eine native Zentraleinheit (CPU) 12, einen Speicher 14 und eine oder mehrere Eingabe/Ausgabe-Einheiten und/oder Schnittstellen 16, die untereinander zum Beispiel über einen oder mehrere Busse 18 und/oder andere Verbindungen verbunden sind. Beispielhaft kann die Datenverarbeitungsumgebung 10 einen PowerPC®-Prozessor, der bei International Business Machines Corporation, Armonk, New York, erhältlich ist; einen HP Superdome mit Prozessoren des Typs Intel Itanium II, der bei Hewlett Packard Co., Palo Alto, Kalifornien, erhältlich ist; und/oder andere Computer enthalten, die auf Architekturen beruhen, die bei International Business Machines Corporation, Hewlett Packard, Intel Corporation, Oracle oder anderen erhältlich sind. PowerPC ist eine Marke eingetragene Marke von International Business Machines Corporation in mindestens einem juristischen Geltungsbereich. Intel und Itanium sind Marken oder eingetragene Marken von Intel Corporation oder deren Tochterunternehmen in den Vereinigten Staaten und anderen Ländern.
  • Die native Zentraleinheit 12 enthält ein oder mehrere native Register 20 wie zum Beispiel ein oder mehrere Universalregister und/oder ein oder mehrere Spezialregister, die während der Verarbeitung innerhalb der Umgebung verwendet werden. Diese Register enthalten Informationen, die den Zustand der Umgebung zu jedem beliebigen Zeitpunkt wiedergeben.
  • Darüber hinaus führt die native Zentraleinheit 12 Anweisungen und Code aus, die im Speicher 14 gespeichert sind. Bei einem bestimmten Beispiel führt die Zentraleinheit Emulatorcode 22 aus, der im Speicher 14 gespeichert ist. Dieser Code ermöglicht der in einer Architektur konfigurierten Datenverarbeitungseinheit, eine andere Architektur zu emulieren. Zum Beispiel ermöglicht der Emulatorcode 22 Computern, die auf anderen Architekturen als der z/Architecture-Hardwarearchitektur beruhen, wie z.B. PowerPC-Prozessoren, HP-Superdome-Servern oder anderen, die z/Architecture-Hardwarearchitektur zu emulieren und Software und Anweisungen auszuführen, die auf der Grundlage der z/Architecture-Hardwarearchitektur entwickelt wurden.
  • Weitere Einzelheiten, die den Emulatorcode 22 betreffen, sind unter Bezugnahme auf 7B beschrieben. Im Speicher 14 gespeicherte Gastanweisungen 30 weisen Softwareanweisungen (die z.B. im Zusammenhang mit Maschinenanweisungen stehen) auf, die zur Ausführung in einer anderen Architektur als der der nativen CPU 12 entwickelt wurden. Zum Beispiel können die Gastanweisungen 30 entwickelt worden sein, um auf einem Prozessor ausgeführt zu werden, der auf der z/Architecture-Hardwarearchitektur beruht, werden aber stattdessen auf der nativen CPU 12 emuliert, bei der es sich zum Beispiel um einen Intel-Itanium-II-Prozessor handeln kann. Bei einem Beispiel enthält der Emulatorcode 22 eine Anweisungsabrufeinheit 32, um eine oder mehrere Gastanweisungen 30 aus dem Speicher 14 zu erhalten und wahlweise eine lokale Pufferung für die erhaltenen Anweisungen bereitzustellen. Außerdem enthält er eine Anweisungsübersetzungsroutine 34, um die Art von Gastanweisung zu ermitteln, die erhalten wurde, und die Gastanweisung in eine oder mehrere entsprechende native Anweisungen 36 zu übersetzen. Diese Übersetzung enthält zum Beispiel das Erkennen der Funktion, die durch die Gastanweisung durchzuführen ist, und das Auswählen der nativen Anweisung(en), um diese Funktion durchzuführen.
  • Ferner enthält der Emulatorcode 22 eine Emulationssteuerroutine 40, um zu bewirken, dass die nativen Anweisungen ausgeführt werden. Die Emulationssteuerroutine 40 kann die native CPU 12 veranlassen, eine Routine aus nativen Anweisungen auszuführen, die eine oder mehrere zuvor erhaltene Gastanweisungen emulieren, und zum Abschluss einer derartigen Ausführung die Steuerung an die Anweisungsabrufroutine zurückzugeben, um das Erhalten der nächsten Gastanweisung oder einer Gruppe von Gastanweisungen zu emulieren. Die Ausführung der nativen Anweisungen 36 kann das Laden von Daten aus dem Speicher 14 in ein Register aufweisen; das Speichern von Daten aus einem Register zurück in den Speicher; oder das Durchführen einer bestimmten Art von Arithmetik- oder Logikoperation, die durch die Übersetzungsroutine ermittelt wurde.
  • Jede Routine ist zum Beispiel in Software realisiert, die im Speicher gespeichert ist und durch native Zentraleinheit 12 ausgeführt wird. Bei anderen Beispielen sind eine oder mehrere der Routinen oder Operationen in Firmware, Hardware, Software oder in einer bestimmten Kombination davon realisiert. Die Register des emulierten Prozessors können unter Verwendung der Register 20 der nativen CPU oder durch Verwendung von Speicherplätzen im Speicher 14 emuliert sein. Bei Ausführungsformen können sich Gastanweisungen 30, native Anweisungen 36 und Emulatorcode 22 im selben Speicher befinden oder auf unterschiedlichen Speichereinheiten ausgelagert sein.
  • Ferner umfasst die Datenverarbeitungsumgebung 10 bei einer Ausführungsform einen oder mehrere Zusatzprozessoren 15, die mit dem Speicher 14 verbunden sind. Der eine oder die mehreren Zusatzprozessoren sind in einer Architektur definiert und so konfiguriert, dass sie eine weitere Architektur emulieren. Zum Beispiel erhält ein Zusatzprozessor Gastanweisungen der Architektur, die gerade emuliert wird, übersetzt die Gasteinweisungen in native Befehle der einen Architektur und führt die nativen Befehle aus.
  • Die vorstehend beschriebenen Datenverarbeitungsumgebungen sind lediglich Beispiele von Datenverarbeitungsumgebungen, die verwendet werden können. Andere Umgebungen, unter anderem und ohne auf diese beschränkt zu sein, nichtpartitionierte Umgebungen, partitionierte Umgebungen, Cloud-Umgebungen und/oder emulierte Umgebungen können verwendet werden; Ausführungsformen sind nicht auf eine beliebige Ausführungsform beschränkt. Zwar sind hierin verschiedene Beispiele von Datenverarbeitungsumgebungen beschrieben, jedoch können ein oder mehrere Aspekte der vorliegenden Erfindung mit vielen Arten von Umgebungen verwendet werden. Die hierin bereitgestellten Datenverarbeitungsumgebungen sind lediglich beispielhaft.
  • Jede Datenverarbeitungsumgebung ist in der Lage, so konfiguriert zu werden, dass sie einen oder mehrere Aspekte der vorliegenden Erfindung umfasst. Zum Beispiel kann jede zur Befehlstypfilterung gemäß einem oder mehreren Aspekten der vorliegenden Erfindung konfiguriert werden.
  • Wie hierin beschrieben, wird gemäß einem oder mehreren Aspekten Befehlstypfilterung auf einer Pro-Befehl-Grundlage bereitgestellt. Viele Filterungstechniken können verwendet werden. Bei einem bestimmten Beispiel wird Filterung zustandsloser Befehle bereitgestellt. Bei dieser Filterung ist bei einem Beispiel, wenn die Filterungsfunktion für zustandslose Befehle auf z.B. null gesetzt ist, ist die Filterungsfunktion für zustandslose Befehle nicht installiert, und der Zusatzprozessor (z.B. Verschlüsselungskarte) lässt zu, dass durch den Zusatzprozessor unterstützte Befehle ausgeführt werden; anderenfalls ist die Filterungsfunktion für zustandslose Befehl installiert, und von dem Wert des/der durch den Hypervisor gesetzten Werts/Werte des/der Indikators/Indikatoren in einer Befehlsanforderung hängt ab, ob ein Befehl durch den Zusatzprozessor ausgeführt wird. Eine beispielhafte Ausführungsform, die in der Befehlsanforderungsnachricht einen Indikator für zustandslose Befehlstypen enthält, wird nachstehend beschrieben:
  • Wenn der Indikator für zustandslose Befehlstypen (z.B. Indikator 322) in der Befehlsanforderungsnachricht (z.B. Nachricht 300) auf null gesetzt ist, lässt die Verschlüsselungskarte zu, dass alle durch die Verschlüsselungskarte unterstützten Befehle ausgeführt werden. Wenn der Indikator für zustandslose Befehlstypen (z.B. Indikator 322) in der Befehlsanforderungsnachricht (z.B. Nachricht 300) auf eins gesetzt ist, lässt die Verschlüsselungskarte nicht zu, dass alle durch die Verschlüsselungskarte unterstützten Befehle ausgeführt werden. Wenn es sich bei dem Befehl in der Befehlsanforderungsnachricht um einen Befehl des zustandslosen Befehlstyps handelt, wird der Befehl ausgeführt. Wenn es sich bei dem Befehl in der Befehlsanforderungsnachricht nicht um einen Befehl des zustandslosen Befehlstyps handelt, wird der Befehl mit einem Fehlercode in dem CPRB (z.B. Antwort-CPRB 336) der Befehlsantwortnachricht (z.B. Nachricht 330) zurückgegeben.
  • Bei einem oder mehreren Aspekten kann der konfigurierte Modus der Verschlüsselungskarte (z.B. Coprozessormodus) verwendet werden, um entweder eine Filterung für zustandslose Befehle (die auch als Filterungsmodus mit nicht sicheren Schlüsseln bezeichnet wird; z.B. werden nur Befehle des zustandslosen Befehlstyps verarbeitet) oder einen weiteren Filterungsmodus mit einem verringerten Satz von Befehlen bereitzustellen, ohne die Verschlüsselungskarte in einem neuen Verschlüsselungskartenmodus wie z.B. in dem Beschleunigermodus zu konfigurieren. Die Filterungstechnik kann verwendet werden, um einen Satz von Befehlen wie z.B. Befehle des zustandslosen Befehlstyps oder bei anderen Beispielen Befehle anderer Befehlstypen wie z.B. Masterschlüssel-Verwaltungsbefehle usw. zu filtern. Dies verringert die Anzahl von Zusatzprozessoren, die gekauft und verwaltet werden müssen.
  • Des Weiteren stellen ein oder mehrere Aspekte der Erfindung die Fähigkeit bereit, den Befehlstypfilterungsmodus für jeden Befehl dynamisch umzuschalten; die Befehlstypfilterung erfolgt auf einer Pro-Befehl-Grundlage. Daher kann jeder Befehl auf der Grundlage der Werte der Befehlstypmerker (z.B. Befehlstypfilterungsindikatoren) entweder gültig oder ungültig sein. Das Programm muss nicht zwischen verschiedenen Verschlüsselungskartenmodi umschalten, um unterschiedliche Filterungsbefehlssätze auszuführen. Daher bleibt die Komplexität des Verwaltens und Verwendens der Anzahl von Verschlüsselungskarten unabhängig von der Anzahl unterstützter Filterungsmodi gleich. Die Verringerung der Programmkomplexität trägt auch zu einem effizienteren Code bei und verbessert Codeausführungszeit und Leistung.
  • Bei einem weiteren Aspekt werden Informationen von einem Zusatzprozessor (z.B. eine neuere Version), der eine ausgewählte Befehlstypfilterungsfunktion unterstützt, zum Simulieren der Filterungsfunktion verwendet, die der Ziel-Zusatzprozessor (z.B. ältere Version) nicht unterstützt.
  • Bei einem oder mehreren Aspekten ermittelt der Hypervisor auf der Grundlage des Bedarfs des Gastes (z.B. festgelegte Cloud-Umgebung de Kunden) den Satz von AP-Befehlstypfilterungsmodi, die AP-Befehlstypsätze und die AP-Befehlstypmerker. Der Hypervisor legt den AP-Befehlssatzmodus auf der Grundlage der AP-Befehlssätze fest, die durch den Gast der Cloud-Umgebung zugelassen werden, und setzt diese Betriebsart durch, indem der durch den Gast ausgegebene AP-Befehl abgefangen und die entsprechende Maßnahme ergriffen werden. Der Hypervisor stellt seinem Kunden der Cloud-Umgebung eine Unterstützung des AP-Befehlssatzfilterungsmodus bereit, indem die entsprechende Funktion des AP-Befehlssatzfilterungsmodus der Hardware auf den Verschlüsselungskarten verwendet wird, die in der Gastkonfiguration konfiguriert sind. Der Hypervisor lässt nicht zu, dass der Gast Verschlüsselungskarten verwendet, wenn der Gast nur den zustandslosen Teilsatz von AP-Befehlen verwenden darf, aber keine der Verschlüsselungskarten in der Konfiguration des Hypervisors die (Hardware-)Funktion zur Filterung zustandsloser AP-Befehlstypen unterstützt. Wenn jedoch mindestens eine Verschlüsselungskarte die Filterung zustandsloser Befehle unterstützt, simuliert der Hypervisor zum Beispiel die Filterungsoperation für zustandslose AP-Befehlstypen von sich aus, wenn der Gast im zustandslose AP-Befehlsmodus läuft, aber die (Hardware-)Funktion zur Filterung zustandsloser AP-Befehlstypen nicht auf der Ziel-Verschlüsselungskarte installiert ist.
  • Die Hypervisor-Simulation garantiert z.B. eine funktional gleichwertige Hardwarefilterungsoperation, indem die Informationen von einer der Verschlüsselungskarten verwendet werden, die die (Hardware-)Funktion zur Filterung zustandsloser AP-Befehlstypen (oder andere Filterungsfunktionen) unterstützt, um die Filterungsfunktion für zustandslose AP-Befehlstypen auf der Ziel-Verschlüsselungskarte zu simulieren, die die (Hardware-)Funktion zur Filterung zustandsloser AP-Befehlstypen nicht unterstützt. Bei einer Ausführungsform wird die AP-Befehlstransportschicht (z.B. i390CO) erweitert, um eine Möglichkeit bereitzustellen, unabhängig von dem Urheber des Fehlers eine einheitliche Ausfallreaktion zu schaffen und zu ermöglichen, dass die Software-Realisierung innerhalb des Hypervisors mit der Verschlüsselungskarte übereinstimmt.
  • Bei einem oder mehreren Aspekten kann derselbe Verschlüsselungskartenmodus (z.B. Coprozessormodus oder Modus EP11) verwendet werden, um einen Modus mit einem vollständigen AP-Befehlssatz, einen Modus mit zustandslosen AP-Befehlen oder einen anderen Filterungsmodus mit einem verringerten Satz von Befehlen bereitzustellen, ohne die Verschlüsselungskarte in einem weiteren Verschlüsselungskartenmodus wie z.B. in dem Beschleunigermodus zu konfigurieren. Der Kunde muss keine zusätzlichen Karten für die Filterungsmodi der Verschlüsselungskarten kaufen. Der Hypervisor kann unterschiedliche Gäste mit unterschiedlichen Anforderungen an die AP-Befehlstypfilterung bedienen, indem z.B. unterschiedliche Verschlüsselungsbereiche desselben Verschlüsselungskartenmodus unterschiedlichen Gästen mit unterschiedlichen Anforderungen an die AP-Befehlstypfilterung zweckgebunden zugewiesen werden. Der Hypervisor kann Nicht-Verschlüsselungskartenkonfigurationen in symmetrische Verschlüsselungskartenkonfigurationen umwandeln, indem eine Kombination aus Softwaresimulation und Hardwarefilterungsfähigkeiten zum Unterstützen seiner Gäste verwendet wird. Die Verwendung einer Kombination aus Hardware- und Softwarefilterung unter Verwendung einer gemeinsamen Schnittstelle ist bei mehreren Verschlüsselungskartenkonfigurationen nützlich, bei denen ein oder mehrere Verschlüsselungskartentypen keine Hardwarefilterungsfunktion oder nicht alle unterstützten Hardwarefilterungsfunktionen (z.B. nichtsymmetrische Verschlüsselungskartentypen) bereitstellen.
  • Bei einem Aspekt muss der Hypervisor keine statische Liste von AP-Befehlen in jedem Filterungsmodus für jeden Verschlüsselungskartentyp aufrechterhalten, den er zur Simulation unterstützt. Das Aufrechterhalten einer aktuellen statischen Liste von AP-Befehlen eines jeden Filterungsmodus für jeden Verschlüsselungskartentyp und -modus, die der Hypervisor unterstützt, ist mühsam und nicht ohne Weiteres in einer Zeit zu erreichen, um den Computer in einen Prüfzustand zu versetzen. Infolgedessen kann der Hypervisor nicht garantieren, dass die AP-Befehlstypfilterung mittels Software gleichwertig mit der AP-Befehlstypfilterung mittels Hardware ist, indem eine statische Liste von AP-Befehlen eines jeden Filterungsmodus für jeden Verschlüsselungskartentyp aufrechterhalten wird, den er unterstützt.
  • Bei einem Aspekt muss das Programm nicht zwischen verschiedenen Verschlüsselungskartenmodi umschalten, um unterschiedliche Filterungsbefehlssätze auszuführen. Daher bleibt die Komplexität des Verwaltens und Verwendens der Verschlüsselungskarte unabhängig von der Anzahl unterstützter Filterungsmodi gleich. Diese Verringerung der Programmkomplexität trägt auch zu einem effizienteren Code bei und verbessert Codeausführungszeit und Leistung. Ferner muss der Hypervisor bei einem Aspekt nicht die ordnungsgemäße Einstellung der Befehlstypmerker in dem durch das Gastprogramm bereitgestellten CPRB prüfen. Er fügt anstelle des Gastprogramms, das die AP-Befehlsanforderungsnachricht erzeugt, die Befehlstypmerker in dem CPRB der AP-Befehlsanforderungsnachricht auf der Grundlage der AP-Befehlssätze ein, die durch den Gast zugelassen werden. Infolgedessen muss der Hypervisor die Befehlstypmerker in dem CPRB nicht setzen (oder zurücksetzen) oder den Befehl zurückweisen, wenn die Befehlseinstellung die Einstellungen der Befehlstypfilterung verletzt, die durch den Gast zugelassen werden.
  • Bei einem Aspekt der Verwendung sowohl der Hardware- als auch der Softwarefilterungstechniken ist die Verwendung einer gemeinsamen Schnittstelle bei mehreren Verschlüsselungskartenkonfigurationen nützlich, bei denen ein oder mehrere Verschlüsselungskartentypen keine Hardwarefilterungsfunktion oder nicht alle unterstützten Hardwarefilterungsfunktionen (z.B. nichtsymmetrische Verschlüsselungskartentypen) bereitstellen. Wenn zum Beispiel die Hypervisor-Konfiguration aus einem einzigen Computer mit mehreren Verschlüsselungskartentypen besteht, aber nicht alle Verschlüsselungskartentypen eine ausgewählte Befehlstypfilterungsfunktion unterstützen, z.B. Filterungsfunktion für zustandslose Befehle, kann der Hypervisor die ausgewählte Befehlstypfilterungsfunktion von sich aus auf den Verschlüsselungskartentypen simulieren, die die ausgewählte Befehlstypfilterungsfunktion nicht unterstützen, um dieselbe ausgewählte Befehlstypfilterungsfunktion auf allen verfügbaren Verschlüsselungskarten bereitzustellen. Ebenso kann, wenn die Hypervisor-Konfiguration aus mehreren Computern mit unterschiedlichen Modellen besteht und der Gast auf einem beliebigen dieser Computermodelle verlagert werden kann, aber nicht alle Modelle z.B. die ausgewählte Befehlstypfilterungsfunktion unterstützen, der Hypervisor die Filterungsfunktion für zustandslose Befehle von sich aus auf den Computermodellen simulieren, die die ausgewählte Befehlstypfilterungsfunktion nicht unterstützen, um dieselbe ausgewählte Befehlstypfilterungsfunktion auf allen verfügbaren Computermodellen bereitzustellen. Dies ermöglicht dem Hypervisor, unsymmetrische Verschlüsselungskartenkonfigurationen in symmetrische Verschlüsselungskartenkonfigurationen umzuwandeln, indem eine Kombination aus Software- und Hardwarefähigkeiten verwendet wird, und eine Unterstützung der Befehlstypfilterungsfunktion für seine Gäste bereitzustellen. Diese Technik kann außerdem zum Unterstützen mehrerer Hardwarefilterungsfunktionen verwendet werden. Andere Variationen sind ebenfalls möglich.
  • Des Weiteren stellt die Hardware-Filterungsfunktion zum Beispiel die Fähigkeit bereit, Filterungsmodi für jeden Befehl dynamisch umzuschalten; die Befehlstypfilterung erfolgt auf einer Pro-Befehl-Grundlage. Infolgedessen kann jeder Befehl auf der Grundlage der Werte der Befehlstypmerker entweder gültig oder ungültig sein. Daher ermöglicht diese Technik dem Hypervisor, denselben Verschlüsselungsbereich gemeinsam mit mehreren Gästen mit unterschiedlichen Anforderungen an die AP-Befehlstypfilterung zu verwenden. Außerdem muss das Programm nicht zwischen verschiedenen Verschlüsselungskartenmodi umschalten, um unterschiedliche Filterungsbefehlssätze auszuführen. Daher bleibt die Komplexität des Verwaltens und Verwendens der Anzahl von Verschlüsselungskarten unabhängig von der Anzahl unterstützter Filterungsmodi gleich. Diese Verringerung der Programmkomplexität trägt auch zu einem effizienteren Code bei und verbessert Codeausführungszeit und Leistung.
  • Bei einer oder mehreren Ausführungsformen kann es sich bei dem Hypervisor um einen Gast wie etwa um einen Hypervisor einer logischen Partition, ein Betriebssystem wie etwa z/VM® oder einen Einheitentreiber handeln. z/VM kann mehrere Gäste mit unterschiedlichen Richtlinien unter Verwendung derselben Verschlüsselungskarte bedienen. Der Einheitentreiber kann bei bestimmten Umgebungen wie etwa bei einer Linux-Umgebung anstelle eines Betriebssystems verwendet werden, um die verarbeiteten AP-Meldungen abzurufen. Der Verschlüsselungseinheitentreiber kann mehrere Benutzer wie etwa einen Docker-Container oder unterschiedliche Anwendungen mit unterschiedlichen Richtlinien bedienen. Entweder ein Manager wie z.B. ein z/VM-Manager oder ein Verschlüsselungseinheitentreiber kann auf einer Pro-Befehl-Grundlage von einem Filterungsmodus wie z.B. einem Befehlstypfilterungsmodus in einen anderen umschalten. Bei einem Beispiel schaltet, wenn mindestens ein Gast nur einen einzigen Verschlüsselungsbefehl ausführt, der Manager oder der Verschlüsselungseinheitentreiber auf den nächsten Gast um, und der nächste Gast führt seinen Verschlüsselungsbefehl aus einem anderen Filterungsmodus aus.
  • Zwar sind hierin verschiedene Ausführungsformen beschrieben, es sind jedoch viele Variationen und andere Ausführungsformen möglich, ohne dass diese eine Abweichung von Aspekten der vorliegenden Erfindung darstellen würden. Es sollte beachtet werden, dass jeder Aspekt oder jedes Merkmal, die hierin beschrieben sind, und Varianten davon mit einem beliebigen anderen Aspekt oder Merkmal kombinierbar sind, sofern diese nicht unvereinbar miteinander sind.
  • Ein oder mehrere Aspekte können das Cloud-Computing betreffen.
  • Es versteht sich, dass diese Offenbarung zwar eine ausführliche Beschreibung des Cloud-Computing enthält, die Realisierung der hierin vorgestellten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art von Datenverarbeitungsumgebung realisiert werden, die gegenwärtig bekannt ist oder in Zukunft entwickelt wird.
  • Bei Cloud-Computing handelt es sich um ein Modell zur Bereitstellung von Diensten, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Einsatzmodelle umfassen.
  • Bei den Eigenschaften handelt es sich um die folgenden:
    • On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Kunde kann sich einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen, ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.
    • Broad Network Access (umfassender Netzwerkzugriff): Es stehen Funktionen über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung durch heterogene Plattformen Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Notebook-Computer und PDAs) unterstützen.
    • Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Kunden unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine gefühlte Standortunabhängigkeit in der Weise, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Datenverarbeitungszentrum) anzugeben.
    • Rapid Elasticity (rasche Elastizität): Funktionen können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Kunden entsteht oftmals der Eindruck, dass die zum Bereitstellen verfügbaren Funktionen unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.
    • Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfunktion auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.
  • Bei den Dienstmodellen handelt es sich um die folgenden:
    • Software as a Service (SaaS) (Software als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Client-Einheiten aus über eine Thin-Client-Schnittstelle wie z.B. über einen Web-Browser (z.B. auf dem Web beruhende eMail) zugänglich. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme, Speicherplatz oder sogar einzelne Anwendungsfähigkeiten, nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.
    • Platform as a Service (PaaS) (Plattform als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen einzusetzen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur, unter anderem Netzwerke, Server, Betriebssysteme oder Speicherplatz, nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.
    • Infrastructure as a Service (laaS) (Infrastruktur als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software einsetzen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Kunde verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die folgenden:
    • Private Cloud (private Cloud): Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
    • Community Cloud (Community-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z.B. Gesichtspunkte im Zusammenhang mit einer Aufgabe, mit Sicherheitsanforderungen, Richtlinien und mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
    • Public Cloud (öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
    • Hybrid cloud (Hybrid-Cloud): Bei der Cloud-Infrastruktur handelt es sich um eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Entitäten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).
    • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandsunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten umfasst.
  • Unter Bezugnahme auf 8 ist dort eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 52, mit denen von Cloud-Kunden verwendete lokale Datenverarbeitungseinheiten wie z.B. ein Personal Digital Assistent (PDA) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Notebook-Computer 54C und/oder ein Automobil-Computersystem 54N Daten austauschen können. Die Knoten 52 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie zum Beispiel in einer hierin oben beschriebenen Private Cloud, Community Cloud, Public Cloud oder Hybrid Cloud oder in einer Kombination davon gruppiert sein (nicht gezeigt). Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste zu bieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit zu verwalten braucht. Es versteht sich, dass die Arten von in 8 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 52 und die Cloud-Computing-Umgebung 50 über eine beliebige Art von Netzwerk und/oder über eine beliebige Art von Verbindung, die über ein Netzwerk aufgerufen werden kann (z.B. unter Verwendung eines Webbrowsers), mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Nunmehr unter Bezugnahme auf 9 ist dort ein Satz funktionaler Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (8) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 9 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie bildlich dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
  • Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen von Hardware-Komponenten gehören: Großrechner 61; auf der RISC-Architektur (RISC = Reduced Instruction Set Computer) beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und Vernetzungskomponenten 66. Bei einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserversoftware 67 und eine Datenbanksoftware 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, von der aus die folgenden Beispiele von virtuellen Einheiten bereitgestellt sein können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, unter anderem virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • Bei einem Beispiel kann eine Verwaltungsschicht 80 die nachstehend beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die genutzt werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung durchzuführen. Eine Gebührenerfassung und Preisberechnung 82 stellt eine Kostenverfolgung bereit, während Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, sowie eine Abrechnung und Fakturierung der Inanspruchnahme dieser Ressourcen. Bei einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Eine Sicherheit stellt eine Identitätsüberprüfung für Cloud-Kunden und Aufgaben sowie einen Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Kunden und Systemadministratoren einen Zugang zur Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung (Service Level Management) 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die jeweils erforderliche Dienstgüte erreicht wird. Eine Planung und Erfüllung von Dienstgütevereinbarungen 85 (Service Level Agreement (SLA), Servicevertrag) stellt die Vorausplanung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die auf der Grundlage eines SLA zukünftige Anforderungen erwartet werden.
  • Eine Betriebslastschicht 90 stellt Beispiele von Funktionalitäten bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Betriebslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, gehören: Zuordnung und Navigation 91; Softwareentwicklung und -verwaltung 92 während des Lebenszyklus; Bereitstellung 93 von Schulungen in virtuellen Schulungsräumen; Verarbeitung 94 von Datenanalysen; Transaktionsverarbeitung 95; und Befehlstypfilterungsverarbeitung 96.
  • Bei Aspekten der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums umfasst Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie z.B. Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein kabelloses Netzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, kabellose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle in der 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 Speichermedium innerhalb der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = 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 sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. 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 Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Bei dem letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internetdienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, vor Ort programmierbare Gatteranordnungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare Logik-Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese Computerprogrammanweisungen können einem Prozessor eines Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander gezeigte Blöcke tatsächlich als ein Schritt ausgeführt, gleichzeitig, Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Zusätzlich zu den vorstehenden Ausführungen können ein oder mehrere Aspekte durch einen Dienstanbieter bereitgestellt, angeboten, installiert, verwaltet, gewartet usw. werden, der die Verwaltung von Kundenumgebungen anbietet. Zum Beispiel kann der Dienstanbieter Computercode und/oder eine Computerinfrastruktur schaffen, aufrechterhalten, unterstützen usw., die für einen oder mehrere Kunden einen oder mehrere Aspekte durchführt. Im Gegenzug kann der Dienstanbieter beispielsweise im Rahmen einer Abonnements- und/oder Gebührenvereinbarung eine Bezahlung erhalten. Darüber hinaus oder alternativ kann der Dienstanbieter eine Bezahlung aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte erhalten.
  • Bei einem Aspekt kann eine Anwendung zum Durchführen einer oder mehrerer Ausführungsformen installiert sein. Um ein Beispiel zu nennen, weist das Installieren einer Anwendung das Bereitstellen einer Computerinfrastruktur auf, die funktionsmäßig so gestaltet ist, dass eine oder mehrere Ausführungsformen durchgeführt werden.
  • Als weiterer Aspekt kann eine Datenverarbeitungsinfrastruktur installiert sein, die das Integrieren von durch einen Computer lesbarem Code in ein Datenverarbeitungssystem aufweist, bei dem der Code in Kombination mit dem Datenverarbeitungssystem in der Lage ist, eine oder mehrere Ausführungsformen durchzuführen.
  • Gemäß einem noch weiteren Aspekt kann ein Prozess zum Integrieren einer Datenverarbeitungsinfrastruktur bereitgestellt sein, der das Integrieren von durch einen Computer lesbarem Code in ein Computersystem aufweist. Das Computersystem weist ein durch einen Computer lesbares Medium auf, bei dem das Computermedium ein oder mehrere Ausführungsformen aufweist. Der Code in Kombination mit dem Computersystem ist in der Lage, eine oder mehrere Ausführungsformen durchzuführen.
  • Zwar werden vorstehend verschiedene Ausführungsformen beschrieben, es handelt sich hierbei jedoch lediglich um Beispiele. Zum Beispiel können Datenverarbeitungsumgebungen anderer Architekturen verwendet werden, um eine oder mehrere Ausführungsformen einzubeziehen und zu verwenden. Ferner können andere Anweisungen, Befehle oder Operationen verwendet werden. Darüber hinaus können andere Arten von Angaben oder Kennzeichen sowie andere Arten von Filterungsmodi und/oder Zusatzprozessoren vorgegeben werden. Viele Variationen sind möglich.
  • Verschiedene Aspekte sind hierin beschrieben. Ferner sind viele Variationen möglich, ohne dass diese eine Abweichung von Aspekten der vorliegenden Erfindung darstellen würden. Es sollte beachtet werden, dass jeder Aspekt oder jedes Merkmal, die hierin beschrieben sind, und Varianten davon mit einem beliebigen anderen Aspekt oder Merkmal kombinierbar sind, sofern diese nicht unvereinbar miteinander sind.
  • Ferner können andere Arten von Datenverarbeitungsumgebungen profitieren und verwendet werden. Beispielsweise ist ein Datenverarbeitungssystem verwendbar, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, das mindestens zwei Prozessoren enthält, die über einen Systembus direkt oder indirekt mit Speicherelementen verbunden sind. Die Speicherelemente enthalten zum Beispiel lokalen Speicher, der während der eigentlichen Ausführung des Programmcodes genutzt wird, Massenspeicher und Cache, die eine zeitweilige Speicherung mindestens eines Teils des Programmcodes bereitstellen, um die Anzahl der Codeabrufe aus dem Massenspeicher während der Ausführung zu verringern.
  • Eingabe/Ausgabe-Einheiten bzw. E/A-Einheiten (unter anderem und ohne auf diese beschränkt zu sein, von Tastaturen, Anzeigeeinheiten, Zeigeeinheiten, DASD, Band, CDs, DVDs, USB-Sticks und anderen Speichermedien usw.) können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Netzwerkadapter können ebenfalls mit dem System verbunden sein, sodass das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen, entfernt angeordneten Druckern oder Speichereinheiten verbunden werden kann. Modems, Kabelmodems und Ethernet-Karten sind nur einige der erhältlichen Arten von Netzwerkadaptern.
  • Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung gedacht. Im hierin verwendeten Sinne schließen die Einzahlformen „ein/eine“ und „der/die/das“ auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ bzw. „aufweisen/aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Step plus Function Elements) in den folgenden Ansprüchen sollen gegebenenfalls alle Strukturen, Materialien oder Aktionen zur Ausführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung einer oder mehrerer Ausführungsformen soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht als vollständig oder auf die offenbarte Form beschränkt gedacht. Viele Modifikationen und Variationen sind für Fachleute klar. Die Ausführungsform wurde gewählt und beschrieben, um verschiedene Aspekte und die praktische Anwendung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis verschiedener Ausführungsformen mit verschiedenen Abänderungen für die betreffende vorgeschlagene Verwendung zu ermöglichen.

Claims (20)

  1. Computerprogrammprodukt zum Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung, wobei das Computerprogrammprodukt aufweist: ein oder mehrere durch einen Computer lesbare Speichermedien und Programmanweisungen, die zusammen auf dem einen oder den mehreren durch einen Computer lesbaren Speichermedien gespeichert sind, um ein Verfahren durchzuführen, das aufweist: Ermitteln, ob ein Ziel-Zusatzprozessor einer Mehrzahl von Zusatzprozessoren der Datenverarbeitungsumgebung so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus unterstützt; Prüfen, ob ein weiterer Ziel-Zusatzprozessor der Mehrzahl von Zusatzprozessoren so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt; Weiterleiten eines Befehls zu dem anderen Zusatzprozessor zur Verarbeitung, um auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; Erhalten einer Angabe auf der Grundlage der Verarbeitung bei dem anderen Zusatzprozessor, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; und Senden des Befehls auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, zur Verarbeitung an den Ziel-Zusatzprozessor.
  2. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren ferner ein Zurückweisen des Befehls als für den ausgewählten Befehlstypfilterungsmodus ungültig und ein Unterlassen des Ausführens des Befehls auf dem Ziel-Zusatzprozessor auf der Grundlage des Erhaltens einer Angabe aufweist, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  3. Computerprogrammprodukt nach Anspruch 2, wobei das Zurückweisen ein Ablegen eines Fehlercodes an einem zentralen Speicherort aufweist, um das Zugreifen auf den Fehlercode zu erleichtern.
  4. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren ferner aufweist: Hinzufügen des Befehls zu einer Befehlsliste als Befehl des ausgewählten Befehlstypfilterungsmodus auf der Grundlage des Erhaltens eine Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, welche Befehle zur Ausführung auf dem Ziel-Zusatzprozessor gültig sind; und Hinzufügen des Befehls zu der Befehlsliste als gültigen Zusatzprozessorbefehl auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  5. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren ferner das Zurückweisen des Befehls auf der Grundlage des Feststellens aufweist, dass die Mehrzahl von Zusatzprozessoren nicht so konfiguriert sind, dass sie den ausgewählten Befehlstypfilterungsmodus unterstützen.
  6. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren ferner aufweist: Ermitteln, auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, ob sich der Befehl auf einer Befehlsliste befindet, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, ob der Befehl auf dem Ziel-Zusatzprozessor ausgeführt werden soll; und Weiterleiten des Befehls zu dem anderen Zusatzprozessor zur Verarbeitung auf der Grundlage des Feststellens, dass sich der Befehl nicht auf der Befehlsliste befindet.
  7. Computerprogrammprodukt nach Anspruch 6, wobei das Verfahren ferner auf der Grundlage einer erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor ein Hinzufügen des Befehls zu der Befehlsliste als gültigen Befehl des ausgewählten Befehlstypfilterungsmodus aufweist.
  8. Computerprogrammprodukt nach Anspruch 6, wobei das Verfahren ferner auf der Grundlage einer nicht erfolgreichen Ausführung des Befehls auf dem anderen Zusatzprozessor das Hinzufügen des Befehls zu der Befehlsliste als gültigen Zielprozessorbefehl aufweist.
  9. Computerprogrammprodukt nach Anspruch 1, wobei es sich bei dem ausgewählten Befehlstypfilterungsmodus um einen Filterungsmodus für zustandslose Befehle handelt.
  10. Computerprogrammprodukt nach Anspruch 1, wobei die Mehrzahl von Zusatzprozessoren eine Mehrzahl von Verschlüsselungskarten aufweisen.
  11. Computersystem zum Erleichtern der Verarbeitung innerhalb einer Datenverarbeitungsumgebung, wobei das Computersystem aufweist: einen Speicher; und mindestens einen Prozessor in Datenübertragungsverbindung mit dem Speicher, wobei das Computersystem so konfiguriert ist, dass es ein Verfahren durchführt, wobei das Verfahren aufweist: Ermitteln, ob ein Ziel-Zusatzprozessor einer Mehrzahl von Zusatzprozessoren der Datenverarbeitungsumgebung so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus unterstützt; Prüfen, ob ein weiterer Ziel-Zusatzprozessor der Mehrzahl von Zusatzprozessoren so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt; Weiterleiten eines Befehls zu dem anderen Zusatzprozessor zur Verarbeitung, um auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; Erhalten einer Angabe auf der Grundlage der Verarbeitung bei dem anderen Zusatzprozessor, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; und Senden des Befehls auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, zur Verarbeitung an den Ziel-Zusatzprozessor.
  12. Computersystem nach Anspruch 11, wobei das Verfahren ferner das Zurückweisen des Befehls als für den ausgewählten Befehlstypfilterungsmodus ungültig und das Unterlassen des Ausführens des Befehls auf dem Ziel-Zusatzprozessor auf der Grundlage des Erhaltens einer Angabe aufweist, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  13. Computersystem nach Anspruch 11, wobei das Verfahren ferner aufweist: Hinzufügen des Befehls zu einer Befehlsliste als Befehl des ausgewählten Befehlstypfilterungsmodus auf der Grundlage des Erhaltens eine Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, welche Befehle zur Ausführung auf dem Ziel-Zusatzprozessor gültig sind; und Hinzufügen des Befehls zu der Befehlsliste als gültigen Zusatzprozessorbefehl auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  14. Computersystem nach Anspruch 11, wobei das Verfahren ferner das Zurückweisen des Befehls auf der Grundlage des Feststellens aufweist, dass die Mehrzahl von Zusatzprozessoren nicht so konfiguriert sind, dass sie den ausgewählten Befehlstypfilterungsmodus unterstützen.
  15. Computersystem nach Anspruch 11, wobei das Verfahren ferner aufweist: Ermitteln, auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, ob sich der Befehl auf einer Befehlsliste befindet, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, ob der Befehl auf dem Ziel-Zusatzprozessor ausgeführt werden soll; und Weiterleiten des Befehls zu dem anderen Zusatzprozessor zur Verarbeitung auf der Grundlage des Feststellens, dass sich der Befehl nicht auf der Befehlsliste befindet.
  16. Mittels Computer realisiertes Verfahren zum Erleichtern der Verarbeitung in einer Datenverarbeitungsumgebung, wobei das mittels Computer realisierte Verfahren aufweist: Ermitteln, ob ein Ziel-Zusatzprozessor einer Mehrzahl von Zusatzprozessoren der Datenverarbeitungsumgebung so konfiguriert ist, dass er einen ausgewählten Befehlstypfilterungsmodus unterstützt; Prüfen, ob ein weiterer Ziel-Zusatzprozessor der Mehrzahl von Zusatzprozessoren so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt; Weiterleiten eines Befehls zu dem anderen Zusatzprozessor zur Verarbeitung, um auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, zu ermitteln, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; Erhalten einer Angabe auf der Grundlage der Verarbeitung bei dem anderen Zusatzprozessor, ob der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist; und Senden des Befehls auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, zur Verarbeitung an den Ziel-Zusatzprozessor.
  17. Mittels Computer realisiertes Verfahren nach Anspruch 16, das ferner das Zurückweisen des Befehls als für den ausgewählten Befehlstypfilterungsmodus ungültig und das Unterlassen des Ausführens des Befehls auf dem Ziel-Zusatzprozessor auf der Grundlage des Erhaltens einer Angabe aufweist, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  18. Mittels Computer realisiertes Verfahren nach Anspruch 16, das ferner aufweist: Hinzufügen des Befehls zu einer Befehlsliste als Befehl des ausgewählten Befehlstypfilterungsmodus auf der Grundlage des Erhaltens eine Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus gültig ist, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, welche Befehle zur Ausführung auf dem Ziel-Zusatzprozessor gültig sind; und Hinzufügen des Befehls zu der Befehlsliste als gültigen Zusatzprozessorbefehl auf der Grundlage des Erhaltens einer Angabe, dass der Befehl für den ausgewählten Befehlstypfilterungsmodus ungültig ist.
  19. Mittels Computer realisiertes Verfahren nach Anspruch 16, das ferner das Zurückweisen des Befehls auf der Grundlage des Feststellens aufweist, dass die Mehrzahl von Zusatzprozessoren nicht so konfiguriert sind, dass sie den ausgewählten Befehlstypfilterungsmodus unterstützen.
  20. Mittels Computer realisiertes Verfahren nach Anspruch 16, das ferner aufweist: Ermitteln, auf der Grundlage des Feststellens, dass der Ziel-Zusatzprozessor nicht so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, und auf der Grundlage dessen, dass der andere Zusatzprozessor so konfiguriert ist, dass er den ausgewählten Befehlstypfilterungsmodus unterstützt, ob sich der Befehl auf einer Befehlsliste befindet, wobei die Befehlsliste verwendet werden soll, um zu ermitteln, ob der Befehl auf dem Ziel-Zusatzprozessor ausgeführt werden soll; und Weiterleiten des Befehls zu dem anderen Zusatzprozessor zur Verarbeitung auf der Grundlage des Feststellens, dass sich der Befehl nicht auf der Befehlsliste befindet.
DE112021006005.8T 2020-12-15 2021-11-24 Filtern von zusatzprozessor-befehlstypen Pending DE112021006005T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/122,363 US12026555B2 (en) 2020-12-15 Adjunct processor command-type filtering
US17/122,363 2020-12-15
PCT/CN2021/132683 WO2022127538A1 (en) 2020-12-15 2021-11-24 Adjunct processor command-type filtering

Publications (1)

Publication Number Publication Date
DE112021006005T5 true DE112021006005T5 (de) 2023-11-09

Family

ID=81942511

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021006005.8T Pending DE112021006005T5 (de) 2020-12-15 2021-11-24 Filtern von zusatzprozessor-befehlstypen

Country Status (5)

Country Link
JP (1) JP2023552484A (de)
CN (1) CN116457754A (de)
DE (1) DE112021006005T5 (de)
GB (1) GB2617495B (de)
WO (1) WO2022127538A1 (de)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020131368A1 (en) * 2001-03-14 2002-09-19 Raftelis Michael T. Method and apparatus for processing a network manager command in a communication network
US10079044B2 (en) * 2012-12-20 2018-09-18 Advanced Micro Devices, Inc. Processor with host and slave operating modes stacked with memory
US9769227B2 (en) * 2014-09-24 2017-09-19 Microsoft Technology Licensing, Llc Presentation of computing environment on multiple devices
US10949207B2 (en) * 2018-09-29 2021-03-16 Intel Corporation Processor core supporting a heterogeneous system instruction set architecture
US10726865B2 (en) * 2018-10-11 2020-07-28 Western Digital Technologies, Inc. Zoned block command to stream command translator

Also Published As

Publication number Publication date
GB202310175D0 (en) 2023-08-16
JP2023552484A (ja) 2023-12-15
WO2022127538A1 (en) 2022-06-23
CN116457754A (zh) 2023-07-18
US20220188168A1 (en) 2022-06-16
GB2617495A (en) 2023-10-11
GB2617495B (en) 2024-03-06

Similar Documents

Publication Publication Date Title
DE112016003355B4 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE112020004699B4 (de) Schützen von arbeitslasten in kubernetes
DE112015001977T5 (de) Synchronisieren von Aktualisierungen von Statusanzeigern in einer Datenverarbeitungsumgebung
DE112021002245T5 (de) Verhindern einer unberechtigten bereitstellung von paketen in clustern
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112011103875T5 (de) Netzwerkschnittstelle zum Bereitstellen/erneuten Bereitstellen elner Partition in einer Cloud-Umgebung
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
DE112019001433T5 (de) Datenanonymisierung
DE112020005625T5 (de) Binden sicherer objekte eines sicherheitsmoduls an einen sicheren gast
DE112017000163T5 (de) Priorisierung von Transaktionen
DE112017005015T5 (de) Verarbeiten von gleichgeordneten Aufrufen (SIBLING CALLS)
DE112020000285T5 (de) Programmunterbrechungen für Seiten-Import/-Export
DE112020000891T5 (de) Erzeugung von nativem code für cloud-services
DE112020005526T5 (de) Reservieren eines oder mehrerer sicherheitsmodule für einen sicheren gast
DE102021130396A1 (de) Datenzugriffsüberwachung und -steuerung
DE102016105062A1 (de) Nähengestützte Berechtigungsprüfung für einheitenübergreifend verteilte Daten
DE112020005373T5 (de) Mechanismus zur authentifizierung durch nutzung von positionsbestätigung
DE112021002201T5 (de) Datenschutzorientierte Datensicherheit in einer Cloud-Umgebung
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE102021123058A1 (de) Maskieren von sensiblen informationen in einem dokument
DE112021005881T5 (de) Inline datenpakettransformationen
DE112020000286T5 (de) Sicheres ein-/auslagern mit seitenänderungserkennung
DE112019002052T5 (de) Datenschutzsensibilisierung bei der bereitstellung von arbeitslasten
DE112021004613T5 (de) Redigierbare blockchain

Legal Events

Date Code Title Description
R012 Request for examination validly filed