DE112012004926B4 - Gemeinsame Speichernutzung durch Prozessoren - Google Patents

Gemeinsame Speichernutzung durch Prozessoren Download PDF

Info

Publication number
DE112012004926B4
DE112012004926B4 DE112012004926.8T DE112012004926T DE112012004926B4 DE 112012004926 B4 DE112012004926 B4 DE 112012004926B4 DE 112012004926 T DE112012004926 T DE 112012004926T DE 112012004926 B4 DE112012004926 B4 DE 112012004926B4
Authority
DE
Germany
Prior art keywords
processor
interfaces
request
control unit
memory
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
DE112012004926.8T
Other languages
English (en)
Other versions
DE112012004926T5 (de
Inventor
Victoria Caparros Cabezas
Rik Jongerius
Martin Leo Schmatz
Phillip Stanley-Marbell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012004926T5 publication Critical patent/DE112012004926T5/de
Application granted granted Critical
Publication of DE112012004926B4 publication Critical patent/DE112012004926B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

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

Abstract

Durch eine Logik einer Computerspeicher-Steuereinheit realisiertes Verfahren, wobei:- die Steuereinheit mindestens eine erste Schnittstelle und mindestens zwei zweite Schnittstellen aufweist und eingerichtet ist, verbunden zu werden mit:o einem physischen Hauptspeicher über die erste Schnittstelle, undo einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren über die mindestens zwei zweiten Schnittstellen,- die Logik mit der ersten und den zweiten Schnittstellen betrieblich verbunden ist, und das Verfahren aufweist:o über die zweiten Schnittstellen von einem ersten Prozessor des Satzes eine Anfrage zu empfangen (S10), auf Daten des physischen Hauptspeichers zuzugreifen,o Bewerten (S20), ob ein zweiter Prozessor zuvor auf die durch den ersten Prozessor angefragten Daten zugegriffen hat, undo Zurückstellen (S30) der Anfrage vom ersten Prozessor, wenn die Bewertung (S20) positiv ausfällt, oder Gewähren (S41) der Anfrage vom ersten Prozessor, wenn die Bewertung negativ ausfällt;o während des Zurückstellens (S30) der Anfrage vom ersten Prozessor, Senden einer Anfrage an den zweiten Prozessor (S35), um Cachespeicherzeilen, die zu den ersten Prozessor angefragten Daten zugehörig sind, auf den physischen Hauptspeicher zurückzuschreiben;o während des Zurückstellens (S30) der Anfrage vom ersten Prozessor und nach dem Senden (S35) der Anfrage an den zweiten Prozessor, die Steuereinheit anzuweisen (S36), die angefragten Cachespeicherzeilen, die durch die Steuereinheit vom zweiten Prozessor empfangen werden, an den physischen Hauptspeicher zu übermitteln; undo die Anfrage vom ersten Prozessor zu gewähren (S42), nachdem der zweite Prozessor alle angefragten Cachespeicherzeilen in den physischen Hauptspeicher zurückgeschrieben hat,o wobei mindestens zwei der N ≥ 2 nicht-zusammenarbeitenden Prozessoren sich jeweils voneinander im Hinblick auf eine virtuelle Speicher-Schnittstelle unterscheiden, welche im Verhältnis zueinander unterschiedliche physische Seitengrößen haben; undo wobei die Schnittstellen sowohl Hardwareverbindungen als auch Software-Elemente zum Interpretieren von Steuersignalen umfassen, wobei die Hardwareverbindungen und die Software-Elemente ausschließbar sind, so dass Speicher durch mehrere Prozessoren gemeinsam nutzbar sind,- wobei die Granularität der Zugriffsverwaltung auf Bereichen (Blöcken oder Seiten) physischer Speicheradressen beruht und die Steuereinheit die Anfragen durch jeden Prozessor in die physische Seitennummer der Steuereinheit in einer Datenbank übersetzt, um eine gemeinsame Steuereinheiten-Seitengröße zu wählen.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft das Gebiet der Computerwissenschaften und genauer ein durch eine Logik einer Computerspeicher-Steuereinheit realisiertes Verfahren zur gemeinsamen Speichernutzung durch Prozessoren, eine Computerspeicher-Steuereinheit, die eine solche Logik aufweist, ein Computerprogramm, das Anweisungen zum Einrichten einer solchen Logik aufweist, und ein Datenspeichermedium mit einem darauf gespeicherten solchen Programm.
  • HINTERGRUND
  • Architekturen mit gemeinsam genutztem Speicher ermöglichen es mehreren Prozessoren, Bereiche ihrer Adressräume gemeinsam zu nutzen. Vorhandene Hardware-Architekturen mit gemeinsam genutztem Speicher und deren entsprechende Protokolle zum gemeinsamen Nutzen von Speicher gehen von einem Satz zusammenarbeitender Prozessoren aus. Eine bestehende Möglichkeit liegt darin, dass alle Prozessoren eine gleiche Speicherzugriff-Schnittstellen-Hardware realisieren, bei der es sich nicht um einen Standard handelt, die jedoch zur Zusammenarbeit zwischen den Prozessoren eingerichtet ist, damit sie in einer reibungslosen Weise auf den gemeinsam genutzten Speicher zugreifen können. Eine weitere bestehende Möglichkeit liegt darin, dass alle Prozessoren auf ihnen installierte spezielle Software-Komponenten besitzen, mit denen sie miteinander oder mit einer zentralen Hardware Daten austauschen können, um zum Emulieren eines virtuellen gemeinsam genutzten Speichers zusammenzuarbeiten. Diese bestehenden Möglichkeiten erfordern auf jedem den Speicher gemeinsam nutzenden Prozessor eine spezielle installierte Komponente: in einem Fall eine spezielle Hardware-Schnittstelle, die zur Zusammenarbeit eingerichtet ist, oder im anderen Fall spezifische Software und einen virtuellen gemeinsam genutzten Speicher, der unter Verwendung der nicht gemeinsam genutzten Speicher der einzelnen Prozessoren emuliert wird. Dadurch sind solche Architekturen in ersterem Fall kostenintensiv und kompliziert zu erreichen, oder sie hinken in letzterem Fall der Leistung von physisch gemeinsam genutzten Speichern hinterher.
  • Mit der wachsenden Popularität heterogener Architekturen besteht ein gesteigertes Interesse an der Realisierung von Mechanismen, mit denen nicht-homogene Architekturen Prozesse ausführen können, die über eine gemeinsam genutzte Speicherregion Daten austauschen können, auch wenn die fraglichen Prozessoren nicht dieselbe (oder keine) Schnittstelle mit einem Protokoll für gemeinsam genutzten Speicher realisieren.
  • Aus US 7 032 079 B1 sind ein System und ein Verfahren zur Beschleunigung von Leseanfragen in einem Mehrprozessorsystem bekannt. Bei Eingang einer Leseanfrage wird vom Hauptspeicher ermittelt, ob es eine aktuellere Kopie der angeforderten Daten in einem anderen Speicher des Systems gibt. In diesem Fall wird eine snoop-Anfrage abgesendet, um die aktuelleren Daten in den Hauptspeicher zu holen.
  • In Jacob, B. et al.; „virtual memory in contemporary microprocessors", IEEE Micro, 1998, 18. Jg., Nr. 4, S 60 - 75, wird ein Überblick über kommerzielle Speicheraufbauten gegeben, bei denen jede Prozessorarchitektur die Gemeinsamkeiten virtueller Speicher unterstützt unter Berücksichtigung von Adressraumschutz, gemeinsamer Speicher und große Adressräume.
  • Ausgehend von diesem Stand der Technik stellt sich die Erfindung die Aufgabe, die gemeinsame Nutzung von Speicher durch mehrere Prozessoren zu verbessern.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Aufgabe wird erfindungsgemäß gelöst durch ein durch eine Logik einer Computerspeicher-Steuereinheit realisiertes Verfahren nach Anspruch 1, ein System, das eine Computerspeicher-Steuereinheit aufweist, nach Anspruch 6 und ein nicht-flüchtiges Datenspeichermedium nach Anspruch 8. Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.
  • In seinen bevorzugten Ausführungsformen kann das Verfahren eines oder mehrere der folgenden Merkmale aufweisen:
    • - das Senden der Anfrage an den zweiten Prozessor wird über einen Interrupt-Kontaktstift des zweiten Prozessors durchgeführt;
    • - die Bewertung weist auf, in einer Datenbank der Steuereinheit zu prüfen, ob den durch den ersten Prozessor angefragten Daten ein zweiter Prozessor zugeordnet ist;
    • - das Verfahren weist weiterhin auf, in der Datenbank den ersten Prozessor den durch den ersten Prozessor angefragten Daten zuzuordnen;
    • - bei den zweiten Schnittstellen handelt es sich um Schnittstellen von dynamischem Speicher mit wahlfreiem Zugriff und doppelter Datenrate (double-data-rate dynamic random access memory (DDR DRAM)).
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein die Erfindung ausbildendes System und ein die Erfindung ausführender Prozess werden nun mittels eines nicht einschränkenden Beispiels und unter Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei:
    • - 1 einen Ablaufplan eines Beispiels des Verfahrens zeigt;
    • - 2 eine grafische Darstellung eines Systems zeigt, das die Computerspeicher-Steuereinheit aufweist.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Vorgeschlagen wird ein durch eine Logik einer Computerspeicher-Steuereinheit realisiertes Verfahren. Die Steuereinheit weist mindestens eine erste Schnittstelle und (mehrere) zweite Schnittstellen auf und ist eingerichtet, über die erste Schnittstelle mit einem physischen Hauptspeicher und über die zweiten Schnittstellen mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden zu werden. Die Logik ist mit der ersten Schnittstelle und den zweiten Schnittstellen betrieblich verbunden. Das Verfahren weist über die zweiten Schnittstellen ein Empfangen einer Anfrage, auf Daten des physischen Hauptspeichers zuzugreifen, von einem ersten Prozessor des Satzes auf. Das Verfahren weist zudem ein Bewerten auf, ob ein zweiter Prozessor zuvor auf die durch den ersten Prozessor angefragten Daten zugegriffen hat. Das Verfahren weist weiterhin ein Ablehnen der Anfrage vom ersten Prozessor auf, wenn die Bewertung positiv ausfällt, oder ein Gewähren der Anfrage vom ersten Prozessor, wenn die Bewertung negativ ausfällt.
  • Ein solches Verfahren erlaubt es über die zweiten Schnittstellen mit der Steuereinheit verbundenen N Prozessoren, einen über die erste Schnittstelle mit der Steuereinheit verbundenen Speicher in einer verbesserten Weise gemeinsam zu nutzen.
  • Bei der (Computerspeicher)-Steuereinheit handelt es sich um ein Hardware-Material, das geeignet ist, den Zugriff auf einen physischen Speicher durch eine Vielzahl von Prozessoren zu steuern, die möglicherweise in ein System, wie beispielsweise einen Computer, integriert sein können.
  • Die Steuereinheit weist mindestens eine erste Schnittstelle und zweite Schnittstellen auf. In anderen Worten: Die Steuereinheit weist einen ersten Satz von mindestens einer Schnittstelle (d.h. die „erste Schnittstelle“) und einen zweiten Satz von mindestens zwei Schnittstellen (die „zweiten Schnittstellen“) auf. Bei der ersten Schnittstelle auf der einen und den zweiten Schnittstellen auf der anderen Seite handelt sich bei allen um Werkzeuge zum Verbinden mit Hardware, welche Hardware-Elemente (wie beispielsweise Verbindungen) und Software-Elemente (wie beispielsweise ein Programm zum Interpretieren von durch die Steuereinheit über eine gegebene Schnittstelle empfangenen Signalen und/oder zum Übermitteln von Signalen über eine gegebene Schnittstelle) aufweisen, wobei sich die erste Schnittstelle und die zweiten Schnittstellen dahingehend unterscheiden, dass sie geeignet sind, die Steuereinheit mit unterschiedlichem Material zu verbinden. In der Tat ist die Steuereinheit einerseits eingerichtet, mit einem physischen Hauptspeicher (des Computers, sollte dies der Fall sein) über die erste Schnittstelle verbunden zu werden, die somit dafür geeignet ist. Andererseits ist die Steuereinheit eingerichtet, über die zweiten Schnittstellen mit Prozessoren verbunden zu werden. Es gibt mindestens zwei zweite Schnittstellen, so dass es insgesamt mindesten drei Schnittstellen gibt (mindestens eine erste Schnittstelle und mindestens zwei zweite Schnittstellen). Auf diese Weise kann die Steuereinheit mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden sein.
  • Bei dem Hauptspeicher kann es sich um eine einzelne Einheit mit einer der ersten Schnittstelle entsprechenden zweiten Schnittstelle handeln. Alternativ kann der Hauptspeicher mehrere Schnittstellen besitzen, wobei in diesem Fall die Steuereinheit möglicherweise mehrere erste Schnittstellen besitzt, oder der Hauptspeicher kann aus mehreren Einheiten bestehen, von denen jede eine oder mehrere Schnittstellen besitzt, wobei die Steuereinheit in diesem Fall mehrere erste Schnittstellen besitzt, d.h. mindestens eine pro Einheit.
  • Von den Prozessoren wird angenommen, dass sie nicht-zusammenarbeitend sind, da es sich bei ihnen um Standardprozessoren handeln kann. Zum Beispiel können die Prozessoren jede Hardware-Komponente ausschließen, die speziell für die Zusammenarbeit zwischen den Prozessoren entwickelt ist. Zudem können die Prozessoren darauf gespeicherte komplexe Software ausschließen, die konzipiert ist, die Datenübertragung zwischen den Prozessoren hinsichtlich einer Zusammenarbeit zu ermöglichen. Somit erlaubt das Verfahren ein gemeinsames Nutzen von Speicher durch mehrere Prozessoren in einer kostengünstigen und einfachen Weise. In einem Beispiel können die Prozessoren unterschiedliche Mikroarchitekturen und Definitionen virtueller Speicherschnittstellen aufweisen. Somit erlaubt das Verfahren ein gemeinsames Nutzen von Speicher durch mehrere Prozessoren, obwohl sich diese Prozessoren unterscheiden können. Bei den zweiten Schnittstellen kann es sich um Schnittstellen mit doppelter Datenrate handeln, was einen weithin bekannten Standard darstellt und somit kostengünstig und einfach zu realisieren ist. Zudem können sich mindestens zwei der zweiten Schnittstellen unterscheiden.
  • Das Verfahren deckt eine Hardware-Architektur und ein entsprechendes Zugriffsprotokoll ab, das es Prozessoren, die möglicherweise unterschiedliche Architekturen und virtuelle Speicherschnittstellen definieren, ermöglicht, durch eine gemeinsam genutzte Speicherregion Daten auszutauschen. Das Verfahren kann somit auf der Ebene von elektrischen und Protokoll-Standard-DRAM-Schnittstellen arbeiten. In einer Ausführungsform ist eine Schnittstelle mit doppelter Datenrate (double-data-rate (DDR)) durch ein Signal erweitert, das die Verfügbarkeit von Daten von DRAM-Arrays anzeigt. Vorhandene DDR-Schnittstellen verfügen bereits über analoge (jedoch optionale) DQS- und RDQS-Signale. Da diese Signale optional sind, gehen viele Realisierungen derzeit davon aus, dass Daten nach einer festen Verzögerung verfügbar sind. Das Verfahren beruht auf der Tatsache, dass Commodity-Prozessoren ungeachtet ihrer Architektur und Definition ihrer virtuellen Speicherschnittstelle auf Hauptspeicher über physische standardisierte Speicherschnittstellen zugreifen, wie beispielsweise die standardisierte JEDEC-DDR-Speicherschnittstelle.
  • Die Steuereinheit (die auch als die Kohärenzsteuereinheit (coherence control unit oder CCU) bezeichnet werden kann) ist somit mit jedem Prozessor und dem Hauptspeicher verbunden, wobei beide Verbindungen möglicherweise standardisierte Speicherschnittstellen verwenden, zum Beispiel die JEDEC-Standard-DDR-Speicherschnittstellen. Daher können sich alle hierin nachstehend erwähnten Speicheradressen auf physische DRAM-Adresse beziehen. Jede beliebige weitere Speicherschnittstelle, die von Prozessorarchitekturen und Speichermodulen weithin unterstützt wird, kann jedoch ebenfalls verwendet werden.
  • Die Steuereinheit weist weiterhin die Logik auf. Eine Logik weist Hardware mit Verarbeitungsfähigkeiten auf, die vorgegebenen Schemata folgen, z.B. dank in einem Speicher gespeicherter Anweisungen. Die Logik ist mit der ersten Schnittstelle und den zweiten Schnittstellen betrieblich verbunden. In anderen Worten: Die Logik hat Zugriff auf die Schnittstellen und kann somit Daten verarbeiten, die über die Schnittstelle bewegt werden. Die Logik kann somit durch die Steuereinheit von außerhalb der Steuereinheit über die Schnittstellen empfangene Daten empfangen und verarbeiten, und/oder die Logik kann die Steuereinheit anweisen, Daten über die Schnittstellen an Ziele außerhalb der Steuereinheit zu senden.
  • Das durch die Logik der Steuereinheit durchgeführte Verfahren wird nun unter Bezugnahme auf 1 beschrieben, die einen Ablaufplan eines Beispiels des Verfahrens darstellt.
  • Das Verfahren des Beispiels weist ein Verbleiben in einem Ruhezustand auf (S5). In solch einem Fall wartet die Logik auf das Auftreten des ersten aktiven Ereignisses des Verfahrens, bevor Aktionen durchgeführt werden. Zudem kann die Logik in den Ruhezustand zurückkehren, wenn sie ihre Aktionen beendet hat.
  • Das Verfahren weist über die zweiten Schnittstellen ein Empfangen (S10) einer Anfrage von einem ersten Prozessor des Satzes auf, um auf Daten des physischen Hauptspeichers zuzugreifen. In anderen Worten: Ein Prozessor des Satzes, der „erste“ Prozessor, benötigt Zugriff auf den physischen Hauptspeicher. Diese Anfrage wird durchgeführt, als ob der Prozessor direkt mit dem Hauptspeicher verbunden wäre. In anderen Worten: Der Prozessor „sieht“ die Steuereinheit nicht und handelt, als ob er direkt mit dem Hauptspeicher verbunden wäre, wie dies üblicherweise der Fall ist.
  • Das Verfahren weist dann ein Bewerten (S20) auf, ob ein zweiter Prozessor zuvor auf die durch den ersten Prozessor angefragten Daten zugegriffen hat. In anderen Worten: Die Logik überprüft, ob ein anderer Prozessor, der „zweite“ Prozessor, bereits auf dieselben Daten zugegriffen hat, die durch den ersten Prozessor angefragt werden. Im Beispiel weist die Bewertung (S20) auf, in einer Datenbank der Steuereinheit zu prüfen, ob den durch den ersten Prozessor angefragten Daten ein zweiter Prozessor zugeordnet ist. Die Steuereinheit kann somit solch eine Datenbank und damit einen dedizierten Speicher enthalten, um sie zu speichern (z.B. einen internen Speicher oder einen Teil des Hauptspeichers). Eine solche Datenbank kann aus einer Nachschlagetabelle bestehen, die einen Prozessor (z.B. eine Kennung eines Prozessors) Daten (z.B. einer Kennung von Daten) zuordnet. Diese ermöglicht es der Steuereinheit, Kollisionen zwischen Prozessoren zu vermeiden, die im Wesentlichen gleichzeitigen Zugriff auf dieselben Daten des Hauptspeichers erfragen.
  • Wenn die Bewertung (S20) positiv ausfällt (d.h. ein zweiter Prozessor zuvor Zugriff auf dieselben Daten angefragt hat, die nun durch den ersten Prozessor angefragt werden), kann es in der Tat eine Kollision geben (d.h. die zwei Prozessoren können an denselben Daten arbeiten und sie möglicherweise modifizieren, ohne die Modifikationen mit dem anderen zu teilen, oder sie lesen, während sie durch den anderen modifiziert werden, ohne zu wissen, dass sie modifiziert werden, und somit die Modifikationen nicht lesen). Somit weist das Verfahren in solch einem Fall ein Ablehnen (S30) (d.h. in einen Wartezustand setzen) der Anfrage vom ersten Prozessor auf. Dies verschafft Zeit zum Realisieren von Aktionen, um sicherzustellen, dass es zu keiner Kollision kommen wird und eine solche zu vermeiden. Andernfalls (d.h. wenn die Bewertung (S20) das Ergebnis ergibt, dass noch kein Prozessor die Daten angefragt hat) weist das Verfahren ein Gewähren (S41) der Anfrage vom ersten Prozessor auf, wenn die Bewertung negativ ausfällt.
  • Im Beispiel weist das Verfahren während des Ablehnens (S30) der Anfrage vom ersten Prozessor (d.h. während die Anfrage vom ersten Prozessor in einen Wartezustand versetzt ist) parallel ein Senden (S35) einer Anfrage an den zweiten Prozessor auf, Cachespeicherzeilen in den physischen Hauptspeicher zurückzuschreiben. Die Cachespeicherzeilen, die zurückgeschrieben werden müssen, können den durch den ersten Prozessor angefragten Daten zugehörig sein. In anderen Worten: Die Logik fordert den zweiten Prozessor, d.h. denjenigen, der auf dieselben Daten zugegriffen hat, die vom ersten Prozessor angefragt werden, auf, alle in seinem oder seinen Cachespeicher(n) gespeicherten Daten (oder nur die den angefragten Daten zugehörigen Daten) an die Steuereinheit zu senden. Dies kann über einen Interrupt-Kontaktstift des zweiten Prozessors erfolgen. Wenn solche Daten vorhanden sind (d.h. der zweite Prozessor seine Cachespeicherzeilen noch nicht zurückgeschrieben hat), überwacht die Logik den Empfang dieser Daten (im Ablaufplan nicht dargestellt) und weist (S36) die Steuereinheit an, die angefragten Cachespeicherzeilen, die durch die Steuereinheit vom zweiten Prozessor empfangen werden, an den physischen Hauptspeicher zu übermitteln. In anderen Worten: Die Logik stellt den Transfer der Daten an den Hauptspeicher sicher. Somit wird die Arbeit an den Daten, die durch den zweiten Prozessor durchgeführt wurde, an den Hauptspeicher übergeben.
  • Nachdem der zweite Prozessor alle angefragten Cachespeicherzeilen in den physischen Hauptspeicher zurückgeschrieben hat, was durch Empfangen (S37) eines Abschlusssignals vom zweiten Prozessor (durch die Logik) bestätigt werden kann, kann das Verfahren ein Gewähren (S42) der Anfrage vom ersten Prozessor aufweisen.
  • Das Gewähren (S41) und das Gewähren (S42) realisieren dieselben Aktionen, sie haben jedoch aufgrund der Tatsache, dass ihnen unterschiedliche Schritte des Verfahrens vorangehen, einen unterschiedlichen Bezug.
  • Im Beispiel weist das Verfahren vor dem Gewähren (S41, S42) der Anfrage des ersten Prozessors und bei solch einem Gewähren (S41, S42) weiterhin ein Zuordnen (S38) des ersten Prozessors zu den durch den ersten Prozessor angefragten Daten in der Datenbank auf. Auf diese Weise wird sichergestellt, dass weitere Ausführungsvorgänge des Verfahrens funktionieren werden. Im Falle, dass es einen zweiten Prozessor gibt und das Ergebnis der Bewertung (S20) positiv war, kann der erste Prozessor den zweiten Prozessor in der Datenbank ersetzen.
  • Im Beispiel weist das Gewähren (S41, S42) der Anfrage des ersten Prozessors ein Anweisen (S39) der Steuereinheit auf, die Anfrage an den physischen Hauptspeicher zu übermitteln und dann die Steuereinheit anzuweisen (S40), die ausgegebenen Daten vom physischen Hauptspeicher an den ersten Prozessor weiterzuleiten. In der Tat handeln die Prozessoren (einschließlich des ersten Prozessors) so, als ob sie direkt mit dem Hauptspeicher verbunden wären, die Steuereinheit fängt jedoch alle Signale ab und verwaltet sie. Dies wird klarer, wenn die Steuereinheit unter Bezugnahme auf 2 beschrieben wird.
  • Als eine Effizienzoptimierung können die Adressen von Datenelementen im Speicher in Blöcke gruppiert werden, die innerhalb der CCU als physische CCU-Seiten bezeichnet werden, und die gesamte Verwaltung von Datenbesitz kann bei solcher Granularität durchgeführt werden. Dies kann zum Beispiel die Anzahl von Einträgen verringern, welche die CCU in ihrer Datenbank pflegen muss, kann jedoch in Schritt S35 ein Zurückschreiben von mehr Daten erfordern.
  • Das Verfahren bietet ein Protokoll gemeinsam genutzten Speichers und wird besser mit einer homogenen Speicherorganisation durchgeführt. Die Steuereinheit kann somit einen gemeinsamen Adressraum definieren, und der physische Speicher kann in gemeinsam genutzte, physische Seiten aufgeteilt werden - unabhängig von den in den einzelnen Prozessoren verwendeten Seitengrößen. Jeder Prozessor kann eine andere virtuelle Speicherschnittstelle realisieren, von denen jede ihre eigene Anzahl von Seiten und Seitengröße aufweist. Zum Beispiel kann für einen 32-Bit-PowerPC und x86-Architekturen (einer der Prozessoren kann solche Merkmale aufweisen) die physische Seitengröße 4 KB betragen, wohingegen sie für DEC/Compaq Alpha 8 KB betragen kann (einer der Prozessoren kann solche Merkmale aufweisen). Dies wird zum Beispiel in einer Arbeit von B. Jacob und T. Mudge mit dem Titel „Virtual memory in contemporary microprocessors“, IEEE Micro, 18:60 bis 75, Juli1998, erklärt.
  • Die Steuereinheit kann die physischen Adressanfragen durch jeden Prozessor in die entsprechende physische Seitennummer der Steuereinheit in einer Datenbank übersetzen (z.B. ein einheitlicher Speicheradressraum), wie beispielsweise eine Nachschlagetabelle für physische Seiten-IDs (physical page ID lookup table (PPIDT)). Es können mehrere Kriterien verwendet werden, um die gemeinsame Steuereinheiten-Seitengröße zu wählen. Größere Steuereinheiten-Seitengrößen werden zu kleineren Anzahlen von Einträgen in der PPIDT führen, werden jedoch erfordern, dass mehr Elemente in den Speicher zurückgeschrieben werden müssen, wenn die Steuereinheit einen Prozessor über eine Zurückschreibanfrage benachrichtigt, und somit die Leistung verschlechtern.
  • Gemeinsam genutzte Daten werden somit in diesem Fall bei der Granularität der physischen Seiten der Steuereinheit verfolgt, d.h. ein Datenzugriff auf einen Speicherort eines gemeinsam genutzten Speichers wird durch die physische Seitenkennung (physical page identifier (PPI)) identifiziert, die diesem Speicherort zugeordnet ist. Die CCU überwacht jeden DRAM-Speicherzugriff. Unter Verwendung einer Zuordnungstabelle hält sie bei Auftreten eines Speicherzugriffs auf einen gemeinsam genutzten Speicherort die Identität des Prozessors, der die Anfrage gestartet hat, und die der gemeinsam genutzten Seite, auf die zugegriffen wurde, zugeordnete PPI fest. Diese Informationen werden verwendet, um Konsistenz zu gewährleisten, wenn ein anderer Prozessor versucht, auf denselben physischen Speicherort zuzugreifen.
  • Ein weiteres Beispiel für ein Ausführen des Verfahrens, ähnlich dem unter Bezugnahme auf 1 bereitgestellten, wird nun erläutert. Die Merkmale dieses Beispiels können in das unter Bezugnahme auf 1 bereitgestellte Beispiel integriert werden.
  • In diesem Beispiel befindet sich die CCU anfänglich in einem Ruhezustand. Wenn ein Prozessor einen Lesevorgang vom Speicher startet, wird die den Prozessor verlassende, zum DRAM ausgehende Anfrage durch die CCU abgefangen. Die CCU führt dann ein Nachschlagen im Prozessor zur Nachschlagetabelle für physische Seiten-IDs (PPIDT) durch. Dieses Nachschlagen wird verwendet, um zu ermitteln, ob die physische Seite, auf der sich die angefragten Daten befinden, zuvor durch einen anderen Prozessor angefragt (und dadurch möglicherweise modifiziert) wurde. Wenn sich die der Adresse entsprechende PPID nicht in der Tabelle befindet, greift der Prozessor auf den DRAM zu, und die CCU aktualisiert die PPIDT, indem sie einen neuen Eintrag hinzufügt, der den Prozessor der entsprechenden gemeinsamen physischen Seite zuordnet. Dann wird die Datenbewegung vom DRAM zum Prozessor durch die CCU gestartet.
  • Wenn ein anderer Prozessor versucht, auf Daten in derselben physischen Speicherseite zuzugreifen, wird das PPIDT-Nachschlagen offenbaren, dass diese Seite zuvor durch einen andern Prozessor gelesen wurde. Um in diesem Fall die Datenkonsistenz zu gewährleisten, sendet die CCU eine Anfrage an den Prozessor, alle Cachespeicherzeilen zurückzuschreiben, die der physischen Seite entsprechen, die neben dem Prozessor in der PPIDT aufgeführt ist. Diese Anfrage wird unter Verwendung eines Interrupt-Signals durch einen generischen Prozessor-Interrupt-Kontaktstift realisiert. Die CCU muss warten, bis der Prozessor zurücksignalisiert, dass der Speicherschreibvorgang abgeschlossen wurde, was durch einen universellen Eingang/Ausgang-Kontaktstift oder einen Schreibvorgang auf eine nicht cachespeicherfähige Adresse realisiert werden kann.
  • Sobald gewährleistet ist, dass die Daten in den Speicher zurückgeschrieben wurden, aktualisiert die CCU die PPIDT durch Entfernen des alten Eintrags in der PPIDT und Erstellen eines neuen für den Prozessor, der die PPID der entsprechenden physischen Speicherseite der CCU enthält. Schließlich startet die CCU die Anfrage an den Hauptspeicher, so dass Daten an den entsprechenden Prozessor übertragen werden können.
  • Es muss sichergestellt werden, dass die Prozessoren nicht nach einer festen Verzögerung anfangen, Datenwörter einzutakten, wie es der Fall wäre, wenn sie direkt mit dem DRAM (über dessen Speichersteuereinheit) verbunden wären. Ein Ansatz, dies in der Ausführungsform sicherzustellen, in der die Standardschnittstelle eine DDR aufweist, liegt darin, sicherzustellen, dass Prozessoren bei jeder Leseanfrage unter Verwendung einer CCU das optionale DQS-DDR-Schnittstellensignal realisieren (und zuverlässig überwachen); dadurch können die Prozessoren wissen, wann gültige Daten verfügbar sind. Mögliche alternative Ansätze könnten ein Übersteuern der vorhandenen Speicherzeittaktungs-Einrichtinformationen einschließen, die in seriellen Vorhandenseinerkennungs(serial presence detect (SPD))-EEPROMS auf Speicher-DIMMs gespeichert sind und durch die Prozessoren beim Hochfahren gelesen werden. Wenn die Daten aus dem DRAM bereit sind, werden sie durch die CCU an den entsprechenden Prozessor weitergeleitet.
  • Gemäß der vorhergehenden Beschreibung wird die PPIDT aktualisiert, wann immer ein Prozessor eine neue Transaktion startet. Prozessorcachespeicher können jedoch in der Zwischenzeit geleert sein, oder die Daten, die einen neu hinzugefügten Eintrag in der Tabelle verursacht haben, können entfernt worden sein, um jüngere Daten anzulegen (allocate). In dieser Situation ist die CCU unter Umständen nicht in der Lage, die Änderung im Prozessorcachespeicher zu erkennen. Die CCU muss daher die Cachespeicherersetzung für die unterschiedlichen Prozessorcachespeicher intern modellieren, so dass sie vorhersagen kann, ob ein spezielles Datenelement aus dem Speicher entfernt wurde. In Situationen, in denen ein Modellieren innerhalb der CCU nicht möglich ist, müssen unter Umständen alle Zeilen in den entsprechenden Cachespeichern entfernt werden.
  • Eine alternative Realisierung könnte daraus bestehen, jeweils eine einzelne Steuereinheit pro Prozessor zu besitzen und eine Synchronisierung der unterschiedlichen Instanzen der Steuereinheit möglicherweise unter Verwendung eines Verbindungsnetzwerks zwischen den CCUs vorzunehmen.
  • Nun kann die Logik Teil einer Computerspeicher-Steuereinheit sein. Die Steuereinheit weist mindestens eine erste Schnittstelle und zweite Schnittstellen auf und ist eingerichtet, über die erste Schnittstelle mit einem physischen Hauptspeicher und über die zweiten Schnittstellen mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden zu werden. Die Steuereinheit weist weiterhin die Logik auf, die wiederum betrieblich mit der ersten Schnittstelle und den zweiten Schnittstellen verbunden und eingerichtet ist, das Verfahren durchzuführen. Eine solche Computerspeicher-Steuereinheit ermöglicht einer Vielzahl nichtzusammenarbeitender Prozessoren, denselben physischen Hauptspeicher in einer effizienten, kostengünstigen und einfachen Weise gemeinsam zu nutzen.
  • Der Computerspeicher kann selbst Teil eines Systems sein, das die Computerspeicher-Steuereinheit aufweist, die über die erste Schnittstelle mit einem physischen Hauptspeicher und über die zweiten Schnittstellen mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden ist.
  • 2 zeigt ein Blockschaubild von Hardware eines Beispiels des Systems, bei dem es sich um ein Computersystem mit mehreren Prozessoren, die einen physischen Hauptspeicher gemeinsam nutzen, oder ein Computernetzwerk, das mehrere Computer (und somit mehrere Prozessoren) aufweist, die einen physischen Hauptspeicher gemeinsam nutzen, handeln kann.
  • Im Beispiel weist ein System 200 eine Computerspeicher-Steuereinheit 100 auf. Die Computerspeicher-Steuereinheit 100 ist über erste Schnittstellen 110 mit einem physischen Hauptspeicher 210 (ebenso Teil des Systems 200) verbunden. Die Computerspeicher-Steuereinheit 100 ist weiterhin über zweite Schnittstellen 120 mit drei Prozessoren 220 verbunden.
  • Die Steuereinheit 100 weist mindestens eine erste Schnittstelle 110 und mindestens zwei zweite Schnittstellen 120 auf (acht in dem Beispiel) und ist eingerichtet, über die ersten Schnittstellen 110 mit dem physischen Hauptspeicher 210 und über die zweiten Schnittstellen 120 mit den nicht-zusammenarbeitenden Prozessoren 220 verbunden zu werden. Die Steuereinheit 100 weist weiterhin eine (Steuer-) Logik 130 auf, die über einen Datenpfad 115 betrieblich mit den ersten Schnittstellen 110 und den zweiten Schnittstellen 120 verbunden ist, und ist eingerichtet, das Verfahren durchzuführen. Die zweiten Schnittstellen 120 weisen jeweils einen Unterbrecher (interruptor) 125 auf, der eingerichtet ist, ein Signal über einen Interrupt-Kontaktstift der Prozessoren 220 zu senden, um eine Anfrage an die Prozessoren 220 zu senden, Cachespeicherzeilen zurückzuschreiben.
  • Der Datenpfad 115 ist eingerichtet, durch die Steuerlogik 130 gesendete oder von irgendeiner der Schnittstellen (110 und 120) empfangene Informationen zu zentralisieren. Der Datenpfad 115 kann dafür irgendein Mittel oder irgendeine Kombination von Mitteln zum Leiten von Daten aufweisen, wie beispielsweise Umleitungs-Multiplexer, Zurückschreibpuffer und/oder einen Bus.
  • Die Steuereinheit 100 weist auch eine Anfragewarteschlange 140 auf, die eingerichtet ist, durch die Prozessoren 220 empfangene Anfragen in eine Warteschlange einzustellen. Die Steuereinheit 100 weist auch Konfigurationsregister 150 und einen internen Speicher 160 auf, in dem eine PPIDT 165 gespeichert ist. Auf diese Weise ist die Steuereinheit 100 eingerichtet, eine von einem Prozessor 220 empfangen Anfrage als eine Anfrage zum Zugreifen auf eine gegebene Seite des Hauptspeichers 210 zu interpretieren, und kann dank der Nachschlagetabelle 165 bewerten, ob ein anderer Prozessor 220 zuvor auf die gegebene Seite zugegriffen hat.

Claims (8)

  1. Durch eine Logik einer Computerspeicher-Steuereinheit realisiertes Verfahren, wobei: - die Steuereinheit mindestens eine erste Schnittstelle und mindestens zwei zweite Schnittstellen aufweist und eingerichtet ist, verbunden zu werden mit: o einem physischen Hauptspeicher über die erste Schnittstelle, und o einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren über die mindestens zwei zweiten Schnittstellen, - die Logik mit der ersten und den zweiten Schnittstellen betrieblich verbunden ist, und das Verfahren aufweist: o über die zweiten Schnittstellen von einem ersten Prozessor des Satzes eine Anfrage zu empfangen (S10), auf Daten des physischen Hauptspeichers zuzugreifen, o Bewerten (S20), ob ein zweiter Prozessor zuvor auf die durch den ersten Prozessor angefragten Daten zugegriffen hat, und o Zurückstellen (S30) der Anfrage vom ersten Prozessor, wenn die Bewertung (S20) positiv ausfällt, oder Gewähren (S41) der Anfrage vom ersten Prozessor, wenn die Bewertung negativ ausfällt; o während des Zurückstellens (S30) der Anfrage vom ersten Prozessor, Senden einer Anfrage an den zweiten Prozessor (S35), um Cachespeicherzeilen, die zu den ersten Prozessor angefragten Daten zugehörig sind, auf den physischen Hauptspeicher zurückzuschreiben; o während des Zurückstellens (S30) der Anfrage vom ersten Prozessor und nach dem Senden (S35) der Anfrage an den zweiten Prozessor, die Steuereinheit anzuweisen (S36), die angefragten Cachespeicherzeilen, die durch die Steuereinheit vom zweiten Prozessor empfangen werden, an den physischen Hauptspeicher zu übermitteln; und o die Anfrage vom ersten Prozessor zu gewähren (S42), nachdem der zweite Prozessor alle angefragten Cachespeicherzeilen in den physischen Hauptspeicher zurückgeschrieben hat, o wobei mindestens zwei der N ≥ 2 nicht-zusammenarbeitenden Prozessoren sich jeweils voneinander im Hinblick auf eine virtuelle Speicher-Schnittstelle unterscheiden, welche im Verhältnis zueinander unterschiedliche physische Seitengrößen haben; und o wobei die Schnittstellen sowohl Hardwareverbindungen als auch Software-Elemente zum Interpretieren von Steuersignalen umfassen, wobei die Hardwareverbindungen und die Software-Elemente ausschließbar sind, so dass Speicher durch mehrere Prozessoren gemeinsam nutzbar sind, - wobei die Granularität der Zugriffsverwaltung auf Bereichen (Blöcken oder Seiten) physischer Speicheradressen beruht und die Steuereinheit die Anfragen durch jeden Prozessor in die physische Seitennummer der Steuereinheit in einer Datenbank übersetzt, um eine gemeinsame Steuereinheiten-Seitengröße zu wählen.
  2. Verfahren nach Anspruch 1, wobei das Senden (S35) der Anfrage an den zweiten Prozessor über einen Interrupt-Kontaktstift des zweiten Prozessors durchgeführt wird.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei die Bewertung (S20) aufweist, in einer Datenbank der Steuereinheit zu prüfen, ob den durch den ersten Prozessor angefragten Daten ein zweiter Prozessor zugeordnet ist.
  4. Verfahren nach Anspruch 3, wobei das Verfahren weiterhin aufweist, in der Datenbank den ersten Prozessor den durch den ersten Prozessor angefragten Daten zuzuordnen (S38).
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei es sich bei den zweiten Schnittstellen um Schnittstellen von dynamischem Speicher mit wahlfreiem Zugriff und doppelter Datenrate handelt.
  6. System, das eine Computerspeicher-Steuereinheit aufweist, wobei die Steuereinheit mindestens eine erste Schnittstelle und mindestens zwei zweite Schnittstellen aufweist und eingerichtet ist, verbunden zu werden mit: - einem physischen Hauptspeicher über die erste Schnittstelle, und - einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren über die mindestens zwei zweiten Schnittstellen, - sich mindestens zwei der N ≥ 2 nicht-zusammenarbeitenden Prozessoren jeweils voneinander im Hinblick auf eine virtuelle Schnittstelle unterscheiden, welche im Verhältnis zueinander unterschiedliche physische Seitengrößen haben, - die Schnittstellen sowohl Hardwareverbindungen als auch Softwareverbindungen zum Interpretieren von Steuersignalen umfassen, - die Steuereinheit eine betrieblich mit der ersten und den zweiten Schnittstellen verbundene und zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 5 eingerichtete Logik aufweist.
  7. System nach Anspruch 6, wobei die Computerspeicher-Steuereinheit über die erste Schnittstelle mit einem physischen Hauptspeicher und über die zweiten Schnittstellen mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden ist.
  8. Nicht-flüchtiges Datenspeichermedium mit einem darauf gespeicherten Computerprogramm, das Anweisungen zum Einrichten einer Logik aufweist, die eingerichtet ist, betrieblich mit einer ersten Schnittstelle und mindestens zwei zweiten Schnittstellen einer Computerspeicher-Steuereinheit verbunden zu werden, welche die Logik aufweist, wobei die Steuereinheit eingerichtet ist, über die erste Schnittstelle mit einem physischen Hauptspeicher und über die mindestens zwei zweiten Schnittstellen mit einem Satz von N ≥ 2 nicht-zusammenarbeitenden Prozessoren verbunden zu werden, wobei sich mindestens zwei der N ≥ 2 nicht-zusammenarbeitenden Prozessoren jeweils voneinander im Hinblick auf eine virtuelle Schnittstelle unterscheiden, welche im Verhältnis zueinander unterschiedliche physische Seitengrößen haben, wobei die Schnittstellen sowohl Hardwareverbindungen als ach Softwareverbindungen zum Interpretieren von Steuersignalen umfassen, wobei die Anweisungen zum Einrichten der Logik dienen, um das Verfahren nach einem der Ansprüche 1 bis 5 durchzuführen.
DE112012004926.8T 2011-12-16 2012-11-20 Gemeinsame Speichernutzung durch Prozessoren Active DE112012004926B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11194116 2011-12-16
EP11194116.7 2011-12-16
PCT/IB2012/056562 WO2013088283A2 (en) 2011-12-16 2012-11-20 Memory sharing by processors

Publications (2)

Publication Number Publication Date
DE112012004926T5 DE112012004926T5 (de) 2014-08-14
DE112012004926B4 true DE112012004926B4 (de) 2023-12-07

Family

ID=47520195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004926.8T Active DE112012004926B4 (de) 2011-12-16 2012-11-20 Gemeinsame Speichernutzung durch Prozessoren

Country Status (6)

Country Link
US (1) US9183150B2 (de)
JP (1) JP6083714B2 (de)
CN (1) CN103999063B (de)
DE (1) DE112012004926B4 (de)
GB (1) GB2511446B (de)
WO (1) WO2013088283A2 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016018421A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Cache management for nonvolatile main memory
US9781225B1 (en) * 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
US9535606B2 (en) 2014-12-22 2017-01-03 Intel Corporation Virtual serial presence detect for pooled memory
CN105868134B (zh) * 2016-04-14 2018-12-28 烽火通信科技股份有限公司 高性能多口ddr控制器及其实现方法
CN106484521A (zh) * 2016-10-21 2017-03-08 郑州云海信息技术有限公司 一种数据请求处理方法及装置
US11409673B2 (en) * 2019-02-14 2022-08-09 Intel Corporation Triggered operations for collective communication
US11409655B2 (en) * 2019-03-01 2022-08-09 Canon Kabushiki Kaisha Interface apparatus, data processing apparatus, cache control method, and medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032079B1 (en) 2002-12-13 2006-04-18 Unisys Corporation System and method for accelerating read requests within a multiprocessor system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950228A (en) 1997-02-03 1999-09-07 Digital Equipment Corporation Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables
US6438660B1 (en) * 1997-12-09 2002-08-20 Intel Corporation Method and apparatus for collapsing writebacks to a memory for resource efficiency
JP4303803B2 (ja) * 1998-04-22 2009-07-29 株式会社東芝 キャッシュフラッシュ装置
US6397306B2 (en) 1998-10-23 2002-05-28 Alcatel Internetworking, Inc. Per memory atomic access for distributed memory multiprocessor architecture
US6636950B1 (en) 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
US6829683B1 (en) * 2000-07-20 2004-12-07 Silicon Graphics, Inc. System and method for transferring ownership of data in a distributed shared memory system
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7380085B2 (en) * 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
KR20050061123A (ko) * 2003-12-18 2005-06-22 삼성전자주식회사 Ddr sdram 콘트롤러의 데이터 제어회로
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7386687B2 (en) 2005-01-07 2008-06-10 Sony Computer Entertainment Inc. Methods and apparatus for managing a shared memory in a multi-processor system
JP5021978B2 (ja) * 2006-08-11 2012-09-12 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
JP2008176612A (ja) * 2007-01-19 2008-07-31 Nec Electronics Corp マルチプロセッサシステム
US8386750B2 (en) * 2008-10-31 2013-02-26 Cray Inc. Multiprocessor system having processors with different address widths and method for operating the same
EP2499576A2 (de) 2009-11-13 2012-09-19 Richard S. Anderson Verteilte symmetrische multiprozessor-datenverabreitungsarchitektur

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032079B1 (en) 2002-12-13 2006-04-18 Unisys Corporation System and method for accelerating read requests within a multiprocessor system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JACOB, B.; MUDGE, T.: Virtual memory in contemporary microprocessors. IEEE Micro, 1998, 18. Jg., Nr. 4, S. 60-75

Also Published As

Publication number Publication date
JP2015504205A (ja) 2015-02-05
WO2013088283A3 (en) 2013-11-07
GB2511446A (en) 2014-09-03
CN103999063B (zh) 2016-10-05
WO2013088283A2 (en) 2013-06-20
JP6083714B2 (ja) 2017-02-22
GB201408707D0 (en) 2014-07-02
DE112012004926T5 (de) 2014-08-14
CN103999063A (zh) 2014-08-20
GB2511446B (en) 2016-08-10
US9183150B2 (en) 2015-11-10
US20130159632A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE102007030116B4 (de) Snoop-Filter mit ausschließlicher Inhaberschaft
DE69128107T2 (de) Busanordnung für Speicherzugriff
DE69722079T2 (de) Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen
DE69423874T2 (de) Verbessertes Schema zur geordneten Cachespeicherkohärenz
DE69524564T2 (de) Kohärenz- und synchronisationsmechanismus für ein-/ausgangkanalsteuereinheiten in einem datenverarbeitungssystem
DE3587960T2 (de) Datenverarbeitungsanlage mit einem Speicherzugriffssteuergerät.
DE69616402T2 (de) Schnelle Zweitor-Cachesteuerungsschaltung für Datenprozessoren in einem paketvermittelten cachekohärenten Multiprozessorsystem
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE68902193T2 (de) Datenspeicheranordnung.
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69424272T2 (de) Auf Warteschlangen basierender prädiktiver Durchflusssteuerungsmechanismus
DE69621311T2 (de) Cachespeicherkohärenzverfahren und-system
DE69724354T2 (de) Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE69715203T2 (de) Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE69708933T2 (de) Adressenuebersetzung in rechnerbusbrueckegeraeten
DE102007032307A1 (de) Dedizierter Mechanismus zur Seitenabbildung in einer GPU
DE112016002006T5 (de) Zwischenspeicherung von Adressen in Switches

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012140000

Ipc: G06F0013160000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division