DE60009618T2 - Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher - Google Patents

Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher Download PDF

Info

Publication number
DE60009618T2
DE60009618T2 DE60009618T DE60009618T DE60009618T2 DE 60009618 T2 DE60009618 T2 DE 60009618T2 DE 60009618 T DE60009618 T DE 60009618T DE 60009618 T DE60009618 T DE 60009618T DE 60009618 T2 DE60009618 T2 DE 60009618T2
Authority
DE
Germany
Prior art keywords
memory
access
interface
data
macro
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.)
Expired - Lifetime
Application number
DE60009618T
Other languages
English (en)
Other versions
DE60009618D1 (de
Inventor
Thierry Nouvet
Hugues Perthuis
Stephane Mutz
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.)
Entropic Communications LLC
Original Assignee
Koninklijke Philips Electronics NV
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
Priority claimed from FR9910954A external-priority patent/FR2797969A1/fr
Priority claimed from FR9912068A external-priority patent/FR2799020A1/fr
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE60009618D1 publication Critical patent/DE60009618D1/de
Publication of DE60009618T2 publication Critical patent/DE60009618T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • 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/1668Details of memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Record Information Processing For Printing (AREA)

Description

  • TECHNISCHER BEREICH
  • Die Erfindung betrifft eine Datenverarbeitungsvorrichtung mit mehreren Prozessoren und einer Speicherschnittstelle, über die die Prozessoren auf einen gemeinsamen Speicher zugreifen können. Die Erfindung kann z. B. in einer dazu fähigen integrierten Schaltung eingesetzt werden, einen MPEG-Datenfluss (in Englisch: Moving Picture Expert Group) zu dekodieren.
  • ALTER STAND DER TECHNIK
  • Das Patent US 5.072.420 beschreibt eine Schnittstelle, über die mehrere periphere und externe Vorrichtungen auf einen DRAM-Speicher (auf Englisch: Dynamic Random Access Memory) zugreifen können. Die Schnittstelle enthält einen Eingangs- und Ausgangsweg für jede periphere und externe Vorrichtung. Jeder Weg enthält einen FIFO-Speicher (in Englisch: First In, First Out), welcher die betreffende Vorrichtung mit dem DRAM-Speicher verbindet.
  • BESCHREIBUNG DER ERFINDUNG
  • Ein Ziel der Erfindung ist es, Implementierungen zu relativ geringen Kosten zu ermöglichen, insbesondere in Bezug auf Implementierungen in der Form einer integrierten Schaltung.
  • Die Erfindung berücksichtigt folgende Aspekte. Ein Speicher enthält generell Elemente, welche Speicherzellen bilden und zusätzliche Elemente, um auf die Speicherzellen zuzugreifen. Je kleiner der Speicher ist, desto größer ist die Proportion der zusätzlichen Elemente. Man könnte demnach sagen, dass ein Speicher mit einer relativ kleinen Größe einen geringen Leistungsgrad hat. Betrachten wir z. B. einen Speicher als Teil einer integrierten Schaltung. Wenn der Speicher relativ klein ist, bietet er nur eine relativ kleine Speicherkapazität pro Flächeneinheit. Anders gesagt nimmt der Speicher angesichts der Anzahl Daten, die er speichern kann, relativ viel Fläche ein.
  • Nach altem Stand der Technik enthält die Schnittstelle zwischen dem DRAM-Speicher und den peripheren und externen Vorrichtungen für jede Vorrichtung einen FIFO-Speicher. Unter der Annahme, dass man diese Schnittstelle in der Form einer integrierten Schaltung anfertigt, werden die FIFO-Speicher relativ viel Fläche einnehmen. Außerdem erfordert jeder FIFO-Speicher spezifische Anschlüsse, wie z. B. Versorgungsschienen. Dies macht die Lenkung dieser Anschlüsse kompliziert. Somit nimmt die Schnittstelle nach altem Stand der Technik relativ viel Fläche ein, und sie ist relativ schwer zu implementieren.
  • Wie in Anspruch 1 der Erfindung definiert enthält die Speicherschnittstelle:
    • – einen Schnittstellenspeicher zum vorübergehenden Speichern der den verschiedenen Prozessoren zugehörigen Daten; und
    • – eine Steuerschaltung für die Verwaltung des Schnittstellenspeichers auf eine Art und Weise, dass er für jeden der verschiedenen Prozessoren einen FIFO-Speicher bildet.
  • Somit ersetzt der Schnittstellenspeicher tatsächlich eine Einheit individueller, nach altem Stand der Technik vorzufindender FIFO-Speicher. Die Steuerschaltung kann in Bezug auf sämtliche zusätzlichen Elemente, welche in solch einer Einheit individueller FIFO-Speicher enthalten sein könne, relativ einfach sein. Folglich ermöglicht es die Erfindung, die Soll-Speicherkapazität in Bezug auf den alten Stand der Technik mit weniger Elementen zu bauen. Spezifischer ermöglicht die Erfindung die Implementierung einer Speicherschnittstelle auf relativ wenig integrierter Schaltungsfläche. Folglich ermöglicht die Erfindung Implementierungen zu relativ geringen Kosten.
  • Der Erfindung zufolge wird ein entsprechendes Datenverarbeitungsverfahren in Anspruch 2 definiert, und ein "Computerprogramm-Produkt" in Anspruch 3.
  • Die Erfindung und ihre zusätzlichen Merkmale, welche vorteilhaft zur Umsetzung der Erfindung eingesetzt werden können, werden hiernach in Bezug auf die Figuren mehr im Detail beschrieben.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 zeigt eine Datenverarbeitungsvorrichtung nach der Erfindung;
  • 2 zeigt die Funktionsweise der Speicherschnittstelle der Vorrichtung;
  • 3 zeigt einen Datenverarbeitungsblock der Vorrichtung;
  • 4 zeigt die Speicherschnittstelle der Vorrichtung;
  • 5 zeigt den Zugriff zum Lesen eines Blocks;
  • 6a und 6b zeigen die Arbitrage des Zugriffs auf einen gemeinsamen Speicher;
  • 7 zeigt eine Zugriffsschnittstelle der Speicherschnittstelle;
  • 8 zeigt eine Pufferspeichervorrichtung der Speicherschnittstelle;
  • 9 zeigt eine Pufferspeichervorrichtung zum Lesen.
  • AUSFÜHRUNGSFORMEN DER ERFINDUNG
  • Die folgenden Bemerkungen betreffen die Referenzzeichen. Ähnliche Einheiten werden auf allen Figuren mit einer identischen Buchstabenreferenz bezeichnet. Es können mehrere ähnliche Einheiten auf einer einzigen Figur auftreten. In diesem Fall wird der Buchstabenreferenz eine Zahl oder ein Suffix angehängt, um zwischen ähnlichen Einheiten zu unterscheiden. Die Zahl oder das Suffix kann aus Gründen der Vereinfachung weggelassen werden. Dies trifft auf die Beschreibung sowie auf die Ansprüche zu.
  • 1 zeigt eine Datenverarbeitungsvorrichtung. Die Vorrichtung enthält einen gemeinsamen Speicher SDRAM, eine Speicherschnittstelle INT und drei Datenverarbeitungsblöcke B1, B2 und B3. Diese Letzteren werden im Folgenden mit "Block" bezeichnet. Jeder Block B ist über einen privaten Lesebus BBR und einen privaten Schreibbus BBW mit der Speicherschnittstelle INT verbunden. Jeder private Lesebus BBR und jeder private Schreibbus BBW ist einem bestimmten Block B zugeordnet. Die Speicherschnittstelle INT ist über einen gemeinsamen Bus BM mit dem gemeinsamen Speicher SDRAM verbunden. Die Blöcke B, der privaten Lesebusse BBR, die privaten Schreibbusse BBW und die Speicherschnittstelle INT können Teil einer einzigen integrierten Schaltung sein, während der gemeinsame Speicher SDRAM eine externe Schaltung ist.
  • Die Datenverarbeitungsvorrichtung funktioniert generell wie folgt. Die Blöcke B erhalten auf Anfrage zu verarbeitende, im gemeinsamen Speicher SDRAM abgelegte Daten. Nachdem sie diese Daten verarbeitet haben senden die Blöcke B die verarbeiteten Daten über die Speicherschnittstelle INT an den gemeinsamen Speicher SDRAM. Die Speicherschnittstelle INT regelt über die verschiedenen Blöcke B den Zugriff auf den gemeinsamen Speicher SDRAM.
  • Die Speicherschnittstelle INT hat zwei Basisfunktionen. Erstens nimmt sie auf der Ebene des Zugriffs zum gemeinsamen Speicher SDRAM eine Arbitrage zwischen den verschiedenen Blöcken B vor. Es kann immer nur ein einziger Block B zur gleichen Zeit auf den gemeinsamen Speicher SDRAM entweder zum Schreiben oder zum Lesen zugreifen. Dies bedeutet, dass ein Block B nur in Salven (in Englisch: burst) auf den Speicher zugreifen kann. Zweitens transformiert die Speicherschnittstelle INT im Falle des Lesens die aus dem gemeinsamen Speicher SDRAM kommenden und für einen bestimmten Block B vorgesehenen Datensalven in einen weitgehend regelmäßigen Datenfluss. Dieser so transformierte Datenfluss wird über den betreffenden privaten Lesebus BBR an Block B übertragen. Im Falle des Schreibens transformiert die Speicherschnittstelle INT einen aus einem bestimmten Block B kommenden weitgehend regelmäßigen Datenfluss in Datensalven zum Schreiben in den gemeinsamen Speicher.
  • 2 zeigt die Funktionsweise der Speicherschnittstelle INT. T(BM) steht für einen Datenverkehr auf dem gemeinsamen Bus BM zwischen dem gemeinsamen Speicher SDRAM und der Speicherschnittstelle INT. T(BBR1), T(BBR2) und T(BBR3) stehen respektive für Datenverkehre auf den privaten Lesebussen BBR1, BBR2 und BBR3 zwischen der Speicherschnittstelle INT und den Blöcken B1, B2 und B3. T(BBW1), T(BBW2) und T(BBW3) stehen respektive für Datenverkehre auf den privaten Schreibbussen BBW1, BBW2 und BBW3 zwischen der Speicherschnittstelle INT und den Blöcken B1, B2 und B3.
  • Der Datenverkehr T(BM) setzt sich aus Datensalven DB zusammen. Jede Datensalve DB entspricht einem Zugriff auf den gemeinsamen Speicher SDRAM durch einen Block B entweder zum Schreiben oder zum Lesen. Die DB folgenden Referenzen in Klammern zeigen an, zu welchem Block B die Daten in der Salve gehören, sowie den Typ des Zugriffs: Schreiben (W) oder Lesen (R). DB1(B1/r) z. B. zeigt an, dass die Datensalve DB1 einen Lesezugriff auf den gemeinsamen Speicher SDRAM durch B1 betrifft.
  • 2 zeigt, dass die Speicherschnittstelle INT eine "Glättung" der Datensalven vornimmt, die aus dem gemeinsamen Speicher SDRAM kommen und einem gewissen Block B zugehören. Diese Figur zeigt auch, dass die Speicherschnittstelle INT die aus Block B kommenden Daten zeitlich konzentriert, um diese Daten in Salven in den gemeinsamen Speicher SDRAM zu schreiben (Datenkomprimierung). Demnach haben die Datenverkehre über die privaten Lesebusse BBR und die privaten Schreibbusse BBW relativ geringe Flussraten. Folglich ermöglicht es dies den privaten Lesebussen BBR und den privaten Schreibbussen BBW, relativ geringe Bandbreiten zu haben, und aufgrund dieser Tatsache ermöglicht es dies den Bussen, eine relativ bescheidene Breite zu haben. In dieser Hinsicht wäre zu bemerken, dass die Größe eines Busses nicht unbedingt der Anzahl in den über diesen Bus übertragenen Daten enthaltenen Bits entsprechen muss. So kann man die sen Datensatz über einen Bus mit einer Größe von 4 Bits in der Form einer Folge von 4 Wörtern übertragen.
  • 3 zeigt einen Block B. Der Block B enthält einen Prozessor P und eine globale Adressierschaltung AGA. Der Prozessor macht logische Anfragen LRQ. Unter der Annahme, dass Block B Bilddaten verarbeitet, kann eine logische Anfrage LRQ z. B. eine Anfrage von Pixeln einer bestimmten Zeile im laufenden Bild sein. Die globale Adressierschaltung AGA transformiert die logische Anfrage LRQ in eine physische Anfrage PRQ. Die physische Anfrage PRQ definiert die physischen Adressen im gemeinsamen Speicher SDRAM, unter der die gefragten Daten gespeichert sind. Die physischen Anfragen PRQ können folgende Form haben: Eine Startadresse, eine Zieladresse, zu suchen anhand dieser Adresse, und eventuell ein bei der Suche von Daten zu verwendendes Schema. Das Schema kann in der Form definiert sein von: Anzahl sich folgender zu lesender Adressen, Anzahl zu überspringender Adressen und Anzahl an Iterationen "lesen und überspringen". Die AGA kann derart programmierbar sein, dass die Übersetzungsparameter die Übersetzungen der logischen Anfragen LRQ in physischen Anfragen PRQ definieren. Dies ermöglicht eine flexible Speicherung der Daten in dem gemeinsamen Speicher SDRAM.
  • 4 zeigt die Speicherschnittstelle INT. Die Speicherschnittstelle INT enthält einen Arbitrator ARB, eine Zugriffsschnittstelle SIF, eine Pufferspeichervorrichtung BUF und Makrosteuerungs-Adressierschaltungen AGB. Es gibt für jeden Block B eine Makrosteuerungs-Adressierschaltung AGB.
  • Die interne Funktionsweise der Speicherschnittstelle INT ist generell wie folgt. Jede Makrosteuerungs-Adressierschaltung AGB zweigt eine physische Anfrage von Block B ab, mit dem sie über Makrosteuerungen verbunden ist. Bevor eine Makrosteuerung einem Arbitrator ARB unterworfen wird, überprüft die Makrosteuerungs-Adressierschaltung AGB, ob genügen Platz in der Pufferspeichervorrichtung BUF vorhanden ist. Zu diesen Zweck unterbreitet er die Makrosteuerung zuerst der Pufferspeichervorrichtung BUF. Wenn die Pufferspeichervorrichtung BUF bestätigt, dass Platz für die Speicherung der von der Makrosteuerung definierten Anzahl Daten vorhanden ist, unterbreitet die Makrosteuerungs-Adressierschaltung AGB die Makrosteuerung dem Arbitrator ARB. Der Arbitrator ARB sammelt die Makrosteuerungen, die von den verschiedenen Makrosteuerungs-Adressierschaltungen AGB kommen, und wählt eine Makrosteuerung zum Senden an die Zugriffsschnittstelle SIF aus. Diese Auswahl verläuft nach einem Arbitrageschema, welches hiernach beschrieben wird. Die Zugriffsschnittstelle SIF verarbeitet die Makrosteuerung, die vom Arbitrator ARB kommen, in der Reihenfolge ihres Erhalts. So greift die Zugriffsschnittstelle SIF auf den gemeinsamen Speicher SDRAM zu, wobei die Zugriffe von der gerade verarbeiteten Makrosteuerung definiert werden.
  • Eine Makrosteuerung ermöglicht den Zugriff auf X Adressengruppen, wobei jede Gruppe Y Adressen enthält, die Adressengruppen Z Wörter voneinander getrennt sind und X, Y und Z Ganzzahlen sind. Eine Makrosteuerung enthält demnach folgende Informationen:
    • – erste zuzugreifende Adresse;
    • – Anzahl konsekutif zuzugreifender Adressen an der ersten Adresse einer Adressengruppe (Y–1);
    • – Anzahl zu überspringender Adressen zwischen zwei konsekutiven Adressengruppen (Z);
    • – Anzahl zuzugreifender Adressengruppen zusätzlich zur ersten Gruppe (X–1);
    • – Zugangstyp: Lesen oder Schreiben.
  • Ein Beispiel für eine Makrosteuerung auf der Ebene des Bits verläuft folgendermaßen. Man setzte voraus, dass die in dem gemeinsamen Speicher SDRAM abgelegten Daten 32 Bits groß sind, und dass der gemeinsame Speicher SDRAM eine maximale Größe von 256 MBits hat. Dies beinhaltet, dass eine Adresse über 23 Bits ausgedrückt wird. Weiter setze man voraus, dass die Zugriffe auf eine maximale Größe von 16 Adressen limitiert sind. Eine solche Limitierung ist vom Standpunkt der Latenz vorzuziehen. Demnach haben X–1 und Y–1 einen maximalen Wert von 15 und können folglich mit 4 Bits kodiert werden. Schließlich enthält eine Zeile maximal 512 Adressen, gefolgt von der Konfiguration des gemeinsamen Speichers SDRAM. Folglich kann die Anzahl zu überspringender Adressen 511 nicht übersteigen, womit diese Zahl folglich mit 9 Bits kodiert werden kann. Die Makrosteuerungen haben folglich eine Größe von 23 + 2 × 4 + 9 + 1 = 41 Bits. Die Adresse kann mit den Bits 40 bis 18 kodiert werden, der Zugriffstyp mit dem Bit 17, die Anzahl zu lesender Wörter (Y–1) mit den Bits 16 bis 13, die Anzahl zu überspringender Wörter (Z) mit den – Bits 12 bis 4 und die Anzahl der Wörtergruppen (X–1) mit den Bits 3 bis 0.
  • 5 zeigt ein Verfahren für den Zugriff auf den gemeinsamen Speicher SDRAM beim Lesen durch einen bestimmten Block B. Die horizontale Dimension steht für die Zeit. Die vertikale Dimension dieses Diagramms steht für die verschiedenen Funktionselemente, die einbezogen werden. Das Diagramm enthält Pfeile. Diese Pfeile stehen für die verschiedenen Schritte S bei dem Zugriffsverfahren auf den Schnittstellenspeicher SRAM.
    • S1 = Der Prozessor P des betreffenden Blocks B unterbreitet eine logische Anfrage LRQ an die globale Adressierschaltung AGA. Die logische Anfrage LRQ spezifiziert einen Unterdatensatz, z. B. die Luminanzpixel einer Zeile, in einem zu verarbeitenden Datensatz, z. B. eines Bildes.
    • S2 = Die globale Adressierschaltung AGA transformiert die logische Anfrage LRQ in eine physische Anfrage PRQ.
    • S3 = Die globale Adressierschaltung AGA unterbreitet die physische Anfrage PRQ an die Makrosteuerungs-Adressierschaltung AGB.
    • S4 = Die Makrosteuerungs-Adressierschaltung AGB transformiert die physische Anfrage PRQ in Makrosteuerungen.
    • S5 = Die Makrosteuerungs-Adressierschaltung AGB unterbreitet die erste Makrosteuerung, die von der physischen Anfrage PRQ abgeleitet wurde, an die Pufferspeichervorrichtung BUF.
    • S6 = Die Pufferspeichervorrichtung BUF prüft, ob Platz vorhanden ist, um die von der Makrosteuerung spezifizierte Anzahl Daten zu speichern.
    • S7 = Die Pufferspeichervorrichtung BUF bestätigt der Makrosteuerungs-Adressierschaltung AGB, dass Platz vorhanden ist (in Englisch: acknowledge).
    • S8 = Steht für eine gewisse Verzögerung.
    • S9 = Die Makrosteuerungs-Adressierschaltung AGM unterbreitet die Makrosteuerung an den Arbitrator ARB.
    • S10 = Der Arbitrator ARB verarbeitet die Makrosteuerung als Zugriffsanfrage auf den gemeinsamen Speicher SDRAM nach einem Arbitrageschema, welches gültig ist für alle Zugriffe der Blöcke auf den gemeinsamen Speicher SDRAM (zum Lesen und Schreiben).
    • S11 = Der Arbitrator ARB unterbreitet die Makrosteuerung an die Zugriffsschnittstelle SIF.
    • S11a = Der Arbitrator signalisiert der Pufferspeichervorrichtung BUF, dass die Makrosteuerung der Zugriffsschnittstelle SIF unterbreitet wurde (in Englisch: acknowledge).
    • S12 = Die Makrosteuerung ist in Bereitschaft in der Zugriffsschnittstelle SIF, welche zuerst die zuvor erhaltenen Makrosteuerungen verarbeitet.
    • S13 = Die Zugriffsschnittstelle SIF generiert Steuersignale für den gemeinsame Speicher SDRAM auf der Basis der Makrosteuerung. Diese Steuersignale bewirken, dass die Daten unter den von der Makrosteuerung spezifizierten Adressen nacheinander gelesen werden.
    • S14 = Die nacheinander im gemeinsame Speicher SDRAM gelesenen Daten werden an die Pufferspeichervorrichtung BUF transferiert.
    • S15 = Die Daten werden in dem Pufferspeichervorrichtung BUF zwischengespeichert.
    • S16 = Die Pufferspeichervorrichtung BUF transferiert die Daten auf weitgehend regelmäßige Art und Weise an den Prozessor P.
  • Die Schritte S5–S15 werden für jede Makrosteuerung in Folge der logischen Anfrage LRQ in Schritt S1 wiederholt.
  • Folgende Schritte sind nicht auf der 5 dargestellt. Nach dem Schritt S1 sendet die globale Adressierschaltung AGA ein Bestätigungssignal (in Englisch: acknowledge) an den Prozessor P. Dieses Signal zeigt an, dass die logische Anfrage LRQ angenommen wurde und verarbeitet werden wird. In Antwort auf das Bestätigungssignal macht der Prozessor P eine neue logische Anfrage und erhält diese bis auf weiteres aufrecht. Wenn die Makrosteuerungs-Adressierschaltung AGB die letzte Makrosteuerung in Folge auf die logische Anfrage LRQ unterbreitet, ist die Verarbeitung der logischen Anfrage abgeschlossen. In diesem Fall sendet die Makrosteuerungs-Adressierschaltung AGB ein Bestätigungssignal (in Englisch: acknowledge) an die globale Adressierschaltung AGA, um dieser Letzteren zu signalisieren, dass die Verarbeitung der logischen Anfrage LRQ abgeschlossen ist. Als Antwort hierauf beginnt die globale Adressierschaltung AGA die Verarbeitung der neuen logischen Anfrage LRQ auf similäre Art und Weise wie die Verarbeitung der logischen Anfrage LRQ, die in Schritt S1 ausgeführt wurde. Anders gesagt wiederholt sich die Geschichte.
  • Die 6a und 6b zeigen ein Arbitrageschema für den Arbitrator ARB. 6a zeigt acht Zustände ST1–ST8 in der Form von Kreisen. Diese Zustände ST werden nacheinander und auf zyklische Art und Weise generiert. Jeder Zustand ST steht für eine mögliche Sendung einer Makrosteuerung an die Zugriffsschnittstelle SIF. Folglich steht jeder Zustand für einen möglichen Speicherzugriff. Jeder Zustand gehört zu einem bestimmten Prozessor P. Der Prozessor P, zu dem ein bestimmter Zustand gehört, befindet sich in dem den Zustand darstellenden Kreis.
  • 6b zeigt das Arbitrageverfahren in Verbindung mit 6a Dieses Verfahren beinhaltet mehrere Schritte SA1–SA4 und wird für jeden Zustand ST in 6a ausgeführt. Schritt SA1 ist der erste nach dem Überspringen eines Zustands ausgeführte Schritt. In Schritt SA1 prüft der Arbitrator ARB, ob eine Makrosteuerung, unterbreitet von der Makrosteuerungs-Adressierschaltung AGB in Folge auf eine logische Anfrage LRQ des Prozessors P[j], zu dem der Zustand S[i] gehört, in Bereitschaft ist. Wenn solch eine Makrosteuerung in Bereitschaft ist, folgt der Schritt SA2 dem Schritt SA1. In Schritt SA2 sendet der Arbitrator ARB die betreffende Makrosteuerung an die Zugriffsschnittstelle SIF. Dies bewirkt nach einer gewissen Verzögerung, dass ein Zugriff auf den gemeinsamen Speicher SDRAM für den betreffenden Prozessor aufgeführt wird, wie von der Makrosteuerung definiert. Nach dem Senden der Makrosteuerung springt der Arbitrator zum nächsten Zustand, was zur Folge hat, dass das auf 6b dargestellte Verfahren sich wiederholt.
  • Wenn dagegen der Arbitrator ARB in Schritt S1 feststellt, dass keine Makrosteuerung in Verbindung mit dem Prozessor P, zu dem der Zustand S[i] gehört, in Bereitschaft ist, folgt der Schritt SA3 dem Schritt SA1. In Schritt SA3 prüft der Arbitrator ARB, ob weitere Makrosteuerung in Bereitschaft sind. Wenn keine weiteren Makrosteuerungen in Bereitschaft sind, springt der Arbitrator ARB zum nächsten Zustand, und das auf 6b dargestellte Verfahren wiederholt sich. Wenn andere Makrosteuerungen in Bereitschaft sind, führt der Arbitrator ARB Schritt SA4 aus. In Schritt SA4 wählt der Arbitrator ARB eine Makrosteuerung nach einem Prioritätsschema aus. Jede Makrosteuerung hat ein bestimmtes Prioritätsniveau. Das Prioritätsniveau wird von dem Prozessor P bestimmt, dem die Makrosteuerung zugrunde liegt. Der Arbitrator ARB wählt demnach diejenige Makrosteuerung mit dem höchsten Prioritätsniveau aus und sendet diese Makrosteuerung an die Zugriffsschnittstelle SIF. Nach dem Senden der Makrosteuerung springt der Arbitrator ARB zum folgenden Zustand, was bedingt, dass das auf 6b gezeigte Verfahren sich wiederholt.
  • Hinsichtlich der 6a und 6b ist zu bemerken, dass es nicht notwendig ist, dass jeder Zustand einem Prozessor P zugehört. Man könnte einen oder mehrere Zustände einführen, die keinem der Prozessoren P zugehören, was bedeutet, dass man freie Zustände einführen könnte. Für den Fall eines freien Zustands wählt der Arbitrator ARB eine Makrosteuerung nur auf Grundlage des Prioritätsschemas aus. Ein freier Zustand kann nützlich sein im Falle die Datenverarbeitungsvorrichtung einen Prozessor P enthalten sollte, dessen Beeinträchtigungen in Sachen Latenzzeit und Bandbreite auf dem Niveau des Zugriffs auf den gemeinsamen Speicher SDRAM relativ geringfügig sind. In diesem Fall wäre es vorzuziehen, diesem Prozessor P keinen Zustand zuzuweisen. Um zu vermeiden, dass dieser Prozessor P unter Zugriffsmangel leidet, könnte man folglich freie Zustände einführen. Der Prozessor P könnte diese freien Zustände nutzen, um auf den gemeinsamen Speicher SDRAM zuzugreifen.
  • 7 zeigt ein Beispiel der Zugriffsschnittstelle SIF. Die Zugriffsschnittstelle SIF enthält einen Makrosteuerungs-Pufferspeicher FIFO_MC, einen Spaltengenerator CAGU, einen Steuerungsgenerator CGU, einen Steuersignalgenerator IF_SDRAM und einen Datenpufferspeicher IF_D.
  • Die Zugriffsschnittstelle SIF funktioniert generell folgendermaßen. Der Makrosteuerungs-Pufferspeicher FIFO_MC erhält die Makrosteuerung vom Arbitrator ARB. Dieser Speicher speichert zwischen und sendet diese Makrosteuerung an den Spaltengenerator CAGU in der Reihenfolge ihrer Ankunft. Im Falle der Makrosteuerungs-Pufferspeicher FIFO_MC voll sein sollte und folglich keine neue Makrosteuerung angenommen werden kann, signalisiert dieser dies dem Arbitrator ARB. Dieses Zugriffsschnittstellensignal SIF, welches sagt "mein FIFO ist voll", bewirkt, dass der Arbitrator ARB bis zu dem Zeitpunkt wartet, die derzeit gewählte Makrosteuerung zu senden, in dem der Makrosteuerungs-Pufferspeicher FIFO_MC signalisiert, dass er eine neue Makrosteuerung annehmen kann. Denn das Zugriffsschnittstellensignal SIF, welches sagt, "mein FIFO ist voll", friert den Arbitrator ARB für eine gewisse Zeit ein.
  • Der Spaltengenerator CAGU fragt eine neue Makrosteuerung vom Makrosteuerungs-Pufferspeicher FIFO_MC an, wenn die Speicherzugriffe nach der vorhergehenden Makrosteuerung ausgeführt wurden. Der Spaltengenerator CAGU übersetzt in Verbindung mit dem Steuerungsgenerator CGU tatsächlich die Makrosteuerung in eine Adressenserie. Eine Adresse des gemeinsamen Speichers SDRAM wird von der Nummer einer Bank (in Englisch: bank) des gemeinsamen Speichers SDRAM, der Nummer einer Zeile und der Nummer einer Spalte definiert. Es wurde bereits erwählt, dass eine Makrosteuerung den Zugriff auf eine einzige Zeile des Schnittstellenspeichers SRAM betrifft, was automatisch bedingt, dass der Zugriff in einer einzigen Bank stattfindet. Folglich reicht es, dass der Spaltengenerator CAGU eine Serie von Spalten auf Grundlage der Makrosteuerung generiert, um eine Serie von der Makrosteuerung entsprechenden Adressen zu definieren. Eine Implementierung des Spaltengenerators CAGU kann z. B. einige Zähler und einige logische Schaltungen beinhalten. Bei solch einer Implementierung dient der Inhalt der Makrosteuerung zum Programmieren der Zähler.
  • Der Steuerungsgenerator CGU erhält nacheinander eine andere Spaltennummer vom gemeinsamen Speicher SDRAM. Der Steuerungsgenerator CGU erhält außerdem vom Makrosteuerungs-Pufferspeicher FIFO_MC die Banknummer und die Zeilennummer der Adressen, wie von der Makrosteuerung definiert. Diese Informationen ermöglichen dem Spaltengenerator CAGU die Definition einer Folge von Zugriffssteuerungen auf den gemeinsamen Speicher SDRAM in einem guten Zustand, um Zugriffe wie von den Makrosteuerungen definiert zu ermöglichen. Diese Steuerungen betreffen dem gemeinsamen Speicher SDRAM eigene Verfahren wie Vorladung und Aktivierung. Außerdem bewerkstelligt der Steuerungsgenerator CGU, dass der gemeinsame Speicher SDRAM regelmäßig aufgefrischt wird, und er generiert die erforderlichen Steuerungen zur Ausführung dieser Auffrischungen.
  • Der Steuersignalgenerator IF_SDRAM generiert Steuersignale auf der Basis der vom Steuerungsgenerator CGU erhaltenen Steuerungen. Der Steuersignalgenerator IF_SDRAM generiert z. B. mit den Abkürzungen RAS, CAS bekannte Signale. Der Steuersignalgenerator IF_SDRAM bewerkstelligt, dass in einer Folge von Steuersignalen bestimmte, dem gemeinsamen Speicher eigene Verzögerungen berücksichtigt werden. Diese Verzögerungen können unter Berücksichtigung des verwendeten gemeinsamen Speichertyps variieren. Demnach ist der Steuersignalgenerator IF_SDRAM spezifisch für den Typ des verwendeten gemeinsamen Speichers SDRAM. Wenn man einen gemeinsamen Speicher SDRAM eines anderen Typs verwenden will, würde es genügen, den Steuersignalgenerator IF_SDRAM zu modifizieren und neu zu programmieren. Die anderen Elemente der Zugriffsschnittstelle erfordern im Prinzip keine Änderungen.
  • Der Datenpufferspeicher IF_D dient beim Lesen dem Datentransfer vom gemeinsamen Speicher SDRAM zur Pufferspeichervorrichtung BUF, wie auf 4 gezeigt, und beim Schreiben dem Datentransfer von der Pufferspeichervorrichtung BUS zum gemeinsamen Speicher SDRAM. Dafür führt der Datenpufferspeicher IF_D eine Synchronisation der Daten durch, die vom gemeinsamen Speicher SDRAM (Lesen) kommen, und der Daten, die dem gemeinsamen Speicher SDRAM (Schreiben) zugeführt werden. Außerdem bildet der Datenpufferspeicher IF_D einen FIFO mit der Tiefe einer Einheit. Dies bedeutet, dass wenn ein bestimmter Zeitpunkt bewirkt, dass ein bestimmter Datensatz im gemeinsamen Speicher SDRAM gelesen wird, wird dieser Datensatz im nächsten Zeitpunkt zur Pufferspeichervorrichtung BUS transferiert. Beim Lesen findet das Umgekehrte statt.
  • 8 zeigt ein Beispiel einer Pufferspeichervorrichtung BUF als Teil der Speicherschnittstelle INT, die auf 4 dargestellt ist. Die Pufferspeichervorrichtung BUF enthält eine Pufferspeichervorrichtung zum Lesen BUFR sowie eine Pufferspeichervorrichtung zum Schreiben BUFW und einen Bestätigungssignal-Pufferspeicher FIFO_ACK. Die Pufferspeichervorrichtung zum Lesen BUFR und die Pufferspeichervorrichtung zum Schreiben FUBW sind über die Zugriffsschnittstelle SIF und den gemeinsamen Bus BM mit dem gemeinsamen Speicher SDRAM verbunden, wie auf 1 dargestellt. Die Pufferspeichervorrichtung zum Lesen BUFR ist über respektive die privaten Lesebusse BBR1, BBR2 und BBR3 mit den Blöcken B1, B2 und B3 verbunden. Die Pufferspeichervorrichtung zum Schreiben BUFW ist über respektive die privaten Schreibbusse BBW1, BBW2 und BBW3 mit den Blöcken B1, B2 und B3 verbunden. Der Bestätigungssignal-Pufferspeicher FIFO_ACK ist mit dem Arbitrator ARB verbunden.
  • Die Pufferspeichervorrichtung BUF funktioniert generell folgendermaßen. Die Pufferspeichervorrichtung zum Lesen BUFR speichert die aus dem gemeinsamen Speicher SDRAM kommenden Daten zwischen, während die Pufferspeichervorrichtung zum Schreiben BUFW die aus den verschiedenen Blöcken B kommenden und in den gemeinsamen Speicher SDRAM zu schreibenden Daten speichert. Der Bestätigungssignal-Pufferspeicher FIFO_ACK erhält die aus dem Arbitrator ARB kommenden Bestätigungssignale. Ein solches Signal zeigt an, dass der Arbitrator ARB eine Makrosteuerung an die Zugriffsschnittstelle SIF gesendet hat.
  • Der Bestätigungssignal-Pufferspeicher FIFO_ACK hat dieselbe Tiefe wie der Makrosteuerungs-Pufferspeicher FIFO_MC der Zugriffsschnittstelle SIF, wie auf 7 dargestellt. Folglich, wenn eine Makrosteuerung aus dem Makrosteuerungs-Pufferspeicher FIFO_MC kommt, bewirkt dies, dass ein Speicherzugriff entsprechend der Makrosteuerung vorgenommen wird, wobei das dieser Makrosteuerung entsprechende Bestätigungssignal aus dem Bestätigungssignal-Pufferspeicher FIFO_ACK kommt. Dieses Signal zeigt an, ob der betreffende Zugriff ein Zugriff zum Lesen oder ein Zugriff zum Schreiben ist. Im ersteren Fall wird die Pufferspeichervorrichtung zum Lesen BUFR aktiviert, um die Daten aus dem gemeinsamen Speicher SDRAM zu erhalten, während im letzteren Fall die Pufferspeichervorrichtung zum Schreiben BUFW aktiviert wird, um die Daten an den gemeinsamen Speicher SDRAM zu senden. Das von dem Bestätigungssignal-Pufferspeicher FIFO_ACK gelieferte Bestätigungssignal zeigt außerdem die Anzahl der in den Zugriff implizierten Daten an, wie von der Makrosteuerung definiert. Diese Anzeige dient der Pufferspeichervorrichtung zur internen Verwaltung "wohin die Daten speichern oder woher die Daten nehmen?" respektive im Falle des Lesens oder Schreibens.
  • 9 zeigt ein Beispiel der Pufferspeichervorrichtung zum Lesen BUFR. Die Pufferspeichervorrichtung zum Lesen BUFR enthält einen Eingangspufferspeicher IB, einen Schnittstellenspeicher SRAM, einen Satz mit mehreren Ausgangs-Pufferspeichern OB, einen Satz Steuerschaltungen CON und einen Arbitrator ARB für den Zugriff auf den Schnittstellenspeicher ARBBR. Der Eingangspufferspeicher IB ist mit dem gemeinsamen Speicher SDRAM über die Zugriffsschnittstelle SIF verbunden, wie bereits in 4 gezeigt. Die Ausgangs-Pufferspeicher OB1, OB2 und OB3 sind respektive mit den Prozessoren P1, P2 und P3 über die privaten Lesebusse BBR1, BBR2 und BBR3 verbunden, wobei diese letzteren Elemente auf den 2 und 3 gezeigt werden. Die Steuerschaltungen CON1, CON2 und CON3 sind respektive mit den Makrosteuerungs-Adressierschaltungen AGB1, mit dem Makrosteuerungs-Adressierschaltung AGB2 und mit dem Makrosteuerungs-Adressierschaltung AGB3 sowie mit der Zugriffsschnittstelle SIF verbunden.
  • Die Pufferspeichervorrichtung zum Lesen BUFR funktioniert wie folgt. Die aus dem gemeinsamen Speicher SDRAM erhaltenen Daten haben eine Länge von N Bits, wobei N eine Ganzzahl ist, und sie kommen mit einer Frequenz F. Der Schnittstellenspeicher SRAM hat eine Breite von 2N Bits, eine Adresse kann folglich 2N Bits enthalten, und er arbeitet mit der Frequenz F. Der Eingangspufferspeicher IB bildet Paare mit zwei aufeinanderfolgenden Daten, die aus dem gemeinsamen Speicher SDRAM kommen, und schreibt diese Paare in den Schnittstellenspeicher SRAM. Man benötigt zwei Zeitzyklen für die Bildung eines Paares. Unter der Annahme, dass die aus dem gemeinsamen Speicher SDRAM nacheinander erhaltenen Daten sich zur Bildung von Paaren eignen, findet alle zwei Zeitzyklen ein Schreibzugriff auf den Schnittstellenspeicher SRAM statt. Ein Zugriff auf eine einzige Adresse bedarf nur eines Zeitzyklus. Folglich verfügt man zwischen zwei Schreibzugriffen über einen Zeitzyklus für den Zugriff auf den Schnittstellenspeicher SRAM beim Lesen, um die im gemeinsamen Speicher SDRAM gelesenen Daten nach den Blöcken B zu transferieren. Somit können im Prinzip die Zugriffe auf den Schnittstellenspeicher SRAM zum Schreiben und die Lesezugriffe abwechselnd und nacheinander stattfinden. Der Zugriff auf den Schnittstellenspeicher SRAM wird im Folgenden mehr im Detail beschrieben.
  • Tatsächlich wird der Schnittstellenspeicher SRAM in drei Zonen Z1, Z2 und Z3 unterteilt. Die Zonen Z1, Z2 und Z3 enthalten respektive die Daten, die für die Prozes soren P1, P2 und P3 bestimmt sind. Die aus dem gemeinsamen Speicher SDRAM kommenden Daten werden mit Hilfe des Eingangspufferspeichers IB in die Zone Z1, Z2 und Z3 geschrieben, unter Berücksichtigung des Prozessors P, der der laufenden Makrosteuerung zugrunde liegt. Die in den Zonen Z1, Z2 und Z3 enthaltenen Daten werden auf weitgehend regelmäßige Weise und nach einem mehr oder weniger festen Schema respektive in die Ausgangs-Pufferspeicher OB1, OB2 und OB3 transferiert. Tatsächlich unterteilt ein Ausgangs-Pufferspeicher OB einen Datensatz in mehrere Stücke und sendet den Datensatz stückweise an den betroffenen Prozessor P. Ein Ausgangs-Pufferspeicher OB kann z. B. einen Datensatz von 16 Bits in 4 Stücke von 4 Bits unterteilen. Anstatt den Datensatz demnach in einem einzigen Zeitpunkt zu senden, was einen Bus mit einer Größe von 16 Bits erfordert, sendet man den Datensatz stückweise in 4 Zeitpunkten, was einen Bus mit nur einer Größe von 4 Bits erfordert.
  • Die Steuerschaltungen CON1, CON2 und CON3 generieren respektive die Zonen Z1, Z2 und Z3. Zu diesem Zweck verwaltet jede Steuerschaltung CON eine Parametereinheit. Diese Parameter enthalten einen Schreibzeiger, einen Lesezeiger und einen Zonenfüllwert. Der Schreibzeiger definiert die Adresse, an der ein aus dem gemeinsamen Speicher SDRAM kommender Datensatz geschrieben wird. Der Lesezeiger definiert die Adresse des Datensatzes, der zum betreffenden Ausgangs-Pufferspeicher OB transferiert werden muss. Der Füllwert zeigt die Anzahl noch verfügbarer Adressen für die Speicherung der aus dem gemeinsamen Speicher SDRAM kommenden Daten an. Die Steuerschaltungen CON1, CON2 und CON3 generieren ebenfalls respektive die Ausgangs-Pufferspeicher OB1, OB2 und OB3. Dafür generiert jede Steuerschaltung CON einen für den Füllzustand des ihm zugehörigen OB stehenden Parameter.
  • Es wird jetzt die von der Steuerschaltung CON vorgenommene Verwaltung unter der Annahme beschrieben, dass ein Zugriff auf den gemeinsamen Speicher SDRAM wie in 5 dargestellt stattfindet. In Schritt S5 unterbreitet die Makrosteuerungs-Adressierschaltung AGB der Pufferspeichervorrichtung BUF eine Makrosteuerung. Diese Makrosteuerung wird von der Steuerschaltung CON verarbeitet, die dem Prozessor P zugehört, der den Ursprung der Makrosteuerung bildet. Die Steuerschaltung CON vergleicht Die Anzahl der von der Makrosteuerung definierten Daten mit dem Füllwert. Somit prüft die Steuerschaltung CON, ob in der betreffenden Zone Z ausreichend Platz vorhanden ist, um die gewünschten Daten zu speichern. Wenn es ausreichend Platz gibt, signalisiert die Steuerschaltung CON dies der Makrosteuerungs-Adressierschaltung AGB, und sie aktualisiert zusätzlich die Füllparameter. Dies bedeutet, dass sie befindet, dass die Daten bereits in der betreffenden Zone gespeichert sind, obwohl dies erst noch stattfinden muss. Die Aktualisierung der Füllparameter kann demnach als eine Reservierung in der betreffenden Zone betrachtet werden.
  • Es wird nun beschrieben, was bei Schritt S12 stattfindet, wie auf 5 gezeigt. Dieser Schritt S12 besteht im Lesen des gemeinsamen Speichers SDRAM nach der betreffenden Makrosteuerung. Es wurde bereits erklärt, dass in dem Zeitpunkt, in dem die Zugriffsschnittstelle SIF die Verarbeitung der Makrosteuerung beginnt und demnach beginnt, zu lesen, das mit der betreffenden Makrosteuerung verbundene Bestätigungssignal aus dem Pufferspeicher für Bestätigungssignale FIFO_ACK kommt, wie auf 7 gezeigt. Dieses Bestätigungssignal zeigt an, dass es sich um einen Schreibzugriff handelt, und auch, dass dieses Signal dem Prozessor P den Ursprung der Makrosteuerung anzeigt. Somit weiß die diesem Prozessor P zugehörige Steuerschaltung CON, dass sie die Adressen ausgeben muss, unter denen die Daten im gemeinsamen Speicher SDRAM abgelegt werden müssen. Außerdem erhält die Steuerschaltung CON die Anzeige der Anzahl in den Zugriff entsprechend der Makrosteuerung implizierten Daten, wobei diese Anzeige Teil des Bestätigungssignals ist.
  • Nach jedem Schreiben eines Datenpaars aus dem gemeinsamen Speicher SDRAM in der betreffenden Zone Z erhöht die Steuerschaltung CON den Schreibzeiger. Außerdem aktualisiert sie den Füllwert. Die Steuerschaltung CON macht dies solange weiter, bis der Lesezugriff des gemeinsamen Speichers SDRAM wie von der Makrosteuerung definiert beendet wurde. Die Steuerschaltung CON erkennt das Ende des Zugriffs dank der im Zugriff angezeigten Anzahl Daten, wobei diese Zahl ihr vom Bestätigungssignal angezeigt wird, und dank der Verbuchung der in den Schnittstellenspeicher SRAM geschriebenen Daten.
  • Nach jedem Lesen eines Datenpaars einer bestimmten Zone Z erhöht die Steuerschaltung CON, welche diese Zone verwaltet, den Lesezeiger. Außerdem aktualisiert sie den Füllwert.
  • Die Zugriffsarbitrage auf den Schnittstellenspeicher ARBBR verwaltet den Zugriff auf den Schnittstellenspeicher SPRAM. Es gibt verschiedene Zugriffstypen: (1) Zugriff über die Zugriffsschnittstelle SIF für das Schreiben der aus dem gemeinsamen Speicher SDRAM kommenden Daten in den Schnittstellenspeicher SRAM, (2) Zugriff über den Ausgangs-Pufferspeicher OB1, (3) Zugriff über den Ausgangs-Pufferspeicher OB2 und (4) (4) Zugriff über den Ausgangs-Pufferspeicher OB3. Diese drei letzten Zugriffe dienen dem Transfer der im Schnittstellenspeicher SRAM enthaltenen Daten respektive an die Prozessoren P1, P2 und P3.
  • Jeder Zugriff auf den Schnittstellenspeicher SRAM findet in Folge einer dem Zugriffsarbitrator im Schnittstellenspeicher ARBBR unterbreiteten Anfrage statt. Der Zugriffsarbitrator im Schnittstellenspeicher ARBBR wählt unter den laufenden Anfragen diejenige Anfrage mit der höchsten Priorität aus. Die Anfragen für einen Schreibzugriff (Zugriff über die Zugriffsschnittstelle SIF) haben maximale Priorität. Dank der Tatsache, dass man Datenpaare schreibt wie hiervor beschrieben, findet solch eine Anfrage generell nur alle zwei Zeitzyklen statt. Ein Schreiben nimmt nur einen Zeitzyklus in Anspruch. Demnach gibt es ausreichend Gelegenheiten, um auf den Schnittstellenspeicher SRAM zum Lesen zuzugreifen, um die Daten zu den verschiedenen Prozessoren P zu transferieren.
  • Die Zugriffsanfragen zum Lesen von einem bestimmten Ausgangs-Pufferspeicher OB verlaufen unter Berücksichtigung des privaten Lesebusses BBR zwischen dem Ausgangs-Pufferspeicher OB und dem Block B. Nehmen wir z. B. an, dass die Größe des Busses N/2 Bits entspricht. Dies bedingt, dass man bei jedem Zeitzyklus ein Stück von N/2 Bits des Ausgangs-Pufferspeicher OB zum Block B übertragen kann. Ein Lesen des Schnittstellenspeichers SRAM verläuft in Datenpaaren. Ein Datenpaar enthält 2N Bits. Man benötigt demnach 4 Zeitzyklen, um ein Datenpaar an den Block B zu übertragen. Der Transfer eines Datenpaars bedingt eine Zugriffsanfrage an den Schnittstellenspeicher SRAM zum Lesen. Demnach macht dem Beispiel zufolge der OB alle 4 Zeitzyklen eine Zugriffsanfrage. Dieses Beispiel zeigt, dass die Breite der Busse zu den Blöcken B die Frequenz der Zugriffsanfrage der diversen Ausgangs-Pufferspeicher OB bedingt. Wenn die Größe des privaten Lesebusses BBR gleich N/4 Bits ist, wird alle 8 Zeitzyklen eine Anfrage gesellt.
  • Die folgende Beschreibung betrifft die Zugriffsarbitrage auf den Schnittstellenspeicher SRAM. Es wird vorausgesetzt, dass die Größe des privaten Lesebusses BBR1 gleich N/2 Bits ist, und dass die Größe des privaten Lesebus BBR2 und die des privaten Lesebus BBR3 gleich N/4 Bits ist. Die Zugriffe der Zugriffsschnittstelle SIF sind die prioritärsten, worauf die Zugriffe der Ausgangs-Pufferspeicher OB1, OB2 und OB3 in der Prioritätsfolge kommen. Schließlich wird vorausgesetzt, dass alle Zugriffstypen (SIF, OB1, OB2, OB3) im ersten Zeitzyklus alle gleichzeitig eine Anfrage stellen.
    • Zyklus 1: Jeder stellt zur gleichen Zeit seine Anfrage: die Zugriffsschnittstelle SIF, die Ausgangs-Pufferspeicher OB1, OB2 und OB3.
    • Zyklus 2: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; die Ausgangs-Pufferspeicher OB1, OB2 und OB3 halten ihre Anfragen aufrecht.
    • Zyklus 3: Der Ausgangs-Pufferspeicher OB 1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfragen: Zugriffsschnittstelle SIF, Ausgangs-Pufferspeicher OB2 und OB3.
    • Zyklus 4: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; die Ausgangs-Pufferspeicher OB2 und OB3 halten ihre Anfragen aufrecht; laufende Anfragen: Ausgangs-Pufferspeicher OB2 und OB3.
    • Zyklus 5: Der Ausgangs-Pufferspeicher OB2, welcher der dritte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfragen: Zugriffsschnittstelle SIF, Ausgangs-Pufferspeicher OB2 und OB3.
    • Zyklus 6: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfragen: Zugriffsschnittstelle SIF, Ausgangs-Pufferspeicher OB1 und OB3.
    • Zyklus 7: Der Ausgangs-Pufferspeicher OB1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfragen: Zugriffsschnittstelle SIF, Ausgangs-Pufferspeicher OB3.
    • Zyklus 8: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB3 hält seine Anfrage aufrecht; laufende Anfrage: Ausgangs-Pufferspeicher OB3.
    • Zyklus 9: Der Ausgangs-Pufferspeicher OB3, welcher der vierte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 10: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB1.
    • Zyklus 11: Der Ausgangs-Pufferspeicher OB1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 12: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB2 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB2.
    • Zyklus 13: Der Ausgangs-Pufferspeicher OB2, welcher der dritte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 14: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB1.
    • Zyklus 15: Der Ausgangs-Pufferspeicher OB1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 16: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB3 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB3.
    • Zyklus 17: Der Ausgangs-Pufferspeicher OB3, welcher der vierte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 18: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB1.
    • Zyklus 19: Der Ausgangs-Pufferspeicher OB1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 20: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB2 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB2.
    • Zyklus 21: Der Ausgangs-Pufferspeicher OB2, welcher der dritte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 22: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB1.
    • Zyklus 23: Der Ausgangs-Pufferspeicher OB1, welcher der zweite in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 24: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB3 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB3.
    • Zyklus 25: Der Ausgangs-Pufferspeicher OB3, welcher der vierte in der Prioritätsfolge ist, bewerkstelligt seinen turnusgemäßen Zugriff; die Zugriffsschnittstelle SIF stellt eine neue Anfrage; laufende Anfrage: Zugriffsschnittstelle SIF.
    • Zyklus 26: Da die Zugriffsschnittstelle SIF die prioritärste ist bewerkstelligt sie ihren turnusgemäßen Zugriff; der Ausgangs-Pufferspeicher OB1 erschöpft seinen Puffer und stellt eine neue Anfrage; laufende Anfrage: Ausgangs-Pufferspeicher OB1. Etc.
  • Die Zugriffe in dem vorangehenden Beispiel haben eine Periodizität von 8 Zyklen. Es ist, als würde die Arbitrage von der Ringmaschine mit acht Zuständen gewährleistet. Dieses Ergebnis liegt der Tatsache zugrunde, dass in dem Beispiel vorausgesetzt wird, dass alle Blöcke B ihre Daten auf regelmäßige Art und Weise aufbrauchen. Außerdem wird vorausgesetzt, dass die Zugriffsanträge von der Zugriffsschnittstelle SIF regelmäßig ein Mal alle zwei Zeitzyklen stattfinden. Diese Voraussetzungen sind in der Praxis nicht unbedingt korrekt. Aus diesem Grund ist es vorzuziehen, die Zugriffe auf den Schnittstellenspeicher SRAM mit Hilfe eine Arbitrators und einem Prioritätsschema anstatt mit einer Ringmaschine vorzunehmen. Die Arbitrage gewährt eine gewisse Flexibilität im Bereich des Zugriffs auf den Schnittstellenspeicher SRAM, und sie ermöglicht folglich eine bessere Verwendung der verfügbaren Bandbreite für den Datentransfer.
  • Was folgt ist ein Beispiel für eine Ausnahme zur Regel, der zufolge es alle zwei Zeitzyklen nur einen Zugriff zum Schreiben in den Schnittstellenspeicher SRAM (= Zugriff über die Zugriffsschnittstelle SIF) gibt. Die Ausnahme tritt ein, wenn infolge einer Makrosteuerung, welche eine ungerade Datenzahl einbezieht, ein Zugriff auf den gemeinsamen Speicher SDRAM stattfindet. Alle Datensätze dieses Zugriffs, außer der letzte, finden einen Partner und bilden so Paare zum Schreiben in den Schnittstellenspeicher SRAM.
  • Der letzte Datensatz bleibt allein. Der folgende Datensatz kann zur Bildung eines Paars nicht verwendet werden, denn dieser Datensatz ist der erste eines anderen Zugriffs und demnach für einen anderen Prozessor P bestimmt. Folglich muss dieser erste Datensatz in einer anderen Zone Z des Schnittstellenspeicher SRAM gespeichert werden. Demnach wird infolge der Ankunft im Pufferspeicher des Eingangs IB eines letzten Zugriffsdatensatzes mit einer ungeraden Datenzahl dieser Datensatz in dem Zeitzyklus, welcher dem letzten im Zugriff enthaltenen Datenpaar folgt, ohne Partner in den Schnittstellenspeicher SRAM geschrieben. Folglich gibt es zwei aufeinanderfolgende Schreibzugriffe ohne die Pause eines Zeitzyklus, der ansonsten einen Lesezugriff zwischen zwei Schreibzugriffen ermöglicht hätte.
  • Die 5 und 9 betreffen die Funktionsweise der Speicherschnittstelle INT zum Lesen. Die Funktionsweise beim Lesen ist weitgehend symmetrisch. Dies bedingt, dass die Pufferspeichervorrichtung zum Schreiben BUFW zu der zuvor beschriebenen Pufferspeichervorrichtung zum Lesen BRFR ähnlich ist. Demnach weist die Pufferspeichervorrichtung BUFW einen in Zonen aufgeteilten Schnittstellenspeicher auf, wobei jede Zone einem anderen Block B zugehört. Die Blöcke B können in den gemeinsamen Speicher zu schreibende Daten vor oder nach der Makrosteuerung, die anzeigt, wo diese Daten gespeichert werden müssen, versenden. Tatsächlich wird sich eine Zone füllen, sobald der Block B, zu dem die Zone gehört, zur Speicherung im gemeinsamen Speicher bestimmte Daten zu senden beginnt. Diese Füllung kann z. B. andauern, bis die Zone vollständig mit Daten gefüllt ist. In diesem Fall zeigt die Speicherschnittstelle INT dem betreffenden Block B an, dass kein Platz mehr für die Speicherung neuer Daten vorhanden ist. Dies hindert den Block B daran, neue Daten zu senden, bis in der betreffenden Zone Platz freigemacht wurde. Solch eine Leerung kann stattfinden, sobald eine Makrosteuerung vom Arbitrator ARB akzeptiert und von der Zugriffsschnittstelle SIF verarbeitet wurde. Auch ist es möglich, dass eine Makrosteuerung gesendet wird, bevor der betreffende Block B die Daten gesendet hat. Auf jeden Fall wird dem Arbitrator ARB keinerlei Makrosteuerung präsentiert, solange die Pufferspeichervorrichtung zum Schreiben BUFW keine ausreichendes Fülldichte anzeigt.
  • Die zuvor in Bezug auf die 19 beschriebene Datenverarbeitungsvorrichtung ist ein Beispiel für die Implementierung der Erfindung entsprechend dem Teil "Beschreibung der Erfindung". Die auf 1 gezeigte Datenverarbeitungsvorrichtung enthält drei Datenverarbeitungsblöcke B und eine Speicherschnittstelle INT, über die die Blöcke B auf den gemeinsamen Speicher SDRAM zugreifen können. Die Speicherschnittstelle INT enthält einen Schnittstellenspeicher SRAM und Steuerschaltungen CON, wie auf 9 gezeigt. Der Schnittstellenspeicher SRAM speichert die den verschiedenen Blöcken B zugehörigen Daten zwischen. Die Steuerschaltungen steuern die Schnittstellenspeicher SRAM auf eine Art und Weise, dass diese für jeden Block B einen FIFO bildet.
  • Die vorangehende Beschreibung in Bezug auf die Figuren veranschaulicht die Erfindung auf nicht erschöpfende Art und Weise. Selbstverständlich gibt es zahlreiche Alternativen, die innerhalb der Tragweite der beigefügten Patentansprüche liegen. In dieser Hinsicht werden abschließend einige Bemerkungen gemacht.
  • Es gibt zahlreiche Verfahren für die Implementierung einer der Erfindung entsprechenden Datenverarbeitungsvorrichtung. Die auf 1 dargestellte Vorrichtung enthält drei Prozessoren. Andere Implementierungen können mehr oder auch weniger Prozessoren enthalten. Außerdem ist es nicht unbedingt erforderlich, die Daten jedes Prozessors in einem einzigen Schnittstellenspeicher zu speichern. Man kann z. B. annehmen, dass eine Datenverarbeitungsvorrichtung sechs Prozessoren enthält. Solch eine Implementierung kann zwei Schnittstellenspeicher enthalten: Einen Schnittstellenspeicher für die Zwischenspeicherung der zu drei Prozessoren gehörenden Daten und einen anderen Schnittstellenspeicher SRAM für die Speicherung der zu anderen drei Prozessoren gehörenden Daten.
  • Es gibt zahlreiche Verfahren für die Implementierung von Funktionen mittels apparativer Bestandteile (in Englisch: items of hardware) oder nichtapparativer Bestandteile (in Englisch: software) oder einer Verbindung der beiden. Diesbezüglich sind die Figuren sehr schematisch, jede Figur zeigt nur eine Ausführungsform. Folglich schließt, obwohl jede Figur verschiedene Funktionen in der Form von gesonderten Blöcken zeigt, dies keinesfalls aus, dass nur ein apparativer oder nichtapparativer Bestandteil mehrere Funktionen ausführt. Dies schließt keinesfalls aus, dass eine Funktion von einer Einheit aus apparativen und nichtapparativen Bestandteilen ausgeführt werden kann.
  • Die auf 4 gezeigte Schnittstelle enthält z. B. verschiedene Blöcke, die miteinander verbunden den Zugriff auf den gemeinsamen Speicher steuern und welche die in der Speicherschnittstelle enthaltenen Speicher steuern. Im Prinzip ist es möglich, diese Blöcke mit einer angemessen programmierten Computerschaltung zu implementieren. Ein in einem Programmierspeicher enthaltener Anleitungssatz kann die Computerschaltung zur Ausführung der verschiedenen, zuvor in Bezug auf die 19 beschriebenen Operati onen bewegen. Der Anleitungssatz kann über das Lesen eines Datenträgers wie z. B. einer Platte, welche den Anleitungssatz enthält, in den Programmierspeicher geladen werden. Das Lesen kann über ein Kommunikationsnetz verlaufen, wie z. B. das Internet. In diesem Falle stellt ein Dienstleistungsbetrieb (in Englisch: service provider) den Interessenten den Anleitungssatz zur Verfügung.
  • Das Wort "einschließen" schließt das Vorhandensein anderer in einem Anspruch aufgeführter Elemente oder Schritte nicht aus.

