DE112018004220T5 - Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung - Google Patents

Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung Download PDF

Info

Publication number
DE112018004220T5
DE112018004220T5 DE112018004220.0T DE112018004220T DE112018004220T5 DE 112018004220 T5 DE112018004220 T5 DE 112018004220T5 DE 112018004220 T DE112018004220 T DE 112018004220T DE 112018004220 T5 DE112018004220 T5 DE 112018004220T5
Authority
DE
Germany
Prior art keywords
ewack
memory
memory access
write request
write
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
DE112018004220.0T
Other languages
English (en)
Inventor
Dimitrios SYRIVELIS
Andrea REALE
Kostas KATRINIS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018004220T5 publication Critical patent/DE112018004220T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing

Abstract

Ausführungsformen für ein Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung. Eine Speicherzugriffs-Vermittlereinheit kann selektiv aktiviert werden, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme und insbesondere verschiedene Ausführungsformen zum Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung zum Anbinden eines Datenverarbeitungsprozessors an eine beliebige Speichertechnologie.
  • Beschreibung des Standes der Technik
  • In der heutigen vernetzten und komplexen Gesellschaft sind Computer und computergesteuerte Geräte häufiger anzutreffen. Mit dem Aufkommen und der weiteren Miniaturisierung von integrierten Schaltungen wurde es ermöglicht, Verarbeitungseinheiten in eine große Vielfalt von Einheiten zu integrieren. Viele Datenverarbeitungssysteme enthalten einen Computerspeicher, auf den unter Verwendung von Speicherbusprotokollen zugegriffen werden kann. Es wurden mehrere Speicherbus-Standards entwickelt, um verschiedene Prozessorarchitekturen zu unterstützen, zum Beispiel QuickPath Interconnect (Intel®), Advanced Microcontroller Bus Architecture (ARM®), Coherent Accelerator Processor Interface (IBM®) und HyperTransport® (AMD®), usw.
  • Eine herausfordernde Anforderung an jede Speicherbus-Architektur ist es, die Zustellung von Speicherzugriffsanforderungen zu garantieren. Um dies zu erreichen, setzen Speicherbus-Architekturen explizite Bestätigungsschemata ein, bei denen für jede erfolgreich abgeschlossene Anforderung eine Bestätigung an die die Anforderung ausgebende Entität (z. B. einen Prozessorkern) zurückgeschickt wird. Da Lesezugriffsanforderungen Daten aus dem Hauptspeicher abrufen, dient der korrekte Datenempfang in diesem Fall als Bestätigung. Auf der anderen Seite schieben Datenschreibanforderungen Daten in den Hauptspeicher und müssen explizit auf das Zurückkommen einer Bestätigung warten, nachdem die Daten erfolgreich geschrieben wurden. Damit ein Datenverarbeitungssystem die Integrität der Programmausführung aufrechterhalten kann, müssen Anforderungen, die von derselben ausgebenden Entität ausgegeben werden, der Reihe nach bedient werden. Deshalb erfahren Anwendungen, die viele aufeinanderfolgende Schreibanforderungen ausgeben (z. B. z. B. wenn umfangreiche Speicherkopien durchgeführt werden), eine Auswirkung auf die Leistungsfähigkeit, die direkt mit der expliziten Bestätigung der Schreibanforderung zusammenhängt. Da die Schreibbestätigung kein Übertragen von Daten beinhaltet, besteht die Notwendigkeit, die Durchführungsleistung zu verbessern, wie zum Beispiel das Verbessern von Anwendungen, die schreibintensive Speicherzugriffsmuster aufweisen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Verschiedene Ausführungsformen zum Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung werden bereitgestellt. In einer Ausführungsform wird lediglich beispielhaft ein Verfahren zum selektiven Aktivieren eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung durch einen Prozessor bereitgestellt. Ein Speicherzugriffsvermittler kann selektiv aktiviert werden, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK, early write acknowledgement) - im Gegensatz zu Arbeitsschritten mit normaler/aktueller Schreibbestätigung (WACK, write acknowledgement) - und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • In einem Aspekt werden verschiedene Ausführungsformen bereitgestellt, um die Datenintegrität und die deterministische Programmausführung zu garantieren, während gleichzeitig die Anwendungsleistung für Speicherschreibzugriffe deutlich verbessert wird. In einem Aspekt ermöglicht eine Schreibzugriffsanforderungs-Vermittlereinheit eine schnelle EWACK und Benachrichtigung von ausgebenden Anwendungen über fehlgeschlagene Schreibanforderungen. Die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit kann zur Laufzeit selektiv aktiviert werden, um Anwendungen zu bedienen, die über die erforderliche Unterstützung verfügen, um die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit sicher zu nutzen, ohne die Ausführungsintegrität von gleichzeitig aktiven traditionellen Anwendungen zu beeinträchtigen. Es werden eine oder mehrere Lösungen für ein Betriebssystem (OS) und eine Schnittstelle zur Anwendungsprogrammierung (API) zur Steuerung auf Anwendungsebene, zur Integritätsprüfung von Schreibzugriffsanforderungen, zur Unterstützung und zum Überwinden von Hindernissen beim Bewältigen fehlgeschlagener Schreibvorgänge auf Anwendungsebene bereitgestellt.
  • Als weitere zusätzliche Funktion und als Vorteil gegenüber dem aktuellen Stand der Technik kann der Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktiviert oder deaktiviert werden, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einem Speichersteuereinheiten-Slave dient. Es werden eine oder mehrere Lösungen zum Protokollieren der fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern, die dem Speicherzugriffsvermittler zugehörig sind, bereitgestellt. Es werden eine oder mehrere Lösungen zum Empfangen, durch den Speicherzugriffsvermittler, einer Schreibanforderung von einem Speicherbus-Master oder zum Ausgeben, durch den Speicherzugriffsvermittler, der von dem Speicherbus-Master empfangenen Schreibanforderung an einen Speichersteuereinheiten-Slave bereitgestellt.
  • In einem zusätzlichen Aspekt werden eine oder mehrere Lösungen zum Empfangen, durch den Speicherzugriffsvermittler, einer WACK-Antwort von der Speichersteuereinheit; oder zum Ausgeben, durch den Speicherzugriffsvermittler, der von der Speichersteuereinheit empfangenen WACK-Antwort an den Speicherbus-Master bereitgestellt. Der Speicherzugriffsvermittler kann auch eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugen und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreihen.
  • Anders ausgedrückt, die Speichersteuereinheit gibt die WACK (Schreibbestätigungsanforderungen) aus. Die EWACK darf durch den Speicherzugriffsvermittler nur an einen Computersystem-Master ausgegeben werden. Es sei angemerkt, dass „EWACK“ als frühzeitig bezeichnet werden kann, da der Speicherzugriffsvermittler in der EWACK-Betriebsart nicht darauf wartet, dass die Speichersteuereinheit die normale WACK zurücksendet.
  • Als weitere zusätzliche Funktion und als Vorteil gegenüber dem aktuellen Stand der Technik wird eine von einer Speichersteuereinheit empfangene WACK-Antwort durch den Speicherzugriffsvermittler mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID verglichen. Es werden eine oder mehrere Lösungen zum Anzeigen einer fehlgeschlagenen EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen WACK-Antwort übereinstimmt, und zum Identifizieren der fehlgeschlagenen EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen bereitgestellt. Es werden auch eine oder mehrere Lösungen zum Auffordern der einen oder mehreren ausgebenden Anwendungen, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben, bereitgestellt.
  • Gemäß einem ersten Aspekt stellt die vorliegende Erfindung ein Verfahren zum Verwenden, durch einen Prozessor, eines Speicherzugriffsvermittlers zur Unterstützung einer frühzeitigen Schreibbestätigung bereit, aufweisend: selektives Aktivieren eines Speicherzugriffsvermittlers, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus ein selektives Aktivieren oder Deaktivieren des Speicherzugriffsvermittlers zur Laufzeit einer Schreibanforderung aufweist, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus ein Protokollieren der fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern aufweist, die dem Speicherzugriffsvermittler zugehörig sind.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus aufweist: Empfangen, durch den Speicherzugriffsvermittler, einer Schreibanforderung von einem Speicherbus-Master; und Ausgeben, durch den Speicherzugriffsvermittler, der von dem Speicherbus-Master empfangenen Schreibanforderung an eine Speichersteuereinheit.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus aufweist: Empfangen, durch den Speicherzugriffsvermittler, einer WACK-Antwort von der Speichersteuereinheit; oder Ausgeben, durch den Speicherzugriffsvermittler, der von der Speichersteuereinheit empfangenen WACK-Antwort an den Speicherbus-Master.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus aufweist: Erzeugen, durch den Speicherzugriffsvermittler, einer Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung; und Einreihen der erzeugten Schreibanforderungs-ID in eine Warteschlange.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus ein Vergleichen, durch den Speicherzugriffsvermittler, einer von einer Speichersteuereinheit empfangenen WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID aufweist.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus aufweist: Anzeigen einer fehlgeschlagenen EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen WACK-Antwort übereinstimmt; und Identifizieren der fehlgeschlagenen EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen.
  • Vorzugsweise stellt die vorliegende Erfindung ein Verfahren bereit, das darüber hinaus ein Auffordern der einen oder mehreren ausgebenden Anwendungen aufweist, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  • Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung ein System zum Verwenden eines Speicherzugriffsvermittlers zur Unterstützung einer frühzeitigen Schreibbestätigung bereit, aufweisend: einen oder mehrere Computer mit ausführbaren Anweisungen, die beim Ausführen das System veranlassen zum: selektiven Aktivieren eines Speicherzugriffsvermittlers, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen den Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktivieren oder deaktivieren, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen die fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern protokollieren, die dem Speicherzugriffsvermittler zugehörig sind.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine Schreibanforderung von einem Speicherbus-Master empfangen; und durch den Speicherzugriffsvermittler die von dem Speicherbus-Master empfangene Schreibanforderung an eine Speichersteuereinheit ausgeben.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine WACK-Antwort von der Speichersteuereinheit empfangen; oder durch den Speicherzugriffsvermittler die von der Speichersteuereinheit empfangene WACK-Antwort an den Speicherbus-Master ausgeben.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugen; und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreihen.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen durch den Speicherzugriffsvermittler eine von einer Speichersteuereinheit empfangene WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID vergleichen.
  • Vorzugsweise stellt die vorliegende Erfindung ein System bereit, wobei die ausführbaren Anweisungen: eine fehlgeschlagene EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler anzeigen, und zwar beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen EWACK-Antwort übereinstimmt; die fehlgeschlagene EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen identifizieren; und die eine oder mehreren ausgebenden Anwendungen auffordern, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Feststellen und Analysieren, durch einen Prozessor, von offenen Beziehungen aus unstrukturierten Textdaten bereit, wobei das Computerprogrammprodukt ein nichtflüchtiges, durch einen Computer lesbares Speichermedium aufweist, auf dem durch einen Computer lesbare Programmcodeteile gespeichert sind, wobei die durch einen Computer lesbaren Programmcodeteile Folgendes aufweisen: einen ausführbaren Teil, der einen Speicherzugriffsvermittler selektiv aktiviert, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der den Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktiviert oder deaktiviert, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der die fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern protokolliert, die dem Speicherzugriffsvermittler zugehörig sind.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der: durch den Speicherzugriffsvermittler eine Schreibanforderung von einem Speicherbus-Master empfängt; durch den Speicherzugriffsvermittler die von dem Speicherbus-Master empfangene Schreibanforderung an eine Speichersteuereinheit ausgibt; durch den Speicherzugriffsvermittler eine WACK-Antwort von der Speichersteuereinheit empfängt; oder durch den Speicherzugriffsvermittler die von der Speichersteuereinheit empfangene WACK-Antwort an den Speicherbus-Master ausgibt.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der: durch den Speicherzugriffsvermittler eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugt; und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreiht.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der durch den Speicherzugriffsvermittler eine von einer Speichersteuereinheit empfangene WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID vergleicht.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der: eine fehlgeschlagene EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler anzeigt, und zwar beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen EWACK-Antwort übereinstimmt; und die fehlgeschlagene EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen identifiziert.
  • Vorzugsweise stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, das darüber hinaus einen ausführbaren Teil aufweist, der die eine oder mehreren ausgebenden Anwendungen auffordert, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  • Figurenliste
  • Damit die Vorteile der Erfindung ohne Weiteres verstanden werden, wird eine ausführlichere Beschreibung der oben kurz beschriebenen Erfindung unter Bezugnahme auf spezifische Ausführungsformen angeführt, die in den beigefügten Zeichnungen veranschaulicht werden. Unter dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und deshalb nicht als deren Umfang einschränkend anzusehen sind, wird die Erfindung durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Genauigkeit und Ausführlichkeit erläutert. Es zeigen:
    • 1 ein Blockschaubild, das einen beispielhaften Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 2 ein zusätzliches Blockschaubild, das eine beispielhafte Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 3 ein zusätzliches Blockschaubild, das Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung darstellt;
    • 4A bis 4B Schaubilder, die einen Leistungsvergleich eines Betriebs mit frühzeitiger Schreibbestätigung (EWACK) und eines Betriebs mit nicht frühzeitiger Schreibbestätigung (WACK) gemäß Aspekten der vorliegenden Erfindung darstellen;
    • 5A bis 5D Schaubilder, die eine beispielhafte Verwendung eines Speicherzugriffs-Vermittlersystems gemäß Aspekten der vorliegenden Erfindung darstellen; und
    • 6 einen Ablaufplan, der ein zusätzliches beispielhaftes Verfahren zum Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung darstellt, in der Aspekte der vorliegenden Erfindung umgesetzt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Speicherschreibzugriffe können von zentralen Prozessoreinheiten (CPU) oder DMA-Steuerungsroutinen (direct memory access, Direktspeicherzugriff) an externe Speichereinheits-Steuereinheiten wie zum Beispiel dynamische Direktzugriffsspeicher-Steuereinheiten („DDR“, dynamic random-access memory controllers), Hybrid-SpeicherSteuereinheiten („HMC“, hybrid memory controllers) oder disaggregierte Speichersysteme ausgegeben werden. Wenn ein Schreibzugriff auf den Hauptspeicher initiiert wird, kann die CPU oder die Ausführung des Direktspeicherzugriffs-DMA-Datenpfads angehalten werden, bis eine Schreibzugriffs-Antwortbestätigung empfangen wird. Die Bestätigung kann die Programmausführungsintegrität garantieren. Allerdings reagiert die Ausführungsleistung einer Anwendung sehr empfindlich auf die Speicherzugriffslatenz, insbesondere während des Wartens auf eine Bestätigung für die Schreibanforderung. Die Speicherzugriffslatenz kann zwischen hochgradig gekoppelten Systemen (z.B. kann ein dynamischer Direktzugriffsspeicher („DDR“) eine Antwortverzögerung von 10 Nanosekunden („ns“) erreichen) und Steuereinheiten, die über ein Netzwerk auf Speichermedien zugreifen müssen (z.B. kann ein disaggregiertes Speichersystem Hunderte von ns erfordern), variieren.
  • Konkret sind Computeranwendungen hinsichtlich der Speicherzugriffsintegrität vollständig von der Datenverarbeitungs-Hardware abhängig. Wenn eine Speicherzugriffsanforderung fehlschlägt, erkennt die Datenverarbeitungs-Hardware das Fehlschlagen der Speicherzugriffsanforderung unmittelbar, indem sie blockiert oder einen Systemneustart auslöst. Von daher besteht ein Bedarf, die Integrität der Programmausführung zu garantieren und die Ausführungsleistung von Datenverarbeitungsanwendungen zu erhöhen, die stark von der Schreibzugriffsleistung abhängen, während gleichzeitig die Speicherzugriffslatenz verringert wird. Dementsprechend zielt die vorliegende Erfindung darauf ab, die Leistung von Datenverarbeitungsanwendungen zu verbessern, die stark von der Speicher-Schreibzugriffsleistung abhängen.
  • In einem Aspekt kann ein Speichersteuereinheiten-Teilsystem die Zustellung einer Speicherzugriffs-Schreibanforderung durch die CPU in richtiger Reihenfolge unter Verwendung einer frühzeitigen Schreibbestätigung („EWACK“ oder „EWACK-Antwort“) garantieren. Die CPU erwartet nicht, Bestätigungen von der Speichersteuereinheit zu empfangen, und fährt unmittelbar mit der Ausführung fort, nachdem die Schreibanforderungsdaten die CPU verlassen haben. Abhängig von der Anzahl von Schreibanforderungen, die von einem Programm ausgegeben werden, kann eine EWACK die Ausführungsleistung um eine Größenordnung erhöhen. Wenn ein EWACK-Betrieb verwendet wird, kann die Verantwortung für das Garantieren, dass die Schreibanforderungen tatsächlich zugestellt werden, an die Speichersteuereinheit ausgelagert werden. Daher sollte die Steuereinheit Aufgaben wie zum Beispiel i) Puffern von Anforderungen, ii) Ablaufsteuerung, iii) Umsetzen eines Bestätigungsschemas und iv) Datenintegritätsprüfungen durchführen. Allerdings kann jede dieser Aufgaben zu erheblichen Verzögerungen auf dem kritischen Pfad führen, welche die Leistungssteigerung bis auf null herabsetzen können. Daher stellt die vorliegende Erfindung eine zusätzliche Betriebsart bereit, in der die Verantwortungen zwischen Hardware und Datenverarbeitungs-Anwendungskomponenten aufgeteilt werden können. Hierdurch wird eine zusätzliche Funktion und ein Vorteil gegenüber dem aktuellen Stand der Technik bereitgestellt, indem Datenverarbeitungsanwendungen aktiviert werden, die EWACK-bezogene Fehler tolerieren und sich von diesen erholen können, um eine erhebliche Leistungsverbesserung und eine deutliche Verringerung der Speicherzugriffslatenz zu erreichen.
  • In einem zusätzlichen Aspekt sorgen die Mechanismen der veranschaulichten Ausführungsformen für ein Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter EWACK-Betriebsunterstützung vor. Die Speicherzugriffs-Vermittlereinheit kann zwischen Speicherbus-Mastern und Speichersteuereinheiten-Slaves verschachtelt sein. Die Speicherzugriffs-Vermittlereinheit kann selektiv aktiviert werden, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • Bei dem Speicherbus-Anforderungsvermittlersystem kann es sich um ein gemeinsam aus Datenverarbeitungs-Hardware und Computeranwendungen ausgestaltetes System handeln. Bei dem Datenverarbeitungs-Hardwareteil des Systems kann es sich um den Speicherbus-Anforderungsvermittler handeln und er kann zwischen jedem Speicherbus-Master und einem Speichersteuereinheiten-Slave verschachtelt sein. Die EWACK-Funktion des Speicherbus-Anforderungsvermittlers kann zur Laufzeit über eine von einer Computeranwendung gesteuerte Hardware-Vermittlungseinheit automatisch aktiviert oder deaktiviert werden und wird von dem Kernel des Betriebssystems durch ein im Speicher abgebildetes Register gesteuert.
  • In einem Aspekt werden verschiedene Ausführungsformen bereitgestellt, um die Datenintegrität und die deterministische Programmausführung zu garantieren, während gleichzeitig die Anwendungsleistung für Speicherschreibzugriffe deutlich verbessert wird. In einem Aspekt ermöglicht eine Schreibzugriffsanforderungs-Vermittlereinheit eine schnelle EWACK und Benachrichtigung von ausgebenden Anwendungen über fehlgeschlagene Schreibanforderungen. Die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit kann zur Laufzeit selektiv aktiviert werden, um Anwendungen zu bedienen, die über die erforderliche Unterstützung verfügen, um die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit sicher zu nutzen, ohne die Ausführungsintegrität von gleichzeitig aktiven traditionellen Anwendungen zu beeinträchtigen. Die vorliegende Erfindung stellt eine Unterstützung eines Betriebssystems (OS) und einer Schnittstelle zur Anwendungsprogrammierung (API) zur Steuerung auf Anwendungsebene, zur Integritätsprüfung von Schreibzugriffsanforderungen und für Hindernisse beim Bewältigen fehlgeschlagener Schreibvorgänge auf Anwendungsebene bereit.
  • Eine zusätzliche hinzugefügte Funktion und ein Vorteil gegenüber dem aktuellen Stand der Technik werden durch Verwenden des Speicherzugriffs-Vermittlersystems innerhalb verschiedener Datenverarbeitungsarchitekturen wie zum Beispiel in einem disaggregierten Speichersystem bereitgestellt. Zum Beispiel befinden sich in dem disaggregierten Speichersystem die Speichermedien in verschiedenen physischen Serverschächten, sind über latenzarme Hochgeschwindigkeitsverbindungen (z.B. optische Schaltkreise und Vermittlungseinheiten) mit den CPUs und DMAs verbunden und haben erheblich längere Zugriffsverzögerungen als der lokale Hauptspeicher. Wenngleich die Verbindung theoretisch so konfiguriert werden kann, dass sie verlustfreie Datenübertragungskanäle bereitstellt, können die Einheiten entlang des Speicherzugriffspfads unerwartet ausfallen oder blockieren. Somit ermöglicht die hierin beschriebene Speicherzugriffs-Vermittlereinheit dem disaggregierten Speichersystem, zu verhindern, dass Einheiten entlang des Speicherzugriffspfads unerwartet ausfallen oder blockieren.
  • Es sei von vornherein klargestellt, dass das Umsetzen der hierin angeführten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist, obwohl diese Offenbarung eine ausführliche Beschreibung von Cloud-Computing enthält. Stattdessen können Ausführungsformen der vorliegenden Erfindung gemeinsam mit jeder beliebigen anderen Art von jetzt bekannter oder später erfundener Datenverarbeitungsumgebung umgesetzt werden.
  • Cloud-Computing ist ein Servicebereitstellungsmodell zum Ermöglichen eines problemlosen bedarfsgesteuerten Netzwerkzugriffs auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand bzw. minimaler Interaktion mit einem Anbieter des Service schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften enthalten, mindestens drei Dienstmodelle und mindestens vier Implementierungsmodelle.
  • Bei den Eigenschaften handelt es sich um die Folgenden:
    • On-Demand Self-Service: Ein Cloud-Nutzer kann einseitig automatisch nach Bedarf für Datenverarbeitungsfunktionen wie Serverzeit und Netzwerkspeicher sorgen, ohne dass eine menschliche Interaktion mit dem Anbieter der Dienste erforderlich ist.
  • Broad Network Access: Es sind Funktionen über ein Netzwerk verfügbar, auf die durch Standardmechanismen zugegriffen wird, welche die Verwendung durch heterogene Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) unterstützen.
  • Resource-Pooling: Die Datenverarbeitungsressourcen des Anbieters werden zusammengeschlossen, um mehreren Nutzern unter Verwendung eines Multi-Tenant-Modells zu dienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch nach Bedarf zugewiesen und neu zugewiesen werden. Es gibt eine gefühlte Standortunabhängigkeit, da der Nutzer allgemein keine Kontrolle bzw. Kenntnis über den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene festzulegen (z.B. Land, Staat oder Rechenzentrum).
  • Rapid Elasticity: Funktionen können für eine schnelle horizontale Skalierung (scale out) schnell und elastisch bereitgestellt werden, in einigen Fällen auch automatisch, und für ein schnelles Scale-in schnell freigegeben werden. Für den Nutzer erscheinen die für das Bereitstellen verfügbaren Funktionen häufig unbegrenzt und sie können jederzeit in jeder beliebigen Menge gekauft werden.
  • Measured Service: Cloud-Systeme steuern und optimieren die Verwendung von Ressourcen automatisch, indem sie eine Messfunktion auf einer gewissen Abstraktionsebene nutzen, die für die Art von Dienst geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite sowie aktive Benutzerkonten). Der Ressourcen-Verbrauch kann überwacht, gesteuert und gemeldet werden, wodurch sowohl für den Anbieter als auch für den Nutzer des verwendeten Dienstes Transparenz geschaffen wird.
  • Bei den Dienstmodellen handelt es sich um die Folgenden:
    • Software as a Service (SaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, die in einer Cloud-Infrastruktur laufenden Anwendungen des Anbieters zu verwenden. Die Anwendungen sind über eine Thin-Client-Schnittstelle wie einen Web-Browser (z.B. auf dem Web beruhende E-Mail) von verschiedenen Client-Einheiten her zugänglich. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter das Netzwerk, Server, Betriebssysteme, Speicher bzw. sogar einzelne Anwendungsfunktionen, mit der möglichen Ausnahme von eingeschränkten benutzerspezifischen Anwendungskonfigurationseinstellungen.
  • Platform as a Service (PaaS): Die dem Nutzer bereitgestellte Funktion besteht darin, durch einen Nutzer erstellte bzw. erhaltene Anwendungen, die unter Verwendung von durch den Anbieter unterstützten Programmiersprachen und Tools erstellt wurden, in der Cloud-Infrastruktur einzusetzen. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, darunter Netzwerke, Server, Betriebssysteme bzw. Speicher, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen des Application Hosting Environment.
  • Infrastructure as a Service (laaS): Die dem Nutzer bereitgestellte Funktion besteht darin, das Verarbeiten, Speicher, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Nutzer in der Lage ist, beliebige Software einzusetzen und auszuführen, zu der Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet bzw. steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Bei den Einsatzmodellen handelt es sich um die Folgenden:
    • Private Cloud: Die Cloud-Infrastruktur wird einzig und allein für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und kann sich in den eigenen Räumen oder in fremden Räumen befinden.
  • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Benutzergemeinschaft, die gemeinsame Angelegenheiten hat (z.B. Mission, Sicherheitsanforderungen, Richtlinien sowie Überlegungen bezüglich der Einhaltung von Vorschriften). Sie kann durch die Organisationen oder einen Dritten verwaltet werden und kann in den eigenen Räumen oder fremden Räumen stehen.
  • Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und sie gehört einer Cloud-Dienste verkaufenden Organisation.
  • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, Benutzergemeinschaft oder öffentlich), die zwar einzelne Einheiten bleiben, aber durch eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die Daten- und Anwendungsportierbarkeit ermöglicht (z.B. Cloud-Zielgruppenverteilung für den Lastenausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert mit Fokus auf Statusunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Im Herzen von Cloud-Computing liegt eine Infrastruktur, die ein Netzwerk aus zusammengeschalteten Knoten aufweist.
  • Unter Bezugnahme auf 1 ist eine schematische Abbildung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 ist lediglich ein Beispiel eines geeigneten Cloud-Computing-Knotens und soll keinerlei Einschränkungen hinsichtlich des Anwendungsbereichs oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Trotzdem kann eine beliebige vorstehend dargelegte Funktionalität in dem Cloud-Computing-Knoten 10 umgesetzt und/oder von diesem durchgeführt werden.
  • In dem Cloud-Computing-Knoten 10 gibt es ein Computersystem/einen Server 12, das/der mit zahlreichen anderen Universal- oder Spezial-Datenverarbeitungssystem-Umgebungen bzw. -konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die zur Verwendung mit dem Computersystem/Server 12 geeignet sein können, gehören Personal-ComputerSysteme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten enthalten, und dergleichen, aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Anweisungen, z.B. Programmmodulen, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch entfernt angeordnete Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in entfernt angeordneten Computersystem-Speichermedien befinden, darunter Hauptspeichereinheiten.
  • Wie in 1 gezeigt ist, ist das Computersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können eine(n) oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 aufweisen, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit dem Prozessor 16 verbindet, sind aber nicht darauf beschränkt.
  • Der Bus 18 stellt eine oder mehrere einer beliebigen von mehreren Arten von Busstrukturen dar, darunter ein Speicherbus oder eine Speichersteuereinheit, ein Peripheriebus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects).
  • Das Computersystem/der Server 12 beinhaltet üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem/der Server 12 zugreifen kann, und es beinhaltet sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie einen Direktzugriffsspeicher (RAM) 30 und/oder Cachespeicher 32 enthalten. Das Computersystem/der Server 12 kann darüber hinaus andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien beinhalten. Lediglich als Beispiel kann das Speichersystem 34 zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk“ genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z.B. eine „Floppy-Diskette“) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über eine oder mehrere Datenmedienschnittstellen mit dem Bus 18 verbunden sein. Wie nachfolgend weiter dargestellt und beschrieben wird, kann der Systemspeicher 28 mindestens ein Programmprodukt enthalten, das einen Satz von Programmmodulen (z.B. mindestens einen) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Als Beispiel und nicht als Einschränkung können ein Programm/Dienstprogramm 40 mit (mindestens) einem Satz von Programmmodulen 42 sowie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten in dem Speicher 28 gespeichert sein. Das Betriebssystem, das eine oder die mehreren Anwendungsprogramme, andere Programmmodule und die Programmdaten oder eine beliebige Kombination daraus können jeweils eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen allgemein die hierin beschriebenen Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 Daten auszutauschen, und/oder beliebigen Einheiten (z.B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 über einen Netzwerkadapter 20 mit einem oder mehreren Netzwerken Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet). Wie dargestellt ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Im Kontext der vorliegenden Erfindung und wie ein Fachmann verstehen wird, können sich verschiedene in 1 dargestellte Komponenten in einem fahrenden Fahrzeug befinden. Zum Beispiel können einige der Verarbeitungs- und Datenspeicherfunktionen, die Mechanismen der veranschaulichten Ausführungsformen zugehörig sind, lokal über lokale Verarbeitungskomponenten erfolgen, während dieselben Komponenten über ein Netzwerk mit entfernt angeordneten, verteilten Datenverarbeitungs- und Speicherkomponenten verbunden sind, um verschiedene Zwecke der vorliegenden Erfindung zu erfüllen. Wiederum soll, wie ein Fachmann verstehen wird, die vorliegende Veranschaulichung nur eine Untergruppe eines möglicherweise vollständigen verbundenen Netzwerks von verteilten Datenverarbeitungskomponenten vermitteln, die verschiedene erfinderische Aspekte gemeinsam verwirklichen.
  • Unter Bezugnahme auf 2 ist die veranschaulichende Cloud-Computing-Umgebung 50 abgebildet. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen von Cloud-Nutzern verwendete lokale Datenverarbeitungseinheiten wie zum Beispiel ein elektronischer Assistent (PDA, personal digital assistant) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Laptop-Computer 54C und/oder ein Automobil-Computer-System 54N Daten austauschen können. Die Knoten 10 können miteinander Daten austauschen. Sie können physisch oder virtuell in ein oder mehrere Netzwerke wie private, Benutzergemeinschafts-, öffentliche oder hybride Clouds gruppiert werden (nicht gezeigt), wie vorstehend beschrieben wurde, oder in eine Kombination daraus. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienst anzubieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es sei darauf hingewiesen, dass die Arten von in 2 gezeigten Datenverarbeitungseinheiten 54A bis N lediglich veranschaulichend sein sollen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art Netzwerk und/oder über eine beliebige Art von über ein Netzwerk aufrufbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
  • Unter Bezugnahme auf 3 wird ein Satz von funktionalen Abstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein klar sein, dass die in 3 gezeigten Komponenten, Schichten und Funktionen lediglich veranschaulichend sein sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie abgebildet ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
    • Eine Einheitenschicht 55 enthält physische und/oder virtuelle Einheiten, die in Elektronik, Sensoren, Aktuatoren und anderen Objekten eingebettet und/oder eigenständig sind, um verschiedene Aufgaben in einer Cloud-Computing-Umgebung 50 durchzuführen. Jede der Einheiten in der Einheitenschicht 55 schließt Vernetzungsfähigkeiten mit anderen funktionalen Abstraktionsschichten ein, so dass diesen von den Einheiten erhaltene Informationen bereitgestellt werden können und/oder den Einheiten Informationen von den anderen Abstraktionsschichten bereitgestellt werden können. In einer Ausführungsform können die verschiedenen Einheiten, die in der Einheitenschicht 55 enthalten sind, ein Netzwerk von Entitäten einschließen, das kollektiv als „Internet der Dinge“ (loT, Internet of Things) bekannt ist. Ein derartiges Netzwerk von Entitäten ermöglicht das übergreifende Austauschen, Sammeln und Verbreiten von Daten, um eine große Vielfalt von Zwecken zu erfüllen, wie ein Fachmann verstehen wird.
  • Die Einheitenschicht 55 enthält, wie gezeigt, einen Sensor 52, einen Aktuator 53, einen „lernenden“ Thermostat 56 mit integrierter Verarbeitungs-, Sensor- und Netzwerkelektronik, eine Kamera 57, eine steuerbare Haushaltssteckdose/-steckbuchse 58 und einen steuerbaren elektrischen Schalter 59, wie gezeigt. Zu anderen möglichen Einheiten können verschiedene zusätzliche Sensoreinheiten, Netzwerkeinheiten, elektronische Einheiten (wie zum Beispiel eine Fernsteuereinheit), zusätzliche Aktuatoreinheiten, sogenannte „intelligente“ Vorrichtungen wie zum Beispiel ein Kühlschrank oder eine Waschmaschine/ein Trockner und eine große Vielfalt an anderen möglichen miteinander verbundenen Objekten gehören, aber nicht auf diese beschränkt.
  • Eine Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören: Mainframe-Computer 61; auf der RISC-(Reduced Instruction Set Computer) Architektur beruhende Server 62; Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke sowie Netzwerkkomponenten 66. In einigen Ausführungsformen beinhalten Software-Komponenten eine Netzwerk-Anwendungsserver-Software 67 und eine Datenbank-Software 68.
  • Eine Virtualisierungsschicht 70 stellt eine Abstraktionsschicht bereit, aus der die folgenden Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71, virtueller Speicher 72, virtuelle Netzwerke 73, darunter virtuelle private Netzwerke, virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcen-Bereitstellung 81 stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die zum Durchführen von Aufgaben innerhalb der Cloud-Computing-Umgebung verwendet werden. Ein Messen und eine Preisfindung 82 stellen eine Kostenverfolgung beim Verwenden von Ressourcen innerhalb der Cloud-Computing-Umgebung sowie eine Abrechnung oder Rechnungsstellung für den Verbrauch dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungs-Software-Lizenzen aufweisen. Eine Sicherheit stellt die Identitätsüberprüfung für Cloud-Nutzer und Aufgaben sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Nutzern und Systemadministratoren einen Zugang zu der Cloud-Computing-Umgebung bereit. Eine Verwaltung des Dienstumfangs 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, so dass die benötigten Dienstziele erreicht werden. Ein Planen und Erfüllen von Vereinbarungen zum Dienstumfang (SLA, Service Level Agreement) 85 stellt eine Anordnung vorab und eine Beschaffung von Cloud-Computing-Ressourcen, für die eine zukünftige Anforderung vorausgesehen wird, gemäß einem SLA bereit.
  • Eine Arbeitslastschicht 90 stellt Beispiele für eine Funktionalität bereit, für welche die Cloud-Computing-Umgebung verwendet werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht bereitgestellt werden können, gehören: Abbildung und Navigation 91; Software-Entwicklung und Lebenszyklusverwaltung 92; Bereitstellung von Ausbildung in virtuellen Klassenzimmern 93; Datenanalytikverarbeitung 94; Transaktionsverarbeitung 95; und in dem Kontext der veranschaulichten Ausführungsformen der vorliegenden Erfindung verschiedene Speicherzugriffs-Vermittlersysteme mit anwendungsgesteuerten Arbeitslasten und Funktionen 96 mit frühzeitiger Schreibbestätigung. Zusätzlich können Speicherzugriffs-Vermittlersysteme mit anwendungsgesteuerten Arbeitslasten und Funktionen 96 mit frühzeitiger Schreibbestätigung Arbeitsschritte enthalten wie zum Beispiel Datenanalyse (darunter Datenerfassung und -verarbeitung von verschiedenen Umgebungssensoren) und vorausschauende Datenanalytikfunktionen. Ein Fachmann wird verstehen, dass die Speicherzugriffs-Vermittlersysteme mit anwendungsgesteuerten Arbeitslasten und Funktionen 96 mit frühzeitiger Schreibbestätigung auch in Verbindung mit anderen Teilen der verschiedenen Abstraktionsschichten funktionieren können, wie zum Beispiel die in der Hardware und Software 60, der Virtualisierung 70, der Verwaltung 80 und den anderen Arbeitslasten 90 (wie zum Beispiel die Datenanalytikverarbeitung 94), um die verschiedenen Zwecke der veranschaulichten Ausführungsformen der vorliegenden Erfindung zu erfüllen.
  • Wie bereits erwähnt, stellen die Mechanismen der veranschaulichten Ausführungsformen neuartige Ansätze bereit, um die Datenintegrität und die deterministische Programmausführung zu garantieren, während gleichzeitig die Anwendungsleistung für Speicherschreibzugriffe deutlich verbessert wird. In einem Aspekt ermöglicht eine Schreibzugriffsanforderungs-Vermittlereinheit eine schnelle frühzeitige Schreibbestätigung und Benachrichtigung von ausgebenden Anwendungen über fehlgeschlagene Schreibanforderungen. Die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit kann zur Laufzeit selektiv aktiviert werden, um Anwendungen zu bedienen, die über die erforderliche Unterstützung verfügen, um die Speicher-Schreibzugriffsanforderungs-Vermittlereinheit sicher zu nutzen, ohne die Ausführungsintegrität von gleichzeitig aktiven traditionellen Anwendungen zu beeinträchtigen. Es werden eine oder mehrere Lösungen für Unterstützung eines Betriebssystems (OS) und einer Schnittstelle zur Anwendungsprogrammierung (API) zur Steuerung auf Anwendungsebene, zur Integritätsprüfung von Schreibzugriffsanforderungen und für Hindernisse beim Bewältigen fehlgeschlagener Schreibvorgänge auf Anwendungsebene bereitgestellt.
  • Diese Mechanismen enthalten eine Funktionalität, die wiederum durch einen Prozessor ein Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung selektiv aktiviert. Ein Speicherzugriffsvermittler kann selektiv aktiviert werden, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  • Die 4A bis 4B sind Schaubilder 400, 425, die einen Leistungsvergleich einer frühzeitigen Schreibbestätigung (EWACK) und einer nicht frühzeitigen Schreibbestätigung (WACK) darstellen. Man betrachte die folgenden beiden Beispiele zum Vergleichen der Leistung von EWACK und WACK.
  • Für die Schaubilder 400, 425 wird eine symmetrische 64-Bit-Pipeline mit zwanzig Zyklen (z.B. 10 Stufen Anforderungen/10 Stufen Antworten) zwischen einer CPU und einem Hauptspeicher („mem“) angenommen. Anders gesagt, die 10 Stufen Schreibanfragen sind die ersten 10 Zyklen und die 10 Stufen Schreibantworten sind die zweiten 10 Zyklen von insgesamt 20 Zyklen. Es wird auch angenommen, dass es vier 192-Bit-Datenschreibanforderungen (z.B. Antworten 0, 1, 2 und 3) gibt, die nacheinander für die Anforderungssequenz ausgegeben werden. Eine WACK kann 64 Bit betragen. Die Anforderungs-Pipeline kann Schreibdaten- und Antwort-Pipeline-WACKS übertragen. Es wird auch angenommen, dass jede Schreibanforderung („Anforderung“) drei Zyklen (z.B. 192-Bit/64-Bit) benötigt, damit alle Daten, die unterwegs sind, in der Pipeline sind.
  • Nun übergehend zu Schaubild 400, in dem die Unterschiede zwischen EWACK und WACK für das Eintreffen der ersten 64 Bit der ersten Schreibanforderung (z.B. Anforderung 0) in den Hauptspeicher veranschaulicht werden. Insbesondere veranschaulicht das Schaubild 400, dass bei der WACK nur die Anforderung 0 (z.B. die erste 64-Bit-Anforderung) bei Eintreffen der ersten Schreibanforderung in dem Hauptspeicher unterwegs ist. Erst nach Rückleiten der Schreibantwort aus dem Hauptspeicher für die Anforderung 0 kann die nächste Schreibanforderung, die in der Pipeline unterwegs ist, an den Hauptspeicher ausgegeben werden, wie zum Beispiel Anforderung 1. Derselbe Prozess wird für jede nachfolgende Schreibanforderung (z.B. Anforderung 2 und 3) fortgesetzt. Im Gegensatz dazu beseitigen die EWACK-Arbeitsschritte eine derartige Speicherzugriffslatenz und ermöglichen es, dass jede der Schreibanforderungen wie zum Beispiel die Anforderungen 0 bis 3 nacheinander ausgegeben werden und gleichzeitig in der Pipeline unterwegs sind.
  • Nun übergehend zu Schaubild 425 aus 4B, in dem die Leistungsunterschiede zwischen EWACK und WACK dargestellt werden, wenn die erste Anforderungsantwort (z.B. Anforderung 0) aus dem Hauptspeicher ausgegeben wird und bei der CPU eintrifft. Alle 64-Bit-EWACKS (für Anfragen 0 bis 3) befinden sich unterwegs in der Antwortpipeline für die EWACK. Im Gegensatz dazu sind bei der WACK in demselben Zyklus sowohl die Anforderungs-Pipeline als auch die Antwort-Pipeline leer, bis auf lediglich die ersten Anforderung (z.B. Anforderung 0), die fast abgeschlossen ist (z.B. 20 Zyklen abgeschlossen).
  • Insbesondere zeigt Tabelle 450, welche die gesamten EWACK-Antwortzeiten widerspiegelt, dass bei der Schreibzugriffsanforderung 0 der Startzyklus bei 0 beginnt und der Endzyklus bei 20 abgeschlossen ist. Bei der Schreibzugriffsanforderung 1 beginnt der Startzyklus bei 3, und der Endzyklus ist bei 23 abgeschlossen. Bei der Schreibzugriffsanforderung 2 beginnt der Startzyklus bei 6, und der Endzyklus ist bei 26 abgeschlossen. Bei der Schreibzugriffsanforderung 3 beginnt der Startzyklus bei 9, und der Endzyklus ist bei 29 abgeschlossen. Das heißt, der Schreibblock endet bei Zyklus 29.
  • Tabelle 475 für die WACK zeigt, dass bei der Schreibzugriffsanforderung 0 der Startzyklus bei 0 beginnt und der Endzyklus bei 20 abgeschlossen ist. Bei der Schreibzugriffsanforderung 1 beginnt der Startzyklus bei 21, und der Endzyklus ist bei 41 abgeschlossen. Bei der Schreibzugriffsanforderung 2 beginnt der Startzyklus bei 42, und der Endzyklus ist bei 62 abgeschlossen. Bei der Schreibzugriffsanforderung 3 beginnt der Startzyklus bei 63, und der Endzyklus ist bei 83 abgeschlossen. Das heißt, der Schreibblock endet bei Zyklus 83. Wie veranschaulicht ist, kann durch die EWACK-Arbeitsschritte im Vergleich zu WACK für alle gesamten Schreibanforderungen aus 4B eine Verringerung um 54 Zyklen erreicht werden.
  • Unter Verwendung der EWACK-Arbeitsschritte ermöglicht die vorliegende Erfindung eine Unterstützung von EWACK, ohne dass es erforderlich wäre, dass das Speichersteuereinheiten-Teilsystem die Lieferung garantieren muss, um die Leistung zu maximieren. Um dies zu unterstützen, überwachen und protokollieren die Mechanismen der veranschaulichten Ausführungsformen Schreibbestätigungsfehlschläge in einem kritischen Speicherzugriffspfad und stellen die Informationen über protokollierte Schreibbestätigungsfehlschläge Anwendungen zur Verfügung. Die Verantwortung für das periodische Überprüfen auf Schreibanforderungsfehler und das Ergreifen von Korrekturmaßnahmen wird auf die Anwendungsebene übertragen. Außerdem kann die EWACK-Funktion als weitere zusätzliche Funktion und als Vorteil gegenüber dem aktuellen Stand der Technik selektiv nur für Anforderungen aktiviert werden, die mit der Ausführung von Anwendungen zusammenhängen, welche die Schreibanforderungs-Zugriffsfehler verarbeiten können, so dass traditionelle Anwendungen gleichzeitig und sicher ohne erforderliche Abänderungen ausgeführt werden können.
  • Angesichts des Vorstehenden betrachte man nun die folgenden Beispiele, die in den 5A bis 5D dargestellt sind. Wie in 5A (und auch in 5B bis 5C) veranschaulicht ist, kann ein Speicherbus-Anforderungsvermittlersystem 500 einen Speicherbus-Anforderungsvermittler 510 („Anforderungs-Vermittler“ oder „EWACK-Vermittler“) enthalten, der in einer Vielfalt von Datenverarbeitungsarchitektur-Rahmenwerken verwendet werden kann. Bei dem Speicherbus-Anforderungsvermittlersystem 500 kann es sich um ein gemeinsam aus Datenverarbeitungs-Hardware und Computeranwendungen ausgestaltetes System handeln. In einem Aspekt kann ein Datenverarbeitungssystem den Speicherbus-Anforderungsvermittler 510, ein Programm 501, das einer Betriebssoftware („OS“) 502 zugehörig ist, eine CPU 504, einen DMA 506, einen Bus wie zum Beispiel einen Speicherbus-Master 508, eine Speichersteuereinheit 514 und ein oder mehrere EWACK-Register 512 enthalten, die mit dem Speicherbus-Anforderungsvermittler 510 verbunden sein können.
  • In einem Aspekt kann der Speicherbus-Anforderungsvermittler 510 zwischen einem Speicherbus-Master 508 und einer Speichersteuereinheit 514 geschaltet oder verschachtelt sein und Schreibanforderungsfehlschläge in einem Satz von im Speicher abgebildeten Registern wie zum Beispiel den EWACK-Registern 512 protokollieren. Die EWACK-Register 512 können unabhängig und sicher durch das OS 502 untersucht werden.
  • Angesichts des Vorstehenden betrachte man die folgenden Betriebsbeispiele des Speicherbus-Anforderungsvermittlersystems 500. Zur Veranschaulichung der verschiedenen Ausführungsbeispiele kann der Speicherbus-Anforderungsvermittler 510 zunächst eine Schreibanforderung von einem Speicherbus-Master 508 empfangen. Der Speicherbus-Anforderungsvermittler 510 kann die Schreibanforderung an die Speichersteuereinheit 514 ausgeben. Der Speicherbus-Anforderungsvermittler 510 kann eine WACK-Antwort von der Speichersteuereinheit 514 empfangen. Der Speicherbus-Anforderungsvermittler 510 kann die von der Speichersteuereinheit 514 empfangene WACK-Antwort an den Speicherbus-Master 508 ausgeben. Allerdings kann die EWACK-Funktion des Speicherbus-Anforderungsvermittlers 510 zur Laufzeit über die CPU 504 (z.B. eine von einer Computeranwendung gesteuerte Hardware-Vermittlungseinheit) automatisch aktiviert oder deaktiviert und von einem Kernel des OS 502 durch die EWACK-Register gesteuert werden.
  • Nun übergehend zu 5B, kann der Speicherbus-Anforderungsvermittler 510 eine Schreibanforderung von dem Speicherbus-Master 508 empfangen. Beim Eintreffen der Schreibanforderung kann der Speicherbus-Anforderungsvermittler 510 prüfen und ermitteln, ob es sich bei der Schreibanforderung um eine EWACK-Schreibanforderung oder eine Nicht-EWACK-Schreibanforderung handeln sollte. Wenn es sich bei der Schreibanforderung um eine EWACK-Anforderung handelt, kann die Standard-Anforderungskennung („ID“), die von den Protokollen des Speicherbus-Masters 508 bereitgestellt wird, ersetzt werden. Bei der Ersatz-ID kann es sich um eine zusammengesetzte Kennung handeln, die 1) die CPU- oder DMA-ID, welche die Schreibanforderung ausgegeben hat, 2) eine Schreibanforderungs-ID und 3) einen Zähler codiert, der intern durch den Anforderungsvermittler 510 verwaltet wird. Die ersten beiden Felder (d.h. die CPU/DMA-ID und die Schreibanforderungs-ID) werden von den Protokollen des Speicherbus-Masters 508 bereitgestellt. Das heißt, sowohl die CPU/DMA-ID als auch die Schreibanforderungs-ID können durch die Speicherbusprotokolle (d.h. in den Speicheranforderungskopfzeilen) bereitgestellt werden. Die CPU/DMA-ID und die Schreibanforderungs-ID können zu einer ID kombiniert werden, welche die Transaktion zum Zwecke des Ausführens von Aufgaben des EWACK-Vermittlers (z.B. des Speicherbus-Anforderungsvermittlers 510) kennzeichnet.
  • Die zusammengesetzte ID kann in eine Warteschlange 520 wie zum Beispiel eine Zuerst-reinzuerst-raus- („FIFO“, first in first out) Warteschlange 520 in Richtung der Antwortpipeline geschoben und als zugewiesene ID der ausgehenden Schreibanforderung verwendet werden. Wenn die Schreibanforderung als nicht frühzeitig bestätigt eingestuft wird (z.B. eine Nicht-EWACK-Schreibanforderung), wird die Schreibanforderung unverändert weitergeleitet, und die Standard-ID, die von den Protokollen des Speicherbus-Masters 508 bereitgestellt wurde, kann verwendet werden.
  • Außerdem kann der Speicherbus-Anforderungsvermittler 510, je nachdem, ob die EWACK-Betriebsart für den Speicherbus-Anforderungsvermittler 510 für die Schreibanforderungsausgabe-Komponente wie zum Beispiel das OS 502 aktiviert oder deaktiviert ist, entweder 1) sofort eine EWACK an die ausgebende Anwendung (z.B. das der CPU 504 zugehörige Programm 501) zurückschicken (EWACK-Betriebsart) oder 2) warten und die WACK weiterleiten, die von der Speichersteuereinheit 514 erzeugt wird, nachdem der eigentliche Schreibvorgang abgeschlossen ist. Das heißt, in der EWACK-Betriebsart 1) kann der Speicherbus-Anforderungsvermittler 510 unmittelbar auf die ausgebende Instanz antworten (EWACK-Bestätigung), ohne darauf zu warten, dass eine Steuereinheit (z.B. die Speichersteuereinheit 514) eine Bestätigung sendet, und/oder 2) kann der Speicherbus-Anforderungsvermittler 510 keine EWACK erzeugen, sondern gestattet stattdessen einer Steuereinheit (z.B. der Speichersteuereinheit 514), mit der normalen WACK (z.B. Nicht-EWACK) zu antworten.
  • Die Speichersteuereinheit 514 kann Schreibbestätigungen für sämtliche Schreibanforderungen senden, welche die Speichersteuereinheit 514 empfängt, insbesondere, da die Speichersteuereinheit 514 in Unkenntnis der von dem Speicherbus-Anforderungsvermittler 510 durchgeführten Arbeitsschritte ist oder diese nicht wahrnimmt.
  • In Fortsetzung der in den 5A bis 5B veranschaulichten Beispiele, nun zu 5C übergehend, kann der Speicherbus-Anforderungsvermittler 510 eine Schreibbestätigung (z.B. eine WACK-Antwort) von der Speichersteuereinheit 514 empfangen. Wenn der Speicherbus-Anforderungsvermittler 510 die Schreibbestätigung 530 von der Speichersteuereinheit 514 empfängt, kann der Speicherbus-Anforderungsvermittler 510 die nächste zusammengesetzte ID („ID“) aus der FIFO-Warteschlange 520 abrufen (z.B. die nächste zusammengesetzte ID gemäß den FIFO-Arbeitsschritten). Der Speicherbus-Anforderungsvermittler 510 kann die abgerufene zusammengesetzte ID aus der FIFO-Warteschlange 520 mit der von der Speichersteuereinheit 514 empfangenen Schreibbestätigung 530 (z.B. einer WACK-Antwort) vergleichen. Wenn zum Beispiel der Speicherbus-Anforderungsvermittler 510 eine Anforderung an die Speichersteuereinheit 514 mit der ID „X“ ausgibt, enthält die Antwort der Speichersteuereinheit 514 für diese Anforderung die ID X. Dies ermöglicht es dem Speicherbus-Anforderungsvermittler 510, Anforderungs-IDs mit Antwort-IDs der Speichersteuereinheit zu vergleichen. Da Anforderungen auf dieser Ebene serialisiert sind, stimmt beim Ausbleiben einer Antwort die jeweilige Anforderungs-ID während des FIFO-Betriebs nicht überein, wodurch eine fehlgeschlagene Anforderung identifiziert wird.
  • Wenn bei den in EWACK-Betriebsart ausgegebenen Anforderungen die zusammengesetzte ID, die aus der FIFO-Warteschlange 520 abgerufen wird, und die Schreibbestätigungs-ID der von der Speichersteuereinheit 514 empfangenen Schreibbestätigungsantwort 530 übereinstimmen, verwirft der Speicherbus-Anforderungsvermittler 510 die Antwort (da zuvor eine EWACK geliefert wurde). In Nicht-EWACK-Betriebsart wird die Schreibbestätigung 530 an den Speicherbus-Master 508 weitergeleitet.
  • Wenn andererseits in EWACK-Betriebsart die zusammengesetzte ID und die Schreibbestätigungs-ID der von der Speichersteuereinheit 514 empfangenen Schreibbestätigungsantwort 530 gemäß dem Vergleichsarbeitsschritt nicht übereinstimmen, kann der Speicherbus-Anforderungsvermittler 510 ein vorgesehenes Bit in einem oder mehreren derzeit aktiven EWACK-Registern 512 protokollieren oder „setzen“. Da sämtliche Schreibanforderungen aufgrund einer einzelnen Speichersteuereinheit 514 in Reihenfolge beantwortet werden, sollte jede abgerufene zusammengesetzte ID mit der von der Speichersteuereinheit 514 empfangenen, eingehenden Schreibbestätigung 530 übereinstimmen, sofern nicht eine frühere verloren geht. Durch Setzen eines vorgesehenen Bits in einem oder mehreren derzeit aktiven EWACK-Registern 512 fungiert das Bit als Hinweis auf eine fehlgeschlagene EWACK-Schreibanforderung.
  • Nun zu 5D übergehend, kann der Speicherbus-Anforderungsvermittler 510 ein vorgesehenes Bit in einem oder mehreren derzeit aktiven EWACK-Registern 512 gesetzt haben, wenn eine fehlgeschlagene EWACK-Schreibanforderung angezeigt wurde. Dementsprechend zeigt 5D an, dass es erforderlich ist, dass die Datenverarbeitungsanwendung wie zum Beispiel ein Programm 501 und das zugehörige OS 502 die EWACK-Betriebsart aktiviert/deaktiviert und die EWACK-Register 512 überprüft, wenn es für den Ausführungsfluss angebracht und sicher ist (d.h. im Falle eines erkannten Schreibanforderungsfehlschlagens sicher wiederholt werden kann). Dies liegt daran, dass die Datenverarbeitungsanwendung mit der Ausführung fortfahren wird, bevor der fehlgeschlagene Schreibvorgang von dem Speicherbus-Anforderungsvermittler 510 erkannt wird. Von daher ist es erforderlich, dass die Computeranwendung auf fehlgeschlagene EWACK-Schreibanforderungen überprüft. Das heißt, dass es erforderlich ist, dass eine Unterstützung auf Anwendungsebene (z.B. unterstützt eine Computeranwendung den Speicherbus-Anforderungsvermittler 510 beim Erkennen, Identifizieren und Beantworten fehlgeschlagener Schreibanforderungen) die in dem Hauptspeicher abgebildeten EWACK-Register 512 angemessen auf fehlgeschlagene Schreibanforderungen hin untersucht, um mögliche Schreibfehler zu behandeln und anzugehen. Außerdem ist es erforderlich, dass die Computeranwendung (z.B. die Unterstützung auf Anwendungsebene) die EWACK-Betriebsart in dem Speicherbus-Anforderungsvermittler 510 für Codeblöcke deaktiviert, bei denen Schreibfehler nicht behandelt werden können. Die Zugriffslatenz auf die EWACK-Register 512 (z.B. im Speicher abgebildete Register) ist extrem gering, so dass die EWACK-Register 512 (regelmäßig oder periodisch) durch die Datenverarbeitungsanwendung mit vernachlässigbarem Aufwand untersucht werden können. Es kann auch erforderlich sein, dass eine Unterstützung durch das Betriebssystem die EWACK-Betriebsart in dem Speicherbus-Anforderungsvermittler 510 sicher aktiviert/deaktiviert, wenn eine Anwendung das Deaktivieren des EWACK-Betriebs anfordert, und auch zum Schützen von EWACK-DMA-Übertragungen vor Schreibfehlern. Wenn also die ausgebenden Anwendungen eine fehlgeschlagene Schreibanforderung in den EWACK-Registern 512 erkennen, können die ausgebenden Anwendungen aufgefordert werden, jede Schreibanforderung nach dem Identifizieren der fehlgeschlagenen EWACK-Schreibanforderung, die in dem einem oder den mehreren EWACK-Registern 512 angegeben ist, erneut auszugeben.
  • In einem Aspekt kann die Unterstützung auf Anwendungsebene aus einem Arbeitsschritt zum Registrieren eines EWACK-OS-Dienstes, einem Arbeitsschritt zum Aktivieren/Deaktivieren eines Dienstes und einem Arbeitsschritt zum Prüfen eines Speicher-Schreibintegritätshindernisses bestehen. Wenn eine Datenverarbeitungsanwendung in Verarbeitungsblöcke eintritt, die im Falle von Schreibzugriffsfehlschlägen wiederholt werden können, sollte der Unterstützungsdienst auf Anwendungsebene aktiviert werden, und es können Prüfungen von Speicherintegritätshindernissen in den Code eingefügt werden. Falls eine Hindernisüberprüfung negativ verläuft, kann die Datenverarbeitungsanwendung eine oder mehrere Aktionen durchführen.
  • In einem zusätzlichen Aspekt stellt die Unterstützung auf Betriebssystemebene den EWACK-Dienst pro OS-Prozess zur Verfügung. Zum Beispiel kann das OS jedes Mal, wenn ein Prozess-Steuerprogramm beschließt, die CPU einer neuen Anwendung zu gewähren, vor dem eigentlichen Kontextwechsel die folgenden Überprüfungen durchführen. Das OS kann (eine) nicht-einheitliche Speicherzugriffsdomäne(n) („NUMA“, non-uniform memory access) überprüfen, um zu bestätigen, dass die Computeranwendung EWACK-zugriffsfähigen Hauptspeicher verwendet, und entscheiden, welche EWACK-Vermittler (da es mehr als einen EWACK-Vermittler in einem Computersystem geben kann) für die bestimmte(n) CPU(s), auf der/denen die Anwendung ausgeführt werden soll, aktiviert oder deaktiviert werden sollen. Der Aktivierungsbefehl für das Aktivieren des EWACK-Betriebs kann atomar sein (Schreiben eines im Speicher abgebildeten Einzelbytes in ein Vermittler-Steuerregister für eine aktuelle CPU). Nach dem Empfangen des Aktivierungsbefehls für den EWACK-Betrieb können die EWACK-Vermittler den gesamten Anforderungsverkehr blockieren und auf den Abschluss sämtlicher Anforderungen, die unterwegs sind, warten, bevor der EWACK-Vermittler auf eine Schreibanforderung antwortet. Nach dem Abschließen sämtlicher empfangener Anforderungen, die unterwegs waren, kann der Anforderungsverkehr wieder freigegeben werden. Der Deaktivierungsbefehl zum Deaktivieren des EWACK-Betriebs blockiert keinen Schreibanforderungsverkehr und wird unmittelbar angewendet.
  • Als eine weitere zusätzliche Funktion und als Vorteil gegenüber dem aktuellen Stand der Technik können Anwendungen Benutzerraum-Bibliotheken bereitgestellt werden, um die Verwendung von EWACK-Betriebsfunktionalitäten zu ermöglichen. Die Benutzerraum-Bibliothek kann durch Unterstützung von EWACK auf OS-Ebene gesichert werden. Wie in dem nachfolgenden Pseudocode-Beispiel veranschaulicht ist, aktivieren bzw. deaktivieren eine oder mehrere mögliche „ewackmode_enable“- und „ewackmode_disable“-APIs die EWACK-Betriebsfunktionalität für einen aktuellen Prozess. Es ist zu beachten, dass ein „ewackmode_enable“-Arbeitsschritt eine Funktion eines Benutzerbibliotheksarbeitsschrittes sein kann und möglicherweise nicht direkt das Aktivieren der zuvor beschriebenen Hardware/Software-Vermittlungseinheit steuert. Der „ewackmode_check“-Arbeitsschritt kann prüfen, ob irgendwelche Schreibfehler aufgetreten sind, und kann die EWACK-Register für den Prozess zurücksetzen. Es obliegt einer Anwendung, zu entscheiden, wann die EWACK-Betriebsart verwendet wird, und über die Granularität von Überprüfungen zu entscheiden. Auch kann eine Anwendung entscheiden, welche Wiederherstellungsaktion ausgeführt werden soll (in dem Beispiel: Neustart einer Berechnung).
  • Der Pseudocode für eine oder mehrere mögliche „ewackmode_enable“- und „ewackmode_disable“-APIs aktiviert bzw. deaktiviert die EWACK-Betriebsfunktionalität:
    Figure DE112018004220T5_0001
    Figure DE112018004220T5_0002
  • Als weitere zusätzliche Funktion und als Vorteil gegenüber dem aktuellen Stand der Technik können DMA-Übertragungen jeweils in EWACK-Betriebsart mit OS-Unterstützung wie folgt ausgeführt werden. DMA-Steuerungsroutinen können von Einheitentreibern unter Verwendung von Betriebssystembibliotheken programmiert werden. Vor dem Einleiten einer DMA-Übertragung kann das OS den Ziel-NUMA-Bereich überprüfen und entscheiden, EWACK auf dem jeweiligen EWACK-Vermittler für diese DMA-ID zu aktivieren. Wenn eine DMA-Übertragung abgeschlossen ist und eine „Fertig“-Programmunterbrechung ausgegeben wird, kann das OS in dem Kontext der Behandlungsroutine für die „Fertig“-Programmunterbrechung und vor dem Übergeben der Steuerung an die Anwendung die jeweiligen EWACK-Vermittler-EWACK-Register, die dieser DMA-Übertragung zugewiesen wurden, überprüfen oder untersuchen. Im Falle von gemeldeten Fehlern (z.B. fehlgeschlagene Schreibanforderungen) kann die programmierte Übertragung wiederholt werden, anstatt die Steuerung an die Anwendung zu übergeben, welche die DMA-Übertragung ausgegeben hat. Wenn es keine gemeldeten Fehler gibt, kann die Ausführung in dem Computersystem normal fortgeführt werden. Jedem OS-Prozess und Einheitentreiber (für DMA) kann während der Registrierung ein eindeutiges EWACK-Register zugewiesen werden, und sie können beim Ausführen des Prozesses für Aktualisierungen aktiv sein.
  • Nun übergehend zu 6, ist ein Verfahren 600 zum Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung dargestellt, in der verschiedene Aspekte der veranschaulichten Ausführungsformen umgesetzt werden können. Das heißt, 6 ist ein Ablaufplan eines zusätzlichen beispielhaften Verfahrens 600 zum Verwenden eines Speicherzugriffs-Vermittlersystems mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung in einer Datenverarbeitungsumgebung gemäß einem Beispiel der vorliegenden Erfindung. Die Funktionalität 600 kann als Verfahren umgesetzt werden, das als Anweisungen auf einer Maschine ausgeführt wird, wobei die Anweisungen auf mindestens einem durch einen Computer lesbaren Speichermedium oder einem nichtflüchtigen, durch eine Maschine lesbaren Speichermedium enthalten sind. Die Funktionalität 600 kann in Block 602 starten. Eine Speicherzugriffs-Vermittlereinheit kann selektiv aktiviert werden, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden, wie in Block 604. Die Funktionalität 600 kann in Block 606 enden.
  • In einem Aspekt, in Verbindung mit und/oder als Teil mindestens eines Blocks von 6, kann der Vorgang von 600 jeweils einen oder mehrere der folgenden Punkte umfassen. Der Vorgang von 600 kann den Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktivieren oder deaktivieren. Der Speicherzugriffsvermittler kann als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dienen. Der Vorgang von 600 kann die fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern protokollieren (z.B. ein Bit in einem Register setzen, das eine fehlgeschlagene Schreibanforderung anzeigt), die dem Speicherzugriffsvermittler zugehörig sind. Der Vorgang von 600 kann durch den Speicherzugriffsvermittler eine Schreibanforderung von einem Speicherbus-Master empfangen oder durch den Speicherzugriffsvermittler die von dem Speicherbus-Master empfangene Schreibanforderung an eine Speichersteuereinheit ausgeben.
  • In einem zusätzlichen Aspekt kann der Vorgang von 600 durch den Speicherzugriffsvermittler eine WACK-Antwort von der Speichersteuereinheit empfangen; oder durch den Speicherzugriffsvermittler die von der Speichersteuereinheit empfangene WACK-Antwort an den Speicherbus-Master ausgeben. Der Speicherzugriffsvermittler kann auch eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugen und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreihen.
  • Der Vorgang von 600 kann durch den Speicherzugriffsvermittler eine von einer Speichersteuereinheit empfangene WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID vergleichen. Der Vorgang von 600 kann eine fehlgeschlagene EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler anzeigen, und zwar beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen WACK-Antwort übereinstimmt, und die fehlgeschlagene EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen identifizieren. Zusätzlich kann der Vorgang von 600 die eine oder mehreren ausgebenden Anwendungen auffordern, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  • Somit stellt die vorliegende Erfindung, wie hierin beschrieben, ein Speicherzugriffs-Vermittlersystem bereit, das Datenintegrität und deterministische Programmausführung garantiert und gleichzeitig die Anwendungsleistung für Speicherschreibzugriffe deutlich verbessert. Das Speicherzugriffs-Vermittlersystem kann einen Hardware-Speicher-Schreibzugriffsanforderungs-Vermittler enthalten, der eine schnelle EWACK und Benachrichtigung von ausgebenden Anwendungen über fehlgeschlagene Schreibanforderungen ermöglicht. Das Speicherzugriffs-Vermittlersystem kann zur Laufzeit selektiv aktiviert werden, um Anwendungen zu bedienen, die über die erforderliche Unterstützung verfügen, um das System sicher zu nutzen, ohne die Ausführungsintegrität von gleichzeitig aktiven traditionellen Anwendungen zu beeinträchtigen. Das Speicherzugriffs-Vermittlersystem weist Unterstützung für ein Betriebssystem und eine Schnittstelle zur Anwendungsprogrammierung zur Steuerung auf Anwendungsebene, zur Schreibintegritätsprüfung und für Hindernisse beim Bewältigen fehlgeschlagener Schreibvorgänge auf Anwendungsebene auf.
  • Auf diese Weise stellt die vorliegende Erfindung eine zusätzliche Funktion und einen Vorteil gegenüber dem aktuellen Stand der Technik bereit, indem sie aus Sicht der Leistung die Verwendung von entfernt angeordnetem Hauptspeicher in einer Vielfalt von Datenverarbeitungssystemen und -architekturen wie zum Beispiel Cloud- und datenzentrischen Systemen effektiv ermöglicht. Insbesondere kann der Speicherzugriffsvermittler mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung in disaggregiertem Speicher (z.B. „Erweiterungsspeicher“) umgesetzt und mit diesem verwendet werden. Ohne das Speicherzugriffs-Vermittlungssystem werden Speicherschreibvorgänge also weiterhin eine in hohem Maße verhindernde hohe Latenz aufweisen, wodurch der Gewinn und der Wert des entfernt angeordneten oder Erweiterungsspeichers vermindert werden.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (25)

  1. Verfahren zum Verwenden, durch einen Prozessor, eines Speicherzugriffsvermittlers zur Unterstützung einer frühzeitigen Schreibbestätigung, aufweisend: selektives Aktivieren eines Speicherzugriffsvermittlers, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  2. Verfahren nach Anspruch 1, darüber hinaus aufweisend ein selektives Aktivieren oder Deaktivieren des Speicherzugriffsvermittlers zur Laufzeit einer Schreibanforderung, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  3. Verfahren nach Anspruch 1, darüber hinaus aufweisend ein Protokollieren der fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern, die dem Speicherzugriffsvermittler zugehörig sind.
  4. Verfahren nach Anspruch 1, darüber hinaus aufweisend: Empfangen, durch den Speicherzugriffsvermittler, einer Schreibanforderung von einem Speicherbus-Master; und Ausgeben, durch den Speicherzugriffsvermittler, der von dem Speicherbus-Master empfangenen Schreibanforderung an eine Speichersteuereinheit.
  5. Verfahren nach Anspruch 1, darüber hinaus aufweisend: Empfangen, durch den Speicherzugriffsvermittler, einer WACK-Antwort von der Speichersteuereinheit; oder Ausgeben, durch den Speicherzugriffsvermittler, der von der Speichersteuereinheit empfangenen WACK-Antwort an den Speicherbus-Master.
  6. Verfahren nach Anspruch 1, darüber hinaus aufweisend: Erzeugen, durch den Speicherzugriffsvermittler, einer Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung; und Einreihen der erzeugten Schreibanforderungs-ID in eine Warteschlange.
  7. Verfahren nach Anspruch 6, darüber hinaus aufweisend ein Vergleichen, durch den Speicherzugriffsvermittler, einer von einer Speichersteuereinheit empfangenen WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID.
  8. Verfahren nach Anspruch 7, darüber hinaus aufweisend: Anzeigen einer fehlgeschlagenen EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen WACK-Antwort übereinstimmt; und Identifizieren der fehlgeschlagenen EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen.
  9. Verfahren nach Anspruch 8, darüber hinaus aufweisend ein Auffordern der einen oder mehreren ausgebenden Anwendungen, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  10. System zum Verwenden eines Speicherzugriffsvermittlers zur Unterstützung einer frühzeitigen Schreibbestätigung, aufweisend: einen oder mehrere Computer mit ausführbaren Anweisungen, die beim Ausführen das System veranlassen zum: selektiven Aktivieren eines Speicherzugriffsvermittlers, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  11. System nach Anspruch 10, wobei die ausführbaren Anweisungen den Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktivieren oder deaktivieren, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  12. System nach Anspruch 10, wobei die ausführbaren Anweisungen die fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern protokollieren, die dem Speicherzugriffsvermittler zugehörig sind.
  13. System nach Anspruch 10, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine Schreibanforderung von einem Speicherbus-Master empfangen; und durch den Speicherzugriffsvermittler die von dem Speicherbus-Master empfangene Schreibanforderung an eine Speichersteuereinheit ausgeben.
  14. System nach Anspruch 10, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine WACK-Antwort von der Speichersteuereinheit empfangen; oder durch den Speicherzugriffsvermittler die von der Speichersteuereinheit empfangene WACK-Antwort an den Speicherbus-Master ausgeben.
  15. System nach Anspruch 10, wobei die ausführbaren Anweisungen: durch den Speicherzugriffsvermittler eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugen; und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreihen.
  16. System nach Anspruch 11, wobei die ausführbaren Anweisungen durch den Speicherzugriffsvermittler eine von einer Speichersteuereinheit empfangene WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID vergleichen.
  17. System nach Anspruch 16, wobei die ausführbaren Anweisungen: eine fehlgeschlagene EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler anzeigen, und zwar beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen EWACK-Antwort übereinstimmt; die fehlgeschlagene EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen identifizieren; und die eine oder mehreren ausgebenden Anwendungen auffordern, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
  18. Computerprogrammprodukt zum Feststellen und Analysieren, durch einen Prozessor, von offenen Beziehungen aus unstrukturierten Textdaten, wobei das Computerprogrammprodukt ein nichtflüchtiges, durch einen Computer lesbares Speichermedium aufweist, auf dem durch einen Computer lesbare Programmcodeteile gespeichert sind, die durch einen Computer lesbare Programmcodeteile aufweisend: einen ausführbaren Teil, der einen Speicherzugriffsvermittler selektiv aktiviert, um Arbeitsschritte mit frühzeitiger Schreibbestätigung (EWACK) und eine Benachrichtigung über fehlgeschlagene EWACK-Schreibanforderungen an eine oder mehrere ausgebende Anwendungen zu ermöglichen, so dass die fehlgeschlagenen EWACK-Schreibanforderungen durch den Speicherzugriffsvermittler zur Untersuchung durch die eine oder die mehreren ausgebenden Anwendungen protokolliert werden.
  19. Computerprogrammprodukt nach Anspruch 18, darüber hinaus aufweisend einen ausführbaren Teil, der den Speicherzugriffsvermittler zur Laufzeit einer Schreibanforderung selektiv aktiviert oder deaktiviert, wobei der Speicherzugriffsvermittler als zwischengeschalteter Vermittler zwischen einem Speicherbus-Master und einer Speichersteuereinheit dient.
  20. Computerprogrammprodukt nach Anspruch 18, darüber hinaus aufweisend einen ausführbaren Teil, der die fehlgeschlagenen Schreibanforderungen in einem oder mehreren EWACK-Registern protokolliert, die dem Speicherzugriffsvermittler zugehörig sind.
  21. Computerprogrammprodukt nach Anspruch 18, darüber hinaus aufweisend einen ausführbaren Teil, der: durch den Speicherzugriffsvermittler eine Schreibanforderung von einem Speicherbus-Master empfängt; durch den Speicherzugriffsvermittler die von dem Speicherbus-Master empfangene Schreibanforderung an eine Speichersteuereinheit ausgibt; durch den Speicherzugriffsvermittler eine WACK-Antwort von der Speichersteuereinheit empfängt; oder durch den Speicherzugriffsvermittler die von der Speichersteuereinheit empfangene WACK-Antwort an den Speicherbus-Master ausgibt.
  22. Computerprogrammprodukt nach Anspruch 18, darüber hinaus aufweisend einen ausführbaren Teil, der: durch den Speicherzugriffsvermittler eine Schreibanforderungskennung (ID) für jede EWACK-Schreibanforderung erzeugt; und die erzeugte Schreibanforderungs-ID in eine Warteschlange einreiht.
  23. Computerprogrammprodukt nach Anspruch 22, darüber hinaus aufweisend einen ausführbaren Teil, der durch den Speicherzugriffsvermittler eine von einer Speichersteuereinheit empfangene WACK-Antwort mit der erzeugten, aus der Warteschlange abgerufenen Schreibanforderungs-ID vergleicht.
  24. Computerprogrammprodukt nach Anspruch 23, darüber hinaus aufweisend einen ausführbaren Teil, der: eine fehlgeschlagene EWACK-Schreibanforderung in einem oder mehreren EWACK-Registern durch den Speicherzugriffsvermittler anzeigt, und zwar beim Feststellen, dass die erzeugte, aus der Warteschlange abgerufene Schreibanforderungs-ID nicht mit der von der Speichersteuereinheit empfangenen EWACK-Antwort übereinstimmt; und die fehlgeschlagene EWACK-Schreibanforderung, die in dem einen oder den mehreren EWACK-Registern protokolliert wurde, durch die eine oder die mehreren ausgebenden Anwendungen identifiziert.
  25. Computerprogrammprodukt nach Anspruch 24, darüber hinaus aufweisend einen ausführbaren Teil, der die eine oder mehreren ausgebenden Anwendungen auffordert, beim Identifizieren der in dem einen oder den mehreren EWACK-Registern angegebenen fehlgeschlagenen EWACK-Schreibanforderung jede Schreibanforderung erneut auszugeben.
