-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft im Allgemeinen Mikroprozessoren mit mehreren Kernen, Systemen mit mehreren Prozessoren bzw. Multiprozessor-Systeme und entsprechende Verfahren und insbesondere die Validierung von atomaren Transaktionen in Umgebungen mit mehreren Prozessoren.
-
2. Beschreibung des Stands der Technik
-
Multiprozessor-Systeme sind Rechnerumgebungen, in denen zwei oder mehr zentrale Recheneinheiten (CPU's) in einer einzelnen Plattform verwendet werden. Die Mehrfachverarbeitung bzw. Multi-Prozessierung bezeichnet auch die Fähigkeit eines Rechnersystems, mehr als einen Prozessor zu unterstützen und die Aufgaben unter diesen zu verteilen. Im Allgemeinen können Mehrfachverarbeitungssysteme hergestellt werden, indem mehrere Kerne auf einem einzelnen Chip, mehrere Chips in einem einzelnen Gehäuse, mehrere Gehäuse in einer einzelnen Systemeinheit, oder dergleichen verwendet werden.
-
Derartige Multiprozessor-Systeme können relativ komplex werden und daher sind leistungsstarke Mittel erforderlich, um die Korrektheit und Robustheit des Gesamtbetriebs zu validieren. Eine derartige Validierung ist sowohl in der Gestaltungsphase als auch in der späteren Phase bei der Simulation oder bei realen Operationen hilfreich.
-
Beispielsweise kann die Bestimmung von Wettlaufbedingungen in atomaren Operationen einen deutlichen Einfluss auf die Validierung in dem Multiprozessor-System besitzen. Wettlaufbedingungen („race condition”, „race hazards”) sind fehlerhafte Zustände in einem System oder einem Prozess, die zu einem Ergebnis des Prozesses führen, das unerwartet ist und wesentlich von der Reihenfolge oder dem Zeitablauf anderer Ereignisse abhängt. Atomare Operationen sind Operationen, die so kombiniert werden können, dass sie für den Rest des Systems als eine einzelne Operation mit nur zwei möglichen Ergebnissen erscheinen: erfolgreich oder nicht erfolgreich. Atomare Operationen können als modifizierende Operationen und nicht-modifizierende Operationen eingestuft werden, wobei modifizierende Operationen verwendet werden, um den Inhalt einer Speicherstelle zu modifizieren, während nicht-modifizierende Operationen diese Funktion nicht besitzen. Ein Beispiel einer atomaren modifizierenden Operation ist ein atomarer Lese-Modifizier-Schreib-Befehl, der atomar eine Speicherstelle in ein Register ausliest und bedingt oder absolut einen neuen Wert in die Speicherstelle zurückschreibt.
-
Das Einrichten atomarer Lese-Modifizier-Schreib-Befehle in Umgebungen mit mehreren Prozessoren ist eine schwierige Aufgabe, da atomare Lese-Modifizier-Schreib-Operationen (sowie andere modifizierende und nicht-modifizierende atomare Operationen) es erforderlich machen, dass keine andere Operation die Kohärenzzelle während der Operation aktualisiert. Kohärenzzellen sind Einheiten aus Daten, die im Speicher gespeichert werden, und diese Einheiten besitzen im Allgemeinen eine ähnliche Abhängigkeit zu Cache-Speichern bzw. schnellen Zwischenspeichern, die in dem System verwendet werden können. Kohärenzzellen sind Einheiten für Speicherbereiche, die z. B. Cache-Zeilen oder Sektoren sind, in die geschrieben wird oder aus denen so gelesen wird, dass sichergestellt ist, dass Daten konsistent zwischen dem Systemspeicher und dem Cache-Speicher ausgetauscht werden.
-
Es zeigt sich daher, dass atomare Operationen und insbesondere atomare Lese-Modifizier-Schreib-Befehle schwer zu validieren sind und eine ausgeprägte und große Bandbreite an Stimuli erfordern. In der Siliziumentwurfsphase können derartige Operationen zu Fehlern führen, die oft durch andere Operationen maskiert sind und daher nicht als Programmfehler in Erscheinung treten. Derartige Fehler sind im einem Multiprozessor-System äußerst schwierig zu korrigieren, insbesondere in einem System mit mehreren Kernen oder sogar mehreren Knoten.
-
Die
US 6,658,519 B1 beschreibt eine Zeitmarkierung in einer Busbrücke in einer Multi-Prozessor-Topologie.
-
Überblick über die Erfindung
-
Die Erfindung liegt die Aufgabe zugrunde, eine Multiprozessor-Technik bereitzustellen, die das Bereitstellen von Hilfsmitteln (Tools) und Verfahrensabläufen ermöglicht, um die Robustheit von atomaren Operationen, etwa atomaren Lese-Modifizier-Schreib-Befehlen für eine gegebene Systemarchitektur und Einstellungen, zu validieren und/oder zu quantifizieren. Diese Aufgabe wird durch die in den unabhängigen Patentansprüchen angegebene Erfindung gelöst. Es sind Ausführungsformen vorgesehen, die das Identifizieren und das Berichten tatsächlicher und möglicher Fehler in derartigen Operationen ermöglichen.
-
In einer Ausführungsform wird ein Multikern-Mikroprozessor bereitgestellt, der mehrere mit einem Brückenelement verbundene Prozessorkerne aufweist. Das Brückenelement ist ausgebildet, Transaktionen zu den Prozessorkernen zu senden und/oder Transaktionen davon zu empfangen. Jede Transaktion umfasst ein oder mehrere Pakete. Die Transaktionen umfassen eine Transaktion, die einen atomaren Befehl repräsentiert. Das Brückenelement umfasst eine Puffereinheit, die ausgebildet ist, eine Zeitmarke für jedes Paket zu speichern, das an die Prozessorkerne gesendet wird und/oder davon empfangen wird.
-
In einer weiteren Ausführungsform umfasst ein Multiprozessor-System mehrere Mikroprozessorknoten, die jeweils mehrere Mikroprozessorkerne aufweisen. Die mehreren Mikroprozessorknoten und Kerne sind so verbunden, dass ein Punkt-zu-Punkt-Kommunikationsnetzwerk für Transaktionen gebildet ist. Das Multiprozessor-System umfasst ferner eine Korrektur-Hardware, die ausgebildet ist, atomare Operationen zu validieren. Die Korrektur-Hardware ist ausgebildet, knoteninterne Transaktionspakete und/oder Transaktionspakete zwischen Knoten zu empfangen und zeitlich zu markieren.
-
Gemäß einer noch weiteren Ausführungsform wird ein Verfahren zum Erkennen von Fehlern bereitgestellt, die durch eine modifizierende atomare Transaktion in einer Mikroprozessorumgebung mit mehreren Kernen hervorgerufen werden. Das Verfahren umfasst das Sammeln von Daten, die Pakete betreffen, die zu der modifizierenden atomaren Transaktion und anderen Transaktionen gehören, die zwischen Mikroprozessorkernen der Umgebung ausgetauscht werden. Das Verfahren umfasst ferner das Verarbeiten der gesammelten Daten und das Bewerten von Ergebnissen der Verarbeitung. Die Daten enthalten Zeitmarken, die einen Zeitpunkt angeben, an welchem die entsprechenden Pakete zwischen den entsprechenden Mikroprozessorkernen ausgetauscht wurden.
-
Kurze Beschreibung der Zeichnungen
-
Die begleitenden Zeichnungen sind hierin mit eingeschlossen und bilden einen Teil der Beschreibung zum Zwecke des Erläuterns der Prinzipien der Erfindung. Die Zeichnungen sollen die Erfindung nicht auf die dargestellten und beschriebenen Beispiele, wie die Erfindung realisiert und verwendet werden kann, einschränken. Weitere Merkmale und Vorteile gehen aus der folgenden und detaillierteren Beschreibung der Erfindung hervor, wie sie auch in den begleitenden Zeichnungen dargestellt sind, wobei:
-
1 eine Blockansicht ist, die ein Multikern-Multiknoten-Mikroprozessorsystem gemäß einer Ausführungsform zeigt;
-
2 den Zeitablauf von Paketen in Transaktionen gemäß einer Ausführungsform zeigt;
-
3 zeigt, dass Transaktionen untereinander verflochtene Pakete gemäß einer Ausführungsform aufweisen können;
-
4 den Inhalt des Ablaufverfolgungspuffers gemäß einer Ausführungsform zeigt;
-
5 den Inhalt von Ablaufverfolgungspuffern in einem Multiknoten-Mikroprozessorsystem gemäß einer weiteren Ausführungsform zeigt;
-
6 ein Beispiel überlappender Transaktionen angibt;
-
7 Beispiele zum Bestimmen von Wahrscheinlichkeitswerten in Abhängigkeit der Zeitmarke, gemäß einer Ausführungsform zeigt;
-
8 mehrere Formen angibt, die für diverse Paketpaare gemäß einer Ausführungsform verwendet werden können;
-
9 ein Flussdiagramm ist, das Schritte darstellt, die auszuführen sind, wenn eine Mikroprozessoranwendung gemäß einer Ausführungsform abgearbeitet wird;
-
10 ein Flussdiagramm ist, das darstellt, wie Verfolgungsablaufpufferdaten gemäß einer Ausführungsform verarbeitet werden können;
-
11 ist Flussdiagramm ist, das einen Prozess zum Bestimmen von Wahrscheinlichkeitsverteilungsparametern gemäß einer Ausführungsform zeigt; und
-
12 ist ein Flussdiagramm ist, das eine Ausführungsform zum Bewerten von Rechenergebnissen beschreibt.
-
Detaillierte Beschreibung der Erfindung
-
Die anschaulichen Ausführungsformen der vorliegenden Erfindung sind mit Bezug zu den Figuren beschrieben, wobei gleiche Elemente und Strukturen durch die gleichen Bezugszeichen benannt sind.
-
Es sei zunächst auf 1 verwiesen, in der ein Multikern-Multiknoten-Mikroprozessorsystem gemäß einer Ausführungsform gezeigt ist. Das System umfasst eine Reihe von Knoten 100, 130, 135, 140, 145, 150, 155, 160, 165, die untereinander so verbunden sind, dass ein Punkt-zu-Punkt-Kommunikationsnetzwerk gebildet ist. In jedem dieser Knoten kann es mehrere Prozessorkerne 105 geben, die Teil des Netzwerks sind.
-
Das in 1 gezeigte Multikern-Multiknoten-Kommunikationsnetzwerk kann ein Transaktionsnetzwerk in dem Sinne sein, dass Transaktionen von einem Kern zu einem weiteren Kern innerhalb eines Knotens oder von einem Knoten zu einem weiteren Knoten gesendet werden können. Somit kann ein knoteninterner Datenverkehr sowie ein Datenverkehr zwischen Knoten in dem Multikern-Multiknoten-Mikroprozessorsystem der 1 gezeigten Ausführungsform auftreten.
-
In der Ausführungsform werden in den Multikern-Mikroprozessoren, die die Knoten 100, 120 bis 165 bilden, zwei oder mehr unabhängige Prozessoren 105 in einem einzelnen Gehäuse oder in einer einzelnen integrierten Schaltung vereinigt. Die Multikernmikroprozessoren können eine gewisse Form an Parallelität auf Programmstrang- bzw. Thread-Ebene besitzen, ohne mehrere Mikroprozessoren in separaten physikalischen Gehäusen zu enthalten. Somit können die Multikern-Mikroprozessoren selbst eine gewisse Art an Mehrfachverarbeitung auf Chip-Ebene ermöglichen.
-
Mehrere Knoten können auf einer einzelnen Hauptplatine angeordnet sein oder können in einer weiteren Ausführungsform zumindest teilweise zusammen in einem Gehäuse untergebracht sein. In einer weiteren Ausführungsform können einige oder alle Knoten lose gekoppelt oder bis zu einem gewissen Maße verteilt angeordnet sein.
-
Wie in 1 gezeigt ist, besitzt jeder Knoten 100, 130 bis 165 des Transaktions-Punkt-zu-Punkt-Kommunikationsnetzwerks eine Nordbrücke (Northbridge) 110. Eine Nordbrücke oder ein Speichersteuerungsverteiler beziehungsweise -hub (MCH) ist ein Chip in dem Kernlogikchipsatz, der Kommunikationsaktionen zwischen den Prozessorkernen 105 und dem Speicher handhabt bzw. verwaltet. In der Ausführungsform aus 1 ist die Nordbrücke 110 in jedem Knoten 100, 130 bis 165 mit den Kernen 105 des entsprechenden Knotens und mit einer Speichersteuerung (MCT) 120 verbunden. Die Nordbrücke 110 wird ferner verwendet, um den Datenverkehr zwischen Knoten zu handhaben. Zu beachten ist, dass in anderen Ausführungsformen andere Brückenelemente als Nordbrücken eingesetzt werden können.
-
Wie zuvor dargestellt ist, bilden die Knoten und Kerne ein Punkt-zu-Punkt-Kommunikationsnetzwerk für Transaktionen. In einer Ausführungsform ist das Multikern-Multiknoten-Mikroprozessorsystem aus 1 ausgebildet, Hypertransport-Transaktionen zu verwenden, wobei andere Ausführungsformen vorgesehen sind, die andere Transaktionen verwenden. Im Allgemeinen kann eine Transaktion als eine einzelne Aktivität in einem Computersystem verstanden werden, die mittels einer Nachricht signalisiert werden kann, die eine Antwort erfordert oder keine Antwort erfordert, abhängig von der Art der Transaktion.
-
Wie nachfolgend detaillierter beschrieben ist, können Transaktionen aus mehreren Paketen aufgebaut sein, die zu entsprechenden Knoten und Kernen zu unterschiedlichen Zeitpunkten gesendet oder davon empfangen werden. In der Ausführungsform werden Transaktionen verwendet, um atomare Aktualisierungen für kritische Aufgaben in der Multiprozessor-Umgebung auszuführen.
-
In den Ausführungsformen werden der knoteninterne Verkehr und der Verkehr zwischen Knoten zur Analyse in einem Mikroprozessorvalidierungsprozess nach der Siliziumphase aufgezeichnet. Der knoteninterne Verkehr, d. h. der Datenverkehr zwischen Kernen, kann in der Ausführungsform mittels eines Ablaufverfolgungspuffers (TCB) 115 aufgezeichnet werden, der in jedem Knoten 100, 130 bis 165 vorhanden ist. Der Datenverkehr zwischen Knoten kann mittels eines Logikanalysators (nicht gezeigt) aufgezeichnet werden. Zu beachten ist, dass die Ablaufverfolgungspuffer 115 in anderen Ausführungsformen verwendet werden können, um sowohl den knoteninternen Verkehr als auch den Verkehr zwischen Knoten aufzuzeichnen.
-
Wie aus 1 ersichtlich ist, sind die Ablaufverfolgungspuffer 115 der vorliegenden Ausführungsform in den Nordbrücken 110 oder in anderen Brückenelementen untergebracht, die in dem Multikernmultiprozessoren 100, 1230 bis 165 zum Handhaben des Transaktionsdatenverkehrs eingesetzt werden. Gemäß anderer Ausführungsformen können die Ablaufverfolgungspuffer 115 in jedem Knoten aber außerhalb der Nordbrücke 110 angeordnet sein.
-
In einer Ausführungsform, die nachfolgend beschrieben wird, sind die Ablaufverfolgungspuffer 115 so programmiert, dass alle Pakete zwischen Kernen und zwischen Knoten, die in dem System ausgetauscht werden, aufgezeichnet werden. Die Ablaufverfolgungspuffer 115 versehen ferner jedes Paket zum Zeitpunkt des Aufzeichnens des Pakets mit einer Zeitmarke (Timestamp, Zeitstempel). Somit kann die Zeitmarke einen Zeitpunkt angeben, an welchem das entsprechende Paket empfangen und in dem Puffer gespeichert wurde. Dieser Zeitpunkt kann gleich oder ähnlich zu dem Zeitpunkt sein, an welchem das Paket von dem entsprechenden Knoten oder Kern gesendet oder empfangen wurde. In anderen Ausführungsformen kann es eine geringe Zeitdifferenz zwischen dem Senden und dem Aufzeichnen der Pakete und dem Empfang dieser Pakete in dem Puffer geben.
-
In einer Ausführungsform beruht die Zeitmarke auf einem global verwendbaren und synchronisierten Taktsignal (nicht gezeigt). Durch Verwenden eines globalen Taktsignals wird sichergestellt, dass die Zeitmarken und alle aufgezeichneten Pakete in allen Ablaufverfolgungspuffern 115 in zulässiger Weise verglichen werden können.
-
In der vorliegenden Ausführungsform sind die Ablaufverfolgungspuffer 115 in jedem Knoten 100, 130 bis 165 ausgebildet, den Datenverkehr durch die entsprechende Nordbrücke 110 aufzuzeichnen. In dieser Ausführungsform dient eine Nordbrücke 110 als ein Kohärenzpunkt für den entsprechenden Knoten 100, 130 bis 165. D. h., der gesamte Datenverkehr zwischen Knoten und jeglicher Zugriff auf die Speichersteuerung 120 und jeglicher Zugriff auf verbleibende Knoten 100, 130 bis 165 und Periphereinrichtungen des Systems (nicht gezeigt) läuft durch die Nordbrücke. Zu beachten ist, dass das Kommunikationsnetzwerk kohärenten und nicht-kohärenten Verkehr übertragen kann.
-
In der vorliegenden Ausführungsform ist die Größe der Ablaufverfolgungspuffer 115 ausreichend groß gewählt, so dass dieser nicht beeinflussend ist, selbst für große Multiprozessor-Programme. Es kann dennoch vorkommen, dass ein Ablaufverfolgungspuffer 115 vollständig gefüllt wird. Der Ablaufverfolgungspuffer kann dann seinen Inhalt in den Speicher 125 abführen (oder speichern), wobei dieser Speicher ein DRAM (dynamischer Speicher mit wahlfreiem Zugriff) sein kann. Dieser Prozess kann durch die Speichersteuerung 120 gesteuert werden.
-
In einer Ausführungsform hält der Ablaufverfolgungspuffer 115 die Nordbrücke an, wenn sein Inhalt in den DRAM übertragen wird. Der Vorgang des Anhaltens der Nordbrücke 110 kann den Ablaufverfolgungspuffer 115 einflussausübend machen, wenn jedoch die Größe des Ablaufverfolgungspuffers 115 ausreichend groß gewählt wird, besteht nahezu keine Notwendigkeit, die Nordbrücke 110 anzuhalten.
-
Wie zuvor dargelegt ist, kann jede Transaktion mehrere Pakete enthalten. Gemäß 2 kann die Anzahl und die Art der Pakete pro Transaktion von einer Transaktion zur anderen Transaktion unterschiedlich sein. In 2 sind zwei Transaktionen A1 und A2 gezeigt, die von der gleichen Art sind. Wie aus der Zeichnung zu entnehmen ist, können Transaktionen der gleichen Art sehr unterschiedliche Zeitdauern für die Ausführung erfordern. Diese Transaktionen können Pakete aufweisen, die in der gleichen Reihenfolge auftreten, aber die Paketzeitmarken, die sich aufeinander beziehen, können vollständig zufällig sein. Zu beachten ist, dass dies auf Grund eines Kommunikationsprotokolls auftreten kann, das nicht die minimale Zeit beschränkt, die zum Abschluss einer Transaktion erforderlich ist, und die die verstrichene Zeit zwischen Paketen für eine gegebene Transaktion nicht beschränkt.
-
Ferner ist zu beachten, dass Pakete von unterschiedlichen Transaktionen in zufälliger Weise zwischen anderen Transaktionen eingebunden werden können. In diesem Falle führt die Nordbrücke 110 des entsprechenden Knotens 100, 130 bis 165 die Pakete auf der Grundlage der Transaktions-Kennung (ID) zusammen, um die Transaktion zu bilden oder zu vervollständigen. Jede Transaktion kann einen initiierenden Kern aufweisen und kann Pakete enthalten, die für mehrere Knoten/Kerne bestimmt sind oder von diesen eintreffen.
-
3 gibt ein Beispiel von Transaktionen X, Y, Z an, deren Pakete Xi, Yi, Zi untereinander vermischt sind. Wie man erkennen kann, treffen die ersten Pakete zu unterschiedlichen Zeitpunkten ein, und es kann eine neue Transaktion stattfinden, obwohl es Pakete gibt, die für andere Transaktionen, die noch nicht abgeschlossen sind, verbleiben.
-
Wie zuvor beschrieben ist, können die Ablaufverfolgungspuffer 115 der Mikroprozessorknoten 100, 130 bis 165 die Transaktionen aufzeichnen, um entsprechende Paketdaten zu sammeln. 4 zeigt eine Ausführungsform davon, welche Art von Information für jedes Paket genommen bzw. aufgezeichnet werden kann. Wie aus der dargestellten Ausführungsform zu entnehmen ist, speichert der Ablaufverfolgungspuffer 115 für jedes Paket eine Zeitmarke 405, eine Transaktionskennung 410, die die Transaktion, auf die sich das Paket bezieht, angibt, eine Quellen-Kennung 415, die den Kern und/oder Knoten angibt, von dem das Paket herrührt, eine Zielkennung 420, die den Kern und/oder Knoten angibt, für den das Paket bestimmt ist, eine Transaktionsart 425 und eine Paketart 430 sowie Adressen 435 und Daten 440 zusammen mit speziellen Attributsbytes 445.
-
Diese Information kann in den Ablaufverfolgungspuffern 115 in der in 4 gezeigten Form gespeichert werden, oder kann beispielsweise gespeichert werden, wie in 5 gezeigt ist. Wie man aus diesen Figuren erkennen kann, können die Ablaufverfolgungspuffer 115 in jedem Knoten 100, 130 bis 165 die Paketinformation in Tabellen 500, 520, 545 speichern. Jede Reihe 505, 510, 515, 525, 530, 535, 545, 550, 555 in jedem Knoten 100, 130 bis 165 enthält Paketinformation eines einzelnen Pakets. Jede Reihe kann aufweisen: ein Feld TS zum Speichern der Zeitmarke 405, ein Feld „ID bzw. Kennung” zum Speichern der Transaktionskennung 410, der Quellenkennung 415 und der Zielkennung 420, ein Feld „ADDR” zum Speichern der Zieladresse 435, ein Feld „Daten” zum Speichern der Daten 440 zu lesen, die zu modifizieren und/oder zu schreiben sind, und ein Feld „ATTR” zum Speichern von Attributen 445 des Pakets. Obwohl in 5 dies nicht gezeigt ist, kann optional ein Feld in jeder Reihe vorgesehen sein, um die Transaktionsart 425 zu speichern.
-
In 5 ist gezeigt, dass es N Knoten gibt, wobei jeder R Reihen aufweist. Es ist jedoch zu beachten, dass die Anzahl an Reihen von Knoten zu Knoten unterschiedlich sein kann.
-
Wie nachfolgend detaillierter beschrieben ist, kann in den Ausführungsformen die gespeicherte Transaktionspaketinformation verwendet werden, um Wahrscheinlichkeitsdichten von Paket zu Paket zu bestimmen. Dies wird nun mit Bezug zu atomaren Lese-Modifizier-Schreib-Transaktionen in Verbindung mit Transaktionen anderer Art beschrieben. Es ist jedoch zu beachten, dass in den Ausführungsformen andere modifizierende oder nicht-modifizierende atomare Transaktionen statt den atomaren Lese-Modifizier-Schreib-Transaktionen verwendet werden können.
-
Wie zuvor beschrieben ist, und wie weiter in 6 dargestellt ist, können Transaktionen zeitlich überlappen. In dem Beispiel aus 6 gibt es vier Transaktionen T0, T1, T2 und T3, die mit der atomaren Lese-Modifizier-Schreib-Transaktion TARMW überlappen. Das Konzept der Ausführungsformen beruht auf der Erkenntnis, dass die Wahrscheinlichkeit eines Fehlers in der atomaren Lese-Modifizier-Schreib-Transaktion von der Anzahl und der Art anderer Transaktionen abhängen kann, die zeitlich mit der atomaren Lese-Modifizier-Schreib-Transaktion überlappen. Somit wird in den Ausführungsformen zunächst bestimmt, welche andere Transaktionen zeitlich überlappen und daraufhin wird eine Fehlerwahrscheinlichkeit bewertet.
-
In den Ausführungsformen kann dies durch Bewertung auf Paketbasis geschehen. D. h., jedes Paket in der atomaren Lese-Modifizier-Schreib-Transaktion TARMW kann sein eigene Wahrscheinlichkeitsdichtefunktion in Bezug auf jedes Paket der überlappenden Transaktionen T0, T1, T2, T3 besitzen. Es sei beispielsweise ta die Zeitmarke eines gegebenen Pakets in der atomaren Lese-Modifizier-Schreib-Transaktion und tb die Zeitmarke eines gegebenen Pakets in einer der anderen Transaktionen T0, T1, T2, T3. Es kann dann eine Verteilungsfunktion, wie sie etwa in 7 gezeigt ist, gewählt werden, um einen Wahrscheinlichkeitswert zwischen den Paketen zu bestimmen. Wie durch Punkt Nr. 1 dargestellt ist, ist der Wahrscheinlichkeitswert maximal, wenn die Zeitmarken gleich sind. Je größer die Differenz zwischen den Zeitmarken ist, desto kleiner ist der Wahrscheinlichkeitswert, siehe die Punkte 3 und 2.
-
In einer Ausführungsform ist die Verteilungsfunktion eine Normalverteilung, d. h. eine Gauss-Funktion:
-
-
Es ist jedoch zu beachten, dass andere Wahrscheinlichkeitsverteilungsfunktionen in weiteren Ausführungsformen verwendet werden können. Z. B. kann eine Verteilungsfunktion gewählt werden, die symmetrisch ist und ihr Maximum besitzt, wenn es keine Zeitdifferenz gibt. Es kann z. B. eine Funktion ausgewählt werden, so dass diese einen dreieckigen Kurvenverlauf besitzt mit linear abnehmenden Verhalten mit zunehmender Zeitdifferenz. Es ist zu beachten, dass Ausführungsformen selbst mit asymmetrischen Funktionen vorgesehen werden können.
-
Es sei nun wieder auf die Ausführungsform verwiesen, in der eine Normalverteilung verwendet ist; die Verteilungsparameter können zusammengefasst werden als <μ, σ, γ>, wobei μ der Mittelwert, σ die Standardabweichung und γ eine Konstante sind. Diese Verteilungsparameter können in einer Ausführungsform für jede Paket-zu-Paket-Beziehung in einzigartiger Weise gewählt werden, woraus sich Kurven ergeben, wie sie in 8 gezeigt sind. Somit können in Ausführungsformen Verteilungsfunktionen mit unterschiedlicher Höhe und Form für jedes Paketpaar verwendet werden.
-
In 9 ist der Gesamtprozess zum Betreiben einer Multiprozessoranwendung gezeigt. Der Prozess beginnt mit dem Sammeln von Daten des Ablaufverfolgungspuffers im Schritt 900. Dieser Schritt beinhaltet das Empfangen und das zeitliche Markieren der Pakete und das Speichern der entsprechenden Daten in dem Ablaufverfolgungspuffer 115, wie er in den 4 oder 5 gezeigt ist.
-
Im Schritt 910 werden die gesammelten Daten verarbeitet. Dies wird detaillierter beschrieben, wenn auf die 10 und 11 Bezug genommen wird. Der Verarbeitungsschritt enthält eine Prozedur, in der die paketbasierten Wahrscheinlichkeitswerte in Abhängigkeit von den Zeitunterschieden zwischen den zugeordneten Zeitmarkierungen bestimmt werden.
-
Schließlich ist der Schritt 920 ein Schritt, in welchem die Berechnungsergebnisse bewertet werden, wie dies detaillierter mit Bezug zu 12 beschrieben ist.
-
10 ist ein Flussdiagramm, in der eine beispielhafte Verarbeitung von Daten in den Ablaufverfolgungspuffern 115 der vorliegenden Ausführungsformen gezeigt ist. Im Schritt 1000 werden Transaktionen aus den gespeicherten Daten aufgebaut, indem Pakete mit übereinstimmenden Transaktionskennungen gesammelt werden. Im Schritt 1005 werden alle Transaktionen entfernt, die Daten nicht modifizieren oder aktualisieren. Dann werden im Schritt 1010 automare Lese-Modifizier-Schreib-Transaktionen ermittelt.
-
Wie in 10 gezeigt ist, wird ein iterativer Prozess für jede atomare Lese-Modifizier-Schreib-Transaktion ausgeführt. Zunächst wird im Schritt 1015 eine nächste atomare Lese-Modifizier-Schreib-Transaktion ausgewählt. Danach werden alle Transaktionen, die mit der ausgewählten atomaren Lese-Modifizier-Schreib-Transaktion überlappen, im Schritt 1020 ermittelt. Zu beachten ist, dass in der vorliegenden Ausführungsform überlappende Transaktionen solche Transaktionen sind, die die gleiche Kohärenzzelle wie die ausgewählte atomare Lese-Modifizier-Schreib-Transaktion besitzen und die zumindest ein Paket mit einer Zeitmarke vor der Zeitmarke des letzten Pakets der atomaren Lese-Modifizier-Schreib-Transaktion und einer Zeitmarke nach der Zeitmarke des ersten Pakets der atomaren Lese-Modifizier-Schreib-Transaktion besitzen.
-
Sobald diese überlappenden Transaktionen im Schritt 1002 ermittelt sind, wird eine Verarbeitung für jede der ermittelten überlappenden Transaktionen ausgeführt. Diese Verarbeitung beginnt mit dem Auswählen einer nächsten überlappenden Transaktion im Schritt 1025 und dem Ausführen einer Verarbeitung für jedes Paket der atomaren Lese-Modifizier-Schreib-Transaktion. In dieser Verarbeitung wird ein nächstes Paket der atomaren Lese-Modifizier-Schreib-Transaktion im Schritt 1030 ausgewählt, wodurch ein Paketpaar ausgewählt wird, das aus einem Paket in der überlappenden Transaktion und einem Paket in der atomaren Lese-Modifizier-Schreib-Transaktion aufgebaut ist.
-
Sobald das Paketpaar bekannt ist, werden entsprechende Wahrscheinlichkeitsdichteparameter im Schritt 1035 bestimmt und die entsprechende Paket-zu-Paket-Wahrscheinlichkeit wird im Schritt 1040 berechnet.
-
Sobald Wahrscheinlichkeiten für jedes Paketpaar berechnet sind, wird schließlich ein Wahrscheinlichkeitsfehler für die atomare Lese-Modifizier-Schreib-Transaktion im Schritt 1055 berechnet und es wird ein Fehlerrisiko für die atomare Lese-Modifizier-Schreib-Transaktion im Schritt 1060 berechnet.
-
Es sei nun wieder auf das Beispiel aus 6 verwiesen und es sei angenommen, dass überlappende Transaktionen T0, T1, T2 und T3 die gleiche Kohärenzzelle, etwa eine Cache-Zeile, wie die Transaktion TARMW besitzen, so kann die atomare Lese-Modifizier-Schreib-Transaktion als eine Ansammlung von Paketen qi wie folgt beschrieben werden: TARMW = {q0, q1, q2, ..., qj} wobei j die Gesamtzahl an Paketen in TARMW ist.
-
Die modifizierenden Transaktionen, die mit TARMW überlappen, können beschrieben werden als: Toverlap = {T0, T1, T2, ..., Tm) wobei m die Anzahl der überlappenden modifizierenden Transaktionen ist, die die gleiche Kohärenzzelle besitzen. In der Menge Toverlap aus Transaktionen sind die Anzahlen der Pakete pro Transaktion gegeben durch {i0, i1, i2, ..., im). Somit ist die Anzahl der Pakete in T0 gleich i0, die Anzahl der Pakete in T1 gleich i1 usw.
-
Die Wahrscheinlichkeiten atomarer Lese-Modifizier-Schreib-Verletzungen auf Grund jedes einzelnen Pakets in einer überlappenden Transaktion kann wie folgt zusammengefasst werden:
-
Somit werden Wahrscheinlichkeitswerte Pxyz bestimmt, wobei x = 0 ... m eine überlappende Transaktion, y = 0 ... ix ein Paket in der überlappenden Transaktion und z = 0 ... j das Paket der atomaren Lese-Modifizier-Schreib-Transaktion bezeichnen. Somit werden mehrere Wahrscheinlichkeiten auf Basis einzelner Pakete berechnet.
-
Wenn die Verteilungsfunktionen ihre Maxima besitzen, wenn es keinen Zeitunterschied zwischen den Zeitmarken der entsprechenden Pakete gibt, werden die Wahrscheinlichkeiten auf der Grundlage einer zeitlichen Nähe zwischen Paketen der atomaren Lese-Modifizier-Schreib-Transaktion und Paketen der anderen Transaktionen bestimmt.
-
Wie ferner zuvor beschrieben ist, kann jede Wahrscheinlichkeitsverteilungsfunktion ihren eigenen einzigartigen Parametersatz aufweisen. D. h., unter Annahme einer Gauss-Funktion kann die Berechnung von P
000 unter Anwendung von 〈μ
000, σ
000, γ
000〉 erfolgen, während Poo
l unter Verwendung von 〈μ
001, σ
001, γ
001〉 berechnet wird. Allgemein gesagt wird P
xyz wird unter Verwendung von
berechnet.
-
Diese Parameter werden im Schritt 1035 bestimmt.
-
11 zeigt ein Beispiel, wie die Wahrscheinlichkeitsverteilungsparameter zu bestimmen sind, wobei zu beachten ist, dass die Parameter aus den Systemspezifikationen und aus Auslastungssimulationen abgeleitet werden können. Einige Faktoren zum Bestimmen des Parameterprofils können die Systemtypologie, das Kommunikationsnetzwerkprotokoll, Cache-Speichergrößen, die Anzahl der Kerne pro Knoten, die Knotenanzahl, diverse Bearbeitungszeiten, die Busbreite, die Verkehrsintensität, die Taktfrequenz, die Transaktionsart und die Paketart sein.
-
Die Auswahl der Parameter kann auf der Grundlage pessimistisch angenommener Parameter im Schritt 1110 erfolgen und kann dann auf einer Kombination aus Analyse und Simulation beruhen. In einer Ausführungsform werden iterative Prozesse ausgeführt, wozu das Feineinstellen auf der Grundlage von Systemdaten gehört. Wenn beispielsweise die Systemarchitektur und die Netzwerkprotokollspezifizierung im Schritt 1100 bewertet wird, kann die Arbeitsauslastung in dem Systemmodell im Schritt 1120 simuliert und in den Schritten 1130 und 1140 genau abgeglichen werden. Die Ergebnisse können dann auf tatsächliche Systemdaten im Schritt 1150 angewendet und erneut in den Schritten 1160 und 1170 fein eingestellt werden.
-
Der Prozess aus 11 ist in 10 als einer der Schritte bei der Verarbeitung der Daten des Ablaufverfolgungspuffers gezeigt. Es ist jedoch zu beachten, dass der Prozess aus 11 alternativ separat ausgeführt werden kann, so dass in dem Schritt 1035 lediglich auf die Parameter zugegriffen wird.
-
Es sei wieder auf 11 verwiesen; es wird der Schritt 1180 ausgeführt, um Bereiche und Schwellwerte zu ermitteln. Diese Bereiche und Schwellwerte können verwendet werden, um einen Risikofaktor zum Quantifizieren der Robustheit einer atomaren Lese-Modifizier-Schreib-Operation zu berechnen.
-
Da Multiprozessoranwendungen gemäß der Erfindung eine große Anzahl an Wahrscheinlichkeitswerten für einen Fehler für eine atomare Lese-Modifizier-Schreib-Transaktion erzeugen können, werden diese Wahrscheinlichkeiten in Gruppen (Buckets) eingeteilt:
Gruppe 0: | P > x1 |
Gruppe 1: | x1 > P > x2 |
Gruppe 2: | x2 > P > x3 |
Gruppe 3: | x3 > P > x4 |
| ... |
Gruppe n: | xn-1 > P > xn |
-
In einer Ausführungsform wird der Schwellwert x0 im Schritt 1180 so gewählt, dass, immer wenn ein Wahrscheinlichkeitswert in der Gruppe 0 liegt, ein atomarer Lese-Modifizier-Schreib-Fehler erkannt wird. Im Allgemeinen werden die Werte der Schwellwerte x1 ... xn so gewählt, dass die Robustheit der atomaren Lese-Modifizier-Schreib-Transaktion als eine Funktion der Verteilung von Wahrscheinlichkeiten in jedem Paket quantitativ bestimmt werden kann. Somit sind die Wahrscheinlichkeitswerte in Gruppen eingeteilt, um mehr Information, als dass nur ein Fehler aufgetreten ist, anzugeben.
-
Sobald die Wahrscheinlichkeitsverteilungsparameter und die Paketschwellwerte in 11 bestimmt sind und die Daten des Ablaufverfolgungspuffers in 10 verarbeitet sind, können die Berechnungsergebnisse gemäß der Ausführungsform aus 12 bewertet werden. Dies ermöglicht ein entsprechendes Modifizieren der Systemgestaltung.
-
In 12 wird eine atomare Lese-Modifizier-Schreib-Transaktion im Schritt 1200 ausgewählt. Im Schritt 1210 wird dann bestimmt, ob die Fehlerwahrscheinlichkeit der atomaren Lese-Modifizier-Schreib-Transaktion innerhalb der höchsten Gruppe liegt. Wenn dies der Fall ist, kann die Multiprozessor-Anwendung analysiert werden, um die Ursache des Fehlers zu ermitteln (Schritt 1220). Es kann eine weitere Simulation im Schritt 1230 ausgeführt werden, und die modifizierte, d. h. korrigierte, Gestaltung kann im Schritt 1240 verifiziert werden.
-
Wenn im Schritt 1210 erkannt wird, dass die Fehlerwahrscheinlichkeit nicht über dem höchsten Schwellwert liegt, dann geht der Prozess zum Schritt 1250 weiter. Abhängig von der Gruppe, in der die Fehlerwahrscheinlichkeit liegt, kann der Aufbau bzw. das Design im Schritt 1260 weiter analysiert werden und mögliche Alternativen können im Schritt 1270 simuliert werden. Ansonsten kann die atomare Lese-Modifizier-Schreib-Transaktion den Test erfolgreich durchlaufen.
-
Auf Grund der Beschreibung der diversen Ausführungsformen wird eine Technik bereitgestellt, die das Korrigieren von Operationsfehlern in atomaren Lese-Modifizier-Schreib-Operationen und anderen atomaren modifizierenden und nicht-modifizierenden Operationen in einem Multikern-Multiknoten-System oder anderen Arten von Multiprozessor-Systemen ermöglicht. Die Ausführungsformen ermöglichen ferner eine Validierung und Quantifizierung der Robustheit derartiger atomarer Operationen. Dies kann das Korrigieren des ursächlichen Grundes eines Gestaltungsproblems und die Quantifizierung der funktionellen Abdeckung atomarer Operationen mit einschließen. Das Resultat der Validierung bzw. Überprüfung auf Gültigkeit kann dann in die Testgeneratoren zurückgespeist werden, um neue geeignete Stimuli zu erzeugen.
-
Obwohl die Erfindung in Bezug auf physikalische Ausführungsformen auf Grundlage der Erfindung beschrieben ist, erkennt der Fachmann, dass diverse Modifizierungen, Variationen und Verbesserungen der vorliegenden Erfindung im Lichte der obigen Lehren und unter Würdigung der angefügten Patentansprüche durchgeführt werden können, ohne von dem Grundgedanken und dem beabsichtigten Schutzbereich der Erfindung abzuweichen. Ferner sind jene Bereiche, von denen angenommen wird, dass der Fachmann damit vertraut ist, hierin nicht beschrieben, um die Darstellung der vorliegenden Erfindung nicht unnötig zu verdunkeln. Es ist daher zu beachten, dass die Erfindung nicht durch die speziellen anschaulichen Ausführungsformen eingeschränkt ist, sondern nur durch den Schutzbereich der angefügten Patentansprüche definiert ist.