Claims (3)

  1. Datenverarbeitungsvorrichtung mit mehreren Prozessoren und einer Speicherschnittstelle, über die die Prozessoren auf einen gemeinsamen Speicher zugreifen können, dadurch gekennzeichnet, Speicherschnittstelle, die einschließt: – einen Schnittstellenspeicher zum vorübergehenden Speichern der den verschiedenen Prozessoren zugehörigen Daten; und – eine Steuerschaltung für die Verwaltung des Schnittstellenspeichers auf eine Art und Weise, dass er für jeden der verschiedenen Prozessoren einen FIFO-Speicher bildet.
  2. Datenverarbeitungsmethode mit mehreren Prozessoren und einem gemeinsamen Speicher, dadurch gekennzeichnet, dass die Datentransfers zwischen den Prozessoren und dem gemeinsamen Speicher in folgenden Schritten ausgeführt werden: – vorübergehendes Speichern der den verschiedenen Prozessoren zugehörigen Daten in einem Schnittstellenspeicher; und – Verwaltung des Schnittstellenspeichers auf eine Art und Weise, dass er für jeden der verschiedenen Prozessoren einen FIFO-Speicher bildet.
  3. "Computerprogrammprodukt" für eine Datenverarbeitungsvorrichtung mit mehreren Prozessoren und einer Speicherschnittstelle, über die die Prozessoren auf einen gemeinsamen Speicher zugreifen können, dadurch gekennzeichnetes "Computerprogrammprodukt", dass es einen Anleitungssatz enthält, welcher, wenn er in die Datenverarbeitungsvorrichtung geladen wird, die Speicherschnittstelle dazu veranlasst, folgende Schritte auszuführen: – vorübergehendes Speichern der den verschiedenen Prozessoren zugehörigen Daten in einem Schnittstellenspeicher; und – Verwaltung des Schnittstellenspeichers auf eine Art und Weise, dass er für jeden der verschiedenen Prozessoren einen FIFO-Speicher bildet.