DE112018004220.0T 2017-10-13 2018-10-10 Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung Pending DE112018004220T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/783,069 2017-10-13
US15/783,069 US10423563B2 (en) 2017-10-13 2017-10-13 Memory access broker system with application-controlled early write acknowledgment support and identification of failed early write acknowledgment requests to guarantee in-order execution of memory requests of applications
PCT/IB2018/057834 WO2019073394A1 (en) 2017-10-13 2018-10-10 MEMORY ACCESS BROKER SYSTEM WITH APPLICATION-EARLY WRITTEN RECEIVING RECEIPT SUPPORT

Publications (1)

Publication Number Publication Date
DE112018004220T5 true DE112018004220T5 (de) 2020-05-07

Family

ID=66096466

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018004220.0T Pending DE112018004220T5 (de) 2017-10-13 2018-10-10 Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung

Country Status (6)

Country Link
US (1) US10423563B2 (de)
JP (1) JP7100941B2 (de)
CN (1) CN111201521B (de)
DE (1) DE112018004220T5 (de)
GB (1) GB2580275B (de)
WO (1) WO2019073394A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911308B2 (en) * 2017-09-18 2021-02-02 Rapyuta Robotics Co., Ltd. Auto-determining and installing missing components to a to-be-managed device by a single execution of unique device setup command
WO2019237010A1 (en) * 2018-06-08 2019-12-12 Fungible, Inc. Early acknowledgment for write operations
US11347644B2 (en) * 2018-10-15 2022-05-31 Texas Instruments Incorporated Distributed error detection and correction with hamming code handoff
US11308243B2 (en) * 2019-09-11 2022-04-19 International Business Machines Corporation Maintenance of access for security enablement in a storage device
US11410417B2 (en) * 2020-08-17 2022-08-09 Google Llc Modular system for automatic hard disk processing and verification

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US6279065B1 (en) 1998-06-03 2001-08-21 Compaq Computer Corporation Computer system with improved memory access
JP2001216259A (ja) * 2000-02-04 2001-08-10 Hitachi Ltd マルチプロセッサシステム及びそのトランザックション制御方法
JP3904869B2 (ja) * 2001-09-26 2007-04-11 株式会社東芝 学習支援装置および学習支援方法
US7111153B2 (en) * 2003-09-30 2006-09-19 Intel Corporation Early data return indication mechanism
US20100306442A1 (en) * 2009-06-02 2010-12-02 International Business Machines Corporation Detecting lost and out of order posted write packets in a peripheral component interconnect (pci) express network
US9189441B2 (en) * 2012-10-19 2015-11-17 Intel Corporation Dual casting PCIE inbound writes to memory and peer devices
US10073626B2 (en) * 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9235521B2 (en) 2013-07-22 2016-01-12 Avago Technologies General Ip (Singapore) Pte Ltd Cache system for managing various cache line conditions
US20150261677A1 (en) 2014-03-12 2015-09-17 Silicon Graphics International Corp. Apparatus and Method of Resolving Protocol Conflicts in an Unordered Network
WO2016039198A1 (ja) * 2014-09-10 2016-03-17 ソニー株式会社 アクセス制御方法、バスシステム、および半導体装置
GB2533808B (en) * 2014-12-31 2021-08-11 Advanced Risc Mach Ltd An apparatus and method for issuing access requests to a memory controller
US10037220B2 (en) 2015-11-20 2018-07-31 International Business Machines Corporation Facilitating software-defined networking communications in a container-based networked computing environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses

