DE112012003462T5 - Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur - Google Patents

Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur Download PDF

Info

Publication number
DE112012003462T5
DE112012003462T5 DE201211003462 DE112012003462T DE112012003462T5 DE 112012003462 T5 DE112012003462 T5 DE 112012003462T5 DE 201211003462 DE201211003462 DE 201211003462 DE 112012003462 T DE112012003462 T DE 112012003462T DE 112012003462 T5 DE112012003462 T5 DE 112012003462T5
Authority
DE
Germany
Prior art keywords
address
lock
processor
message
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE201211003462
Other languages
English (en)
Inventor
Pik Shen Chee
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112012003462T5 publication Critical patent/DE112012003462T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

In einer Ausführungsform umfasst die vorliegende Erfindung ein Verfahren zum Empfangen einer Sperrnachricht für eine Adresse in einem Prozessor von einem Stilllegungs-Master eines Systems. Diese Sperrnachricht gibt an, dass ein Anforderungsagent des Systems in eine Sperrphase in Bezug auf die Adresse eintreten soll. Auf den Empfang dieser Nachricht kann Logik des Prozessors einen Eintrag in einen Verfolgungspuffer des Prozessors für die Adresse schreiben und danach zulassen, dass eine Transaktion vom Prozessor über eine Verbindung gesendet wird, wenn eine Adresse der Transaktion mit keinerlei in dem Verfolgungspuffer gespeicherten Adressen übereinstimmt. Andere Ausführungsformen sind beschrieben und beansprucht.

Description

  • Hintergrund
  • Computersysteme werden von vielen verschiedenen Komponenten gebildet, die miteinander gekoppelt sind, um Verarbeitungskapazitäten, Kommunikationskapazitäten, Speicherkapazitäten usw. zu liefern. In modernen Computersystemen gibt es häufig mehrere Prozessoren, wie zum Beispiel zwei oder mehr Mehrkernprozessoren.
  • Im Verlauf von Operationen in einem Multiprozessorcomputersystem versuchen mehrere Prozessoren, auf dieselben Daten zuzugreifen. Dementsprechend kann für das System ein Kohärenzschema vorgesehen sein, um eine konsistente Sicht von Daten in dem System zu ermöglichen. Ein solcher Mechanismus, der in vielen Computersystemen verwendet wird, ist ein Sperrprotokoll (lock protocol), bei dem ein Prozessor versucht, den Betrieb der anderen Prozessoren zu blockieren, um somit zu verhindern, dass diese Prozessoren Zyklen auf zahlreichen Verbindungen ausführen, während der sperrende Prozessor eine atomare Operation an bestimmten Daten durchführt. Diese Sperroperation kann jedoch einen großen Einfluss auf die Systemleistung haben, da all die anderen Prozessoren in dem System an der Ausführung von Transaktionen gehindert werden, bis die atomare Operation abgeschlossen ist.
  • Kurze Beschreibung der Zeichnungen
  • 1 zeigt ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung
  • 2 zeigt ein Flussdiagramm einer gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführten Signalisierung.
  • 3 zeigt ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 4 zeigt ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 5 zeigt ein Blockdiagramm eines Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
  • Ausführliche Beschreibung
  • Bei zahlreichen Ausführungsformen können Systemagenten Transaktionen auf einer Verbindung, wie zum Beispiel einer Punkt-zu-Punkt(point-to-point (PtP))-Verbindung, einen Bus oder einen anderen Verbindungsmechanismus, durchführen, selbst wenn ein anderer Agent einen bestimmten Speicherbereich gesperrt hat. Das heißt, solange festgestellt werden kann, dass eine von einem Agenten zu sendende Transaktion nicht mit einem Bereich in Konflikt steht, der mit einer anhängigen Sperrung verbunden ist, kann die Transaktion während der Sperrung gesendet werden. Obwohl die hier beschriebenen Ausführungsformen mit Multiprozessorsystemen in Verbindung stehen, die Prozessoren, Chipsätze, wie zum Beispiel Eingabe/Ausgabe-Hubs (input/output hubs (IOHs)), Peripheriegeräte-Steuerungs-Hubs usw. enthalten, so versteht es sich, dass der Schutzumfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist und auf andere Systeme anwendbar ist, die für gemeinsamen Zugriff auf bestimmte Daten sorgen.
  • Unter Bezugnahme auf 1, ist dort ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt ist, kann das Verfahren 100 von einem Systemagenten, wie zum Bespiel einem Prozessor, durchgeführt werden, der versucht, Transaktionen auf einer Verbindung (interconnect), wie zum Beispiel einer PtP-Verbindung oder einem Bus, auszuführen. Obwohl der Schutzumfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist, kann in zahlreichen Ausführungsformen das Verfahren 100 durch Logik in einem Nicht-Kern-Abschnitt eines Mehrkernprozessors durchgeführt werden. Es versteht sich jedoch, dass das Verfahren von 1 von einer anderen Logik in verschiedenen Ausführungsformen durchgeführt werden kann. Wie ersichtlich ist, kann das Verfahren 100 mit Empfangen einer Sperrnachricht für eine erste Adresse von einem Stilllegungs-Master (quiesce master) (Block 110) beginnen. Dieser Stilllegungs-Master kann in einer Ausführungsform ein E/A-Hub sein. Wie weiter unten erläutert wird, kann diese Sperrnachricht eine Stoppanforderung-Nachricht sein und ferner die erste Adresse enthalten oder dieser die erste Adresse folgen. Diese Adresse identifiziert somit einen Speicherbereich. In einigen Ausführungsformen kann eine einzige Adresse vorgesehen sein, die zum Beispiel einer Cache-Zeile mit Daten, die einer Sperrung unterzogen werden sollen, entsprechen. In anderen Ausführungsformen kann jedoch diese Adresse einer bestimmten Cache-Zeile und einer nächsten Cache-Zeile (CL und CL + 1) entsprechen. In weiteren Ausführungsformen kann diese Adresse ein Speicherbereich, zum Beispiel ein seitengroßer Bereich von Speicher sein, der einer Sperrung unterzogen werden soll. Es ist zu beachten, dass diese Sperrung von einem anderen Prozessor angefordert sein kann, um zu ermöglichen, dass der Prozessor eine atomare Operation auf den an der Adresse vorhandenen oder in einem durch die Adresse repräsentierten Speicherbereich vorhandenen Daten durchführt.
  • Weiterhin auf 1 bezugnehmend, geht die Steuerung zu Block 120 über, wo ein Eintrag in einen Verfolgungspuffer des Prozessors für die erste Adresse geschrieben werden kann. Beispielsweise kann ein Cache-Controller von Nicht-Kern-Logik des Mehrkernprozessors einen Verfolgungspuffer enthalten, der eine Vielzahl von Einträgen enthält, wobei jeder Eintrag für einen Speicherbereich des Systems dient, der zur Zeit einer Sperrung unterliegt. Zahlreiche Informationen können in diesen Einträgen gespeichert werden. Zum Beispiel kann in einer Ausführungsform jeder Eintrag die Adresse, einen gültigen Indikator, eine Identifikation des Anforderers der Sperrung usw. enthalten.
  • Wie zu sehen ist, geht die Steuerung zu Raute 130 voran, wo festgestellt werden kann, ob eine Freigabenachricht für die erste Adresse von dem Stilllegungs-Master empfangen worden ist. Diese Freigabenachricht kann somit mit einer Anzeige übereinstimmen, dass der Sperrprozessor die Sperrung dieser Adresse oder dieses Speicherbereichs deaktiviert hat.
  • Wenn ja, geht die Steuerung zu Block 140, wo der Eintrag in dem Verfolgungsspeicher für diese erste Adresse gelöscht werden kann.
  • Wenn stattdessen keine Freigabenachricht empfangen worden ist, bleibt die Sperrung für diese erste Adresse wirksam. In zahlreichen Ausführungsformen kann der Prozessor, im Gegensatz zu einem herkömmlichen Systembetrieb, obwohl eine Sperre wirksam ist, unverändert Transaktionen entlang einer Verbindung senden, solange die Transaktionen nicht mit irgendwelchen Adressen in Konflikt stehen, die einer aktuellen Sperrung unterzogen sind. Dementsprechend geht die Steuerung zu Raute 150, wo festgestellt werden kann, ob der Prozessor eine anhängige Transaktion hat, die entlang der Verbindung gesendet werden soll. Beispielsweise kann ein Verfolgungspuffer in dem Nicht-Kern zum Speichern von anhängigen Transaktionen, die entlang der Verbindung gesendet werden sollen, vorhanden sein. Wenn irgendwelche Transaktionen in diesem Puffer vorhanden sind, geht die Steuerung zu Raute 160. Dort kann ermittelt werden, ob eine Adresse der anhängigen Transaktion, die zur Übertragung von der Verbindung ausgewählt ist, mit einem Eintrag in dem Verfolgungspuffer übereinstimmt. Diese Analyse bestimmt somit, ob die Adresse dieser Transaktion mit irgendwelchen aktuellen anhängigen Sperroperationen in Konflikt geraten würde. Wenn es keinen Konflikt gibt, geht die Steuerung zu Block 180, wo die Transaktion entlang der Verbindung gesendet werden kann, da in diesem Fall die Transaktion keine gesperrte Adresse stört.
  • Ansonsten bedeutet dies, wenn die Adresse mit einem Eintrag in dem Verfolgungspuffer übereinstimmt, dass ein Konflikt auftreten würde, und dementsprechend geht die Steuerung zu Block 170, wo verhindert werden kann, dass diese Transaktion auf der Verbindung gesendet wird, während die Konfliktadresse in einem Eintrag in dem Verfolgungspuffer präsent bleibt. Man beachte, dass von beiden Blöcken 170 und 180 die Steuerung zu Raute 130 geht, wie oben erörtert. Obwohl mit dieser speziellen Implementierung in der Ausführungsform von 1 gezeigt, versteht es sich, dass der Schutzumfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
  • Um einen Betrieb gemäß einer Ausführungsform der vorliegenden Erfindung darzustellen, wird auf 2 Bezug genommen, die ein Flussdiagramm einer gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführten Signalisierung zeigt. Wie in 2 gezeigt ist, sind drei Agenten vorhanden, nämlich ein Anforderungsprozessor (PROC1), ein Peer-Prozessor (PROC2) und ein Stilllegungs-Master, der in der Ausführungsform von 2 ein E/A-Hub sein kann. Obwohl mit nur drei derartigen Agenten gezeigt, versteht sich, dass der Schutzbereich der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, und in vielen Ausführungsformen mehr als zwei Bearbeitungsknoten und mehr als ein Stillungs-Master vorhanden sein können. Während die Peer- und Anforderungsagenten als Prozessoren gezeigt sind, versteht es sich ferner, dass der Schutzbereich der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist und in anderen Ausführungsformen andere Geräte, wie zum Beispiel Steuerungen, Grafikchips usw. auch Agenten sein können.
  • Wie in 2 zu sehen ist, können Operationen beginnen, wenn der Anforderer eine Verarbeitungssperranforderung (ProcLock) initiiert, die zum Stilllegungs-Master gerichtet ist. Gemeinsam mit dieser Sperranforderung wird eine Adresse für die Sperranforderung gesendet. Das heißt, statt dass einfach eine Gesamtsperre angefordert wird, die somit bewirkt, dass alle Agenten entlang deren Verbindungen deren Betrieb ruhen lassen, dient die Anforderung für eine Sperrung nur eines bestimmten Speicherbereiches, der durch die Adresse repräsentiert wird.
  • Wie man sieht, sendet der Master, in Antwort auf den Empfang dieser Anforderung in dem Stilllegungs-Master, eine Sperrnachricht an die Agenten des Systems. Wie speziell in 2 zu sehen ist, kann diese Sperrnachricht (StopReq1) (gemeinsam mit der Adresse, für die die Sperrung durchgeführt wird) zum Peer-Agenten gesendet werden, und ferner kann diese Sperrnachricht auch zum Anforderer gesendet werden. In Antwort auf den Empfang dieser Sperrnachricht kann der Peer-Agent einen Eintrag in seinen Sperrverfolgungspuffer schreiben, um anzuzeigen, dass diese Adresse einer Sperrung unterliegt. Wenn dies geschehen ist, kann der Peer-Agent eine Bestätigung zum Stilllegungs-Master zurücksenden (nämlich eine Abschlussnachricht (CmpD)). Wie ferner ersichtlich ist, kann der Anforderer auch eine Bestätigung dieser Nachricht senden.
  • Dann kann der Stilllegungs-Master eine weitere Sperrnachricht an die Agenten senden, die zum Zweck der Vermeidung von Deadlock verwendet werden kann. Es ist zu beachten, dass dieser Sperrnachricht (StopReq2) keine zugehörige Adresse folgt. Bei Bestätigung des Empfangs dieser Sperrnachricht durch die Agenten kann nun eine Sperrphase eintreten. Das heißt, dass der Anforderer seine gewünschte atomare Operation durchführen kann, da sichergestellt ist, dass keine anderen Agenten auf die Adresse zugreifen oder im Begriff sind, darauf zuzugreifen. Um die Sperrphase zu beginnen, sendet der Stilllegungs-Master eine Bestätigung an den Anforderer. Bei Empfangen dieser Bestätigung kann der Anforderer seiner atomare Operation durchführen, die in der gezeigten Ausführungsform ein atomares Lesen-Modifizieren-Schreiben sein kann, bei der Daten an der Adresse gelesen werden, die Daten von dem Anforderer modifiziert werden und die modifizierten Daten dann wieder zurück zu ihrem Ursprung geschrieben werden. Dies ist in der 2 als ein nicht kohärentes Lesen (NcRead)), gefolgt von einer Datenrückgabe (DataNc), gezeigt. Danach kann der Anforderer seine Modifikationen der Daten vornehmen und dementsprechend die Daten zurückschreiben (als ein nicht kohärentes Schreiben (NcWr)).
  • Es ist zu beachten, dass während der Sperrphase der Peer-Agent eine oder mehrere Transaktionen senden kann, solange die mit diesen Transaktionen verbundenen Adressen nicht den Adressen entsprechen, die in Einträgen seines Sperrverfolgungspuffers vorhanden sind. Solange dies der Fall ist, kann der Peer-Agent eine oder mehrere Transaktionen während dieser Sperrphase senden.
  • Wenn die modifizierten Schreibdaten von dem Stilllegungs-Master empfangen worden sind, kann er ein „Abschluss” zum Anforderer zurücksenden, was bewirkt, dass der Anforderer eine Entsperranforderungsnachricht sendet, um dadurch die Sperrphase zu beenden. Wie in 2 gezeigt ist, kann dementsprechend der Stilllegungs-Master eine Freigabenachricht an die Agenten des Systems senden. Wie in 2 gezeigt ist, kann insbesondere diese Freigabenachricht (StartReq1) gemeinsam mit oder gefolgt von der Adresse gesendet werden. Als Reaktion auf den Empfang dieser Freigabenachricht kann der Peer seinen Sperrverfolgungspuffereintrag, der mit dieser Adresse verbunden ist, löschen und eine Abschlussnachricht senden. Einer Bestätigung dieser Operation kann sich eine weitere Freigabenachricht an die Systemagenten anschließen. Obwohl mit spezieller Implementierung in der Ausführungsform der 2 gezeigt, versteht sich, dass der Schutzumfang der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • Nunmehr auf 3 bezugnehmend, ist dort ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 3 gezeigt ist, kann der Prozessor 300 ein Mehrkernprozessor mit einer Vielzahl von Kernen 310 a310 n sein. In einer Ausführungsform kann jeder Kern konfiguriert sein, um bei mehreren Spannungen und/oder Frequenzen zu arbeiten, und, wie angewiesen, in einen Turbomodus überzugehen. Die zahlreichen Kerne können über eine Verbindung 315 mit einem Systemagenten oder Nicht-Kern 320 gekoppelt sein, der zahlreiche Komponenten enthält. Wie man sieht, kann der Nicht-Kern 320 einen gemeinsamen Cache 330 enthalten, der ein Last-Level-Cache sein kann. Zusätzlich kann der Nicht-Kern einen integrierten Speicherkontroller 340, zahlreiche Schnittstellen 350 und eine Leistungsregeleinheit 355 enthalten.
  • Immer noch auf 3 bezugnehmend, enthält der Nicht-Kern ferner einen Cache-Controller 335, der Kohärenzoperationen und Verwaltung von gemeinsamen Cache 330 steuern kann. Zusätzlich kann der Cache-Controller 335 einen Sperrverfolgungspuffer 337 enthalten, der verwendet werden kann, um Einträge zu speichern, um Stellen bzw. Bereiche im Systemspeicher zu identifizieren, die anhängigen Sperrungen unterliegen. Insbesondere kann der Sperrverfolgungspuffer 337, wie oben erörtert, eine Vielzahl von Einträgen enthalten, wobei jeder davon eine Adresse speichert, die mit einer empfangenen Sperrnachricht verbunden ist, die zum Prozessor gesendet werden kann, wenn ein Stilllegungs-Master einem bestimmten Agenten eine Sperre für eine Adresse auferlegt, die einen Speicherbereich repräsentiert.
  • Der Cache-Controller 335 kann ferner eine Sperrüberwachungslogik 339 enthalten, die eintreffende Nachrichten zum Prozessor überwachen kann, um zu bestimmen, ob irgendwelche Sperrnachrichten empfangen worden sind, und falls ja, zu bewirken, dass eine Adresse, die mit der Nachricht verbunden ist, in dem Sperrverfolgungspuffer 337 gespeichert wird. Zusätzlich kann die Sperrüberwachungslogik 339 bewirken, dass ein Eintrag gelöscht wird, wenn eine bestimmte Sperre aufgehoben worden ist. Darüber hinaus kann die Sperrüberwachungslogik 339 ferner dabei helfen, ausgehende Transaktionen vom Prozessor zu verarbeiten, sodass die Logik durch Bezugnahme auf die Einträge in dem Sperrverfolgungspuffer 337 bestimmen kann, ob eine Adresse einer bestimmten Transaktion einer anhängigen Sperroperation unterliegt, und die Übertragung einer Transaktion verhindern kann, wenn ein Konflikt auftreten würde.
  • Unter weiterer Bezugnahme auf 3 kann der Prozessor 300 mit einem Systemspeicher 360, zum Beispiel über einen Speicherbus, kommunizieren. Zusätzlich kann durch Schnittstellen 350 eine Verbindung mit zahlreichen Komponenten außerhalb des Chips (offchip), wie zum Beispiel Peripheriegeräten, Massenspeicher usw., hergestellt werden. Während mit dieser speziellen Implementierung in der Ausführungsform von 3 gezeigt, ist der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt. Es ist auch zu beachten, dass der Prozessor und Speicher von 3 ein einziger Mehrkernprozessor und entsprechender lokaler Speicher eines Multiprozessorsystems mit mehreren Prozessoren und Speichern sein.
  • Ausführungsformen können in vielen verschiedenen Systemtypen enthalten sein, die mit zahleichen Systemagenten, wie zum Beispiel Prozessorsockel, Chipsätze, Speicher, unter anderem Systemagenten, die über Punkt-zu-Punkt Verbindungen oder andere seriell basierte Verbindungen gekoppelt sind, gestaltet sein können.
  • 4 zeigt ein Blockdiagramm eines Systems, dass über PtP-Verbindungen miteinander gekoppelt sein kann. Wie in 4 gezeigt ist, kann das System 400 mehrere Prozessorsockel, nämlich Prozessorsockel 420a420d (allgemein Prozessorsockel 420), enthalten. Jeder Prozessorsockel kann ein Mehrkernprozessor sein, der einen Verfolgungspuffer und Logik gemäß einer Ausführungsform der vorliegenden Erfindung enthält, um Adressen zu überwachen, die Sperren unterliegen, und Transaktionsübertragung entsprechend während Sperrphasen zu steuern.
  • Weiterhin auf 4 bezugnehmend, enthält das System 400 ferner Chipsatzkomponenten. Wie in 4 gezeigt ist, enthält das System 400 insbesondere einen ersten Hub-Agenten 445 und einen zweiten Hub-Agenten 450, von denen beide IOHs entsprechen können. Solche Hub-Agenten können verwendet werden, um das System 400 mit zahlreichen Peripheriegeräten, Netzwerken oder anderen derartigen Systemen zu koppeln.
  • Um eine Kommunikation zwischen den zahlreichen Komponenten des Systems 400 zu ermöglichen, können zahlreiche Punkt-zu-Punkt-Verbindungen vorhanden sein, um die Komponenten miteinander zu koppeln. Wie in 4 gezeigt ist, kann jeder Prozessorsockel 420 insbesondere eine Schnittstelle zu drei Verbindungen mit den anderen Prozessorsockeln enthalten. Ferner können Verbindungen zu einem der ersten und zweiten Hub-Agenten 445 und 450 ferner pro Prozessorsockel vorgesehen sein. Dementsprechend kann der erste Prozessorsockel 420a eine Schnittstelle zu Verbindungen 430, 432 und 436 zwischen sich selbst und zweiten, dritten und vierten Prozessorsockeln 420b–d bereitstellen. Der erste Prozessorsockel 420a stellt ferner eine Schnittstelle zu einer Verbindung 442 bereit, die zwischen ihm und dem ersten Hub-Agenten 445 gekoppelt ist. In ähnlicher Weise ist der zweite Prozessorsockel 420b mit dritten und vierten Prozessorsockeln 420c und 420d über Verbindungen 434 bzw. 438 gekoppelt und ferner mit dem ersten Hub-Agenten 445 über die Verbindung 444 gekoppelt. In ähnlicher Weise sind dritte und vierte Prozessorsockel 420c und 420d über eine Verbindung 435 gekoppelt, während beide Prozessorsockel mit dem zweien Hub-Agenten 450 über Verbindungen 446 bzw. 448 kommunizieren. Während mit dieser speziellen Implementierung in der Ausführungsform von 4 beschrieben, versteht es sich, dass der Schutzbereich der vorliegenden Erfindung nicht in der Form beschränkt ist.
  • Ausführungsformen können auch in anderen Systemen implementiert sein. Nunmehr auf 5 bezugnehmend, ist dort ein Blockdiagramm eines Systems gemäß einer weiteren Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 5 gezeigt ist, kann ein Multiprozessorsystem 500 eine Vielzahl von Prozessoren 510 1510 n enthalten, von denen jeder ein Mehrkernprozessor sein kann, der einen Verfolgungsspeicher und Logik gemäß einer Ausführungsform der vorliegenden Erfindung enthält, um Adressen zu überwachen, die Sperren unterliegen. Wie ersichtlich ist, kann jeder der Prozessoren mit jedem anderen Prozessor durch eine PtP-Verbindung verbunden sein. Zusätzlich kann jeder Prozessor 510 mit einem lokalen Teil bzw. Abschnitt eines Systemspeichers, nämlich lokalen Speichern 520 1520 n, gekoppelt sein.
  • Jeder Prozessor 510 kann wiederum an einen IOH 530 gekoppelt sein, der in zahlreichen Ausführungsformen als ein Stillungs-Master agieren kann, um somit eintreffende Sperranforderungen von den verschiedenen Prozessoren zu empfangen.
  • Wenn solche Anforderungen mit einer Angabe einer Region, die gesperrt werden soll, empfangen werden, kann der IOH 530 korrespondierende Sperrnachrichten zu den Prozessoren senden, die mit der Adresse verbunden sind, um somit zu bewirken, dass diese Stellen bzw. Bereiche in einem Verfolgungspuffer der Prozessoren bleiben und überwacht werden. Auf diese Weise können die anderen Prozessoren nicht im Zusammenhang stehende Transaktionen (das heißt, nicht mit der Adresse der Sperrtransaktionen im Zusammenhang stehend) während einer Sperrphase senden, um dadurch Systemlatenz zu reduzieren. Wie ferner ersichtlich ist, kann der IOH 530 mit anderen Komponenten des Systems koppeln. In der gezeigten Ausführungsform kann der IOH 530 mit einem Peripherie-Controller-Hub 540 koppeln, der wiederum mit einem oder mehreren Peripheriegeräten 550 koppeln kann. Obwohl auf dieser hohen Ebene in der Ausführungsform von 5 gezeigt, versteht es sich, dass der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • Ausführungsformen können in Code implementiert und auf einem nicht flüchtigen Speichermedium mit darauf gespeicherten Anweisungen gespeichert werden, das verwendet werden kann, um ein System zu programmieren, um diese Anweisungen auszuführen. Das Speichermedium kann, ohne aber darauf beschränkt zu sein, jede Art von Disk, einschließlich Floppy-Disk, optische Platten, Festkörperlaufwerke (SSDs), Kompaktdisk Nur-Lese-Speicher (CD-ROM), Kompaktdisk Rewritables (CD-RWs) und magnetooptische Platten, Halbleitereinrichtungen, wie zum Beispiel Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs), wie zum Beispiel dynamischer Direktzugriffsspeicher (DRAMs), statische Direktzugriffsspeicher (SRAMs), löschbare programmierbare Nur-Lese-Speicher (EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), magnetische oder optische Karten, oder jede andere Art von Medien, die zum Speichern von elektronischen Befehlen bzw. Anweisungen geeignet sind, einschließen.
  • Während die vorliegende Erfindung unter Bezugnahme auf eine begrenzte Anzahl von Ausführungsformen beschrieben worden ist, werden Fachleute auf dem Gebiet erkennen, dass zahlreiche Modifikationen und Variationen an selbigen vorgenommen werden können. Es ist beabsichtigt, dass die beigefügten Ansprüche solche Modifikationen und Variationen, die in den wahren Geist und Schutzbereich der vorliegenden Erfindung fallen, abdecken.

Claims (20)

  1. Verfahren, umfassend: Empfangen einer Sperrnachricht für eine erste Adresse in einem ersten Prozessor von einem Stilllegungs-Master, der mit dem ersten Prozessor gekoppelt ist, wobei die Sperrnachricht angibt, dass ein Anforderungsagent in eine Sperrphase in Bezug auf die erste Adresse eintreten soll; Schreiben eines Eintrags in einen Verfolgungspuffer des ersten Prozessors für die erste Adresse; und Ermöglichen, dass eine Transaktion vom ersten Prozessor über eine Verbindung gesendet wird, wenn eine Adresse der Transaktion nicht mit einer in dem Verfolgungspuffer gespeicherten Adresse übereinstimmt.
  2. Verfahren nach Anspruch 1, ferner umfassend Empfangen einer Freigabenachricht für die erste Adresse von dem Stilllegungs-Master.
  3. Verfahren nach Anspruch 2, ferner umfassend Löschen des Eintrags in dem Verfolgungspuffer, der die erste Adresse speichert, in Reaktion auf den Empfang der Freigabenachricht für die erste Adresse.
  4. Verfahren nach Anspruch 1, ferner umfassend Verhindern, dass die Transaktion vom ersten Prozessor gesendet wird, wenn die Adresse der Transaktion mit einem Eintrag in den Verfolgungspuffer übereinstimmt.
  5. Verfahren nach Anspruch 2, wobei die Sperrnachricht eine Stoppanforderungsnachricht für die erste Adresse umfasst.
  6. Verfahren nach Anspruch 5, wobei die Freigabenachricht eine Startanforderungsnachricht und die erste Adresse umfasst.
  7. Verfahren nach Anspruch 1, ferner umfassend Senden einer Bestätigung zum Stilllegungs-Master nach dem Schreiben des Eintrags in den Verfolgungspuffer für die erste Adresse.
  8. Verfahren nach Anspruch 7, wobei der Anforderungsagent eine atomare Operation auf Daten an der ersten Adresse während der Sperrphase durchführt.
  9. Verfahren nach Anspruch 8, ferner umfassend Senden einer mit einer zweiten Adresse verbundenen Transaktion vom ersten Prozessor während der Sperrphase.
  10. Vorrichtung, umfassend: einen Mehrkernprozessor mit einer Vielzahl von Kernen und einem Cache-Speicher, wobei der Mehrkernprozessor ferner einen Sperrverfolgungspuffer, der eine Vielzahl von Einträgen aufweist, wobei jeder zum Speichern einer mit dem Speicherbereich, der Gegenstand einer Sperroperation ist, dient, und eine erste Logik enthält, um zu ermöglichen, dass eine Transaktion für eine Adresse, die nicht in einem der Vielzahl von Einträgen des Sperrverfolgungspuffers vorhanden ist, vom Mehrkernprozessor während einer Sperrphase von mindestens einer der Sperroperationen gesendet wird.
  11. Vorrichtung nach Anspruch 10, wobei die erste Logik zum Schreiben eines ersten Eintrags in den Sperrverfolgungspuffer mit einer ersten Adresse in Reaktion auf den Empfang einer Sperrnachricht mit der ersten Adresse dient.
  12. Vorrichtung nach Anspruch 11, wobei die erste Logik zum Empfangen der Sperrnachricht von einem Stilllegungs-Master dient, wobei die Sperrnachricht anzeigt, dass ein Agent eine atomare Operation auf Daten an der ersten Adresse durchführen soll.
  13. Vorrichtung nach Anspruch 12, wobei der Agent die atomare Operation während der Sperrphase der Sperroperation durchführen soll.
  14. Vorrichtung nach Anspruch 13, wobei die erste Logik den ersten Eintrag in dem Sperrverfolgungspuffer nach Abschluss der atomaren Operation löschen soll.
  15. Vorrichtung nach Anspruch 12, wobei die erste Logik ermöglichen soll, dass eine Vielzahl von Transaktionen vom Mehrkernprozessor während der Sperrphase gesendet wird, wobei jede der Vielzahl von Transaktionen für eine Adresse ist, die in keinem der Vielzahl von Einträgen des Sperrverfolgungspuffers vorhanden ist.
  16. System, umfassend: einen ersten Prozessor zum Ausführen von Anweisungen und Ausgeben einer Anforderung einer Sperre auf mit einer ersten Adresse verbundenen Daten; einen zweiten Prozessor, der mit dem ersten Prozessor gekoppelt ist, um Anweisungen auszuführen, und einen Verfolgungspuffer mit einer Vielzahl von Einträgen enthält, wobei jeder zum Speichern einer mit einer Sperre verbundenen Adresse dient; und einen Stilllegungs-Master, der mit den ersten und zweiten Prozessoren gekoppelt ist und zum Empfangen der Sperranforderung und zum Ausgeben einer Sperrnachricht dient, um zu bewirken, dass der zweite Prozessor die erste Adresse in einem ersten Eintrag des Verfolgungspuffers speichert, wobei der zweite Prozessor zum Senden einer mit einer zweiten Adresse, die nicht in dem Verfolgungspuffer vorhanden ist, verbundenen Transaktion während der mit der ersten Adresse verbundenen Sperre dient.
  17. System nach Anspruch 16, wobei der zweite Prozessor ferner eine Logik zum Speichern der ersten Adresse in dem ersten Eintrag des Verfolgungspuffers in Reaktion auf den Empfang der Sperrnachricht aufweist.
  18. System nach Anspruch 17, wobei die Logik des zweiten Prozessors zum Löschen des ersten Eintrags im Verfolgungspuffer, nachdem die Sperre abgeschlossen ist, dient.
  19. System nach Anspruch 17, wobei der erste Prozessor zum Empfangen einer Bestätigung der Sperranforderung vom Stilllegungs-Master und zum Durchführen einer atomaren Operation auf den mit der ersten Adresse verbundenen Daten in Reaktion auf die Bestätigung und danach zum Ausgeben einer Anforderung zum Aufheben der Sperre dient.
  20. System nach Anspruch 19, wobei die Logik des zweiten Prozessors zum Empfangen einer Freigabenachricht für die erste Adresse von dem Stilllegungs-Master und Löschen des ersten Eintrags des Verfolgungspuffers in Reaktion auf die Freigabenachricht dient.
DE201211003462 2011-08-22 2012-08-15 Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur Pending DE112012003462T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/214,384 US9015436B2 (en) 2011-08-22 2011-08-22 Performing an atomic operation without quiescing an interconnect structure
US13/214,384 2011-08-22
PCT/US2012/050828 WO2013028414A2 (en) 2011-08-22 2012-08-15 Performing an atomic operation without quiescing an interconnect structure

Publications (1)

Publication Number Publication Date
DE112012003462T5 true DE112012003462T5 (de) 2014-05-08

Family

ID=47745372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201211003462 Pending DE112012003462T5 (de) 2011-08-22 2012-08-15 Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur

Country Status (4)

Country Link
US (1) US9015436B2 (de)
CN (1) CN103748574B (de)
DE (1) DE112012003462T5 (de)
WO (1) WO2013028414A2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176111B2 (en) * 2013-03-15 2021-11-16 Nuodb, Inc. Distributed database management system with dynamically split B-tree indexes
KR102094475B1 (ko) 2013-04-29 2020-03-27 삼성전자주식회사 멀티-트랜잭션의 아토믹 라이트 방법
KR102165775B1 (ko) * 2013-10-25 2020-10-14 어드밴스드 마이크로 디바이시즈, 인코포레이티드 버스 잠금 및 변환 색인 버퍼 무효화를 수행하기 위한 방법 및 장치
US9652385B1 (en) * 2015-11-27 2017-05-16 Arm Limited Apparatus and method for handling atomic update operations
US11157407B2 (en) * 2016-12-15 2021-10-26 Optimum Semiconductor Technologies Inc. Implementing atomic primitives using cache line locking
US10146440B2 (en) * 2016-12-20 2018-12-04 Intel Corporation Apparatus, system and method for offloading collision check operations in a storage device
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US11055141B2 (en) * 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11593275B2 (en) 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors
US12013791B2 (en) 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0664567B2 (ja) * 1989-12-25 1994-08-22 株式会社日立製作所 多重プロセッサシステム
US5404482A (en) 1990-06-29 1995-04-04 Digital Equipment Corporation Processor and method for preventing access to a locked memory block by recording a lock in a content addressable memory with outstanding cache fills
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US7137118B2 (en) 2002-09-27 2006-11-14 Texas Instruments Incorporated Data synchronization hardware primitive in an embedded symmetrical multiprocessor computer
KR100614639B1 (ko) * 2003-07-24 2006-08-22 삼성전자주식회사 쓰기 방지 가능한 버퍼 메모리를 갖는 메모리 장치 및그것을 포함하는 정보 처리 시스템
US8347010B1 (en) * 2005-12-02 2013-01-01 Branislav Radovanovic Scalable data storage architecture and methods of eliminating I/O traffic bottlenecks
KR101321369B1 (ko) * 2007-03-21 2013-10-28 삼성전자주식회사 디스크 블록 액세스 처리 방법 및 시스템
JP2009093344A (ja) 2007-10-05 2009-04-30 Denso Corp マイクロコンピュータ、その使用方法、及び電子制御装置

Also Published As

Publication number Publication date
WO2013028414A2 (en) 2013-02-28
US20130054915A1 (en) 2013-02-28
US9015436B2 (en) 2015-04-21
CN103748574B (zh) 2016-07-13
CN103748574A (zh) 2014-04-23
WO2013028414A3 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
DE112012003462T5 (de) Durchführung einer atomaren Operation ohne Stilllegung einer Verbindungsstruktur
DE112012005210B4 (de) Bereitstellen eines gemeinsamen Caching-Agenten für ein Kern- und integriertes Ein-/Ausgabe-(IO)-Modul
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE112015004336B4 (de) Konfigurationsbasierte Auswahl eines Cachekohärenz-Protokolls
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE102009022152B4 (de) Verwenden von Kritikaliätsinformationen zum Routen von Cache-Kohärenz-Kommmunikationen
DE102009022151B4 (de) Verringern von Invalidierungstransaktionen aus einem Snoop-Filter
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE112005002180T5 (de) Lösen von Cachekonflikten
DE69722512T2 (de) Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll
DE69724353T2 (de) Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll
DE112009000373T5 (de) Technik, um Information zwischen unterschiedlichen Kohärenz-Domains von Caches zu nutzen
DE102021121062A1 (de) System, vorrichtung und verfahren zur dynamischen bereitstellung kohärenter speicherdomänen
DE102013201079A1 (de) Mechanismus des Weiterleitungsfortschritts für Speichervorgänge beim Vorhandensein einer Überlastung in einem System, das Belastungen durch Zustandsänderungen begünstigt
DE10316725B4 (de) Datenverwaltungsverfahren für ein Distributed Shared Memory-System
DE60311302T2 (de) Verfahren und vorrichtung zur verriegelung von mehreren clustern
DE112006003917T5 (de) Verfahren, Gerät und System angewendet in einem Cachespeicher-Kohärenzprotokoll
DE102007030116A1 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE112013000891T5 (de) Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE112015004750T5 (de) Eine beinahe faire aktive sperre
DE112011104329T5 (de) Mehrkernsystem und Verfahren zum Lesen der Kerndaten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: BOEHMERT & BOEHMERT ANWALTSPARTNERSCHAFT MBB -, DE

Representative=s name: BOEHMERT & BOEHMERT, DE

R016 Response to examination communication