DE112005002364T5 - Heterogene Prozessoren mit gemeinsamem Cache - Google Patents

Heterogene Prozessoren mit gemeinsamem Cache Download PDF

Info

Publication number
DE112005002364T5
DE112005002364T5 DE112005002364T DE112005002364T DE112005002364T5 DE 112005002364 T5 DE112005002364 T5 DE 112005002364T5 DE 112005002364 T DE112005002364 T DE 112005002364T DE 112005002364 T DE112005002364 T DE 112005002364T DE 112005002364 T5 DE112005002364 T5 DE 112005002364T5
Authority
DE
Germany
Prior art keywords
processor
core
cache
processor cores
heterogeneous
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.)
Ceased
Application number
DE112005002364T
Other languages
English (en)
Inventor
Frank Portland HADY
Mason San Francisco Cabot
John Northboro Beck
Mark Uxbridge Rosenbluth
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112005002364T5 publication Critical patent/DE112005002364T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

Prozessor, umfassend:
Prozessorkerne einschließlich heterogene Prozessorkerne sowie einen mit den Prozessorkernen verbundenen und
von ihnen gemeinsam genutzten Cache, wobei die Prozessorkerne und der Cache auf einem einzigen integrierten Chip integriert sind.

Description

  • HINTERGRUND
  • Moderne Allzweckprozessoren greifen häufig auf einen Hauptspeicher (typischerweise implementiert in Form eines dynamischen Direktzugriffsspeichers oder „DRAM") über eine Hierarchie aus einem oder mehreren Caches (z. B. L1- und L2-Cache) zu. Verglichen mit einem Hauptspeicher geben Caches (typischerweise basierend auf einem statischen Direktzugriffsspeicher oder „SRAM") Daten rascher zurück, erfordern jedoch mehr Platz und Leistung. Speicherzugriffe von Allzweckprozessoren sind gewöhnlich stark zeit- und ortsgebunden. Caches machen sich dies zunutze, indem sie Daten vom Hauptspeicher in größeren als den angeforderten Blöcken aufrufen (Ortsgebundenheit) und diese Daten eine längere Zeitspanne behalten, auch nachdem der Prozessor diese Daten genutzt hat (Zeitgebundenheit). Dieses Verhalten führt dazu, daß verglichen mit dem langsameren DRAM, Anforderungen von einem Cache häufig äußerst rasch bearbeitet werden können. Caches können außerdem gewöhnlich ein wesentlich höheres Lese-/Schreibaufkommen (für höheren Durchsatz) decken als ein Hauptspeicher, so daß es weniger wahrscheinlich ist, daß vorherige Zugriffe in eine Warteschlange gestellt werden und aktuelle Zugriffe verlangsamen.
  • Rechnerarbeit wie Netzwerk- und Grafikbetrieb werden häufig besser von Spezialprozessoren ausgeführt, die spezifisch für die jeweilige Aufgabe konzipiert sind. Beispiele für derartige Spezialprozessoren umfassen Netzwerkprozessoren und Grafikbeschleuniger. Im Allgemeinen werden diese Spezialprozessoren außerhalb der Cache-Hierarchie des Allzweckprozessors untergebracht, häufig auf PCI (Peripheral Component Interconnect) oder AGP (Accelerated Graphics Port).
  • Speicherzugriffe vom Spezialprozessor betreffen daher nur den Hauptspeicher, nicht den Cache des Allzweckprozessors. Die Bewegung von Daten zwischen Allzweckprozessor und Spezialprozessor erfordert häufig sowohl einen Schreib- und einen Lesevorgang im Hauptspeicher, somit kann eine derartige Übertragung nur mit DRAM-Geschwindigkeiten erfolgen.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1A1C zeigen ein Beispiel für einen heterogenen Mehrkernprozessor mit einer busbasierten gemeinsamen Cache-Architektur.
  • 2 zeigt ein Beispiel für einen heterogenen Mehrkernprozessor mit einer gemeinsamen Multiport-Cache-Architektur.
  • 3 zeigt ein Beispiel für einen heterogenen Mehrkernprozessor mit einer Switch-basierten gemeinsamen Cache-Architektur.
  • 4 zeigt ein Beispiel für einen an den Hauptspeicher eines Mehrkern-Allzweckprozessors über eine Brücke angeschlossenen heterogenen Mehrkernprozessor (mit gemeinsamem Cache).
  • 5 zeigt ein Beispiel für eine Netzwerkanwendung, in der ein heterogenes Mehrkernprozessorsystem, wie die in den 14 illustrierten, eingesetzt wird.
  • DETAILLIERTE BESCHREIBUNG
  • 1A1C zeigen ein Multiprozessorsystem 10, das einen Multiprozessor 12 umfaßt, der über einen Speicherbus 16 an einen Hauptspeicher 14 gekoppelt ist. Der Multiprozessor 12 umfaßt einen gemeinsamen Cache ("gemeinsamer Cache") 18 sowie mehrere Prozessor"kerne" (kollektive Prozessorkerne 20), welche mit dem Cache 18 verbunden sind und diesen gemeinsam nutzen. Der gemeinsame Cache 18 in dieser Figur soll eine Einheit darstellen, die sowohl Cache-Speicher und zugehörige Steuerlogik umfaßt. Die Cache-Steuerlogik umfaßt Logik zur Verknüpfung von gegenwärtig mit ihren zugehörigen Cache-Zeilen im Cache gespeicherten Speicheradressen ("Cache-Steuersymbole (tags)").
  • Die Prozessorkerne 20 umfassen heterogene Kerne, d. h. architektonisch unterschiedliche Prozessorkerne (oder Prozessorkerntypen). Zum Beispiel können die Prozessorkerne 20 einen oder mehrere Spezialprozessoren und/oder mindestens einen Zentralprozessorkern (CPU-Kern) umfassen.
  • Die Spezialprozessorkerne können zum Beispiel mindestens einen Netzwerkprozessorkern (NPU-Kern) und/oder einen Grafikmaschinenkern aufweisen. In der abgebildeten Ausführungsform umfassen die Prozessorkerne 20 mehrere NPU-Kerne, dargestellt als NPU-Kerne 22a, 22b, ..., 22k, sowie einen CPU-Kern 24. Die NPU-Kerne 22 können programmierbare RISC-Kerne (RISC = Reduced Instruction Set Computing, wörtlich: Rechnerbetrieb mit verringertem Befehlssatz) sein, die Hardwareunterstützung für Multithread-Betrieb bieten. Den NPU-Kernen 22 mögen die typischerweise in anderen Prozessoren angetroffenen Anweisungen wie Ganzzahlmultiplikation oder -division oder Fließpunktoperationen fehlen, da diese Operationen bei der Verarbeitung von Netzwerkpaketen relativ selten anfallen. Der CPU-Kern 24 kann auf der Architektur eines beliebigen Allzweckprozessortyps basieren, z. B. einem Prozessor der Intel®-Architektur ("IA-Prozessor") wie dem Intel® XeonTM Prozessor oder dem Intel Pentium® 4 Prozessor oder XscaleTM Prozessor.
  • Obwohl dies hier nicht abgebildet ist, wird erkannt werden, daß der CPU-Kern 24 auch einen privaten Cache nutzen kann (z. B. der private Cache kann ein L1-Cache und der gemeinsame ein L2-Cache sein).
  • Die Prozessorkerne 20 sind mit dem gemeinsamen Cache 18 über eine Art Verbindungsmechanismus z. B. einem gemeinsamen Bus 26 wie dargestellt verbunden. Zugriffe sowohl auf CPU-Kern 24 als auch auf NPU-Kern 22 können über den Cache 18 (falls die Daten sich dort befinden) sehr rasch bearbeitet werden. Ein derartiger Zugriff wird als Cache-Treffer bezeichnet, was bedeutet, daß die Daten rascher geliefert werden. Ein Cache-Treffer verringert auch die Anzahl der Zugriffe auf den Hauptspeicher 14 und erhöht den Durchsatz, mit dem andere Zugriffe (Cache-Fehltreffer oder Zugriff über E/A-Agenten) bearbeitet werden können. Auf in beiden Prozessorkerntypen 22, 24 genutzte Daten kann über den gemeinsamen Cache 18 sehr rasch zugegriffen werden, ohne einen Bedarf an DRAM oder sogar Übertragungen von Cache zu Cache. Daten können von einem Prozessorkern (beispielsweise dem NPU-Kern 22) zu einem anderen Prozessorkern (beispielsweise dem CPU-Kern 24) mittels Cache-Lese- und -Schreibvorgängen übermittelt werden, was derartige Prozessoren in die Lage versetzt, wesentlich rascher und, ohne den Hauptspeicher 14 zu laden, vorzugehen.
  • Die Leitung von Daten zwischen den beiden Prozessorkerntypen kann auf folgende Weise über den gemeinsamen Cache ermöglicht werden. Der Prozessorkern mit den Daten schreibt diese in den Cache. Derselbe Prozessorkern informiert den anderen Prozessorkern, daß die Daten bereit sind (z. B. mittels Interrupt oder Flag-Aktualisierung). Der zweite Prozessorkern kann die Daten dann direkt aus dem gemeinsamen Cache 18 abrufen und lesen. Die zwischen den beiden Prozessorkernen übertragenen Daten brauchen nicht in den Hauptspeicher 14 geschrieben und von dort gelesen zu werden. Daher können beide Prozessorkerntypen auf diese Weise Daten mit der Durchsatzrate des gemeinsamen Caches leiten, die häufig wesentlich höher als die vom Hauptspeicher zulässige Geschwindigkeit ist, ohne den Hauptspeicher durch vermeidbar DRAM Lese- und Schreibvorgänge zu belasten.
  • Die enge Kopplung des NPU-Kerns 22 und des CPU-Kerns 24 erlaubt diesen Kernen eine feinkörnigere Zusammenarbeit bei spezifischen Netzwerkalgorithmen (wie zum Beispiel Intrusionserfassung, Firewall-Schutz, Secure Socket Layer (SSL) Beschleunigung). Der gemeinsame Cache erlaubt die Migration zugehöriger Arbeit (und Status) von einem Kern zu einem anderen ohne den Einsatz von DRAM.
  • Obwohl dies hier nicht abgebildet ist, wird erkannt werden, daß einer oder mehrere der NPU-Kerne 22 an andere Ressourcen gekoppelt sein könnten, insbesondere an eine Schnittstelle (oder Schnittstellen) zu externen Netzwerkgeräten. Derartige externe Netzwerkgeräte können jegliche zu Übertragung und/oder Empfang von Netzwerkverkehrsdaten fähige Medienschnittstellen sein, wie Synchronisations (framing)-/MAC-Geräte (MAC = Media Access Control) z. B. zum Anschluß an 10/100BaseT-Ethernet-, Gigabit-Ethernet-, ATM-(Asynchroner Transfermodus) sowie andere Arten von Netzwerken oder Schnittstellen zum Anschluß an ein Switch Fabric. So könnte zum Beispiel in einer Anordnung ein Netzwerkgerät ein (an ein Ethernet-Netzwerk angeschlossenes) Ethernet MAC-Gerät sein, das Daten zum Prozessor 12 sendet bzw. von ihm empfängt, und ein zweites Netzwerkgerät könnte eine Switch-Fabric-Schnittstelle zur Unterstützung der Kommunikation mit einem Switch Fabric sein. Weitere NPU-Ressourcen können beispielsweise Steuerstatusregister (CSR = Control Status Register), Schnittstellen zu anderen externen Speichern wie Paketpuffer und Steuerspeicher oder Zwischenspeicher sein.
  • Im Gegensatz zu konventionellen Systemen, bei welchen sich die Spezialprozessoren auf separatem Silizium befinden und auf den E/A-Anschlüssen eines Allzweckprozessorsystems (z. B. Host) angebracht sind, wird der Kernwerden die Kerne des Multiprozessors 12 auf dem gleichen Chip wie der CPU-Kern 24 und potentiell der Cache 18 untergebracht. Eine derartige Integration erschließt den heterogenen Kernen die Möglichkeit einer effizienteren gemeinsamen Datennutzung, da sie hinter einem gemeinsamen Cache angebracht sind. Daher befinden sich die Prozessorkerne, Cache und Verbindungen in einer Ausführungsform wie in den Figuren dargestellt, auf einem einzigen Chip. Alternativ dazu können Prozessorkerne 20, Cache 18 und Verbindung 26 in Form von separaten Chips in einem aus mehreren Chips bestehenden Bündel implementiert werden. In wieder einer anderen Ausführungsform können Prozessorkerne 20, Cache 18 und Verbindung 26 als Kombination aus Chip- und Platinenkonstruktion implementiert werden.
  • 1B1C zeigen weitere Einzelheiten der busbasierten Cache-Architektur gemäß beispielgebenden Ausführungsformen. In 1B beinhaltet jeder der NPU-Kerne 22 NPU-Kern-Übersetzungslogik 30 (NPU-TL, "translation logic") und der CPU-Kern 24 beinhaltet CPU-Kern-Übersetzungslogik 32 (CPU-TL, "translation logic"). Die Übersetzungslogik 30, 32 übersetzt kernspezifische Speichertransaktionen (wie Lese- und Schreibvorgänge) in kernunabhängige Speichertransaktionen, die auf dem Bus 26 erscheinen und vom gemeinsamen Cache 18 ungeachtet dessen erfaßt werden, welcher Kerntyp sie ausgelöst hat. In 1C wird ein Großteil oder die gesamte Last der Verarbeitung der Charakteristiken kernspezifischer Transaktionen auf den gemeinsamen Cache 18 verlagert. Somit umfaßt der gemeinsame Cache 18 gemeinsame Cache-Übersetzungslogik (SC-TL, "shared cache translation logic") 40 zur Unterstützung der Bearbeitung von Anforderungen (sowie insbesondere Befehlssatzfunktionen) von verschiedenen Prozessorkerntypen auf angemessene Weise. Die gemeinsame Cache-Übersetzungslogik 40 ist ein übergreifender Satz der zur Unterstützung jeder Art von Prozessorkern erforderlichen Logik. Die gemeinsame Cache-Übersetzungslogik 40 kann ferner Buszuteilungslogik zur Prioritisierung des Buszugangs nach Prozessorkerntyp umfassen. Sogar in letzterem Beispiel (gezeigt in 1C) kann es Dinge geben, die näher an den Kernen selbst gelöst werden müssen. Zum Beispiel setzt ein Cache bei CPU-Anwendungen typischerweise Adressen zur Ermittlung des Speichertyps ein, bei NPU-Anwendungen kann der Cache jedoch vom NPU-Befehl hinsichtlich des Speichertyps angewiesen werden. Außerdem können die Prozessorkerne Unterstützung für verschlüsselte Transaktionen mit einer Code-Kennung erfordern.
  • Wie bereits erwähnt, sind andere Mechanismen zur Verbindung von Kern und Cache möglich. Zum Beispiel wie in 2 gezeigt, kann der Cache 18 über mehrere Anschlüsse mit einem Anschluß für jeden Kern oder einem einzigen Anschluß für jeden Prozessorkerntyp verfügen. Somit sind im Fall von NPU-Kern 22 und CPU-Kern 24 und wie in der Figur dargestellt, die NPU-Kerne 20a, 20b, ..., 20k an einen Anschluß 50 eines ersten Anschlußtyps (dargestellt als „Typ A") angeschlossen und der CPU-Kern 24 benutzt einen Anschluß 52 eines zweiten Anschlußtyps (dargestellt als "Typ B"). Obwohl Anschluß 50 als gemeinsamer Anschluß dargestellt ist, wird erkannt, daß jeder NPU-Kern über einen separaten Kanal an einen jeweiligen Anschluß 50 angeschlossen sein könnte. Bei diesem Ansatz würde der eine Zugangsanforderung erzeugende Kerntyp über den Anschluß erkannt, über den die Anforderung empfangen wird. In einer derartigen, mehrere Anschlüsse umfassende Architektur wie dieser können die Anschlüsse jeden Typs (das heißt, die die unterschiedlichen Prozessorkerntypen unterstützenden Anschlüsse) auf die Datenverkehrsmuster und sonstigen Charakteristiken oder Eigenschaften (wie Befehle, Größen, Ausrichtungen usw.) dieser verschiedenen Prozessorkerntypen abgestimmt werden. So sind zum Beispiel NPU-Kerne bandbreitenempfindlich, während CPU-Kerne eher latenzempfindlich sind. Vom Cache für NPU-Anforderungen ausgegebene Daten können bei der Ausgabe zur Optimierung des Durchsatzes für ein festes Datenaufkommen in einem Stapel zusammengefaßt werden. Bei der Abstimmung können die Arten der von einem bestimmten Prozessorkerntyp durchgeführten Transaktionen berücksichtigt werden. Bestimmte Kerntypen können größtenteils Lesevorgänge ausführen (z. B. Grafikmaschinen), während andere Kernarten ein ausgeglicheneres Maß an Lese- und Schreibvorgängen durchführen können.
  • 3 zeigt eine weitere Verbindungsmethode. Bei diesem Ansatz wird jeder der Kerne über eine Weiche 60 (z. B. wie abgebildet ein Kreuzschienenschalter) mit dem gemeinsamen Cache 18 verbunden. Die Übersetzungslogik kann bezüglich des busbasierten Ansatzes auf eine der vorstehend beschriebenen Arten implementiert werden.
  • Obwohl dies nicht abgebildet ist, können die einzelnen Kerne Logik zur Unterstützung von Interrupts oder Flags für den Signalaustausch von Kern zu Kern umfassen. Ein derartiger Signalaustausch zwischen den Kernen kann eingesetzt werden, wenn ein Kern, wie zum Beispiel der NPU-Kern 22, Arbeitslast (z. B. in Form von Paketdaten, Zeigern, Status usw.) zum gemeinsamen Cache 18 übertragen hat und einem zweiten Kern, wie zum Beispiel dem CPU-Kern 24, signalisieren muß, daß diese Aufgabe zur Bearbeitung durch den zweiten Kern bereitsteht.
  • Der Prozessor 12 kann als eine Einheit bei einem cache-kohärenten Zugriff auf einen Hauptspeicher über eine oder mehrere Prozessor-/Cache-Kombinationen wie in 4 dargestellt, teilnehmen. 4 zeigt ein System 70, das einen nun über eine Brücke 74 mit einem Hauptspeicher 72 verbundenen Prozessor 12 umfaßt. Der Hauptspeicher 72 wird mit einem Allzweckprozessor (General Purpose Processor = GPP) 76 geteilt, der ebenfalls an die Brücke 74 angeschlossen ist. Der Allzweckprozessor 76 umfaßt einen oder mehrere CPU-Kerne 78 hinter einem gemeinsamen (oder geteilten) Cache 80. Die Caches und die Brückenstruktur funktionieren solcherart, daß die laufende Kohärenz aller Caches gewährleistet ist.
  • Die Brücke 74 kann implementiert werden, um den Kernen des Prozessors 12 und den Kernen des Allzweckprozessors 76 mit ihren nativen Zugriffsprotokollen sowohl den Zugriff auf den Hauptspeicher als auch auf gemeinsamen Cache des anderen Prozessors zu ermöglichen. Die gemeinsame Cache-Anordnung erlaubt den heterogenen Prozessorkernen des Prozessors 12, auf den gemeinsamen Cache 18 in ihrem nativen Betriebsmodus zuzugreifen, wobei es sich jedoch nicht auswirkt, daß andere Prozessortypen (wie die CPU-Kerne 78 des Allzweckprozessors 76) verschiedene Protokolle für den Zugriff auf den gemeinsamen Cache 18 einsetzen. In einer Beispielimplementierung basierend auf einem IXA-basierten NPU-Kern 22 und IA-basierten CPU-Kern 78, kann der NPU-Kern 22 auf den gemeinsamen Cache 18 über IXA-Protokolle (wie Befehls-Push/Pull-Busprotokolle) zugreifen und den gemeinsamen Cache als weitere Speicherressource betrachten, während externer Zugriff auf den gemeinsamen Cache 18 durch einen der CPU-Kerne 78 über die Brücke 74 mittel IA-Cache-Zugriff und kohärente Mechanismen durchgeführt werden kann. Wie bereits erwähnt, können die heterogenen Kerne des Prozessors 12 unter Verwendung ihrer nativen (und unterschiedlichen) Zugangsprotokolle voll auf den gemeinsamen Cache 18 zugreifen. Daten können von einem Kern in einem Prozessor zu einem Kern in dem anderen Prozessor mittels Cache-zu-Cache-Transfer übermittelt werden. Dies kann mit geringerer Latenz und höherer Bandbreite erzielt werden als bei der Alternative, wo ein Hauptspeicher-Schreibvorgang durch einen Prozessor und ein Hauptspeicher-Lesevorgang durch einen anderen Prozessor erfolgt, und dabei wird der Hauptspeicher nicht geladen.
  • Ein Beispieltransfer verläuft folgendermaßen. Ein CPU-Kern 78 sendet eine Leseanforderung an einen gemeinsamen Speicher 80, der einen Cache-Fehltreffer erfaßt und die Leseanforderung zur Brücke 74 leitet. Die Brücke 74 sendet die Leseanforderung an den gemeinsamen Cache 18, der eine Kopie der angeforderten Daten enthält. Der gemeinsame Cache 18 gibt die angeforderten Daten über die Brücke 74 an den gemeinsamen Cache 80 aus. In einem alternativen Szenario kann die Brücke 74 die Leseanforderung sowohl an den gemeinsamen Cache 18 als auch den Hauptspeicher 72 senden und basierend auf der Antwort vom gemeinsamen Cache 18 entscheiden, welche Kopie der Daten verwendet werden soll.
  • Der gemeinsame Cache-Mechanismus kann verschiedene Cache-Strategien und -Eigenschaften unterstützen, wie Cache-Zeilenausrichtung, Cache-Fähigkeit und Cache-Zeilensperre. Bei der Cache-Zeilenausrichtung wird eine Speichertransaktion, die sich auf mehr als eine Zeile des gemeinsamen Caches auswirkt, in mehrere Speicherzugriffe konvertiert, welche jeweils auf eine einzige Cache-Zeile entfallen. Die Cache-Fähigkeit der von einem Speichertransfer betroffenen Daten kann anhand des Anweisungstyps (z. B. eine Anweisung, die eine nicht im Cache gespeicherte Transaktion vorgibt) und/oder basierend auf dem Speichertyp (z. B. wie in einem Speichertyp-Bereichsregister vorgegeben) bestimmt werden. Diese Funktion befähigt mindestens einen der heterogenen Prozessorkerne, z. B. den NPU-Kern, zur Erzeugung von Lese- und Schreibvorgängen in den Hauptspeicher 14, die den gemeinsamen Cache 16 im Falle eines Cache-Fehltreffers umgehen. Eine Cache-Zeilensperre bedeutet das Sperren einzelner Cache-Zeilen durch einen Kern. Mit der Cache-Zeilensperr-Funktion kann mindestens einer der heterogenen Prozessorkerne einen Teil (z. B. eine einzige Cache-Zeile, mehrere Cache-Zeilen oder alle Cache-Zeilen) der gemeinsamen Cache-Zeilen zur privaten Speichernutzung sperren, möglicherweise zur Erweiterung lokaler Ressourcen (z. B. Zwischenspeicher), die dem/den Kernen bereits verfügbar sind, oder zu erweiterten privaten Modifikation. Durch das Sperren einer, einiger oder aller Cache-Zeilen kann ein Kern den gesperrten Speicherplatz als erweiterten lokalen Speicher nutzen, während die Kerne weiterhin kohärent im jeweils verbleibenden Teil des gemeinsamen Caches operieren. Nutzt nur einer der heterogenen Prozessorkerne aktiv den gemeinsamen Cache, so zieht dieser Prozessorkern den vollen Nutzen aus dem gesamten gemeinsamen Cache und nutzt so effektiv den Chip-Bereich zur Maximierung der Leistung. Diese Cache-Sperren kann auf die gleiche Weise implementiert werden wie das Sperren zwecks elementarer Operationen, z. B. Nutzung eines Cache-Zeilen-Sperrstatusfelds.
  • Die Nutzung einer oder mehrerer dieser (und möglicherweise anderer) Techniken kann – zumindest teilweise – durch die Auswahl der Kerntypen bestimmt werden. Zum Beispiel umfassen manche Spezialprozessoren wie Netzwerkprozessoren Lese- und Schreibvorgänge zum/vom Speicher, von denen der Programmierer weiß, daß sie äußerst schlechte Zeit- und Ortsgebundenheit aufweisen. Das Gleiche kann auch auf manche Zugriffe vom Allzweckprozessor zutreffen. Um die Effizienz dieser Zugriffe zu verbessern, kann es daher wünschenswert sein, Lese- und Schreibbefehle bereitzustellen, die nicht in Cache-Aktivitäten resultieren. Mit anderen Worten werden die Daten nicht in den Cache gestellt und bereits im Cache befindliche Daten werden nicht ausgelagert. Zugriffe, von welchen der Programmierer weiß, daß sie den Cache nicht treffen, können um diesen Cache geleitet werden, was die Cache-Trefferquote für andere Zugriffe erhöht. Außerdem können verschiedene Kerntypen Datenübertragung/Datenabrufe verschiedener Größe unterstützen, von welchen manche nicht auf Cache-Zeilen ausgerichtet sind. CPU-Kerne, wie ein IA-Kern, generieren typischerweise Anforderungen, die in eine einzige Cache-Zeile fallen, während ein NPU wie z. B. ein IXA-Netzwerkprozessor fähig sein kann, Anforderungen willkürlicher Größe zu erzeugen, die sich über mehrere Cache-Zeilen erstrecken können.
  • Die hier beschriebene gemeinsame Cache-Architektur erlaubt es, zwei verschiedene Arten von Prozessortypen hinter denselben Cache zu stellen. Eine derartige Architektur wird wahrscheinlich für die hohe Leistung bei Arbeitslasten wie Grafik, Streaming Media und Netzwerkbetrieb erforderlich sein, da Designtrends in Richtung Mehrkernprozessoren gehen. Bei Netzwerkanwendungen ist es beispielsweise möglich, Paketverarbeitung und Allzweckverarbeitung für optimale Kommunikation mit hohem Durchsatz zwischen den Paketverarbeitungselementen eines Netzwerkprozessors und der Steuerung und/oder Inhaltsverarbeitung eines Allzweckprozessors einander näher zu bringen. So umfaßt zum Beispiel, wie in 5 dargestellt, eine verteilte Verarbeitungsplattform 100 eine Reihe von über eine Rückwandplatine 106 (z. B. wie dargestellt ein Switch Fabric) verbundene Blades 102a102m und Line-Karten 104a104n. Das Switch Fabric kann zum Beispiel zu CSIX (Common Switch Interface) oder anderen Systemtechnologien wie HyperTransport, Infiniband, Peripheral Component Interconnect (PCI), Packet-Over-SONET, RapidIO und/oder Universal Test and Operations PHY Interface (UTOPIA) für ATM konform sein.
  • Die Line-Karte befindet sich dort, wo Leitungsanschluß und E/A-Verarbeitung stattfinden. Dies kann die Verarbeitung auf Datenebene (Paketverarbeitung) sowie auf Steuerebene zur Bearbeitung des Ausführungsstrategie-Managements auf Datenebene umfassen. Die Blades 102a102m können umfassen: Steuer-Blades zur Bearbeitung von nicht auf Line-Karten verteilte Funktionen auf Steuerebene, Steuer-Blades zur Durchführung von Systemmanagementfunktionen wie Treiberaufzählung, Verwaltung von Leitwegtabellen, globale Tabellenverwaltung, Übersetzung von Netzwerkadressen und Meldung an ein Steuer-Blade, Anwendungen und Service-Blades sowie Inhaltsverarbeitung. In einer Netzwerkinfrastruktur kann die Inhaltsverarbeitung zur Übernahme intensiver inhaltsbasierter Verarbeitung eingesetzt werden, die außerhalb der Fähigkeiten der Standard-Line-Kartenanwendungen liegen, einschließlich Sprachverarbeitung, Verschlüsselungsentlastung und Intrusionserfassung, wo hohe Leistungsanforderungen gestellt werden.
  • Mindestens eine der Line-Karten, z. B. Line-Karte 104a ist eine spezialisierte Line-Karte, die basierend auf der Architektur des heterogenen Mehrkernsystems 10 (oder System 70) implementiert wird, um die Verarbeitungsintelligenz von CPU-Kernen enger an die stärker spezialisierten Fähigkeiten von NPU-Kernen zu koppeln. Die Line-Karte 104a umfaßt Medienschnittstellen (MI) 108 für die Kommunikation über Netzwerkverbindungen. Jede Medienschnittstelle 108 ist mit einem System 10 (oder 70) verbunden. In dieser Implementierung, wird ein System als Eingangsprozessor und das andere System als Ausgangsprozessor eingesetzt, obgleich auch ein einziges System benutzt werden könnte. Jedes System 10 (oder 70) ist an das Switch Fabric 106 über eine Switch-Fabric-Schnittstelle (SFI) 110 gekoppelt. Alternativ oder zusätzlich dazu könnten andere auf den Multiprozessorsystemen 10, 70 basierende Anwendungen von der verteilten Verarbeitungsplattform 100 genutzt werden. Abhängig von der Konfiguration der Blades und Line-Karten könnte die verteilte Verarbeitungsplattform 100 eine Verteilungsvorrichtung (z. B. Switch oder Router), einen Server, ein Datenzentrum oder sonstige Ausrüstungsform einsetzen.
  • Weitere Ausführungsformen fallen unter den Rahmen der folgenden Ansprüche.
  • Zusammenfassung
  • Es wird ein Mehrzweckprozessor dargelegt, der heterogene Prozessorkerne und einen gemeinsamen Cache liefert.

Claims (48)

  1. Prozessor, umfassend: Prozessorkerne einschließlich heterogene Prozessorkerne sowie einen mit den Prozessorkernen verbundenen und von ihnen gemeinsam genutzten Cache, wobei die Prozessorkerne und der Cache auf einem einzigen integrierten Chip integriert sind.
  2. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne einen Spezialzweckprozessorkern aufweisen.
  3. Prozessor nach Anspruch 2, wobei der Spezialzweckprozessorkern einen Netzwerkprozessorkern (NPU-Kern) mit einem Anweisungssatz umfaßt, der keine Anweisung für eine Fließpunktoperation aufweist.
  4. Prozessor nach Anspruch 2, wobei der Spezialzweckprozessorkern einen Grafikmaschinenkern aufweist.
  5. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne einen Zentralprozessorkern (CPU-Kern) aufweisen.
  6. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne einen NPU-Kern und einen CPU-Kern aufweisen.
  7. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne einen CPU-Kern und einen Grafikmaschinenkern aufweisen.
  8. Prozessor nach Anspruch 1, wobei der Cache einen Cache mit mehreren Anschlüssen umfaßt.
  9. Prozessor nach Anspruch 8, wobei die Prozessorkerne einen oder mehrere Prozessorkerne eines ersten Typs und einen oder mehrere Prozessorkerne eines zweiten Typs umfassen und der Cache mit mehreren Anschlüssen mindestens einen Anschluß zur Unterstützung für von dem einen oder von mehreren Prozessorkernen des ersten Typs generierte Transaktionen sowie mindestens einen Anschluß zur Unterstützung für von dem einen oder von mehreren Prozessorkernen des zweiten Typs generierte Transaktionen aufweist.
  10. Prozessor nach Anspruch 9, wobei die Anschlüsse für den Betrieb basierend auf dem jeweiligen Prozessortyp, den die Anschlüsse unterstützen, konfiguriert sind.
  11. Prozessor nach Anspruch 10, wobei die Anschlüsse für einen oder mehrere der folgenden Parameter konfigurierte Anschlüsse umfassen: Befehlsarten, Größen und Ausrichtung der jeweiligen Prozessorkerntypen.
  12. Prozessor nach Anspruch 10, wobei die heterogenen Prozessorkerne Prozessorkerne verschiedenen Typs umfassen und der über mehrere Anschlüsse verfügende Cache über einen unterschiedlichen Anschlußtyp für jeden unterschiedlichen Prozessorkerntyp verfügt.
  13. Prozessor nach Anspruch 1, des Weiteren eine Verbindung zur Kopplung der Prozessorkerne mit dem Cache umfassend, wobei die Verbindung einen Verbindungsbus aufweist.
  14. Prozessor nach Anspruch 1, wobei die Prozessorkerne Übersetzungslogik zur Übersetzung von für jeden Prozessorkern spezifischen Transaktionen in kernunabhängige Transaktionen umfaßt.
  15. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne unterschiedliche Prozessorkerntypen umfassen und der Cache Logik zur Bearbeitung für die von den unterschiedlichen Prozessorkerntypen generierten Transaktionen umfaßt.
  16. Prozessor nach Anspruch 1, wobei die heterogenen Prozessorkerne Befehle verwenden, die unterschiedliche maximale Transfergrößen zulassen, wobei eine der verschiedenen maximalen Transfergrößen Übertragungen zuläßt, welche sich über mehrere Cache-Zeilen erstrecken.
  17. Prozessor nach Anspruch 1, wobei mindestens einer der heterogenen Prozessorkerne zum Sperren eines Teils des Cache für erweiterte private Modifikation eingesetzt werden kann.
  18. Prozessor nach Anspruch 1, wobei jeder Prozessorkern fähig ist, den gemeinsamen Cache zur Übertragung von Daten zu einem anderen Prozessorkern zu nutzen.
  19. System, umfassend: eine Brücke, einen ersten, an die Brücke gekoppelten Mehrkernprozessor, einschließlich hinter einem gemeinsamen Cache angeordneter und mit ihm verbundener heterogener Prozessorkerne, einen zweiten, an die Brücke gekoppelten Prozessor, der mindestens einen Prozessorkern und einen an mindestens einen Prozessorkern angeschlossenen lokalen Cache beinhaltet sowie einen an die Brücke gekoppelten Hauptspeicher.
  20. System nach Anspruch 19, wobei die heterogenen Prozessorkerne einen Spezialzweckprozessorkern umfassen.
  21. System nach Anspruch 20, wobei der Spezialzweckprozessorkern einen Netzwerkprozessorkern (NPU-Kern) umfaßt.
  22. System nach Anspruch 19, wobei die heterogenen Prozessorkerne einen Zentralprozessorkern (CPU-Kern) umfassen.
  23. System nach Anspruch 19, wobei die heterogenen Prozessorkerne einen NPU-Kern und einen CPU-Kern umfassen.
  24. System nach Anspruch 19, wobei der mindestens eine Prozessorkern des zweiten Prozessors dazu benutzt werden kann, eine Transaktion für den Zugriff auf den gemeinsamen Cache des ersten Mehrkernprozessors über die Brücke zu generieren.
  25. System nach Anspruch 24, wobei die Brücke für den Zugriff auf den gemeinsamen Cache gemäß nativer Protokolle von mindestens einem der Prozessorkerne genutzt wird.
  26. System nach Anspruch 24, wobei die heterogenen Prozessorkerne unter Einsatz der jeweiligen nativen Protokolle auf den gemeinsamen Cache zugreifen und wobei die jeweiligen nativen Protokolle sich von den nativen Protokollen von dem mindestens einen Prozessorkern unterscheiden.
  27. System nach Anspruch 19, wobei der gemeinsame Cache und lokale Cache in Verbindung mit der Brücke dazu benutzt werden können, Kohärenz zum Hauptspeicher aufrechtzuerhalten.
  28. System nach Anspruch 19, wobei der zweite Prozessor mehrere homogene Prozessorkerne umfaßt, welche den lokalen Cache gemeinsam nutzen.
  29. System, umfassend: ein Switch Fabric sowie an das Switch Fabric angeschlossene Line-Karten, wobei mindestens eine der Line-Karten umfaßt: eine Medienschnittstelle für Empfang und Übertragung von Netzwerkverkehr, eine Switch-Fabric-Schnittstelle als Schnittstelle zum Switch Fabric sowie ein mit der Medienschnittstelle und der Switch-Fabric-Schnittstelle verbundenes System, das einen mit einem Speicher verbundenen Prozessor aufweist, wobei der Prozessor umfaßt: Prozessorkerne, die heterogene Prozessorkerne einschließen, sowie einen mit den Prozessorkernen verbunden und von ihnen gemeinsam genutzten Cache.
  30. Prozessor nach Anspruch 29, wobei die heterogenen Prozessorkerne einen Spezialzweckprozessorkern umfassen.
  31. System nach Anspruch 30, wobei der Spezialzweckprozessorkern einen Netzwerkprozessorkern (NPU-Kern) umfaßt.
  32. Prozessor nach Anspruch 30, wobei die heterogenen Prozessorkerne einen Zentralprozessorkern (CPU-Kern) umfassen.
  33. System nach Anspruch 30, wobei die heterogenen Prozessorkerne einen NPU-Kern und einen CPU-Kern umfassen.
  34. Verfahren, umfassend: Nutzung eines mit heterogenen Prozessorkernen verbundenen und von diesen gemeinsam genutzten Caches zur Übermittlung von Informationen zwischen den heterogenen Kernen.
  35. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne einen Spezialzweckprozessorkern umfassen.
  36. Verfahren nach Anspruch 35, wobei der Spezialzweckprozessorkern einen Netzwerkprozessorkern (NPU-Kern) umfaßt.
  37. Verfahren nach Anspruch 35, wobei der Spezialzweckprozessorkern einen Grafikmaschinenkern aufweist.
  38. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne einen Zentralprozessorkern (CPU-Kern) umfassen.
  39. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne einen NPU-Kern und einen CPU-Kern umfassen.
  40. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne einen CPU-Kern und einen Grafikmaschinenkern umfassen.
  41. Verfahren nach Anspruch 34, wobei der Cache einen Cache mit mehreren Anschlüssen umfaßt.
  42. Verfahren nach Anspruch 41, wobei die Prozessorkerne einen oder mehrere Prozessorkerne eines ersten Typs und einen oder mehrere Prozessorkerne eines zweiten Typs aufweisen und der Cache mit mehreren Anschlüssen mindestens einen Anschluß zur Unterstützung für von dem einen oder von mehreren Prozessorkernen des ersten Typs generierte Transaktionen sowie mindestens einen Anschluß zur Unterstützung für von dem einen oder von mehreren Prozessorkernen des zweiten Typs generierte Transaktionen aufweist.
  43. Verfahren nach Anspruch 42, wobei die Anschlüsse für den Betrieb basierend auf die jeweiligen von den Anschlüssen unterstützten Prozessorkerntypen konfiguriert sind.
  44. Verfahren nach Anspruch 41, wobei die heterogenen Prozessorkerne verschiedenen Typs umfassen und der über mehrere Anschlüsse verfügende Cache über einen unterschiedlichen Anschlußtyp für jeden unterschiedlichen Prozessorkerntyp verfügt.
  45. Verfahren nach Anspruch 34, wobei eine Verbindung die heterogenen Prozessorkerne mit dem Cache koppelt, und die Verbindung einen Verbindungsbus aufweist.
  46. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne Übersetzungslogik zur Übersetzung von für derartige Prozessorkerne spezifischen Transaktionen in kernunabhängige Transaktionen umfaßt.
  47. Verfahren nach Anspruch 34, wobei die heterogenen Prozessorkerne unterschiedliche Prozessorkerntypen umfassen und der Cache Logik zur Bearbeitung für die von den unterschiedlichen Prozessorkerntypen generierten Transaktionen umfaßt.
  48. Verfahren nach Anspruch 34, wobei mindestens einer der heterogenen Prozessorkerne zum Sperren eines Teils der Cache für erweiterte private Modifikation eingesetzt werden kann.
DE112005002364T 2004-11-19 2005-11-10 Heterogene Prozessoren mit gemeinsamem Cache Ceased DE112005002364T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/993,757 US20060112226A1 (en) 2004-11-19 2004-11-19 Heterogeneous processors sharing a common cache
US10/993,757 2004-11-19
PCT/US2005/041166 WO2006055477A1 (en) 2004-11-19 2005-11-10 Heterogeneous processors sharing a common cache

Publications (1)

Publication Number Publication Date
DE112005002364T5 true DE112005002364T5 (de) 2007-09-06

Family

ID=35744810

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005002364T Ceased DE112005002364T5 (de) 2004-11-19 2005-11-10 Heterogene Prozessoren mit gemeinsamem Cache

Country Status (4)

Country Link
US (10) US20060112226A1 (de)
CN (2) CN101470691B (de)
DE (1) DE112005002364T5 (de)
WO (1) WO2006055477A1 (de)

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US20060112226A1 (en) 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7568123B2 (en) * 2004-12-15 2009-07-28 International Business Machines Corporation Apparatus, system, and method for backing up vital product data
US7376798B1 (en) * 2005-04-07 2008-05-20 Transmeta Corporation Memory management methods and systems that support cache consistency
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
US8065487B2 (en) * 2007-03-21 2011-11-22 International Business Machines Corporation Structure for shared cache eviction
US7840759B2 (en) * 2007-03-21 2010-11-23 International Business Machines Corporation Shared cache eviction
US8041854B2 (en) * 2007-09-28 2011-10-18 Intel Corporation Steering data units to a consumer
US8296743B2 (en) * 2007-12-17 2012-10-23 Intel Corporation Compiler and runtime for heterogeneous multiprocessor systems
US9035959B2 (en) * 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
US20100017569A1 (en) * 2008-07-16 2010-01-21 Agere Systems Inc. Pcb including multiple chips sharing an off-chip memory, a method of accessing off-chip memory and a mcm utilizing fewer off-chip memories than chips
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
DE102009004810A1 (de) * 2009-01-13 2010-07-15 Universität Augsburg Verfahren zum Ausführen eines oder mehrerer Programme auf einem Mehrkernprozessor und Mehrkernprozessor
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US9195464B2 (en) * 2009-04-27 2015-11-24 Intel Corporation Tracking written addresses of a shared memory of a multi-core processor
US9069672B2 (en) * 2009-06-12 2015-06-30 Intel Corporation Extended fast memory access in a multiprocessor computer system
US20100332763A1 (en) * 2009-06-30 2010-12-30 International Business Machines Corporation Apparatus, system, and method for cache coherency elimination
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
US8615637B2 (en) 2009-09-10 2013-12-24 Advanced Micro Devices, Inc. Systems and methods for processing memory requests in a multi-processor system using a probe engine
US8259582B2 (en) * 2009-11-13 2012-09-04 Intel Corporation Method and apparatus to manage per flow state
US8904114B2 (en) * 2009-11-24 2014-12-02 Empire Technology Development Llc Shared upper level cache architecture
US8868848B2 (en) * 2009-12-21 2014-10-21 Intel Corporation Sharing virtual memory-based multi-version data between the heterogenous processors of a computer platform
US9128849B2 (en) 2010-04-13 2015-09-08 Apple Inc. Coherent memory scheme for heterogeneous processors
US8914581B2 (en) * 2010-05-20 2014-12-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accessing cache memory
JP5516728B2 (ja) * 2010-06-10 2014-06-11 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
WO2012003486A1 (en) * 2010-07-01 2012-01-05 Neodana, Inc. A system and method for virtualization and cloud security
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US8656137B2 (en) 2011-09-01 2014-02-18 Qualcomm Incorporated Computer system with processor local coherency for virtualized input/output
US9330002B2 (en) * 2011-10-31 2016-05-03 Cavium, Inc. Multi-core interconnect in a network processor
WO2013088283A2 (en) * 2011-12-16 2013-06-20 International Business Machines Corporation Memory sharing by processors
CN104011694A (zh) * 2011-12-21 2014-08-27 英特尔公司 用于存储器层次知晓的生产者-消费者指令的装置和方法
WO2013095475A1 (en) * 2011-12-21 2013-06-27 Intel Corporation Apparatus and method for memory-hierarchy aware producer-consumer instruction
US9569278B2 (en) * 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9411725B2 (en) * 2012-03-22 2016-08-09 Intel Corporation Application-reserved cache for direct I/O
WO2012126425A2 (zh) * 2012-05-18 2012-09-27 华为技术有限公司 数据存储的系统和方法
US9135172B2 (en) * 2012-08-02 2015-09-15 Qualcomm Incorporated Cache data migration in a multicore processing system
US9378572B2 (en) 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
KR102082859B1 (ko) 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
WO2014130037A1 (en) * 2013-02-21 2014-08-28 Empire Technology Development, Llc One-cacheable multi-core architecture
CN103902498B (zh) * 2013-12-18 2016-12-07 曲阜师范大学 一种面向异构计算的软件定义服务器系统及方法
US20150355946A1 (en) * 2014-06-10 2015-12-10 Dan-Chyi Kang “Systems of System” and method for Virtualization and Cloud Computing System
US10114752B2 (en) * 2014-06-27 2018-10-30 International Business Machines Corporation Detecting cache conflicts by utilizing logical address comparisons in a transactional memory
US9411652B2 (en) * 2014-08-22 2016-08-09 Advanced Micro Devices, Inc. Runtime for automatically load-balancing and synchronizing heterogeneous computer systems with scoped synchronization
CN104461957A (zh) * 2014-08-28 2015-03-25 浪潮(北京)电子信息产业有限公司 一种异构多核cpu共享片上高速缓存的方法及装置
US9911508B2 (en) * 2014-09-18 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory diagnostic writeback
CN105550140B (zh) * 2014-11-03 2018-11-09 联想(北京)有限公司 一种电子设备及数据处理方法
US9582413B2 (en) * 2014-12-04 2017-02-28 International Business Machines Corporation Alignment based block concurrency for accessing memory
CN105740164B (zh) 2014-12-10 2020-03-17 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
US9697124B2 (en) * 2015-01-13 2017-07-04 Qualcomm Incorporated Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
GB2536658B (en) * 2015-03-24 2017-03-22 Imagination Tech Ltd Controlling data flow between processors in a processing system
DE102016106939B4 (de) 2015-04-17 2024-05-02 Suunto Oy Eingebettetes Rechengerät
GB2537420B (en) * 2015-04-17 2018-11-28 Suunto Oy Embedded computing device comprising processing units interfaced with a shared information space
US11204871B2 (en) * 2015-06-30 2021-12-21 Advanced Micro Devices, Inc. System performance management using prioritized compute units
CN105007398A (zh) * 2015-08-07 2015-10-28 广州极飞电子科技有限公司 一种图像增稳方法及装置
CN105630723A (zh) * 2015-12-22 2016-06-01 中国电子科技集团公司第三十二研究所 基于异构处理器平台的管理架构及其管理方法
CN107145337B (zh) * 2016-03-01 2021-06-29 中兴通讯股份有限公司 一种数据流处理芯片的表项访问方法及装置
US20180011792A1 (en) * 2016-07-06 2018-01-11 Intel Corporation Method and Apparatus for Shared Virtual Memory to Manage Data Coherency in a Heterogeneous Processing System
US11513805B2 (en) * 2016-08-19 2022-11-29 Wisconsin Alumni Research Foundation Computer architecture with synergistic heterogeneous processors
US10152243B2 (en) * 2016-09-15 2018-12-11 Qualcomm Incorporated Managing data flow in heterogeneous computing
CN110710172A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络
CN110710139A (zh) 2017-03-29 2020-01-17 芬基波尔有限责任公司 具有光置换器的无阻塞全网状数据中心网络
CN110731070A (zh) 2017-03-29 2020-01-24 芬基波尔有限责任公司 通过多个交替数据路径进行分组喷射的无阻塞的任意到任意数据中心网络
US10565112B2 (en) * 2017-04-10 2020-02-18 Fungible, Inc. Relay consistent memory management in a multiple processor system
CN117348976A (zh) 2017-07-10 2024-01-05 微软技术许可有限责任公司 用于流处理的数据处理单元
US10659254B2 (en) 2017-07-10 2020-05-19 Fungible, Inc. Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric
CN107729281B (zh) * 2017-08-31 2019-11-15 北京计算机技术及应用研究所 一种基于RapidIO的高速传输实现方法
CN107544926B (zh) 2017-09-06 2020-04-07 上海兆芯集成电路有限公司 处理系统及其访存方法
US10997303B2 (en) 2017-09-12 2021-05-04 Sophos Limited Managing untyped network traffic flows
WO2019068017A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH
US10904367B2 (en) 2017-09-29 2021-01-26 Fungible, Inc. Network access node virtual fabrics configured dynamically over an underlay network
US10698472B2 (en) * 2017-10-27 2020-06-30 Advanced Micro Devices, Inc. Instruction subset implementation for low power operation
US10841245B2 (en) 2017-11-21 2020-11-17 Fungible, Inc. Work unit stack data structures in multiple core processor system for stream data processing
CN108416433B (zh) * 2018-01-22 2020-11-24 上海熠知电子科技有限公司 一种基于异步事件的神经网络异构加速方法和系统
KR102533241B1 (ko) * 2018-01-25 2023-05-16 삼성전자주식회사 적응적으로 캐시 일관성을 제어하도록 구성된 이종 컴퓨팅 시스템
US10540288B2 (en) 2018-02-02 2020-01-21 Fungible, Inc. Efficient work unit processing in a multicore system
US10929175B2 (en) 2018-11-21 2021-02-23 Fungible, Inc. Service chaining hardware accelerators within a data stream processing integrated circuit
US11681567B2 (en) 2019-05-09 2023-06-20 International Business Machines Corporation Method and processor system for executing a TELT instruction to access a data item during execution of an atomic primitive
US11321146B2 (en) 2019-05-09 2022-05-03 International Business Machines Corporation Executing an atomic primitive in a multi-core processor system
CN111966610B (zh) * 2020-09-04 2023-12-01 Oppo广东移动通信有限公司 数据传输方法、处理芯片和计算机设备
CN112527729A (zh) * 2020-12-15 2021-03-19 杭州慧芯达科技有限公司 一种紧耦合异构多核处理器架构及其处理方法
CN114492776A (zh) * 2022-01-14 2022-05-13 哲库科技(上海)有限公司 一种数据处理方法及装置、存储介质
WO2024058615A1 (ko) * 2022-09-16 2024-03-21 삼성전자 주식회사 신경 처리부를 포함하는 전자 장치 및 그 동작 방법
CN115811536B (zh) * 2023-02-07 2023-05-05 南京芯驰半导体科技有限公司 一种基于多核异构的汽车中央网关系统及实现方法

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US5155772A (en) * 1990-12-11 1992-10-13 Octel Communications Corporations Data compression system for voice data
US5617547A (en) * 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5418786A (en) * 1994-06-17 1995-05-23 Motorola, Inc. Asynchronous transfer mode (ATM) method and apparatus for communicating status bytes in a manner compatible with the utopia protocol
US5860096A (en) * 1994-10-17 1999-01-12 Hewlett-Packard Company Multi-level instruction cache for a computer
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
JP3623840B2 (ja) * 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5987590A (en) 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US5898892A (en) * 1996-05-17 1999-04-27 Advanced Micro Devices, Inc. Computer system with a data cache for providing real-time multimedia data to a multimedia engine
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
US6247091B1 (en) * 1997-04-28 2001-06-12 International Business Machines Corporation Method and system for communicating interrupts between nodes of a multinode computer system
US5987587A (en) * 1997-06-06 1999-11-16 International Business Machines Corporation Single chip multiprocessor with shared execution units
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6587931B1 (en) * 1997-12-31 2003-07-01 Unisys Corporation Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6801207B1 (en) * 1998-10-09 2004-10-05 Advanced Micro Devices, Inc. Multimedia processor employing a shared CPU-graphics cache
EP1165013A4 (de) * 1999-03-03 2002-08-07 Merck & Co Inc Inhibitoren der phenyl-protein-transferase
US6527456B1 (en) * 1999-10-13 2003-03-04 Teraconnect, Inc. Cluster integration approach to optical transceiver arrays and fiber bundles
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
US6671280B1 (en) * 2000-03-29 2003-12-30 International Business Machines Corporation Network processor for multiprotocol data flows
US6668308B2 (en) * 2000-06-10 2003-12-23 Hewlett-Packard Development Company, L.P. Scalable architecture based on single-chip multiprocessing
US6665775B1 (en) 2000-09-22 2003-12-16 Intel Corporation Cache dynamically configured for simultaneous accesses by multiple computing engines
US6801208B2 (en) * 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
US6419502B1 (en) * 2001-03-14 2002-07-16 Hon Hai Precision Ind. Co., Ltd. Electrical connector assembly with improved contact arrangement
US7284050B1 (en) * 2001-03-26 2007-10-16 Cisco Technology, Inc. Method and system for a voice multicast hardware accelerator
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
US6920485B2 (en) * 2001-10-04 2005-07-19 Hewlett-Packard Development Company, L.P. Packet processing in shared memory multi-computer systems
US6944719B2 (en) * 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
US7086058B2 (en) * 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US7451182B2 (en) * 2002-06-28 2008-11-11 Intel Corporation Coordinating operations of network and host processors
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
US7237068B2 (en) * 2003-01-28 2007-06-26 Sun Microsystems, Inc. Computer system employing bundled prefetching and null-data packet transmission
US7519800B2 (en) * 2003-03-27 2009-04-14 Hewlett-Packard Development Company, L.P. Apparatus and method for enforcing homogeneity within partitions of heterogeneous computer systems
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US7093080B2 (en) * 2003-10-09 2006-08-15 International Business Machines Corporation Method and apparatus for coherent memory structure of heterogeneous processor systems
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US7023445B1 (en) * 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
US7219185B2 (en) * 2004-04-22 2007-05-15 International Business Machines Corporation Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
US20060041715A1 (en) * 2004-05-28 2006-02-23 Chrysos George Z Multiprocessor chip having bidirectional ring interconnect
US20060053258A1 (en) * 2004-09-08 2006-03-09 Yen-Cheng Liu Cache filtering using core indicators
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment

Also Published As

Publication number Publication date
US11016895B2 (en) 2021-05-25
US8799579B2 (en) 2014-08-05
US20190114261A1 (en) 2019-04-18
WO2006055477A1 (en) 2006-05-26
CN101470691B (zh) 2012-02-22
US20120215984A1 (en) 2012-08-23
US10339061B2 (en) 2019-07-02
US20170097889A1 (en) 2017-04-06
US20100011167A1 (en) 2010-01-14
US7577792B2 (en) 2009-08-18
US20060112226A1 (en) 2006-05-25
US20170097888A1 (en) 2017-04-06
US20160188466A1 (en) 2016-06-30
CN101470691A (zh) 2009-07-01
CN1783033B (zh) 2011-07-27
US8402222B2 (en) 2013-03-19
US8156285B2 (en) 2012-04-10
US9965393B2 (en) 2018-05-08
CN1783033A (zh) 2006-06-07
US20060112227A1 (en) 2006-05-25
US20130275681A1 (en) 2013-10-17
US9235550B2 (en) 2016-01-12
US20150081976A1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
DE112005002364T5 (de) Heterogene Prozessoren mit gemeinsamem Cache
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE69228521T2 (de) Mikroprozessorarchitektur mit der möglichkeit zur unterstützung mehrerer verschiedener prozessoren
DE112012004551B4 (de) Mehrkernverknüpfung in einem Netzprozessor
DE69721640T2 (de) Multiprozessor-Rechnersystem und Verfahren zur Steuerung des Verkehrsflusses
DE102004009497B3 (de) Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
DE69721643T2 (de) Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE60202926T2 (de) Multicomputersystem mit konfigurierbaren Schnittstellen für flexible Systemkonfigurationen
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE69133257T2 (de) Vorrichtung und verfahren zur schnellen paketvermittlung
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69729243T2 (de) Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen
DE112012005727T5 (de) Kombinierte "Cache einfügen und sperren"-Operation
DE112010001467B4 (de) Steuerung von Blöcken einer On-Die-System-Struktur
DE112007000443B4 (de) Vorrichtung mit einer gemeinsamen Schnittstelle fiir mehrere Prozessorkerne und Verfahren zur Steuerung der Kommunikation derselben mit einer damit gekoppelten Verbindung
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE112006002565T5 (de) Befehlsunterstützte Cache-Verwaltung für den effizienten Einsatz von Cache und Speicher
DE112008002019T5 (de) Auslagern von Eingabe/Ausgabe (I/O)-Virtualisierungsarbeitsgängen an einem Prozessor
DE112013000381T5 (de) Datenverschlüsselung auf der Grundlage einer Speicheradressumsetzung
DE102010055267A1 (de) Gemeinsames Benutzen von Ressourcen zwischen einer CPU und GPU
DE102015102692A1 (de) Verfahren zum Optimieren von Netzdatenströmen in einem eingeschränkten System
DE112005003204T5 (de) Verfahren und Vorrichtung zum Unterstützen mehrerer Speicherbänke mit einem Speicherblock

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R130 Divisional application to

Ref document number: 112005003879

Country of ref document: DE

Ref document number: 112005003877

Country of ref document: DE

Ref document number: 112005003878

Country of ref document: DE

Ref document number: 112005003880

Country of ref document: DE

Ref document number: 112005003887

Country of ref document: DE

Ref document number: 112005003894

Country of ref document: DE

R130 Divisional application to

Ref document number: 112005003880

Country of ref document: DE

Ref document number: 112005003878

Country of ref document: DE

Ref document number: 112005003877

Country of ref document: DE

Ref document number: 112005003879

Country of ref document: DE

Ref document number: 112005003887

Country of ref document: DE

Ref document number: 112005003894

Country of ref document: DE

R082 Change of representative

Representative=s name: MUELLER HOFFMANN & PARTNER PATENTANWAELTE MBB, DE

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

R016 Response to examination communication
R130 Divisional application to

Ref document number: 112005003877

Country of ref document: DE

Ref document number: 112005003879

Country of ref document: DE

Ref document number: 112005003887

Country of ref document: DE

Ref document number: 112005003880

Country of ref document: DE

Ref document number: 112005003878

Country of ref document: DE

Ref document number: 112005003894

Country of ref document: DE

R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R130 Divisional application to

Ref document number: 112005003894

Country of ref document: DE

Ref document number: 112005003880

Country of ref document: DE

Ref document number: 112005003887

Country of ref document: DE

Ref document number: 112005003879

Country of ref document: DE

Ref document number: 112005003877

Country of ref document: DE

Ref document number: 112005003878

Country of ref document: DE

R082 Change of representative

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

R003 Refusal decision now final
R010 Appeal proceedings settled by withdrawal of appeal(s) or in some other way