Also Published As

Publication number Publication date
US10423563B2 (en) 2019-09-24
US20190114284A1 (en) 2019-04-18
GB2580275A (en) 2020-07-15
GB202006359D0 (en) 2020-06-17
WO2019073394A1 (en) 2019-04-18
CN111201521B (zh) 2023-09-15
JP2020537227A (ja) 2020-12-17
GB2580275B (en) 2021-03-03
JP7100941B2 (ja) 2022-07-14
CN111201521A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
DE112018004220T5 (de) Speicherzugriffs-Vermittlersystem mit anwendungsgesteuerter Unterstützung für frühzeitige Schreibbestätigung
DE102006062802B4 (de) Informationsverarbeitungssystem und Verfahren zum Steuern von mehreren Hot Plug Vorgängen
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE102017113576B4 (de) Auf PCI Express basierender Speichereinsatz mit Zweifachport, der Einzelport-Speichercontroller enthält
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE102012210914B4 (de) Switch-Fabric-Management
US7650467B2 (en) Coordination of multiprocessor operations with shared resources
DE102009049078B4 (de) Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102015102135A1 (de) Unterbrechbares Exklusivspeichern
DE102007030116A1 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE102011014588A1 (de) Multicasting-Schreibanforderungen an Mehrfachspeicher-Controller
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112018003524T5 (de) Dynamische datenverlagerung unter verwendung von speicherbänken auf cloud-grundlage
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE112011100564T5 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE112017000163T5 (de) Priorisierung von Transaktionen
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112017005063T5 (de) Verwalten eines Speichers mit niedrigstem Kohärenzpunkt (LPC) mithilfe eines Dienstschichtadapters
DE112019000421T5 (de) Arbeitslastverwaltung mit datenzugriffserkennung in einem datenverarbeitungscluster
DE112018006068T5 (de) Dynamische adressübersetzung für eine virtuelle maschine

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence