DE102007009909B4 - Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung - Google Patents
Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung Download PDFInfo
- Publication number
- DE102007009909B4 DE102007009909B4 DE102007009909.8A DE102007009909A DE102007009909B4 DE 102007009909 B4 DE102007009909 B4 DE 102007009909B4 DE 102007009909 A DE102007009909 A DE 102007009909A DE 102007009909 B4 DE102007009909 B4 DE 102007009909B4
- Authority
- DE
- Germany
- Prior art keywords
- transactions
- packets
- transaction
- atomic
- microprocessor
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
wobei das Brückenelement eine Puffereinheit (115) aufweist, die eine Zeitmarke für jedes Paket speichert, das an die Prozessorkerne gesendet und/oder von ihnen empfangen wird, und
wobei der Multikern-Mikroprozessor eine Wahrscheinlichkeit eines Fehlers in einer atomaren Transaktion auf der Grundlage der zeitlichen Nähe zwischen Paketen der atomaren Transaktion und Paketen anderer Transaktionen bestimmt.
Description
- 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 Knoten100 ,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 Prozessorkerne105 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 der1 gezeigten Ausführungsform auftreten. - In der Ausführungsform werden in den Multikern-Mikroprozessoren, die die Knoten
100 ,120 bis165 bilden, zwei oder mehr unabhängige Prozessoren105 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 Knoten100 ,130 bis165 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 Prozessorkernen105 und dem Speicher handhabt bzw. verwaltet. In der Ausführungsform aus1 ist die Nordbrücke110 in jedem Knoten100 ,130 bis165 mit den Kernen105 des entsprechenden Knotens und mit einer Speichersteuerung (MCT)120 verbunden. Die Nordbrücke110 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 Knoten100 ,130 bis165 vorhanden ist. Der Datenverkehr zwischen Knoten kann mittels eines Logikanalysators (nicht gezeigt) aufgezeichnet werden. Zu beachten ist, dass die Ablaufverfolgungspuffer115 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 Ablaufverfolgungspuffer115 der vorliegenden Ausführungsform in den Nordbrücken110 oder in anderen Brückenelementen untergebracht, die in dem Multikernmultiprozessoren100 ,1230 bis165 zum Handhaben des Transaktionsdatenverkehrs eingesetzt werden. Gemäß anderer Ausführungsformen können die Ablaufverfolgungspuffer115 in jedem Knoten aber außerhalb der Nordbrücke110 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 Ablaufverfolgungspuffer115 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 Knoten100 ,130 bis165 ausgebildet, den Datenverkehr durch die entsprechende Nordbrücke110 aufzuzeichnen. In dieser Ausführungsform dient eine Nordbrücke110 als ein Kohärenzpunkt für den entsprechenden Knoten100 ,130 bis165 . D. h., der gesamte Datenverkehr zwischen Knoten und jeglicher Zugriff auf die Speichersteuerung120 und jeglicher Zugriff auf verbleibende Knoten100 ,130 bis165 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 Ablaufverfolgungspuffer115 vollständig gefüllt wird. Der Ablaufverfolgungspuffer kann dann seinen Inhalt in den Speicher125 abführen (oder speichern), wobei dieser Speicher ein DRAM (dynamischer Speicher mit wahlfreiem Zugriff) sein kann. Dieser Prozess kann durch die Speichersteuerung120 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ücke110 kann den Ablaufverfolgungspuffer115 einflussausübend machen, wenn jedoch die Größe des Ablaufverfolgungspuffers115 ausreichend groß gewählt wird, besteht nahezu keine Notwendigkeit, die Nordbrücke110 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. In2 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 Knotens100 ,130 bis165 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 Mikroprozessorknoten100 ,130 bis165 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 Ablaufverfolgungspuffer115 für jedes Paket eine Zeitmarke405 , eine Transaktionskennung410 , die die Transaktion, auf die sich das Paket bezieht, angibt, eine Quellen-Kennung415 , die den Kern und/oder Knoten angibt, von dem das Paket herrührt, eine Zielkennung420 , die den Kern und/oder Knoten angibt, für den das Paket bestimmt ist, eine Transaktionsart425 und eine Paketart430 sowie Adressen435 und Daten440 zusammen mit speziellen Attributsbytes445 . - Diese Information kann in den Ablaufverfolgungspuffern
115 in der in4 gezeigten Form gespeichert werden, oder kann beispielsweise gespeichert werden, wie in5 gezeigt ist. Wie man aus diesen Figuren erkennen kann, können die Ablaufverfolgungspuffer115 in jedem Knoten100 ,130 bis165 die Paketinformation in Tabellen500 ,520 ,545 speichern. Jede Reihe505 ,510 ,515 ,525 ,530 ,535 ,545 ,550 ,555 in jedem Knoten100 ,130 bis165 enthält Paketinformation eines einzelnen Pakets. Jede Reihe kann aufweisen: ein Feld TS zum Speichern der Zeitmarke405 , ein Feld „ID bzw. Kennung” zum Speichern der Transaktionskennung410 , der Quellenkennung415 und der Zielkennung420 , ein Feld „ADDR” zum Speichern der Zieladresse435 , ein Feld „Daten” zum Speichern der Daten440 zu lesen, die zu modifizieren und/oder zu schreiben sind, und ein Feld „ATTR” zum Speichern von Attributen445 des Pakets. Obwohl in5 dies nicht gezeigt ist, kann optional ein Feld in jeder Reihe vorgesehen sein, um die Transaktionsart425 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 aus6 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 Schritt900 . Dieser Schritt beinhaltet das Empfangen und das zeitliche Markieren der Pakete und das Speichern der entsprechenden Daten in dem Ablaufverfolgungspuffer115 , wie er in den4 oder5 gezeigt ist. - Im Schritt
910 werden die gesammelten Daten verarbeitet. Dies wird detaillierter beschrieben, wenn auf die10 und11 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 zu12 beschrieben ist. -
10 ist ein Flussdiagramm, in der eine beispielhafte Verarbeitung von Daten in den Ablaufverfolgungspuffern115 der vorliegenden Ausführungsformen gezeigt ist. Im Schritt1000 werden Transaktionen aus den gespeicherten Daten aufgebaut, indem Pakete mit übereinstimmenden Transaktionskennungen gesammelt werden. Im Schritt1005 werden alle Transaktionen entfernt, die Daten nicht modifizieren oder aktualisieren. Dann werden im Schritt1010 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 Schritt1015 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 Schritt1020 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 Schritt1025 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 Schritt1030 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 Schritt1040 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 Schritt1060 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: wobei j die Gesamtzahl an Paketen in TARMW ist.TARMW = {q0, q1, q2, ..., qj} - Die modifizierenden Transaktionen, die mit TARMW überlappen, können beschrieben werden als:
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.Toverlap = {T0, T1, T2, ..., Tm) -
- 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 P000 unter Anwendung von 〈μ000, σ000, γ000〉 erfolgen, während Pool unter Verwendung von 〈μ001, σ001, γ001〉 berechnet wird. Allgemein gesagt wird Pxyz wird unter Verwendung vonberechnet.
- 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 Schritt1100 bewertet wird, kann die Arbeitsauslastung in dem Systemmodell im Schritt1120 simuliert und in den Schritten1130 und1140 genau abgeglichen werden. Die Ergebnisse können dann auf tatsächliche Systemdaten im Schritt1150 angewendet und erneut in den Schritten1160 und1170 fein eingestellt werden. - Der Prozess aus
11 ist in10 als einer der Schritte bei der Verarbeitung der Daten des Ablaufverfolgungspuffers gezeigt. Es ist jedoch zu beachten, dass der Prozess aus11 alternativ separat ausgeführt werden kann, so dass in dem Schritt1035 lediglich auf die Parameter zugegriffen wird. - Es sei wieder auf
11 verwiesen; es wird der Schritt1180 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 in10 verarbeitet sind, können die Berechnungsergebnisse gemäß der Ausführungsform aus12 bewertet werden. Dies ermöglicht ein entsprechendes Modifizieren der Systemgestaltung. - In
12 wird eine atomare Lese-Modifizier-Schreib-Transaktion im Schritt1200 ausgewählt. Im Schritt1210 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 (Schritt1220 ). Es kann eine weitere Simulation im Schritt1230 ausgeführt werden, und die modifizierte, d. h. korrigierte, Gestaltung kann im Schritt1240 verifiziert werden. - Wenn im Schritt
1210 erkannt wird, dass die Fehlerwahrscheinlichkeit nicht über dem höchsten Schwellwert liegt, dann geht der Prozess zum Schritt1250 weiter. Abhängig von der Gruppe, in der die Fehlerwahrscheinlichkeit liegt, kann der Aufbau bzw. das Design im Schritt1260 weiter analysiert werden und mögliche Alternativen können im Schritt1270 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.
Claims (16)
- Multikern-Mikroprozessor mit mehreren Prozessorkernen (
105 ), die mit einem Brückenelement (110 ) verbunden sind, wobei das Brückenelement Transaktionen zu den Prozessorkernen sendet und/oder davon empfängt, wobei jede Transaktion ein oder mehrere Pakete aufweist und die Transaktionen eine atomare Transaktion enthalten, die einen atomaren Befehl repräsentiert, wobei das Brückenelement eine Puffereinheit (115 ) aufweist, die eine Zeitmarke für jedes Paket speichert, das an die Prozessorkerne gesendet und/oder von ihnen empfangen wird, und wobei der Multikern-Mikroprozessor eine Wahrscheinlichkeit eines Fehlers in einer atomaren Transaktion auf der Grundlage der zeitlichen Nähe zwischen Paketen der atomaren Transaktion und Paketen anderer Transaktionen bestimmt. - Multikern-Mikroprozessor nach Anspruch 1, wobei die Zeitmarke den Zeitpunkt angibt, an welchem das entsprechende Paket in der Puffereinheit empfangen und gespeichert wurde.
- Multikern-Mikroprozessor nach Anspruch 1, wobei der atomare Befehl ein atomarer Lese-Modifizier-Schreib-Befehl ist.
- Multikern-Mikroprozessor nach Anspruch 1, wobei die anderen Transaktionen zeitlich mit der atomaren Transaktion überlappen, wobei der Multikern-Multiprozessor die anderen Transaktionen durch Bewerten der Zeitmarken ihrer Pakete erkennt.
- Multikern-Mikroprozessor nach Anspruch 1, wobei die anderen Transaktionen Transaktionen sind, die die gleiche Kohärenzzelle wie die atomare Transaktion aktualisieren.
- Multikern-Mikroprozessor nach Anspruch 1, der die Wahrscheinlichkeit auf der Grundlage einer Normalverteilung mit Verteilungsparametern bestimmt, die für jede Paket-zu-Paket-Relation einzigartig sind.
- Multikern-Mikroprozessor nach Anspruch 6, wobei die Verteilungsparameter in einem iterativen Feineinstellungsprozess ausgewählt werden, der eine Simulation und Analyse von Systemdaten enthält.
- Multikern-Mikroprozessor nach Anspruch 1, der einen Fehler in einer atomaren Transaktion erkennt, indem Wahrscheinlichkeitswerte bestimmt werden für jedes Paar aus Paketen mit einem Paket der atomaren Transaktion und einem Paket einer weiteren Transaktion, die zeitlich mit der atomaren Transaktion überlappt, in denen die bestimmten Wahrscheinlichkeitswerte klassifiziert werden, indem diese in eine Anzahl von Gruppen eingeteilt werden, die unterschiedliche Wahrscheinlichkeitsbereiche repräsentieren, und indem bestimmt wird, ob die Gruppe, die den Bereich der höchsten Wahrscheinlichkeit repräsentiert, zuminderst teilweise besetzt ist.
- Multikern-Mikroprozessor nach Anspruch 8, der einen Risikofaktor bestimmt, wenn kein Fehler erkannt wird, auf der Grundlage der Klassifizierung in anderen Gruppen als der Gruppe, die den Bereich der höchsten Wahrscheinlichkeiten repräsentiert, und der ferner einen Simulationsprozess in Abhängigkeit von dem Risikofaktor beginnt.
- Multiprozessor-System mit: mehreren Mikroprozessorknoten (
100 ,130 bis165 ), die jeweils mehrere Mikroprozessorkerne (105 ) aufweisen, wobei die mehreren Mikroprozessorknoten und -kerne so miteinander verbunden sind, dass ein Punkt-zu-Punkt-Kommunikationsnetzwerk für Transaktionen gebildet wird; und einer Debug-Hardware (115 ), mit der atomare Operationen validiert werden, wobei die Debug-Hardware knoteninterne Transaktionspakete und/oder Transaktionspakete zwischen Knoten empfängt und zeitlich markiert, wobei mit der Debug-Hardware ferner eine Wahrscheinlichkeit eines Fehlers in einer modifizierenden atomaren Transaktion auf der Grundlage der zeitlichen Nähe zwischen Paketen der atomaren Transaktion und Paketen anderer Transaktionen bestimmt wird. - Multiprozessor-System nach Anspruch 10, wobei jeder Mikroprozessorknoten ein Brükkenelement (
110 ) aufweist, das mit den Mikroprozessorkernen des jeweiligen Mikroprozessorknotens verbunden ist, und wobei die Debug-Hardware einen Puffer (115 ) in jedem Brückenelement aufweist, um Zeitmarken von knoteninternen Transaktionspaketen zu speichern. - Verfahren zum Erkennen von Fehlern, die durch eine modifizierende atomare Transaktion in einer Multikernmikroprozessorumgebung hervorgerufen werden, wobei das Verfahren umfasst: Sammeln (
900 ) von Daten, die sich auf Pakete beziehen, die zu der modifizierenden atomaren Transaktion und zu anderen Transaktionen gehören, die zwischen Mikroprozessorkernen der Umgebung ausgetauscht werden; Verarbeiten (910 ) der gesammelten Daten; und Bewerten (920 ) von Ergebnissen der Verarbeitung, wobei die Daten Zeitmarken enthalten, die einen Zeitpunkt angeben, an welchem die entsprechenden Pakete zwischen den entsprechenden Mikroprozessorkernen ausgetauscht werden, und wobei das Verarbeiten der gesammelten Daten umfasst: Ermitteln (1000 ,1010 ) von Paketen, die die modifizierende atomare Transaktion betreffen; Ermitteln (1025 ) von Paketen, die die anderen Transaktionen betreffen; und Berechnen eines Wahrscheinlichkeitswertes für jedes Paar aus Paketen, das aus einem einzelnen Paket der modifizierenden atomaren Transaktion und einem einzelnen Paket der anderen Transaktionen aufgebaut ist, in Abhängigkeit von der Zeitdifferenz zwischen den zugehörigen Zeitmarken, wobei das Bewerten der Ergebnisse der Verarbeitung umfasst: Vergleichen der berechneten Wahrscheinlichkeitswerte mit einem Schwellwert; und Anzeigen eines Fehlers, wenn zumindest einer der berechneten Wahrscheinlichkeitswerte den Schwellwert übersteigt. - Verfahren nach Anspruch 12, wobei das Berechnen des Wahrscheinlichkeitswerts auf der Grundlage einer symmetrischen Wahrscheinlichkeitsverteilungsfunktion erfolgt, die ein Maximum besitzt, wenn kein zeitlicher Unterschied auftritt.
- Verfahren nach Anspruch 13, wobei die Höhe und die Form der symmetrischen Wahrscheinlichkeitsverteilungsfunktion von dem Paar aus Paketen abhängt, für welches der Wahrscheinlichkeitswert berechnet wird.
- Verfahren nach Anspruch 12, wobei das Ermitteln von Paketen, die die anderen Transaktionen betreffen, umfasst: Auswahlen lediglich jener Transaktionen der anderen Transaktionen, die die gleiche Kohärenzzelle wie die modifizierende atomare Transaktion aktualisieren und die zeitlich mit der modifizierenden atomaren Transaktion überlappen; und Ermitteln der Pakete, die die ausgewählten Transaktionen betreffen.
- Verfahren nach Anspruch 12, wobei das Auswählen der Transaktionen umfasst: Erhalten der Zeitmarkierung der entsprechenden Transaktionen aus den anderen Transaktionen und der modifizierenden atomaren Transaktion, um zu bestimmen, ob die Transaktionen zeitlich überlappen.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102007009909.8A DE102007009909B4 (de) | 2007-02-28 | 2007-02-28 | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung |
| US11/891,165 US7836359B2 (en) | 2007-02-28 | 2007-08-09 | Time stamping transactions to validate atomic operations in multiprocessor systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102007009909.8A DE102007009909B4 (de) | 2007-02-28 | 2007-02-28 | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102007009909A1 DE102007009909A1 (de) | 2008-09-04 |
| DE102007009909B4 true DE102007009909B4 (de) | 2016-09-08 |
Family
ID=39670001
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102007009909.8A Active DE102007009909B4 (de) | 2007-02-28 | 2007-02-28 | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7836359B2 (de) |
| DE (1) | DE102007009909B4 (de) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8370806B2 (en) * | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
| US8380966B2 (en) * | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
| US8341604B2 (en) * | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
| US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
| US8484516B2 (en) * | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
| US8037350B1 (en) * | 2008-04-30 | 2011-10-11 | Hewlett-Packard Development Company, L.P. | Altering a degree of redundancy used during execution of an application |
| US8112677B2 (en) * | 2010-02-26 | 2012-02-07 | UltraSoC Technologies Limited | Method of debugging multiple processes |
| EP2656227A2 (de) * | 2010-12-22 | 2013-10-30 | Intel Corporation | Mehrkern- und mehrbuchsensysteme mit einem debugging-komplex |
| WO2014184614A1 (en) | 2013-05-13 | 2014-11-20 | Freescale Semiconductor, Inc. | Method and apparatus for enabling temporal alignment of debug information |
| CN103631752A (zh) * | 2013-12-19 | 2014-03-12 | 无锡美森微电子科技有限公司 | 一种众核处理器片上网络实时通信时间戳方法及系统 |
| CN104394096B (zh) * | 2014-12-11 | 2017-11-03 | 福建星网锐捷网络有限公司 | 一种基于多核处理器的报文处理方法及多核处理器 |
| CN108021399B (zh) * | 2017-11-28 | 2021-10-22 | 北京小米移动软件有限公司 | 便签处理方法、装置、设备及存储介质 |
| US10496449B1 (en) * | 2018-06-11 | 2019-12-03 | International Business Machines Corporation | Verification of atomic memory operations |
| CN109683995B (zh) * | 2018-12-17 | 2022-03-11 | 达闼机器人有限公司 | 一种打包区块、验证区块和智能合约执行的方法 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6658519B1 (en) * | 2000-07-28 | 2003-12-02 | International Business Machines Corporation | Bus bridge with embedded input/output (I/O) and transaction tracing capabilities |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6766419B1 (en) * | 2000-03-31 | 2004-07-20 | Intel Corporation | Optimization of cache evictions through software hints |
| US6792563B1 (en) * | 2000-04-28 | 2004-09-14 | Intel Corporation | Method and apparatus for bus activity tracking |
| US7080376B2 (en) * | 2001-09-21 | 2006-07-18 | Intel Corporation | High performance synchronization of accesses by threads to shared resources |
| US7236967B2 (en) * | 2002-06-03 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Methods and systems for maintaining transaction semantics in a computer system |
| US7366843B2 (en) | 2002-06-28 | 2008-04-29 | Sun Microsystems, Inc. | Computer system implementing synchronized broadcast using timestamps |
| US7523111B2 (en) * | 2002-12-02 | 2009-04-21 | Silverbrook Research Pty Ltd | Labelling of secret information |
| US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
| US7174554B2 (en) * | 2002-12-20 | 2007-02-06 | Microsoft Corporation | Tools and methods for discovering race condition errors |
| US6823347B2 (en) | 2003-04-23 | 2004-11-23 | Oracle International Corporation | Propagating commit times |
| US7251748B2 (en) * | 2003-09-12 | 2007-07-31 | Sun Microsystems, Inc. | System and method for determining a global ordering of events using timestamps |
| US7257732B2 (en) * | 2004-02-13 | 2007-08-14 | Kaleidescape, Inc. | Integrating content-laden media with storage system |
| US7266571B2 (en) | 2004-07-27 | 2007-09-04 | International Business Machines Corporation | Method and system for scheduling a partial ordered transactions for event correlation |
| US7188052B2 (en) * | 2005-04-12 | 2007-03-06 | International Business Machines Corporation | Using highly skewed clocks for application based tracing and application based normalization of processor clocks in an SMP environment |
| US7350034B2 (en) * | 2005-06-20 | 2008-03-25 | International Business Machines Corporation | Architecture support of best-effort atomic transactions for multiprocessor systems |
| JP4784827B2 (ja) * | 2006-06-06 | 2011-10-05 | 学校法人早稲田大学 | ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ |
| US8185874B2 (en) * | 2006-11-07 | 2012-05-22 | Microsoft Corporation | Automatic and systematic detection of race conditions and atomicity violations |
| US7949841B2 (en) * | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
| US7644238B2 (en) * | 2007-06-01 | 2010-01-05 | Microsoft Corporation | Timestamp based transactional memory |
| DE102007041212A1 (de) * | 2007-08-31 | 2009-03-05 | Advanced Micro Devices, Inc., Sunnyvale | Latenzabdeckung und Anwendung auf die Erzeugung von Multiprozessor-Testgeneratorvorlagen |
-
2007
- 2007-02-28 DE DE102007009909.8A patent/DE102007009909B4/de active Active
- 2007-08-09 US US11/891,165 patent/US7836359B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6658519B1 (en) * | 2000-07-28 | 2003-12-02 | International Business Machines Corporation | Bus bridge with embedded input/output (I/O) and transaction tracing capabilities |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102007009909A1 (de) | 2008-09-04 |
| US7836359B2 (en) | 2010-11-16 |
| US20080209176A1 (en) | 2008-08-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE102007009909B4 (de) | Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung | |
| DE102007041212A1 (de) | Latenzabdeckung und Anwendung auf die Erzeugung von Multiprozessor-Testgeneratorvorlagen | |
| DE102009022152B4 (de) | Verwenden von Kritikaliätsinformationen zum Routen von Cache-Kohärenz-Kommmunikationen | |
| DE3751284T2 (de) | Verfahren für die Abschätzung der Leistung eines Datenprozessorsystems. | |
| DE4023527C2 (de) | Brücke zur Netzwerkverbindung | |
| DE112005002420T5 (de) | Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors | |
| DE102017125180A1 (de) | Synchrone Hardware-Ereignis-Sammlung | |
| DE60318468T2 (de) | Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem | |
| DE112013000891T5 (de) | Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten | |
| CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
| DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
| DE3685711T2 (de) | Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen. | |
| DE112004001133T5 (de) | Warteschlangen-Sperren mit Monitor-Memory-Wait | |
| DE112014000336B4 (de) | Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip | |
| DE112014000340B4 (de) | Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern | |
| DE69816714T2 (de) | Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen | |
| DE102020103521A1 (de) | Minimieren der Nutzung von Hardware-Zählern bei getriggerten Operationen für kollektive Kommunikation | |
| DE102018207377A1 (de) | Vorabvalidierung einer plattform | |
| DE102020214951A1 (de) | Verfahren zum dynamischen Zuweisen von Speicherbandbreite | |
| DE112007003722B4 (de) | Modifizieren von Systemroutinginformationen in linkbasierenden Systemen | |
| DE112011100168B4 (de) | Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung | |
| DE112018001561B4 (de) | Verteiltes speichernetzwerk | |
| DE102013009364B4 (de) | Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern | |
| DE102013000857A1 (de) | Kompakte Funktionsablaufprotokollierung | |
| DE102006039747A1 (de) | Verfahren für Kontextzustandsmanagement |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8127 | New person/name/address of the applicant |
Owner name: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
| 8128 | New person/name/address of the agent |
Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, |
|
| R019 | Grant decision by federal patent court | ||
| R020 | Patent grant now final | ||
| R081 | Change of applicant/patentee |
Owner name: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, US Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY Owner name: MEDIATEK INC., TW Free format text: FORMER OWNER: GLOBALFOUNDRIES INC., GRAND CAYMAN, KY |
|
| R082 | Change of representative |
Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE |
|
| R081 | Change of applicant/patentee |
Owner name: MEDIATEK INC., TW Free format text: FORMER OWNER: GLOBALFOUNDRIES U.S. INC., SANTA CLARA, CA, US |
|
| R082 | Change of representative |
Representative=s name: HOEFER & PARTNER PATENTANWAELTE MBB, DE |