DE102007009909B4 - Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung - Google Patents

Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung Download PDF

Info

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
Application number
DE102007009909.8A
Other languages
English (en)
Other versions
DE102007009909A1 (de
Inventor
Padmaraj Singh
Todd Foster
Dennis Lastor
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.)
MediaTek Inc
Original Assignee
GlobalFoundries Inc
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 GlobalFoundries Inc filed Critical GlobalFoundries Inc
Priority to DE102007009909.8A priority Critical patent/DE102007009909B4/de
Priority to US11/891,165 priority patent/US7836359B2/en
Publication of DE102007009909A1 publication Critical patent/DE102007009909A1/de
Application granted granted Critical
Publication of DE102007009909B4 publication Critical patent/DE102007009909B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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

Abstract

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.

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 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:
  • Figure DE102007009909B4_0002
  • 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:
    Figure DE102007009909B4_0003
  • 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 von
    Figure DE102007009909B4_0004
    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.

Claims (16)

  1. 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.
  2. Multikern-Mikroprozessor nach Anspruch 1, wobei die Zeitmarke den Zeitpunkt angibt, an welchem das entsprechende Paket in der Puffereinheit empfangen und gespeichert wurde.
  3. Multikern-Mikroprozessor nach Anspruch 1, wobei der atomare Befehl ein atomarer Lese-Modifizier-Schreib-Befehl ist.
  4. 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.
  5. Multikern-Mikroprozessor nach Anspruch 1, wobei die anderen Transaktionen Transaktionen sind, die die gleiche Kohärenzzelle wie die atomare Transaktion aktualisieren.
  6. 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.
  7. Multikern-Mikroprozessor nach Anspruch 6, wobei die Verteilungsparameter in einem iterativen Feineinstellungsprozess ausgewählt werden, der eine Simulation und Analyse von Systemdaten enthält.
  8. 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.
  9. 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.
  10. Multiprozessor-System mit: mehreren Mikroprozessorknoten (100, 130 bis 165), 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
DE102007009909.8A 2007-02-28 2007-02-28 Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung Active DE102007009909B4 (de)

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)

* Cited by examiner, † Cited by third party
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
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced 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
WO2012087894A2 (en) * 2010-12-22 2012-06-28 Intel Corporation Debugging complex multi-core and multi-socket systems
US10169171B2 (en) 2013-05-13 2019-01-01 Nxp Usa, 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20040225881A1 (en) * 2002-12-02 2004-11-11 Walmsley Simon Robert Variant keys
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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
US7836359B2 (en) 2010-11-16
US20080209176A1 (en) 2008-08-28
DE102007009909A1 (de) 2008-09-04

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
DE69727856T2 (de) Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren
DE102009022152B4 (de) Verwenden von Kritikaliätsinformationen zum Routen von Cache-Kohärenz-Kommmunikationen
DE102017125180A1 (de) Synchrone Hardware-Ereignis-Sammlung
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
DE102012215216B4 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE60318468T2 (de) Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem
DE69816686T2 (de) Hochfrequenzabtastung von Leistungszählern
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE112010004187T5 (de) Verfahren und System zum Verarbeiten von Netzwerkereignissen
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE4023527A1 (de) Bruecke zur netzwerkverbindung
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
DE112013000330T5 (de) In-Situ-Neubewertung von Prozessoren
DE69816714T2 (de) Instrumentationsanordnung für eine Maschine mit nichtuniformen Speicherzugriffen
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE102020103521A1 (de) Minimieren der Nutzung von Hardware-Zählern bei getriggerten Operationen für kollektive Kommunikation
DE112020003004T5 (de) Dma-scatter- und gather-operationen für nicht zusammenhängenden speicher
DE112007003722B4 (de) Modifizieren von Systemroutinginformationen in linkbasierenden Systemen
DE112011100168B4 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE112012004926T5 (de) Gemeinsame Speichernutzung durch Prozessoren
DE112017007877T5 (de) Steuerung und Steuerungssystem
DE102013009364B4 (de) Verfahren und System zur Erkennung von latenten Fehlern in Mikrocontrollern

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