DE60009618T 1999-08-31 2000-08-29 Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher Expired - Lifetime DE60009618T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR9910954A FR2797969A1 (fr) 1999-08-31 1999-08-31 Dispositif a plusieurs processeurs partageant une memoire collective
FR9910954 1999-08-31
FR9912068A FR2799020A1 (fr) 1999-09-28 1999-09-28 Dispositif a plusieurs processeurs ayant une interface pour une memoire collective
FR9912068 1999-09-28

Publications (2)

Publication Number Publication Date
DE60009618D1 DE60009618D1 (de) 2004-05-13
DE60009618T2 true DE60009618T2 (de) 2005-03-24

Family

ID=26235092

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60009618T Expired - Lifetime DE60009618T2 (de) 1999-08-31 2000-08-29 Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher

Country Status (7)

Country Link
US (1) US6738840B1 (de)
EP (1) EP1081597B1 (de)
JP (1) JP2001125826A (de)
KR (1) KR100676982B1 (de)
CN (1) CN1145893C (de)
DE (1) DE60009618T2 (de)
TW (1) TW475115B (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3641435B2 (ja) * 2001-03-01 2005-04-20 エヌイーシーコンピュータテクノ株式会社 トランザクション調停装置及び方法
US7035908B1 (en) * 2001-07-26 2006-04-25 Lsi Logic Corporation Method for multiprocessor communication within a shared memory architecture
FR2830162B1 (fr) * 2001-09-27 2003-12-05 Streamcore Dispositif de gestion partagee
US7543303B2 (en) * 2002-03-29 2009-06-02 International Business Machines Corporation Use of multiple queues in coupling facility to provide zoning capability in a parallel sysplex environment
CN100552655C (zh) * 2003-08-07 2009-10-21 松下电器产业株式会社 处理器集成电路和安装了处理器集成电路的产品开发方法
US20070255874A1 (en) * 2006-04-28 2007-11-01 Jennings Kevin F System and method for target device access arbitration using queuing devices
JP5104402B2 (ja) * 2008-02-29 2012-12-19 横河電機株式会社 メモリアクセス制御装置
CN101814012A (zh) * 2010-05-20 2010-08-25 锐迪科科技有限公司 Sdram存储器结构及数据读写方法
CN102855210B (zh) * 2012-08-27 2015-06-10 福建省力得自动化设备有限公司 一种实现两个单片机间相互通信且数据共享的方法
US9092156B1 (en) * 2013-05-30 2015-07-28 Marvell International Ltd. Methods and apparatus for managing storage device commands

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58181165A (ja) * 1982-04-16 1983-10-22 Hitachi Ltd ベクトル演算プロセツサ
US5179665A (en) * 1987-06-24 1993-01-12 Westinghouse Electric Corp. Microprocessor information exchange with updating of messages by asynchronous processors using assigned and/or available buffers in dual port memory
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5072420A (en) 1989-03-16 1991-12-10 Western Digital Corporation FIFO control architecture and method for buffer memory access arbitration
EP0422310A1 (de) * 1989-10-10 1991-04-17 International Business Machines Corporation Verteilter Mechanismus für die schnelle Planung von gemeinsamen Objekten
JPH0619759B2 (ja) * 1990-05-21 1994-03-16 富士ゼロックス株式会社 マルチプロセッサシステムにおける相互通信方法
AU630299B2 (en) * 1990-07-10 1992-10-22 Fujitsu Limited A data gathering/scattering system in a parallel computer
DE59010106D1 (de) * 1990-07-16 1996-03-14 Siemens Ag Kommunikationssystem mit einem der zentralen Steuerung dienenden Multiprozessorsystem
US5465343A (en) * 1993-04-30 1995-11-07 Quantum Corporation Shared memory array for data block and control program storage in disk drive
US6204864B1 (en) * 1995-06-07 2001-03-20 Seiko Epson Corporation Apparatus and method having improved memory controller request handler
KR0150072B1 (ko) * 1995-11-30 1998-10-15 양승택 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치
US5999654A (en) * 1996-07-17 1999-12-07 Matsushita Electric Industrial Co., Ltd. Image processor capable of transferring image data from an input buffer to memory at a high rate of speed
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory

Also Published As

Publication number Publication date
CN1145893C (zh) 2004-04-14
EP1081597A1 (de) 2001-03-07
JP2001125826A (ja) 2001-05-11
TW475115B (en) 2002-02-01
EP1081597B1 (de) 2004-04-07
KR20010050239A (ko) 2001-06-15
KR100676982B1 (ko) 2007-01-31
US6738840B1 (en) 2004-05-18
DE60009618D1 (de) 2004-05-13
CN1287314A (zh) 2001-03-14

Similar Documents

Publication Publication Date Title
DE69233655T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren
DE69834026T2 (de) Verfahren und vorrichtung zur befehlswiedereinordnung und wiederherstellung von daten zur originalen befehlsreihenfolge
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE60203057T2 (de) Effizienter Optimierungsalgorithmus für Speichergebrauch in Netzwerkanwendungen
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE19580990C2 (de) Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen
DE69822541T2 (de) Verfahren zum Verwalten eines geteilten Speichers
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE69531933T2 (de) Busarchitektur in hochgradiger pipeline-ausführung
DE60026539T2 (de) Ein-/ausgabeadressübersetzung in einer brücke in unmittelbarer nähe eines lokalen ein-/ausgabebuses
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung
DE19983745B9 (de) Verwendung von Seitenetikettregistern um einen Zustand von physikalischen Seiten in einer Speichervorrichtung zu verfolgen
DE10152970B4 (de) Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium
DE2226382B2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
CH628167A5 (de) Prozessoreinrichtung zur prioritaetssteuerung der zugriffe zum gemeinsam benutzten arbeitsspeicher einer mehrprozessoranlage.
DE10296959T5 (de) System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen
DE102007052853A1 (de) Zeilentauschschema zur Verringerung von Rückinvalidierungen in einem Snoopfilter
DE60009618T2 (de) Multiprozessorvorrichtung mit einer Schnittstelle für einen gemeinsamen Speicher
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE112005003222T5 (de) Dynamische Allokation eines Puffers auf mehrere Klienten bei einem Prozessor mit Threads
DE69724879T2 (de) Verfahren und Vorrichtung für einen Kohärenzumwandler zur Verbindung von Rechnersystemkohärenzdomänen
DE69721641T2 (de) Verfahren und Vorrichtung für ein verzeichnisloses Speicherzugriffsprotokoll in einem Rechnersystem mit verteiltem gemeinsamen Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

8327 Change in the person/name/address of the patent owner

Owner name: TRIDENT MICROSYSTEMS (FAR EAST) LTD., GRAND CA, KY

R082 Change of representative

Ref document number: 1081597

Country of ref document: EP

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

R081 Change of applicant/patentee

Ref document number: 1081597

Country of ref document: EP

Owner name: ENTROPIC COMMUNICATIONS, INC., US

Free format text: FORMER OWNER: TRIDENT MICROSYSTEMS (FAR EAST) LTD., GRAND CAYMAN, KY

Effective date: 20121023

R082 Change of representative

Ref document number: 1081597

Country of ref document: EP

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Effective date: 20121023