DE112012005700T5 - Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit - Google Patents

Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit Download PDF

Info

Publication number
DE112012005700T5
DE112012005700T5 DE112012005700.7T DE112012005700T DE112012005700T5 DE 112012005700 T5 DE112012005700 T5 DE 112012005700T5 DE 112012005700 T DE112012005700 T DE 112012005700T DE 112012005700 T5 DE112012005700 T5 DE 112012005700T5
Authority
DE
Germany
Prior art keywords
axu
chip
external
logic
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112012005700.7T
Other languages
English (en)
Inventor
c/o IBM Corporation Mejdrich Eric
c/o IBM Corporation Swenson Corey Virgil
c/o IBM Corporation Shearer Robert
c/o IBM Corporation Schardt Paul
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112012005700T5 publication Critical patent/DE112012005700T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • G06F9/3881Arrangements for communication of instructions and data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/7864Architectures of general purpose stored program computers comprising a single central processing unit with memory on more than one IC chip
    • 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/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8038Associative processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Microcomputers (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Multi Processors (AREA)

Abstract

Eine externe Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstelle) (AXU = Auxiliary Execution Unit, Hilfsausführungseinheit) wird zwischen einem Verarbeitungskern, der in einem ersten programmierbaren Chip angeordnet ist, und einer außerhalb des Chips angeordneten AXU bereitgestellt, die in einem zweiten programmierbaren Chip angeordnet ist, um die AXU mit einer Ausgabeeinheit, einer Festkomma-Ausführungseinheit und wahlweise anderen Funktionseinheiten im Verarbeitungskern zu integrieren. Die externe AXU-Schnittstelle ermöglicht der Ausgabeeinheit, Anweisungen an die AXU in nahezu derselben Weise auszugeben, in der die Ausgabeeinheit Anweisungen an eine AXU ausgeben würde, die auf demselben Chip angeordnet wäre. Dadurch kann die AXU auf dem zweiten programmierbaren Chip unabhängig vom Verarbeitungskern auf dem ersten programmierbaren Chip entworfen, getestet und geprüft werden, wodurch ein gemeinsamer Verarbeitungskern möglich wird, der zur Verwendung in Verbindung mit mehreren unterschiedlichen AXU-Schaltungen entworfen, getestet und geprüft wird.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft allgemein die Datenverarbeitung und insbesondere hierin verwendete Prozessorarchitekturen und Ausführungseinheiten.
  • Hintergrund der Erfindung
  • Computer und andere programmierbare elektronische Einheiten werden immer mehr in jeden Aspekt der Gesellschaft integriert. Während Computer früher ganze Räume einnahmen, sind Computer und die integrierten Schaltungseinheiten bzw. Chips, die diese Computer mit Strom versorgen, heutzutage in einem solchen Maße miniaturisiert und zu einem Standardprodukt geworden, dass sie sogar in den alltäglichsten Produkten und Einheiten zu finden sind.
  • Programmierbare Chips wie zum Beispiel Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen (Application Specific Integrated Circuits, ASICs) und dergleichen werden immer komplizierter und leistungsfähiger, während gleichzeitig Kosten, Stromverbrauch und die Größe von Ausstattungsmerkmalen abnehmen. Während Computer früher getrennte Chips für Prozessoren, Grafiksteuereinheiten, Coprozessoren, Speichersteuereinheiten und andere Chipsatzlogik enthielten, sind alle diese Arten von Funktionseinheiten oftmals in einem einzigen programmierbaren Chip integriert. Darüber hinaus sind die Herstellungskosten pro Einheit oftmals vergleichsweise niedrig, sobald ein bestimmter Chip entwickelt, getestet und überprüft wurde.
  • Dies bildet einen erheblichen Teil der Mühe und des Aufwands, die mit der Markteinführung eines programmierbaren Chips verbunden sind und daher in den ersten Entwurf, die Tests und die Prüfung eines programmierbaren Chips investiert werden. Aus diesem Grund wird die Wiederverwendung von Entwürfen genutzt, wann immer dies möglich ist, sodass Teile eines programmierbaren Chips wie zum Beispiel bestimmte Prozessorkernentwürfe, Funktionseinheiten und andere Logikblöcke, die bereits zuvor entworfen, getestet und geprüft wurden, nicht von Grund auf neu geschaffen werden müssen.
  • Selbst bei der Wiederverwendung von Schaltungsentwürfen erfordert die Integration mehrerer Entwurfskomponenten in einen gemeinsamen Schaltungsentwurf häufig die Entwicklung und den Test bestimmter maßgeschneiderter Logik, um dafür zu sorgen, dass die Komponenten nach der Integration auf demselben programmierbaren Chip ordnungsgemäß zusammenarbeiten. Zum Beispiel weisen moderne Mikroprozessoren normalerweise Funktionseinheiten wie beispielsweise Ausgabe- oder Anweisungseinheiten, Lade-/Speicherungseinheiten, Speichersteuereinheiten, Grafiksteuereinheiten, Cache-Zwischenspeicher und andere auf dem Chip angeordneter Speicher usw. auf, und die Entwicklung derartiger Mikroprozessoren erfordert einen erheblichen Entwicklungs-, Test- und Prüfaufwand, um zu gewährleisten, dass alle Funktionseinheiten in beabsichtigter Weise funktionieren.
  • Des Weiteren beruhen viele Mikroprozessorentwürfe auf einem grundlegenden Schaltungsentwurf, der durch Verwendung unterschiedlicher Funktionseinheiten erweitert werden kann, um verschiedene Schaltungsentwürfe bereitzustellen, die in Bezug auf unterschiedliche Anwendungen optimiert sind. Beispielsweise kann es wünschenswert sein, die Funktionalität eines Mikroprozessors durch Integrieren mehrerer Verarbeitungskerne zu erweitern, um die Parallelverarbeitung zu ermöglichen, sowie durch Integrieren verschiedener Ausführungseinheiten in einem Verarbeitungskern, um den Kern zu optimieren, sodass er bestimmte Arten von Betriebslasten verarbeiten kann. Obwohl zum Beispiel eine grundlegende Mikroprozessorschaltung oftmals einen Verarbeitungskern mit einer Ausgabe- oder Anweisungseinheit aufweist, die Anweisungen an eine Ausführungseinheit ausgibt, die als Festkommaeinheit, Ganzzahleinheit oder arithmetisch-logische Einheit bezeichnet wird, die Ganzzahloperationen verarbeitet, können weitere Ausführungseinheiten, z. B. Gleitkomma-Ausführungseinheiten, Grafikmodule, Physikmodule, Verschlüsselungsmodule und dergleichen in den grundlegenden Schaltungsentwurf einbezogen werden, um einen anwendungsspezifischen Schaltungsentwurf bereitzustellen, der für bestimmte Anwendungen optimiert ist.
  • Mit der Fähigkeit, unterschiedliche Arten von Ausführungseinheiten in verschiedenen Verarbeitungskernen und programmierbaren Chips zu kombinieren, wird eine beträchtliche Flexibilität beim Schaltungsentwurf zur Entwicklung anwendungsspezifischer Hardware bereitgestellt. Auf der anderen Seite sind trotz des im Voraus nötigen Aufwands, der nach wie vor erforderlich ist, um mehrere in anwendungsspezifische programmierbare Chips integrierte Funktionseinheiten zu entwerfen, zu testen und zu prüfen, auch mit der Markteinführung anwendungsspezifischer programmierbarer Chips immer noch erhebliche Kosten verbunden.
  • Ein weiterer Gesichtspunkt, der in Bezug auf die Entwicklung programmierbarer Chips entstanden ist, ist die Integration von Funktionseinheiten, die durch unterschiedliche juristische Personen entworfen oder entwickelt wurden oder in anderer Weise deren Eigentum sind. Kunden lassen ihre programmierbaren Chips oftmals durch andere juristische Personen entwerfen, und oftmals werden Schaltungsentwürfe, die sowohl Eigentum der juristischen Personen, die die programmierbaren Chips entwerfen, als auch der Kunden sind, auf denselben programmierbaren Chips integriert, was oftmals sowohl zu Lizenzierungsproblemen als auch zu Besorgnissen über die Aufrechterhaltung des vertraulichen Charakters einiger Schaltungsentwürfe führt.
  • Daher besteht in der Technik nach wie vor ein erheblicher Bedarf an einer Erleichterung der Entwicklung anwendungsspezifischer programmierbarer Chips und von elektronischen Einheiten, in die diese einbezogen sind.
  • Kurzdarstellung der Erfindung
  • Die Erfindung ist auf die Lösung dieser und anderer Probleme gerichtet, die mit dem Stand der Technik im Zusammenhang stehen, indem ein Verfahren, eine Vorrichtung und ein Programmprodukt bereitgestellt werden, die eine externe Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstelle) (AXU = Auxiliary Execution Unit, Hilfsausführungseinheit) zwischen einem Verarbeitungskern nutzen, die in einem ersten programmierbaren Chip angeordnet ist, und einer außerhalb des Chips angeordneten AXU, die in einem zweiten programmierbaren Chip angeordnet ist. Die AXU-Schnittstelle integriert eine AXU in einen Verarbeitungskern, der mindestens eine Ausgabeeinheit und eine Festkomma-Ausführungseinheit aufweist und der Ausgabeeinheit ermöglicht, Anweisungen an die AXU in nahezu derselben Weise auszugeben, in der die Ausgabeeinheit Anweisungen an eine AXU ausgeben würde, die auf dem selben Chip angeordnet wäre. Dadurch kann die AXU auf dem zweiten programmierbaren Chip unabhängig vom Verarbeitungskern auf dem ersten programmierbaren Chip entworfen, getestet und geprüft werden, wodurch ein gemeinsamer Verarbeitungskern möglich wird, der zur Verwendung in Verbindung mit mehreren unterschiedlichen AXU-Schaltungen entworfen, getestet und geprüft wird.
  • Gemäß einem Aspekt der Erfindung weist ein IC-Chip (integrierter Schaltkreis-Chip) einen Verarbeitungskern mit einer Ausgabeeinheit und einer Festkomma-Ausführungseinheit auf, wobei die Ausgabeeinheit so gestaltet ist, dass Anweisungen an die Festkomma-Ausführungseinheit ausgegeben werden, um durch diese ausgeführt zu werden. Außerdem ist Logik der externen Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstellenlogik), die auf dem IC-Chip angeordnet und mit der Ausgabeeinheit verbunden ist, so gestaltet, dass durch die Ausgabeeinheit ausgegebene Anweisungen empfangen und die Anweisungen über eine externe AXU-Schnittstelle an eine außerhalb des Chips angeordnete AXU übertragen werden, um durch diese ausgeführt zu werden.
  • Gemäß einem weiteren Aspekt der Erfindung weist ein IC-Chip eine außerhalb des Chips angeordnete Hilfsausführungseinheit (AXU) und Logik der externen AXU-Schnittstelle auf, die so gestaltet ist, dass die außerhalb des Chips angeordnete AXU mit einem Verarbeitungskern verbunden ist, der auf einem anderen Chip angeordnet ist und eine Festkomma-Ausführungseinheit und eine Ausgabeeinheit aufweist, die so gestaltet ist, dass Anweisungen an die Festkomma-Ausführungseinheit ausgegeben werden, um durch diese ausgeführt zu werden. Die Logik der externen AXU-Schnittstelle ist so gestaltet, dass durch die Ausgabeeinheit über eine externe AXU-Schnittstelle ausgegebene Anweisungen empfangen und die Anweisungen zur außerhalb des Chips angeordneten AXU übertragen werden, um durch diese ausgeführt zu werden.
  • Diese und weitere Vorteile und Merkmale, die die Erfindung charakterisieren, sind in den hier beigefügten Ansprüchen dargelegt und bilden einen weiteren Teil hiervon. Jedoch sollte zum besseren Verständnis der Erfindung sowie der Vorteile und Zielsetzung, die durch ihre Anwendung erreicht werden, Bezug auf die Zeichnungen und die zugehörige Beschreibung genommen werden, in der beispielhafte Ausführungsformen der Erfindung beschrieben sind.
  • Kurzbeschreibung der Zeichnungen
  • 1 ist ein Blockschema einer beispielhaften automatisierten Datenverarbeitungsmaschine, die bei der Datenverarbeitung gemäß Ausführungsformen der vorliegenden Erfindung verwendbar ist.
  • 2 ist ein Blockschema eines beispielhaften NOC, das in dem Computer aus 1 realisiert ist.
  • 3 ist ein Blockschema, das eine beispielhafte Realisierungsform eines Knotens aus dem NOC aus 2 ausführlicher veranschaulicht.
  • 4 ist ein Blockschema, das eine beispielhafte Realisierungsform eines IP-Blocks aus dem NOC aus 2 veranschaulicht.
  • 5 ist ein Blockschema eines IP-Blocks aus dem NOC aus 2, der gemäß der Erfindung eine externe AXU-Schnittstelleneinheit mit einer außerhalb des Chips angeordneten AXU aufweist.
  • 6 ist ein Blockschema eines weiteren beispielhaften Datenverarbeitungssystems, dass eine externe AXU-Schnittstelle gemäß der Erfindung aufweist.
  • 7 ist ein Blockschema einer beispielhaften Realisierungsform der AXU-Schnittstelle, auf die in 6 Bezug genommen wird.
  • 8 ist ein Flussdiagramm, das einen beispielhaften Ablauf von Operationen veranschaulicht, die durch die externe AXU-Schnittstelle aus 6 beim Übertragen einer Anweisung an eine außerhalb des Chips angeordnete AXU durchgeführt werden.
  • Ausführliche Beschreibung
  • Ausführungsformen der Erfindung nutzen eine externe Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstelle) (AXU = Auxiliary Execution Unit, Hilfsausführungseinheit) zwischen einem Verarbeitungskern, der in einem ersten programmierbaren Chip angeordnet ist, und einer außerhalb des Chips angeordneten AXU, die in einem zweiten programmierbaren Chip angeordnet ist, um die AXU mit einer Ausgabeeinheit, einer Festkomma-Ausführungseinheit und wahlweise anderen Funktionseinheiten im Verarbeitungskern zu integrieren. Die externe AXU-Schnittstelle ermöglicht der Ausgabeeinheit, Anweisungen an die AXU in nahezu derselben Weise auszugeben, in der die Ausgabeeinheit Anweisungen an eine AXU ausgeben würde, die auf demselben Chip angeordnet wäre. Dadurch kann die AXU auf dem zweiten programmierbaren Chip unabhängig vom Verarbeitungskern auf dem ersten programmierbaren Chip entworfen, getestet und geprüft werden, wodurch ein gemeinsamer Verarbeitungskern möglich wird, der zur Verwendung in Verbindung mit mehreren unterschiedlichen AXU-Schaltungen entworfen, getestet und geprüft wird.
  • Eine AXU gemäß der Erfindung kann verschiedene Funktionalitätsarten aufweisen, die das Betriebsverhalten des Verarbeitungskerns für eine gewünschte Anwendung erweitern, beschleunigen oder in anderer Weise verbessern. Zum Beispiel kann eine AXU als Gleitkommaeinheit (Floating Point Unit, FPU), als Komprimierungsmodul, Grafikmodul, Verschlüsselungsmodul, Physikmodul, Modul für reguläre Ausdrücke, digitaler Signalprozessor (DSP), Datenpaketprozessor, als Schaltungs-Eigenentwicklungen und/oder als Kombination davon realisiert sein. Die AXU ist in einem vom Prozessorkern getrennten Chip realisiert und kann unter Verwendung einer Reihe unterschiedlicher Hardwareschaltungen realisiert sein, zu denen beispielsweise eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), ein Field Programmable Gate Array (FPGA), ein Chip-Stack, angepasste Logik, diskrete Komponenten, ein Sensor usw. gehören.
  • Eine externe AXU-Schnittstelle verbindet die außerhalb des Chips angeordnete AXU mit dem Verarbeitungskern, wodurch die Datenübertragung zwischen der Ausgabeeinheit im Verarbeitungskern und wahlweise weiteren Funktionseinheiten innerhalb des Verarbeitungskerns, z. B. Festkomma-Ausführungseinheit, Speicherverwaltungseinheit, Cache-Zwischenspeichereinheiten, auf dem Chip angeordnete Beschleunigungseinheiten, Gleitkomma-Einheiten, externe E/A-Einheiten (z. B. PCIe, USB, SATA) usw. möglich wird und die AXU auf diese Weise die Funktionseinheiten im Verarbeitungskern nutzen und eng in den Verarbeitungskern integriert werden kann. Die AXU-Schnittstelle ist so gestaltet, dass Anweisungen in einem Datenstrom von der Anweisungseinheit zur außerhalb des Chips angeordneten AXU übertragen sowie Informationen über den architektonischen Zustand zwischen dem Verarbeitungskern und der außerhalb des Chips befindlichen AXU übertragen werden, wodurch ein einheitlicher architektonischer Gesamtzustand aufrechterhalten wird. Eine externe AXU-Schnittstelle gemäß der Erfindung kann jedoch weitere Informationen zwischen einem Verarbeitungskern und einer externen AXU übertragen, zu denen beispielsweise Lade- und Speicherungsdaten, Rücksetz-/Löschbefehle, Antwort-/Abschlussnachrichten usw. gehören können.
  • Eine externe AXU-Schnittstelle gemäß der Erfindung kann bei einigen Ausführungsformen auch Umsetzungslogik aufweisen, die so gestaltet ist, dass eine Schnittstelle zwischen einem schnellen Bereich, der in einem Verarbeitungskern normal ist, und einer langsameren Datenübertragungsverbindung zwischen dem Verarbeitungskern und der außerhalb des Chips angeordneten AXU bereitgestellt wird. Zum Beispiel kann eine externe AXU-Schnittstelle ein Protokoll aufweisen, das eine unendliche oder unbestimmte Latenz unterstützt. Eine externe AXU-Schnittstelle kann auch Aufwärts-/Abwärtsumsetzungslogik aufweisen, um eine Schnittstelle zwischen einem Bereich mit hoher Frequenz im Verarbeitungskern und einem Bereich mit niedrigerer Frequenz auf der Chip-Chip-Schnittstelle bereitzustellen, und sie kann Serialisierer- und/oder Paketiererlogik aufweisen, um über die Chip-Chip-Schnittstelle eine Umwandlung in ein serielles und/oder auf Paketen beruhendes Format vorzunehmen, und eine externe AXU-Schnittstelle kann eine variable Busbreite unterstützen, sodass bei unterschiedlichen Anwendungen unterschiedliche Breiten verwendet werden können.
  • Andere Abänderungen und Variationen sind für den Fachmann klar. Daher ist die Erfindung nicht auf die hierin erörterten speziellen Realisierungsformen beschränkt.
  • Hardware- und Softwareumgebung
  • Unter Bezugnahme auf die Zeichnungen, bei denen gleiche Nummern in den verschiedenen Ansichten gleiche Bauteile bezeichnen, veranschaulicht 1 eine beispielhafte automatisierte Datenverarbeitungsmaschine mit einem beispielhaften Computer 10, der bei der Datenverarbeitung gemäß Ausführungsformen der vorliegenden Erfindung verwendbar ist. Der Computer 10 aus 1 weist mindestens einen Computerprozessor 12 bzw. eine „CPU” sowie einen Direktzugriffsspeicher 14 („RAM”) auf, der über einen schnellen Speicherbus 16 und einen Busadapter 18 mit dem Prozessor 12 und anderen Komponenten des Computers 10 verbunden ist.
  • Im RAM 14 ist ein Anwendungsprogramm 20 gespeichert, ein Modul aus Computerprogrammanweisungen auf Benutzerebene zum Ausführen bestimmter Datenverarbeitungsaufgaben wie zum Beispiel Textverarbeitung, Tabellenkalkulation, Datenbankoperationen, Videospiele, Aktienmarktsimulationen, Simulationen von Prozessen bei atomaren Quanten oder andere Anwendungen auf der Benutzerebene. Darüber hinaus ist im RAM 14 ein Betriebssystem 22 gespeichert. Dem Fachmann wird klar sein, dass zu den Betriebssystemen, die in Verbindung mit Ausführungsformen der Erfindung verwendbar sind, UNIXTM LinuxTM, Microsoft Windows XPTM, AIXTM, i5/OSTM von IBM und andere gehören können. Das Betriebssystem 22 und die Anwendung 20 bei dem Beispiel aus 1 sind im RAM 14 dargestellt, aber viele Komponenten derartiger Software sind normalerweise auch in nichtflüchtigem Speicher wie z. B. auf einem Festplattenlaufwerk 24 gespeichert.
  • Wie nachstehend deutlicher wird, können Ausführungsformen gemäß der Erfindung in integrierten NOC-Schaltungseinheiten (NOC = Network an Chip) bzw. -Chips realisiert sein, und daher ist der Computer 10 so veranschaulicht, dass er zwei beispielhafte NOCs aufweist: einen Videoadapter 26 und einen Coprozessor 28. Der NOC-Videoadapter 26, der alternativ als Grafikadapter bezeichnet werden kann, ist ein Beispiel eines E/A-Adapters, der speziell zur Grafikausgabe an eine Anzeigeeinheit 30 wie zum Beispiel einen Anzeigebildschirm oder einen Computermonitor ausgelegt ist. Der NOC-Videoadapter 26 ist mit dem Prozessor 12 über einen schnellen Videobus 32, einen Busadapter 18 und den Front-Side-Bus 34 verbunden, bei dem es sich ebenfalls um einen schnellen Bus handelt. Der NOC-Coprozessor 28 ist über den Busadapter 18 und die Front-Side-Busse 34 und 36, bei denen es sich ebenfalls um einen schnellen Bus handelt, mit dem Prozessor 12 verbunden. Der NOC-Coprozessor aus 1 kann optimiert sein, um zum Beispiel auf Veranlassung des Hauptprozessors 12 bestimmte Datenverarbeitungsaufgaben zu beschleunigen.
  • Der beispielhafte NOC-Videoadapter 26 und NOC-Coprozessor 28 aus 1 weisen jeweils einen NOC mit integrierten Prozessorblöcken (IP-Blöcken), Steuereinheiten für den Speicher-Datenaustausch und Netzwerkschnittstellen-Steuereinheiten auf, deren Einzelheiten in Verbindung mit den 2 bis 3 ausführlicher erörtert werden. Der NOC-Videoadapter und NOC-Coprozessor sind jeweils für Programme optimiert, die die Parallelverarbeitung nutzen und außerdem einen schnellen Direktzugriff auf gemeinsam genutzten Speicher erfordern. Für den Fachmann, der von der vorliegenden Offenbarung profitiert, wird jedoch klar sein, dass die Erfindung in anderen Einheiten und Einheitenarchitekturen als NOC-Einheiten und NOC-Einheitenarchitekturen realisiert werden kann. Daher ist die Erfindung nicht auf die Realisierung in einer NOC-Einheit beschränkt.
  • Der Computer 10 aus 1 weist einen Festplattenlaufwerksadapter 38 auf, der über einen Erweiterungsbus 40 und den Busadapter 18 mit dem Prozessor 12 und anderen Komponenten des Computers 10 verbunden ist. Dem Fachmann wird klar sein, dass der Festplattenadapter 38 nichtflüchtigen Datenspeicher in Form des Festplattenlaufwerks 24 mit dem Computer 10 verbindet und zum Beispiel unter Verwendung von IDE-Adaptern (IDE = Integrated Drive Electronics), SCSI-Adaptern (SCSI = Small Computer System Interface) und anderen realisiert sein kann. Dem Fachmann wird klar sein, dass nichtflüchtiger Computerspeicher auch als optisches Festplattenlaufwerk, elektrisch löschbarer programmierbarer Nur-Lese-Speicher (sogenannter EEPROM- oder Flash-Speicher), in Form von RAM-Laufwerken usw. realisiert sein kann.
  • Der Computer 10 weist zudem einen oder mehrere Eingabe/Ausgabe-Adapter (E/A-Adapter) 42 auf, die die benutzerorientierte Eingabe und Ausgabe mithilfe von z. B. Softwaretreibern und Computerhardware zum Steuern der Ausgabe auf Ausgabeeinheiten wie zum Beispiel Computer-Anzeigebildschirme sowie zum Steuern der Eingabe von Benutzereingabeeinheiten 44 wie zum Beispiel Tastaturen und Mäusen realisieren. Darüber hinaus weist der Computer 10 einen Datenübertragungsadapter 46 für den Datenaustausch mit anderen Computern 48 und für den Datenaustausch mit einem Datenübertragungsnetzwerk 50 auf. Dem Fachmann wird klar sein, dass dieser Datenaustausch seriell über RS-232-Verbindungen, über externe Busse wie zum Beispiel einen Universal Serial Bus (USB), über Datenübertragungsnetzwerke wie zum Beispiel IP-Datenübertragungsnetzwerke und auf andere Weise durchgeführt werden kann. Datenübertragungsadapter realisieren die Hardwareebene des Datenaustauschs, über die ein Computer direkt oder über ein Datenübertragungsnetzwerk Daten an einen anderen Computer sendet. Zu Beispielen von Datenübertragungsadaptern, die zur Verwendung im Computer 10 geeignet sind, gehören Modems für kabelgebundene Einwählverbindungen, Ethernet-Adapter (IEEE 802.3) für die Verbindung zu kabelgebundenen Datenübertragungsnetzwerken und 802.11-Adapter für die Verbindung zu drahtlosen Datenübertragungsnetzwerken.
  • Zur weiteren Erläuterung ist in 2 ein Funktionsblockschema eines beispielhaften NOC 102 gemäß Ausführungsformen der vorliegenden Erfindung dargelegt. Das NOC in 2 ist auf einem „Chip” 100 realisiert, d. h. in einer integrierten Schaltung. Das NOC 102 weist integrierte Prozessorblöcke (IP-Blöcke) 104, Router 110, Steuereinheiten 106 für den Speicher-Datenaustausch und Netzwerkschnittstellen-Steuereinheiten 108 auf, die in untereinander verbundenen Knoten gruppiert sind. Jeder IP-Block 104 ist über eine Steuereinheit 106 für den Speicher-Datenaustausch und eine Netzwerkschnittstellen-Steuereinheit 108 an einen Router 110 angepasst. Jede Steuereinheit für den Speicher-Datenaustausch steuert den Datenaustausch zwischen einem IP-Block und einem Speicher, und jede Netzwerkschnittstellen-Steuereinheit 108 steuert den Datenaustausch zwischen IP-Blöcken über die Router 110.
  • Beim NOC 102 stellt jeder IP-Block eine wiederverwendbare Einheit aus synchroner oder asynchroner Logik dar, die als Baustein zur Datenverarbeitung im NOC verwendet wird. Die Bedeutung des Begriffs „IP-Block” wird manchmal als „Block aus geistigem Eigentum” (Intellectual Property Block) ausgelegt, um damit einen IP-Block wirksam als Entwicklung zu bezeichnen, die einer beteiligten Partei gehört, d. h. das geistige Eigentum einer beteiligten Partei ist, für das anderen Benutzern oder Entwicklern von Halbleiterschaltungen eine Lizenz erteilt werden muss. Im Schutzbereich der vorliegenden Erfindung liegt jedoch kein Erfordernis vor, dass IP-Blöcke einer bestimmten Eigentümerschaft unterliegen müssen, sodass der Begriff in dieser Spezifikation stets als „integrierter Prozessorblock” ausgelegt wird. IP-Blöcke sind im hierin angegebenen Sinne wiederverwendbare Gestaltungseinheiten von Logik, Zellen- oder Chip-Layouts. IP-Blöcke sind Logikkerne, die als ASIC-Chips oder FPGA-Logik ausgebildet sein können.
  • Eine Möglichkeit zur sinngemäßen Beschreibung von IP-Blöcken besteht darin, dass IP-Blöcke für NOCs sind, was eine Bibliothek für die Computerprogrammierung oder eine einzelne integrierte Schaltungskomponente für den Entwurf einer Leiterplatte ist. Dem Fachmann ist unter Umständen klar, dass bei NOCs gemäß Ausführungsformen der vorliegenden Erfindung IP-Blöcke als allgemeine Gatternetzlisten, als komplette Spezial- oder Mehrzweck-Mikroprozessoren oder in anderer Form realisiert sein können. Eine Netzliste ist eine Darstellung in Boolescher Algebra (Gatter, Standardzellen) einer Logikfunktion eines IP-Blocks, analog zu einem Assemblercode-Listing bei einer Anwendung in einer höheren Programmiersprache. Außerdem können NOCs zum Beispiel in synthetisierbarer Form realisiert, d. h. in einer Hardwarebeschreibungssprache wie zum Beispiel Verilog oder VHDL beschrieben sein. Außer der Realisierung als Netzliste oder in synthetisierbarer Form können NOCs auch in physischen Beschreibungen unterer Ebenen bereitgestellt sein. Analoge Elemente von IP-Blöcken wie zum Beispiel SERDES, PLL, DAU, ADU usw. können in einem Transistorlayout-Format GDSII verteilt sein. Digitale Elemente von IP-Blöcken werden manchmal ebenfalls im Layout-Format bereitgestellt. Außerdem wird klar sein, dass IP-Blöcke sowie andere Logikschaltungen, die gemäß der Erfindung realisiert sind, in Form von Computerdatendateien, z. B. von Programmcode zur Logikdefinition, verteilt sein können, die auf verschiedenen Detailebenen die Funktionalität und/oder das Layout der Schaltungsanordnungen zur Realisierung derartiger Logik festlegen. Daher wird für den Fachmann, der von der vorliegenden Offenbarung profitiert, klar sein, obwohl die Erfindung bisher im Kontext von Schaltungsanordnungen beschrieben wurde und nachstehend beschrieben wird, die in voll funktionsfähigen integrierten Schaltungseinheiten, Datenverarbeitungssystemen realisiert sind, die derartige Einheiten und andere materielle, physische Hardwareschaltungen nutzen, dass die Erfindung auch in einem Programmprodukt realisiert sein kann und dass die Erfindung gleichermaßen ungeachtet der jeweiligen Art des computerlesbaren Speichermediums gilt, das zur Verteilung des Programmprodukts verwendet wird. Zu Beispielen von computerlesbaren Speichermedien gehören, ohne darauf beschränkt zu sein, unter anderem physische beschreibbare Medien wie zum Beispiel flüchtige und nichtflüchtige Speichereinheiten, Disketten, Festplattenlaufwerke, CD-ROMs und DVDs.
  • Jeder IP-Block in dem Beispiel aus 2 ist über eine Steuereinheit 106 für den Speicher-Datenaustausch an einen Router 110 angepasst. Jede Steuereinheit für den Speicher-Datenaustausch ist eine Zusammenfassung aus synchronen und asynchronen Logikschaltungen, die so gestaltet ist, dass sie den Datenaustausch zwischen einem IP-Block und dem Speicher bereitstellt. Zu Beispielen eines derartigen Datenaustauschs zwischen IP-Blöcken und dem Speicher gehören Anweisungen zum Laden in den Speicher und Anweisungen zum Speichern im Speicher. Die Steuereinheiten 106 für den Speicher-Datenaustausch sind nachstehend unter Bezugnahme auf 3 ausführlicher beschrieben. Jeder IP-Block 104 ist außerdem über eine Netzwerkschnittstellen-Steuereinheit 108, die den Datenaustausch zwischen IP-Blöcken 104 über die Router 110 steuert, an einen Router 110 angepasst. Zu Beispielen des Datenaustauschs zwischen IP-Blöcken gehören Nachrichten, die Daten und Anweisungen transportieren, um bei parallel und im Pipelinesystem arbeitenden Anwendungen Daten zwischen IP-Blöcken zu verarbeiten. Die Netzwerkschnittstellen-Steuereinheiten 108 sind ebenfalls nachstehend unter Bezugnahme auf 3 ausführlicher beschrieben.
  • Router 110 und die entsprechenden Verbindungen 118 zwischen diesen realisieren die Netzwerkoperationen des NOC. Die Verbindungen 118 können Paketstrukturen sein, die auf physischen, parallelverdrahteten Bussen realisiert sind, die alle Router verbinden. Das heißt, dass jede Verbindung auf einem leitungsgebundenen Bus realisiert sein kann, der breit genug ist, um gleichzeitig ein ganzes Datenvermittlungspaket einschließlich aller Kopfinformationen und Nutzdaten aufzunehmen. Wenn eine Paketstruktur beispielsweise 64 Bytes einschließlich eines Acht-Byte-Kopfes und 56 Bytes Nutzdaten aufweist, ist der leitungsgebundene Bus, der sich zum gegenüberliegenden Ende der Verbindung erstreckt, 64 Bytes breit und weist 512 Leitungen auf. Außerdem kann jede Verbindung bidirektional sein, sodass der leitungsgebundene Bus tatsächlich 1024 Leitungen zwischen jedem Router und jedem seiner Nachbarn im Netzwerk enthält, wenn die Paketstruktur der Verbindung 64 Bytes aufweist. Bei einer derartigen Realisierungsform könnte eine Nachricht mehr als ein Paket aufweisen, aber jedes Paket würde exakt auf die Breite des leitungsgebundenen Busses passen. Als Alternative kann eine Verbindung auf einem leitungsgebundenen Bus realisiert sein, der nur breit genug ist, um einen Teil des Pakets aufzunehmen, sodass ein Paket auf mehrere Takte aufgeteilt würde, z. B. so, dass bei einer realisierten Verbindung mit einer Breite von 16 Bytes bzw. 128 Leitungen ein 64-Byte-Paket auf vier Takte aufgeteilt werden könnte. Es wird klar sein, dass auf der Grundlage physischer Begrenzungen in der Praxis sowie gewünschter Leistungseigenschaften unterschiedliche Realisierungsformen unterschiedliche Busbreiten nutzen können. Wenn die Verbindung zwischen dem Router und jedem Abschnitt des leitungsgebundenen Busses als Anschluss bezeichnet wird, weist jeder Router fünf Anschlüsse auf, einen für jede von vier Richtungen der Datenübertragung im Netzwerk und einen fünften Anschluss zum Anpassen des Routers an einen bestimmten IP-Block über eine Steuereinheit für den Speicher-Datenaustausch und eine Netzwerkschnittstellen-Steuereinheit.
  • Jede Steuereinheit 106 für den Speicher-Datenaustausch steuert den Datenaustausch zwischen einem IP-Block und dem Speicher. Zum Speicher können ein außerhalb des Chips angeordneter Haupt-RAM 112, ein Speicher 114, der über eine Steuereinheit 106 für den Speicher-Datenaustausch direkt mit einem IP-Block verbunden ist, auf dem Chip angeordneter Speicher, der als IP-Block 116 aktiviert ist, und auf dem Chip angeordnete Cache-Zwischenspeicher gehören. Bei dem NOC 102 können beispielsweise beide auf dem Chip angeordneten Speicher 114, 116 als auf dem Chip angeordneter Cache-Zwischenspeicher realisiert sein. Alle diese Formen von Speicher können unabhängig von physischen Adressen oder virtuellen Adressen im selben Adressraum angeordnet sein, was selbst für den Speicher gilt, der direkt mit einem IP-Block verbunden ist. Speicheradressierte Nachrichten können daher in Bezug auf IP-Blöcke vollständig bidirektional sein, da derartiger Speicher von einem beliebigen IP-Block von überallher im Netzwerk direkt adressiert werden kann. Der Speicher 116 an einem IP-Block kann von diesem IP-Block oder von einem beliebigen anderen IP-Block im NOC adressiert werden. Der Speicher 114, der direkt mit einer Steuereinheit für den Speicher-Datenaustausch verbunden ist, kann durch den IP-Block adressiert werden, der durch diese Steuereinheit für den Speicher-Datenaustausch an das Netzwerk angepasst ist – und er kann außerdem von einem beliebigen anderen IP-Block überall im NOC adressiert werden.
  • Das NOC 102 weist zwei Speicherverwaltungseinheiten (Memory Management Units, MMUs) 120, 122 auf, die gemäß Ausführungsformen der vorliegenden Erfindung zwei alternative Speicherarchitekturen für NOCs veranschaulichen. Die MMU 120 ist in einem IP-Block realisiert, wodurch ein Prozessor in dem IP-Block im virtuellen Speicher arbeiten kann, während die gesamte übrige Architektur des NOC in einem physischen Speicheradressraum arbeiten kann. Die MMU 122 ist außerhalb des Chips realisiert und über einen Datenübertragungsanschluss 124 mit dem NOC verbunden. Der Anschluss 124 weist die Kontaktstifte und andere Verbindungen auf, die zur Übertragung von Signalen zwischen dem NOC und der MMU erforderlich sind, sowie ausreichende Intelligenz, um Nachrichtenpakete aus dem NOC-Paketformat in das Busformat umzuwandeln, das die externe MMU 122 benötigt. Die externe Anordnung der MMU bedeutet, dass alle Prozesse in allen IP-Blöcken des NOC im virtuellen Speicheradressraum arbeiten können, wobei alle Umwandlungen in physische Adressen des außerhalb des Chips angeordneten Speichers durch die außerhalb des Chips angeordnete MMU 122 verarbeitet werden.
  • Außer den zwei mithilfe der MMUs 120, 122 veranschaulichten Speicherarchitekturen veranschaulicht ein Datenübertragungsanschluss 126 eine dritte Speicherarchitektur, die bei NOCs verwendbar ist, die bei Ausführungsformen der vorliegenden Erfindung genutzt werden können. Der Anschluss 126 stellt eine direkte Verbindung zwischen einem IP-Block 104 des NOC und dem außerhalb des Chips angeordneten Speicher 112 bereit. Ohne MMU im Verarbeitungspfad stellt diese Architektur die Nutzung eines physischen Adressraums durch alle IP-Blöcke des NOC bereit. Bei gemeinsamer bidirektionaler Nutzung des Adressraums können alle IP-Blöcke des NOC durch speicheradressierte Nachrichten (einschließlich von Lade- und Speicherungsoperationen), die über den mit dem Anschluss 126 verbundenen IP-Block geleitet werden, auf Speicher im Adressraum zugreifen. Der Anschluss 124 weist die Kontaktstifte und andere Verbindungen auf, die zur Übertragung von Signalen zwischen dem NOC und dem außerhalb des Chips angeordneten Speicher 112 erforderlich sind, sowie ausreichende Intelligenz, um Nachrichtenpakete aus dem NOC-Paketformat in das Busformat umzuwandeln, das der außerhalb des Chips angeordnete Speicher 112 benötigt.
  • Bei dem Beispiel aus 2 ist einer der IP-Blöcke als Host-Schnittstellenprozessor 128 bezeichnet. Ein Host-Schnittstellenprozessor (HSP) 128 stellt eine Schnittstelle zwischen dem NOC und einem Host-Computer 10 bereit, in dem das NOC installiert sein kann, und er stellt außerdem Datenverarbeitungsdienste für andere IP-Blöcke auf dem NOC bereit, zu denen zum Beispiel das Empfangen der NOC-Datenverarbeitungsanforderungen vom Host-Computer und deren Verteilung unter den IP-Blöcken gehört. Ein NOC kann zum Beispiel einen Video-Grafikadapter 26 oder einen Coprozessor 28 auf einem größeren Computer realisieren, wie oben unter Bezugnahme auf 1 beschrieben. Bei dem Beispiel aus 2 ist der Host-Schnittstellenprozessor 128 über einen Datenübertragungsanschluss 130 mit dem größeren Host-Computer verbunden. Der Anschluss 130 weist die Kontaktstifte und andere Verbindungen auf, die zur Übertragung von Signalen zwischen dem NOC und dem Host-Computer erforderlich sind, sowie ausreichende Intelligenz, um Nachrichtenpakete vom NOC in das Busformat umzuwandeln, das der Host-Computer 10 benötigt. Bei dem Beispiel des NOC-Coprozessors im Computer aus 1 würde ein derartiger Anschluss die Umsetzung des Datenaustauschformats zwischen der Verbindungsstruktur des NOC-Coprozessors 28 und dem Protokoll bereitstellen, das für den Front-Side-Bus 36 zwischen dem NOC-Coprozessor 28 und dem Busadapter 18 benötigt wird.
  • 3 veranschaulicht als Nächstes ein Funktionsblockschema, das die Komponenten ausführlicher veranschaulicht, die in einem IP-Block 104, in der Steuereinheit 106 für den Datenaustausch, in der Netzwerkschnittstellen-Steuereinheit 108 und im Router 110 im NOC 102 realisiert sind, die zusammenfassend bei 132 veranschaulicht sind. Der IP-Block 104 weist einen Computerprozessor 134 und eine E/A-Funktionalität 136 auf. Bei diesem Beispiel ist der Computerspeicher durch ein Segment eines Direktzugriffsspeichers („RAM”) 138 im IP-Block 104 dargestellt. Der Speicher kann wie oben unter Bezugnahme auf 2 beschrieben Segmente eines physischen Adressraums belegen, dessen Inhalt bei jedem IP-Block von einem beliebigen IP-Block im NOC aus adressierbar und zugriffsfähig ist. Die Prozessoren 134, die E/A-Fähigkeiten 126 und der Speicher 138 in jedem IP-Block realisieren die IP-Blöcke wirksam als allgemein programmierbare Mikrocomputer. Wie oben erläutert stellen jedoch die IP-Blöcke im Schutzbereich der vorliegenden Erfindung allgemein wiederverwendbare Einheiten aus synchroner und asynchroner Logik dar, die als Bausteine zur Datenverarbeitung im NOC verwendet werden. Das Realisieren von IP-Blöcken als allgemein programmierbare Mikrocomputer stellt daher keine Einschränkung der Erfindung dar, obwohl es als häufig verwendete Ausführungsform zu Erläuterungszwecken hilfreich ist.
  • Im NOC 102 aus 3 weist jede Steuereinheit 106 für den Speicher-Datenaustausch eine Vielzahl von Ausführungsmodulen 140 für den Speicher-Datenaustausch auf. Jedes Ausführungsmodul 140 für den Speicher-Datenaustausch ist so aktiviert, dass von einem IP-Block 104 kommende Anweisungen zum Speicher-Datenaustausch ausgeführt werden, einschließlich des bidirektionalen Anweisungsflusses 141, 142, 144 zwischen dem Netzwerk und dem IP-Block 104. Die Anweisungen für den Speicher-Datenaustausch, die durch die Steuereinheit für den Speicher-Datenaustausch ausgeführt werden, können nicht nur von dem IP-Block stammen, der über eine bestimmte Steuereinheit für den Speicher-Datenaustausch an einen Router angepasst ist, sondern auch von einem beliebigen IP-Block 104 irgendwo im NOC 102. Das heißt, dass ein beliebiger IP-Block im NOC eine Anweisung für den Speicher-Datenaustausch erzeugen und diese Anweisung für den Speicher-Datenaustausch über die Router des NOC zur Ausführung dieser Anweisung für den Speicher-Datenaustausch an eine andere Steuereinheit für den Speicher-Datenaustausch senden kann, die zu einem anderen IP-Block gehört. Zu derartigen Anweisungen für den Speicher-Datenaustausch können zum Beispiel Anweisungen zur Steuerung von Transaktions-Umsetzpuffern, Anweisungen zur Steuerung von Cache-Zwischenspeichern, Sperranweisungen und Lade- und Speicheranweisungen für Speicher gehören.
  • Jedes Ausführungsmodul 140 für den Speicher-Datenaustausch ist so aktiviert, dass eine vollständige Anweisung für den Speicher-Datenaustausch getrennt von und parallel zu anderen Ausführungsmodulen für den Speicher-Datenaustausch ausgeführt wird. Die Ausführungsmodule für den Speicher-Datenaustausch realisieren einen skalierbaren Speicher-Transaktionsprozessor, der für den gleichzeitigen Durchsatz von Anweisungen für den Speicher-Datenaustausch optimiert ist. Die Steuereinheit 106 für den Speicher-Datenaustausch unterstützt mehrere Ausführungsmodule 140 für den Speicher-Datenaustausch, von denen alle zwecks gleichzeitiger Ausführung mehrerer Anweisungen für den Speicher-Datenaustausch gleichzeitig ausgeführt werden. Durch die Steuereinheit 106 für den Speicher-Datenaustausch wird einem Modul 140 für den Speicher-Datenaustausch eine neue Anweisung für den Speicher-Datenaustausch zugeordnet, und die Ausführungsmodule 140 für den Speicher-Datenaustausch können gleichzeitig mehrere Antwortereignisse annehmen. Bei diesem Beispiel sind alle Ausführungsmodule 140 für den Speicher-Datenaustausch identisch. Das Skalieren der Anzahl von Anweisungen für den Speicher-Datenaustausch kann durch eine Steuereinheit 106 für den Speicher-Datenaustausch gleichzeitig vorgenommen werden und wird daher durch das Skalieren der Anzahl von Ausführungsmodulen 140 für den Speicher-Datenaustausch realisiert.
  • Im NOC 102 aus 3 ist jede Netzwerkschnittstellen-Steuereinheit 108 so aktiviert, dass Datenaustauschanweisungen zur Übertragung zwischen den IP-Blöcken 104 über die Router 110 aus dem Befehlsformat in das Netzwerkpaketformat umgewandelt werden. Die Datenaustauschanweisungen können durch den IP-Block 104 oder durch die Steuereinheit 106 für den Speicher-Datenaustausch im Befehlsformat formuliert und der Netzwerkschnittstellen-Steuereinheit 108 im Befehlsformat bereitgestellt werden. Das Befehlsformat kann ein natives (systemeigenes) Format sein, das den Architektur-Registerdateien des IP-Blocks 104 und der Steuereinheit 106 für den Speicher-Datenaustausch entspricht. Das Netzwerkpaketformat ist normalerweise das Format, das zur Übertragung über die Router 110 des Netzwerks erforderlich ist. Jede derartige Nachricht besteht aus einem oder mehreren Netzwerkpaketen. Zu Beispielen derartiger Datenaustausch Anweisungen, die in der Netzwerkschnittstellen-Steuereinheit aus dem Befehlsformat in das Paketformat umgewandelt werden, gehören Speicher-Ladeanweisungen und Speicher-Speicheranweisungen zwischen IP-Blöcken und Speicher. Zu derartigen Datenaustauschanweisungen können außerdem Datenaustauschanweisungen gehören, die Nachrichten zwischen IP-Blöcken senden, die Daten und Anweisungen zum Verarbeiten der Daten zwischen IP-Blöcken in parallelen Anwendungen und in einem Pipelinesystem arbeitenden Anwendungen transportieren.
  • Im NOC 102 aus 3 ist jeder IP-Block so aktiviert, dass auf Speicheradressen beruhender Datenaustausch zum und vom Speicher über die Steuereinheit des IP-Blocks für den Speicher-Datenaustausch und anschließend auch über dessen Netzwerkschnittstellen-Steuereinheit an das Netzwerk gesendet wird. Ein auf Speicheradressen beruhender Datenaustausch ist eine Speicherzugriffsanweisung wie zum Beispiel eine Ladeanweisung oder eine Speicheranweisung, die durch ein Ausführungsmodul für den Speicher-Datenaustausch einer Steuereinheit für den Speicher-Datenaustausch eines IP-Blocks ausgeführt wird. Derartiger auf Speicheradressen beruhender Datenaustausch stammt normalerweise von einem IP-Block, ist im Befehlsformat formatiert und wird zur Ausführung an eine Steuereinheit für den Speicher-Datenaustausch übergeben.
  • Ein großer Teil des auf Speicheradressen beruhenden Datenaustauschs wird mit Nachrichtenverkehr abgewickelt, da sich beliebiger zu adressierender Speicher an einer beliebigen Stelle im physische Adressraum, auf dem Chip oder außerhalb des Chips befinden, direkt mit einer beliebigen Steuereinheit für den Speicher-Datenaustausch im NOC verbunden sein oder letztlich über einen beliebigen IP-Block des NOC darauf zugegriffen werden kann – unabhängig davon, von welchem IP-Block ein bestimmter auf Speicheradressen beruhender Datenaustausch stammt. Somit wird im NOC 102 der gesamte auf Speicheradressen beruhende Datenaustausch, der mit Nachrichtenverkehr ausgeführt wird, zwecks Umwandlung aus dem Befehlsformat in das Paketformat und Übertragung über das Netzwerk in einer Nachricht von der Steuereinheit für den Speicher-Datenaustausch an eine zugehörige Netzwerkschnittstellen-Steuereinheit übermittelt. Beim Umwandeln in das Paketformat erkennt die Netzwerkschnittstellen-Steuereinheit außerdem eine Netzwerkadresse für das Paket in Abhängigkeit von der Speicheradresse oder den Speicheradressen, auf die durch einen auf Speicheradressen beruhenden Datenaustausch zugegriffen werden soll. Auf Speicheradressen beruhende Nachrichten sind mit Speicheradressen adressiert. Jede Speicheradresse wird durch die Netzwerkschnittstellen-Steuereinheiten einer Netzwerkadresse zugeordnet, normalerweise dem Netzspeicherort einer Steuereinheit für den Speicher-Datenaustausch, die für einen bestimmten Bereich von physischen Speicheradressen zuständig ist. Der Netzspeicherort einer Steuereinheit 106 für den Speicher-Datenaustausch ist selbstverständlich auch der Netzspeicherort des zugehörigen Routers 110, der zugehörigen Netzwerkschnittstellen-Steuereinheit 108 und des zugehörigen IP-Blocks 104 dieser Steuereinheit für den Speicher-Datenaustausch. Die Anweisungs-Umwandlungslogik 150 in jeder Netzwerkschnittstellen-Steuereinheit kann zwecks Übertragung von auf Speicheradressen beruhendem Datenverkehr über Router eines NOC Speicheradressen in Netzwerkadressen umwandeln.
  • Nachdem von Routern 110 des Netzwerks kommender Nachrichtenverkehr empfangen wurde, untersucht jede Netzwerkschnittstellen-Steuereinheit 108 jedes Paket auf Speicheranweisungen. Jedes Paket, das eine Speicheranweisung enthält, wird an die zur empfangenden Netzwerkschnittstellen-Steuereinheit gehörende Steuereinheit 106 für den Speicher-Datenaustausch übergeben, die die Speicheranweisung ausführt, bevor die restlichen Nutzdaten des Pakets zur weiteren Verarbeitung an den IP-Block gesendet werden. Auf diese Weise sind Speicherinhalte stets darauf vorbereitet, die Datenverarbeitung durch einen IP-Block zu unterstützen, bevor der IP-Block die Ausführung von Anweisungen aus einer Nachricht beginnt, die vom jeweiligen Speicherinhalt abhängen.
  • Im NOC 102 aus 3 ist jeder IP-Block 104 so aktiviert, dass seine Steuereinheit 106 für den Speicher-Datenaustausch umgangen und netzwerkadressierter Datenaustausch 146 zwischen IP-Blöcken über die Netzwerkschnittstellen-Steuereinheit 108 des IP-Blocks direkt an das Netzwerk gesendet wird. Netzwerkadressierter Datenaustausch sind Nachrichten, die mithilfe einer Netzwerkadresse an einen anderen IP-Block gerichtet sind. Derartige Nachrichten übertragen Arbeitsdaten bei im Pipelinesystem arbeitenden Anwendungen, mehrere Daten zwischen IP-Blöcken zur Verarbeitung durch ein Programm in einer SIMD-Anwendung (SIMD = Single Instruction, Mutliple Data) usw., wie dem Fachmann klar sein wird. Derartige Nachrichten unterscheiden sich von Datenaustausch, der auf Speicheradressen beruht, dadurch, dass sie durch den IP-Block, von dem sie stammen, von Beginn an netzwerkadressiert sind, wobei der IP-Block die Netzwerkadresse kennt, an die die Nachricht über Router des NOC zu richten ist. Derartiger netzwerkadressierter Datenaustausch wird durch den IP-Block über E/A-Funktionen 136 im Befehlsformat direkt an die Netzwerkschnittstellen-Steuereinheit des IP-Blocks übermittelt, anschließend durch die Netzwerkschnittstellen-Steuereinheit in das Paketformat umgewandelt und über Router des NOC zu einem anderen IP-Block übertragen. Derartiger netzwerkadressierter Datenaustausch 146 ist bidirektional und verläuft je nach dessen Nutzung in einer bestimmten Anwendung unter Umständen zu und von jedem IP-Block des NOC. Jede Netzwerkschnittstellen-Steuereinheit ist jedoch so aktiviert, dass sie derartigen Datenaustausch sowohl an einen zugehörigen Router sendet als auch von einem zugehörigen Router empfängt, und jede Netzwerkschnittstellen-Steuereinheit ist so aktiviert, dass sie derartigen Datenaustausch sowohl an einen zugehörigen IP-Block sendet als auch von einem zugehörigen IP-Block empfängt, wobei eine zugehörige Steuereinheit 106 für den Speicher-Datenaustausch umgangen wird.
  • Jede Netzwerkschnittstellen-Steuereinheit 108 bei dem Beispiel aus 3 ist außerdem so aktiviert, dass sie virtuelle Kanäle auf dem Netz realisiert und dadurch Netzwerkpakete nach Typ charakterisiert. Jede Netzwerkschnittstellen-Steuereinheit 108 weist eine Logik 148 zur Realisierung virtueller Kanäle auf, die jede Datenaustauschanweisung nach Typ einteilt und den Typ der Anweisung in einem Feld des Netzwerkpaketformats aufzeichnet, bevor sie die Anweisung zwecks Übertragung auf dem NOC in Paketform an einen Router 110 übergibt. Zu Beispielen von Typen von Datenaustauschanweisungen gehören zwischen IP-Blöcken ausgetauschte, auf Netzwerkadressen beruhende Nachrichten, Anforderungsnachrichten, Antworten auf Anforderungsnachrichten, an Cache-Zwischenspeicher gerichtete Nachrichten zum Ungültigmachen; Nachrichten zum Laden in den Speicher und Speichern im Speicher; und Antworten auf Nachrichten zum Speichern im Speicher usw.
  • Jeder Router 110 in dem Beispiel aus 3 weist eine Weiterleitungslogik 152, eine Steuerlogik 154 für virtuelle Kanäle und Puffer 156 für virtuelle Kanäle auf. Die Weiterleitungslogik ist normalerweise als Netzwerk aus synchroner und asynchroner Logik realisiert, die einen Datenaustausch-Protokollstack für den Datenaustausch in dem Netzwerk realisiert, das durch die Router 110, Verbindungen 118 und Busleitungen zwischen den Routern gebildet wird. Die Weiterleitungslogik 152 weist die Funktionalität auf, die fachkundige Leser bei außerhalb von Chips angeordneten Netzwerken mit Weiterleitungstabellen in Verbindung bringen könnten, wobei Weiterleitungstabellen bei mindestens einigen Ausführungsformen zur Verwendung in einem NOC als zu langsam und umständlich angesehen werden. Weiterleitungslogik, die als Netzwerk aus synchroner und asynchroner Logik realisiert ist, kann so gestaltet sein, dass Weiterleitungsentscheidungen im Zeitraum eines einzelnen Taktzyklus getroffen werden. Die Weiterleitungslogik leitet bei diesem Beispiel Pakete weiter, indem ein Anschluss zum Weiterleiten jedes Pakets ausgewählt wird, das in einem Router empfangen wurde. Jedes Paket enthält eine Netzwerkadresse, an die das Paket weiterzuleiten ist.
  • In der obigen Beschreibung des auf Speicheradressen beruhenden Datenaustauschs wurde jede Speicheradresse so beschrieben, dass sie durch Netzwerkschnittstellen-Steuereinheiten einer Netzwerkadresse, einem Netzspeicherort einer Steuereinheit für den Speicher-Datenaustausch, zugeordnet wird. Der Netzspeicherort einer Steuereinheit 106 für den Speicher-Datenaustausch ist selbstverständlich auch der Netzspeicherort des zugehörigen Routers 110, der zugehörigen Netzwerkschnittstellen-Steuereinheit 108 und des zugehörigen IP-Blocks 104 dieser Steuereinheit für den Speicher-Datenaustausch. Bei dem Datenaustausch zwischen IP-Blöcken bzw. dem auf Netzwerkadressen beruhenden Datenaustausch ist es daher auch bei der Datenverarbeitung auf der Anwendungsebene normal, dass Netzwerkadressen als Speicherort eines IP-Blocks innerhalb des aus den Routern, Verbindungen und Busleitungen des NOC gebildeten Netzwerks angesehen werden. 2 veranschaulicht, dass eine Organisation eines derartigen Netzwerks ein Netz aus Zeilen und Spalten ist, in dem jede Netzwerkadresse realisiert sein kann, zum Beispiel entweder als eindeutige Kennung für jede Gruppe aus zugehörigem Router, IP-Block, zugehöriger Steuereinheit für den Speicher-Datenaustausch und Netzwerkschnittstellen-Steuereinheit des Netzes oder als X-Y-Koordinaten jeder derartigen Gruppe in dem Netz.
  • Bei dem NOC 102 aus 3 realisiert jeder Router 110 einen oder mehrere virtuelle Datenaustauschkanäle, wobei jeder virtuelle Datenaustauschkanal durch einen Datenaustauschtyp charakterisiert ist. Zu Typen von Datenaustauschanweisungen und daher von Arten virtueller Kanäle gehören die oben erwähnten: zwischen IP-Blöcken ausgetauschte, auf Netzwerkadressen beruhende Nachrichten, Anforderungsnachrichten, Antworten auf Anforderungsnachrichten, an Cache-Zwischenspeicher gerichtete Nachrichten zum Ungültigmachen; Nachrichten zum Laden in den Speicher und Speichern im Speicher; und Antworten auf Nachrichten zum Speichern im Speicher usw. Zur Unterstützung virtueller Kanäle weist jeder Router 110 in dem Beispiel aus 3 auch die Steuerlogik 154 für virtuelle Kanäle und Puffer 156 für virtuelle Kanäle auf. Die Steuerlogik 154 für virtuelle Kanäle prüft jedes empfangene Paket auf seinen zugewiesenen Datenaustauschtyp und legt jedes Paket dieses Datenaustauschtyps zur Übertragung über einen Anschluss an einen benachbarten Router auf dem NOC in einem Ausgangspuffer für virtuelle Kanäle ab.
  • Jeder Puffer 156 für virtuelle Kanäle weist endlichen Speicherplatz auf. Wenn in einem kurzen Zeitraum viele Pakete empfangen werden, kann ein Puffer für virtuelle Kanäle volllaufen, sodass keine weiteren Pakete im Puffer abgelegt werden können. Bei anderen Protokollen würden Pakete verworfen werden, die auf einem virtuellen Kanal ankommen, dessen Puffer voll ist. Bei diesem Beispiel wird jeder Puffer 156 für virtuelle Kanäle jedoch mit Steuersignalen der Busleitungen so aktiviert, dass umliegende Router über die Steuerlogik für virtuelle Kanäle benachrichtigt werden, die Übertragung in einem virtuellen Kanal auszusetzen, das heißt, die Übertragung von Paketen eines bestimmten Datenaustauschtyps auszusetzen. Wenn ein virtueller Kanal auf diese Weise vorübergehend ausgesetzt ist, bleiben alle anderen Kanäle davon unberührt und können mit voller Leistung weiterarbeiten. Die Steuersignale sind auf der gesamten Länge über jeden Router zurück bis zur Netzwerkschnittstellen-Steuereinheit 108 verdrahtet, die zu jedem Router gehört. Jede Netzwerkschnittstellen-Steuereinheit ist so gestaltet, dass sie nach Empfang eines derartigen Signals von ihrer zugehörigen Steuereinheit 108 für den Speicher-Datenaustausch oder von ihrem zugehörigen IP-Block 104 die Annahme von Datenaustauschanweisungen für den ausgesetzten virtuellen Kanal verweigert. Auf diese Weise wirkt sich die Aussetzung eines virtuellen Kanals auf alle Hardware aus, die den virtuellen Kanal auf der gesamten Länge zurück bis zu den verursachenden IP-Blöcken realisiert.
  • Eine Auswirkung des Aussetzens von Paketübertragungen in einem virtuellen Kanal besteht darin, dass Pakete in keinem Fall verworfen werden. Wenn ein Router mit einer Situation in Berührung kommt, in der ein Paket in einem etwas unzuverlässigen Protokoll wie zum Beispiel dem Internetprotokoll verworfen werden könnte, können die Router bei dem Beispiel aus 3 durch ihre Puffer 156 für virtuelle Kanäle und ihre Steuerlogik 154 für virtuelle Kanäle alle Übertragungen von Paketen in einem virtuellen Kanal aussetzen, bis wieder genügend Pufferplatz zur Verfügung steht, wodurch jegliche Notwendigkeit zum Verwerfen von Paketen beseitigt wird. Das NOC aus 3 kann daher hochzuverlässige Netzwerk-Datenaustauschprotokolle mit einer extrem dünnen Schicht von Hardware realisieren.
  • Das beispielhafte NOC aus 3 kann außerdem so gestaltet sein, dass ein Zusammenhang zwischen Cache-Zwischenspeichern sowohl des auf dem Chip angeordneten Speichers als auch des außerhalb des Chips angeordneten Speicher aufrechterhalten wird. Jedes NOC kann mehrere Cache-Zwischenspeicher unterstützen, von denen jeder mit demselben unterlagerten Speicheradressraum zusammenarbeitet. Beispielsweise können Cache-Zwischenspeicher durch IP-Blöcke, durch Steuereinheiten für den Speicher-Datenaustausch oder durch außerhalb des NOC angeordnete Steuereinheiten für Cache-Zwischenspeicher gesteuert werden. Jeder der auf dem Chip angeordneten Speicher 114, 116 bei dem Beispiel aus 2 kann außerdem als auf dem Chip angeordneter Cache-Zwischenspeicher realisiert sein, und im Rahmen des Schutzbereichs der vorliegenden Erfindung kann Cache-Zwischenspeicher auch außerhalb des Chips realisiert sein.
  • Jeder in 3 veranschaulichte Router 110 weist fünf Anschlüsse auf, vier Anschlüsse 158A bis D, die über Busleitungen 118 mit anderen Routern verbunden sind, und einen fünften Anschluss 160, der jeden Router über eine Netzwerkschnittstellen-Steuereinheit 108 und eine Steuereinheit 106 für den Speicher-Datenaustausch mit seinem zugehörigen IP-Block 104 verbindet. Wie an den Veranschaulichungen in den 2 und 3 zu erkennen ist, bilden die Router 110 und die Verbindungen 118 des NOC 102 ein vermaschtes Netzwerk mit vertikalen und horizontalen Verbindungen, über die die vertikalen und horizontalen Anschlüsse in jedem Router miteinander verbunden sind. In der Veranschaulichung aus 3 werden beispielsweise die Anschlüsse 158A, 158C und 160 als „vertikale Anschlüsse” und die Anschlüsse 158B und 158D als „horizontale Anschlüsse” bezeichnet.
  • 4 veranschaulicht als Nächstes in anderer Weise eine beispielhafte Ausführungsform eines IP-Blocks 104 gemäß der Erfindung, der als Verarbeitungselement realisiert ist, das in eine Anweisungseinheit (Instruction Unit, IU) 162, Ausführungseinheit (Execution Unit, XU) 164 und eine Hilfsausführungseinheit (Auxiliary Execution Unit, AXU) 166 unterteilt ist. Bei der veranschaulichten Realisierungsform weist die IU 162 eine Vielzahl von Anweisungspuffern 168 auf, die Anweisungen von einem L1-Anweisungs-Cache-Zwischenspeicher (iCACHE) 170 empfangen. Jeder Anweisungspuffer 168 ist einem aus einer Vielzahl, z. B. vier, symmetrischen SMT-Hardware-Threads (SMT = Symmetric Multithreaded) fest zugeordnet. Eine iERAT-Einheit (iERAT = Effective-to-real Translation) 172 ist mit dem iCACHE 170 verbunden und dient dazu, Anweisungs-Abrufanforderungen von einer Vielzahl von Thread-Abrufablaufsteuerungen 174 in reale Adressen für den Abruf von Anweisungen aus Speicher niedrigerer Ordnung umzusetzen. Jede Thread-Abrufablaufsteuerung 174 ist einem bestimmten Hardware-Thread fest zugeordnet und soll gewährleisten, dass durch den zugehörigen Thread auszuführende Anweisungen in den iCACHE abgerufen werden, um zur entsprechenden Ausführungseinheit weiterbefördert zu werden. Wie ebenfalls in 4 dargestellt, können Anweisungen, die in den Anweisungspuffer 168 abgerufen wurden, auch durch eine Verzweigungsvorhersagelogik 176 überwacht werden, die jeder Thread-Abrufablaufsteuerung 174 Hinweise bereitstellt, um fehlgeschlagene Cache-Zugriffe zu minimieren, die aus Verzweigungen in Ausführungs-Threads entstehen.
  • Die IU 162 weist auch einen Abhängigkeits-/Ausgabelogikblock 178 auf, der jedem Hardware-Thread fest zugeordnet und so gestaltet ist, dass Abhängigkeiten aufgelöst und die Ausgabe von Anweisungen aus dem Anweisungspuffer 168 an die XU 164 gesteuert werden. Außerdem ist bei der veranschaulichten Ausführungsform in der AXU 166 eine getrennte Abhängigkeits-/Ausgabelogik 180 bereitgestellt, wodurch unterschiedliche Threads gleichzeitig getrennte Anweisungen an die XU 164 und die AXU 166 ausgeben können. Bei einer alternativen Ausführungsform kann die Logik 180 in der IU 162 angeordnet sein, oder sie kann in ihrer Gesamtheit weggelassen sein, sodass die Logik 178 Anweisungen an die AXU 166 ausgibt.
  • Die XU 164 ist als Festkomma-Ausführungseinheit mit einem Satz von Mehrzweckregistern (General Purpose Registers, GPRs) 182 realisiert, die mit einer Festkommalogik 184, einer Verzweigungslogik 186 und einer Lade-/Speicherungslogik 188 verbunden sind. Die Lade-/Speicherungslogik 188 ist mit einem L1-Daten-Cache (dCACHE) 190 mit der Effective-to-Real-Umsetzung verbunden, die durch eine dERAT-Logik 192 bereitgestellt wird. Die XU 164 kann so gestaltet sein, dass sie praktisch einen beliebigen Anweisungssatz realisiert, z. B. den gesamten 32-Bit- oder 64-Bit-Anweisungssatz des PowerPC oder einen Teil davon.
  • Die AXU 166 fungiert als Hilfsausführungseinheit und weist die fest zugeordnete Abhängigkeits-/Ausgabelogik 180 zusammen mit einem oder mehreren Ausführungsblöcken 194 auf. Die AXU 166 kann eine beliebige Anzahl von Ausführungsblöcken aufweisen, und sie kann praktisch jeden beliebigen Typ von Ausführungseinheit realisieren, z. B. eine Fließkommaeinheit, eine oder mehrere spezialisierte Ausführungseinheiten, Verschlüsselungs-/Entschlüsselungseinheiten, Coprozessoren, Vektorverarbeitungseinheiten, Grafikverarbeitungseinheiten, XML-Verarbeitungseinheiten usw. Bei der veranschaulichenden Ausführungsform weist die AXU 166 eine schnelle Hilfsschnittstelle zur XU 164 auf, z. B. um direkte Verschiebungen zwischen einem angelegten AXU-Zustand und einem angelegten XU-Zustand zu unterstützen.
  • Der Datenaustausch mit dem IP-Block 104 kann auf die oben im Zusammenhang mit 2 erläuterte Weise über die Netzwerkschnittstellen-Steuereinheit 108 verwaltet werden, die mit dem NOC 102 verbunden ist. Der auf Adressen beruhende Datenaustausch, z. B. zum Zugriff auf den L2-Cache-Zwischenspeicher, kann zusammen mit dem auf Nachrichten beruhenden Datenaustausch bereitgestellt sein. Zum Beispiel kann der IP-Block 104 einen fest zugeordneten Nachrichteneingang und/oder Nachrichtenausgang aufweisen, um den zwischen Knoten auftretenden Datenaustausch zwischen IP-Blöcken zu verarbeiten.
  • Ausführungsformen der vorliegenden Erfindung können innerhalb der Hardware- und Softwareumgebung realisiert sein, die oben im Zusammenhang mit den 1 bis 4 beschrieben wurde. Für den Fachmann, der von der vorliegenden Offenbarung profitiert, wird jedoch klar sein, dass die Erfindung in einer Vielzahl unterschiedlicher Umgebungen realisiert werden kann und andere Veränderungen an der oben erwähnten Hardware- und Softwareumgebung vorgenommen werden können, ohne vom Ideengehalt und Schutzbereich der Erfindung abzuweichen. Daher ist die Erfindung nicht auf die hierin offenbarte jeweilige Hardware- und Softwareumgebung beschränkt.
  • Externe AXU-Schnittstelle für die außerhalb des Chips angeordnete AXU
  • Unter Bezugnahme auf 5 veranschaulicht diese Figur ein beispielhaftes Datenverarbeitungssystem, dass eine externe Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstelle) gemäß der Erfindung realisiert. Insbesondere weist eine weitere beispielhafte Realisierungsform eines IP-Blocks 200 ein auf dem Chip angeordnetes Verarbeitungselement 202 auf, das über eine externe AXU-Schnittstelle 206 mit einer außerhalb des Chips angeordneten AXU 204 verbunden ist.
  • Das Verarbeitungselement 202, das dem Verarbeitungselement im IP-Block 104 aus 4 ähnelt, weist eine Anweisungseinheit (IU) 208, eine Ausführungseinheit (XU) 210 und eine Netzwerk Schnittstellen-Steuereinheit (Network Interface Controller, NIC) 212 auf und ist mit einem NOC 214 verbunden.
  • Bei der veranschaulichten Realisierungsform weist die IU 208 eine Vielzahl von Anweisungspuffern 216 auf, die Anweisungen von einem L1-Anweisungs-Cache-Zwischenspeicher (iCACHE) 218 empfangen. Jeder Anweisungspuffer 216 ist einem aus einer Vielzahl, z. B. vier, symmetrischen SMT-Hardware-Threads (SMT = Symmetric Multithreaded) fest zugeordnet. Eine iERAT-Einheit (iERAT = Effective-to-real Translation) 220 ist mit dem iCACHE 218 verbunden und dient dazu, Anweisungs-Abrufanforderungen von einer Vielzahl von Thread-Abrufablaufsteuerungen 222 in reale Adressen für den Abruf von Anweisungen aus Speicher niedrigerer Ordnung umzusetzen. Jede Thread-Abrufablaufsteuerung 220 ist einem bestimmten Hardware-Thread fest zugeordnet und soll gewährleisten, dass durch den zugehörigen Thread auszuführende Anweisungen in den iCACHE abgerufen werden, um zur entsprechenden Ausführungseinheit weiterbefördert zu werden. Wie ebenfalls in 5 dargestellt, können Anweisungen, die in den Anweisungspuffer 216 abgerufen wurden, auch durch eine Verzweigungsvorhersagelogik 224 überwacht werden, die jeder Thread-Abrufablaufsteuerung 222 Hinweise bereitstellt, um fehlgeschlagene Cache-Zugriffe zu minimieren, die aus Verzweigungen in Ausführungs-Threads entstehen. Die IU 208 weist auch einen Abhängigkeits-/Ausgabelogikblock 228 auf, der jedem Hardware-Thread fest zugeordnet und so gestaltet ist, dass Abhängigkeiten aufgelöst und die Ausgabe von Anweisungen aus dem Anweisungspuffer 216 an die XU 210 gesteuert werden.
  • Die XU 210 ist als Festkomma-Ausführungseinheit mit einem Satz von Mehrzweckregistern (General Purpose Registers, GPRs) 230 realisiert, die mit einer Festkommalogik 232, einer Verzweigungslogik 234 und einer Lade-/Speicherungslogik 236 verbunden sind. Die Lade-/Speicherungslogik 236 ist mit einem L1-Daten-Cache (dCACHE) 238 mit der Effective-to-Real-Umsetzung verbunden, die durch eine dERAT-Logik 240 bereitgestellt wird. Die XU 164 kann so gestaltet sein, dass sie praktisch einen beliebigen Anweisungssatz realisiert, z. B. den gesamten 32-Bit- oder 64-Bit-Anweisungssatz des PowerPC oder einen Teil davon.
  • Um über die externe AXU-Schnittstelle 206 den Zugang zu einer AXU bereitzustellen, ist eine Steuereinheit 242 der externen AXU-Schnittstelle im IP-Block 200 angeordnet, und eine komplementäre Steuereinheit 244 der externen AXU-Schnittstelle ist im externen Chip 204 angeordnet und mit einer externen AXU 246 verbunden. Die externe AXU 246 fungiert als Hilfsausführungseinheit, die eine oder mehrere Ausführungsblöcke 248 aufweist. Die AXU 246 kann eine beliebige Anzahl von Ausführungsblöcken aufweisen, und sie kann praktisch jeden beliebigen Typ von Ausführungseinheit realisieren, z. B. eine Fließkommaeinheit, eine oder mehrere spezialisierte Ausführungseinheiten, Verschlüsselungs-/Entschlüsselungseinheiten, Coprozessoren, Vektorverarbeitungseinheiten, Grafikverarbeitungseinheiten, XML-Verarbeitungseinheiten usw.
  • Wie beim IP-Block 104 aus 4 kann wahlweise eine getrennte Abhängigkeits-/Ausgabelogik 250 für die externe AXU 246 bereitgestellt sein, gleichgültig, ob innerhalb der externen AXU 246 (wie dargestellt) oder innerhalb der Ausgabeeinheit 208. Alternativ kann die Abhängigkeits-/Ausgabelogik 228 wie in 5 veranschaulicht die Ausgabe von Anweisungen an die externe AXU 246 abwickeln. Eine AXU-spezifische Abhängigkeits-/Ausgabelogik 250 kann zum Beispiel verwendet werden, um zweckgebundenen Mikrocode oder zweckgebundene Ablaufsteuerungslogik in einer AXU zu unterstützen.
  • Bei der veranschaulichten Ausführungsform ist eine externe AXU-Schnittstelle 206 als schnelle Hilfsschnittstelle zur IU 208 und XU 210 realisiert, um z. B. sowohl die Ausgabe von Anweisungen an die externe AXU 246 durch die IU 208 als auch direkte Verschiebungen zwischen dem angelegten AXU-Zustand und dem angelegten XU-Zustand zu unterstützen. Außerdem kann die externe AXU 246, wie nachstehend deutlicher wird, viel von der dem IP-Block 200 angeordneten Funktionalität nutzen, obwohl diese auf einer getrennten integrierten Schaltungseinheit bzw. einen getrennten Chip angeordnet ist.
  • 6 veranschaulicht ein weiteres Datenverarbeitungssystem 260, das einen Prozessorchip 262 mit einer Ausgabeeinheit 264, Festkomma-Ausführungseinheit 266, Speicherverwaltungseinheit 268, einer oder mehreren Ebenen von Cache-Zwischenspeicher 270 und einer Netzwerkschnittstelle 272 aufweist und mit einem externen Speicher 274 und einer oder mehreren E/A-Einheiten 276 verbunden ist, die über einen peripheren Bus angeschlossen sind. Der Prozessorchip 262 weist außerdem eine Steuereinheit 278 der externen AXU-Schnittstelle auf, die mit einer externen AXU-Schnittstelle 280 gemäß der Erfindung verbunden ist, die die Verbindung zwischen dem Prozessorchip und der AXU ermöglicht, die unter Verwendung einer Reihe unterschiedlicher Technologien realisiert ist, z. B. mithilfe eines FPGA 282 (mit einer AXU 284 und einer externen AXU-Schnittstelle 286), eines ASIC 288 (mit einer AXU 290 und einer externen AXU-Schnittstelle 292) oder eines Stapels übereinander angeordneten Chips (stacked die) 294 (mit einer AXU 296 und einer externen AXU-Schnittstelle 298). Es wird klar sein, dass eine externe AXU-Schnittstelle gemäß der Erfindung verwendet werden kann, um die Verbindung mit AXUs herzustellen, die in anderen Hardwaretechnologien realisiert sind und die Erfindung somit nicht auf die hierin offenbarten jeweiligen Hardwaretechnologien beschränkt ist.
  • Eine externe AXU-Schnittstelle kann gemäß der Erfindung in einer Reihe anderer Arten realisiert sein. Zum Beispiel kann eine externe AXU, wie in 7 veranschaulicht, eine außerhalb des Kerns angeordnete AXU-Schnittstellenlogik 300 und eine außerhalb der AXU angeordnete AXU-Schnittstellenlogik 302 aufweisen, die über eine physische Schnittstelle 304 miteinander verbunden sind. Die Kernlogik 300 weist Steuerlogik auf, z. B. eine Steuereinheit 306, die aus der Perspektive des Kerns die Datenübertragung über die Schnittstelle koordiniert. Wie oben erwähnt unterstützt eine AXU-Schnittstelle gemäß der Erfindung wünschenswerterweise die unendliche oder unbestimmte Latenz und kann daher die Verwendung eines Watchdog-Zeitgebers 308 oder ähnlicher Logik erfordern, um zu verhindern, dass der Kern blockiert ist, während er auf eine Antwort von einer außerhalb des Chips angeordneten AXU wartet. Außerdem weist die Kernlogik normalerweise eine Sende-/Empfangslogik 310 auf, um die Datenübertragung der physischen Schicht über die Schnittstelle abzuwickeln.
  • Wie oben außerdem erwähnt, kann eine externe AXU-Schnittstelle erforderlich sein, um Datenübertragung zum und vom Verarbeitungskern umzusetzen und daher Logik aufweisen, die diese Umsetzung ermöglicht. Zum Beispiel kann bei Ausführungsformen, bei denen die externe AXU-Schnittstelle Daten mit einer niedrigeren Frequenz als der Arbeitsfrequenz des Kerns überträgt, eine Aufwärts-/Abwärtsumsetzungslogik 312 bereitgestellt sein. Beispielsweise kann Abwärtsumsetzungslogik verwendet werden, um eine Datenübertragungsfrequenz der externen AXU-Schnittstelle im Verhältnis zu der des Verarbeitungskerns zu verringern.
  • Zur Unterstützung von Schnittstellen mit Paketierung kann eine Paketierer-/Entpaketiererlogik 314 bereitgestellt sein. Weitere Logik, bei der es sich jeweils um Serialisierer- bzw. Deserialisiererlogik handelt, kann zur Umsetzung zwischen seriellen und parallelen Protokollen verwendet werden. Des Weiteren kann die Schnittstelle bei einigen Ausführungsformen eine variable Breite unterstützen und konfigurierbar sein, um nur einen Teil der angelegten Datenübertragungsverbindungen für eine Schnittstelle zu nutzen. Zum Beispiel kann eine externe AXU-Schnittstelle bei einer beispielhaften Ausführungsform einen bis zu 32 Byte breiten Datenpfad unterstützen, wobei ausgewählte Realisierungsformen so programmierbar oder konfigurierbar sind, dass nur ein Teil des verfügbaren Datenpfades genutzt wird.
  • Ebenso kann die außerhalb der AXU angeordnete AXU-Schnittstellenlogik 304 eine Steuereinheit 316 mit einem Watchdog-Zeitgeber 318, einer Sende-/Empfangslogik 320, einer Aufwärts-/Abwärtsumsetzungslogik 322 und einer Paketierer-/Entpaketiererlogik 324 aufweisen, die zur Logik in der Kernlogik 302 komplementär sind. Bei einigen Ausführungsformen kann die Steuereinheit 316 ein Slave einer Master-Steuereinheit 306 sein, während die Steuereinheit 316 bei anderen Ausführungsformen weggelassen sein kann. Außerdem ist bei einigen Ausführungsformen unter Umständen kein Watchdog-Zeitgeber 318 erforderlich.
  • Wie oben erwähnt besteht eine Hauptkategorie von Daten, die über eine externe AXU-Schnittstelle übertragen werden, aus einem Anweisungsdatenstrom, der Anweisungen zur Ausführung durch eine außerhalb des Chips angeordnete AXU aufweist. Anweisungsblockierung und Abhängigkeiten werden normalerweise durch die Abhängigkeits-/Ausgabelogik 228 (5) verwaltet, und nach der Ausgabe einer Anweisung an eine außerhalb des Chips befindliche AXU durch die Logik 228 kann ein Abfolge von Operationen verwendet werden, wie sie z. B. bei 330 in 8 veranschaulicht ist. Insbesondere kann die Kernlogik für die Schnittstelle als Reaktion auf das Empfangen einer Anweisung die Anweisung in ein für die Schnittstelle geeignetes Format umwandeln (Block 332), z. B. durch Umwandeln in ein Paket, Serialisieren, Abwärtsumsetzen auf eine niedrigere Taktfrequenz usw. Als Nächstes wird die Anweisung über die Schnittstelle übertragen (Block 334), und ein Watchdog-Zeitgeber wird gestartet (Block 336). Die Kernlogik gelangt anschließend in eine Schleife, um auf eine Antwort zu warten, und prüft regelmäßig, ob eine Antwort empfangen wurde (Block 338) und der Watchdog-Zeitgeber abgelaufen ist (Block 340). Falls eine entsprechende Antwort empfangen wurde, übergibt der Block 338 die Steuerung an den Block 356, um den angelegten Zustand des Prozessorkerns zu aktualisieren. Wenn andererseits der Watchdog-Zeitgeber vor dem Empfangen einer Antwort abläuft, übergibt der Block 340 die Steuerung an den Block 358, um eine beliebige erforderliche Fehlerbehandlung durchzuführen, z. B. durch Zurücksetzen der außerhalb des Chips angeordneten AXU.
  • Unter Bezugnahme auf die AXU-Seite der Schnittstelle wird die Anweisung, die durch die Kernlogik in Block 334 gesendet wurde, durch die AXU-Logik empfangen (Block 342) und in ein für die AXU geeignetes Format umgewandelt (Block 344). Die Anweisung wird anschließend zwecks Verarbeitung an die AXU weitergeleitet (Block 346). Daraufhin werden durch die Logik der AXU-Schnittstelle Abschlussdaten von der AXU empfangen (Block 348), z. B. Änderungen am angelegten Zustand, z. B. Aktualisierungen eines oder mehrerer Register, sowie eine geeignete, an den Kern zurückzugebende Antwort (Block 350), z. B. Erfolg, Fehlschlag, ein Fehlerzustand, Fehlerbehebungs- oder Statusdaten usw. Die Antwort wird anschließend in ein für die Schnittstelle geeignetes Format umgewandelt (Block 352) und zurück an die Kernlogik gesendet (Block 354).
  • Es wird klar sein, dass über eine externe AXU-Schnittstelle andere Daten übertragen werden können. Zum Beispiel können über eine externe AXU-Schnittstelle gemäß der Erfindung auch Registeraktualisierungen, Register/Speicher-Übertragungen (Ladevorgänge/Speicherungsvorgänge), Zustandsaktualisierungen, Fehlerbehebungsdaten, Leistungsstatistiken, Anweisungen, Verzweigungsumleitungen, Speicherverwaltungsinformationen usw. übertragen werden. Es wird außerdem klar sein, dass die Realisierung einer derartigen Schnittstelle ohne Weiteres in den Rahmen der Fähigkeiten eines Fachmanns fällt, der von der vorliegenden Offenbarung profitiert. Beispielsweise kann eine externe AXU-Schnittstelle gemäß der Erfindung unter Verwendung eines ähnlichen Protokolls wie des Protokolls realisiert werden, das durch die auf dem Chip angeordneten AXU-Schnittstellen unterstützt wird, die in den bei International Business Machines erhältlichen A2-Prozessoren des PowerPC unterstützt werden.
  • Eine externe AXU-Schnittstelle gemäß der Erfindung bietet eine Reihe von Vorteilen, insbesondere bei der Entwicklung von anwendungsspezifischen Hardwareschaltungen. Durch Bereitstellen einer externen AXU-Schnittstelle auf einem programmierbaren Chip, der einen Verarbeitungskern aufweist, kann der Verarbeitungskern bei einer typischen Taktfrequenz für Mikroprozessoren entwickelt, geprüft, getestet und betrieben werden. Der Verarbeitungskern kann für allgemeine Datenverarbeitungszwecke konfiguriert sein und Standard-Funktionseinheiten bereitstellen, die für eine große Vielfalt von Anwendungen geeignet sind. Eine außerhalb des Chips angeordnete AXU, die spezialisierte Funktionalitäten bereitstellt, kann über die externe AXU-Schnittstelle in den Verarbeitungskern integriert sein, wodurch der Verarbeitungskern an eine bestimmte Anwendung angepasst werden kann.
  • Ein Vorteil einer derartigen Konfiguration besteht darin, dass unterschiedliche beteiligte Parteien ihr jeweiliges geistiges Eigentum kombinieren können, ohne dieses geistige Eigentum gegenseitig offenbaren zu müssen. Eine beteiligte Partei, die ihre selbstentwickelte Beschleunigerfunktionalität integrieren möchte, könnte hinsichtlich der übrigen erforderlichen Funktionalität auf den Verarbeitungskern einer anderen beteiligten Partei zurückgreifen und dadurch den eigenen Aufwand zur kundenspezifischen Entwicklung, bei Tests und Prüfung mit der AXU begrenzen und dadurch oftmals im erheblichen Maße Kosten und Aufwand einsparen, die mit der Entwicklung anwendungsspezifischer Hardwareschaltungen verbunden sind. Wenn außerdem eine beteiligte Partei den Zugang zu ihrem vertraulichen geistigen Eigentum begrenzen möchte, z. B. wegen seines urheberrechtlich geschützten Charakters oder wegen staatlich vorgeschriebener Vertraulichkeit oder des staatlich vorgeschriebenen Verschlusscharakters von Schaltungsentwürfen, kann diese beteiligte Partei dies tun, ohne diese vertraulichen Informationen gegenüber der anderen beteiligten Partei offenlegen zu müssen.
  • Des Weiteren muss durch Bereitstellen einer externen AXU-Schnittstelle mit einer unendlichen Latenz und/oder Abwärtsumsetzungslogik eine außerhalb des Chips angeordnete AXU nicht mit derselben Geschwindigkeit wie der Verarbeitungskern betrieben werden und kann zum Beispiel unter Verwendung einer langsameren Technologie wie zum Beispiel bei einem FPGA realisiert werden, wodurch es beispielsweise möglich ist, eine AXU mit einer weniger kostspieligen Technologie zu entwickeln und zu testen und anschließend in einer schnellen Technologie wie zum Beispiel in einem ASIC zu realisieren, sobald die Schaltung mit dem FPGA geprüft wurde. Außerdem kann der Entwurf einer außerhalb des Chips angeordneten AXU ein Zwischenschritt beim Entwurf eines anwendungsspezifischen Verarbeitungskerns sein, wodurch der AXU-Entwurf geprüft und verfeinert werden kann, bevor er endgültig in den Entwurf eines anwendungsspezifischen Verarbeitungskerns integriert wird.
  • Darüber hinaus beseitigt eine wie hierin realisierte externe AXU die Notwendigkeit, die AXU über einen Speicher oder gemeinsam genutzten Bus mit dem Verarbeitungskern zu verbinden, wodurch anderenfalls Bus- oder Ressourcenzugriffskonflikte auftreten könnten. Ferner kann eine externe AXU-Schnittstelle gemäß der Erfindung bei Realisierungsformen mit übereinander angeordneten Chips verwendet werden, um eine Verbindung zu einer AXU herzustellen, die sich auf einem der übereinander angeordneten Chips befindet, während sich ein Prozessorkern auf einem anderen der übereinander angeordneten Chips befindet. Auf diese Weise kann ein übereinander angeordneter Chip mehreren Prozessorkernen zugeordnet werden, während ein anderer übereinander angeordneter Chip mehreren AXUs zugeordnet werden kann, wodurch die AXUs nicht unter Verwendung derselben Entwurfsregeln oder -technologie gefertigt werden müssen und dieselbe Prozessorkernschicht im Zusammenhang mit unterschiedlichen AXU-Schichten für unterschiedliche Anwendungen verwendet werden kann.
  • An den offenbarten Ausführungsformen können verschiedene Abänderungen vorgenommen werden, ohne vom Schutzbereich der Erfindung abzuweichen. Daher ist die Erfindung in den nachfolgend beigefügten Ansprüchen definiert.

Claims (16)

  1. Schaltungsanordnung, aufweisend: einen integrierten Schaltkreis-Chip; einen auf dem Chip angeordneten Verarbeitungskern mit einer Ausgabeeinheit und einer Festkomma-Ausführungseinheit, wobei die Ausgabeeinheit so gestaltet ist, dass Anweisungen an die Festkomma-Ausführungseinheit ausgegeben werden, um durch diese ausgeführt zu werden; und Logik einer externen Hilfsausführungseinheiten-Schnittstelle (AXU-Schnittstellenlogik), die auf dem integrierten Schaltkreis-Chip angeordnet und mit der Ausgabeeinheit verbunden ist, wobei die Logik der externen AXU-Schnittstelle so gestaltet ist, dass durch die Ausgabeeinheit ausgegebene Anweisungen empfangen und die Anweisungen über eine externe AXU-Schnittstelle an eine außerhalb des Chips angeordnete AXU übertragen werden, um durch diese ausgeführt zu werden.
  2. Schaltungsanordnung nach Anspruch 1, wobei der integrierte Schaltkreis-Chip ein erster Chip ist und die Schaltungsanordnung ferner einen zweiten Chip aufweist, auf dem die außerhalb des Chips angeordnete AXU angeordnet ist.
  3. Schaltungsanordnung nach Anspruch 2, wobei der zweite Chip ausgewählt ist aus der Gruppe, bestehend aus einem Field Programmable Gate Array (FPGA), einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC) und einem Stapel übereinander angeordneten Chip (stacked die).
  4. Schaltungsanordnung nach Anspruch 1, wobei die Logik der externen AXU-Schnittstelle Abwärtsumsetzungslogik aufweist, die so gestaltet ist, dass eine Datenübertragungsfrequenz einer externen AXU im Verhältnis zu der des Verarbeitungskerns verringert wird.
  5. Schaltungsanordnung nach Anspruch 1, wobei die Logik der externe AXU-Schnittstelle eine Paketiererlogik aufweist, die so gestaltet ist, dass Anweisungen übertragen werden, die mithilfe von Paketen von der Ausgabeeinheit empfangen wurden.
  6. Schaltungsanordnung nach Anspruch 1, wobei die externe AXU-Schnittstelle eine unbestimmte Latenz aufweist, und wobei die Logik der externen AXU-Schnittstelle so gestaltet ist, dass sie als Reaktion auf das Übertragen einer Anweisung an die außerhalb des Chips angeordnete AXU auf eine Antwort von der außerhalb des Chips angeordneten AXU wartet und als Reaktion auf das Nichtempfangen der Antwort einen Fehler signalisiert.
  7. Schaltungsanordnung, aufweisend: einen integrierten Schaltkreis-Chip; eine auf dem integrierten Schaltkreis-Chip angeordnete Hilfsausführungseinheit (AXU); und Logik der externen AXU-Schnittstelle, die auf dem integrierten Schaltkreis-Chip angeordnet und so gestaltet ist, dass die AXU mit einer Schaltungsanordnung nach Anspruch 1 verbunden ist, wobei die Logik der externen AXU-Schnittstelle so gestaltet ist, dass durch die Ausgabeeinheit über eine externe AXU-Schnittstelle ausgegebene Anweisungen empfangen und die Anweisungen an die außerhalb des Chips angeordnete AXU übertragen werden, um durch diese ausgeführt zu werden.
  8. Schaltungsanordnung nach Anspruch 7, wobei der integrierte Schaltkreis-Chip ausgewählt ist aus der Gruppe, bestehend aus: einem Field Programmable Gate Array (FPGA); einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC); und einem Stapel übereinander angeordneten Chip (stacked die).
  9. Schaltungsanordnung nach Anspruch 1 oder Anspruch 7, wobei die Logik der externen AXU-Schnittstelle so gestaltet ist, dass ein angelegter Zustand des Verarbeitungskerns als Reaktion auf die Ausführung einer Anweisung durch die außerhalb des Chips angeordnete AXU aktualisiert wird.
  10. Verfahren zum Ausführen von Anweisungen in einem Datenverarbeitungssystem, wobei das Verfahren aufweist: in einem Verarbeitungskern, der auf einem integrierten Schaltkreis-Chip angeordnet ist, Ausgeben erster Anweisungen an eine Festkomma-Ausführungseinheit, die in dem Verarbeitungskern angeordnet ist, unter Verwendung einer Ausgabeeinheit, die im Verarbeitungskern angeordnet ist, und Ausführen der ersten Anweisungen mit der Festkomma-Ausführungseinheit; und Ausgeben zweiter Anweisungen an eine außerhalb des Chips angeordnete Hilfsausführungseinheit (AXU) mit der Ausgabeeinheit, einschließlich des Übertragens der zweiten Anweisungen zu der außerhalb des Chips angeordneten AXU über eine externe AXU-Schnittstelle unter Verwendung von Logik der externen AXU-Schnittstelle, die auf dem integrierten Schaltkreis-Chip angeordnet ist.
  11. Verfahren nach Anspruch 10, wobei der integrierte Schaltkreis-Chip ein erster Chip ist, und wobei die außerhalb des Chips angeordnete AXU auf einem zweiten Chip angeordnet ist.
  12. Verfahren nach Anspruch 11, wobei der zweite Chip ausgewählt ist aus der Gruppe, bestehend aus einem Field Programmable Gate Array (FPGA), einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC) und einem Stapel übereinander angeordneten Chip (stacked die).
  13. Verfahren nach Anspruch 10, ferner aufweisend mithilfe von Abwärtsumsetzungslogik, die in der Logik der externen AXU-Schnittstelle angeordnet ist, Verringern einer Datenübertragungsfrequenz der externen AXU im Verhältnis zu der des Verarbeitungskerns.
  14. Verfahren nach Anspruch 10, ferner aufweisend mithilfe von einer Paketiererlogik, die in der Logik der externen AXU-Schnittstelle angeordnet ist, Übertragen zweiter Anweisungen, die mithilfe von Paketen von der Ausgabeeinheit empfangen wurden.
  15. Verfahren nach Anspruch 10, wobei die externe AXU-Schnittstelle eine unbestimmte Latenz aufweist, und wobei das Verfahren ferner als Reaktion auf das Übertragen einer Anweisung an die außerhalb des Chips angeordnete AXU und auf das Signalisieren eines Fehlers als Reaktion auf das Nichtempfangen der Antwort das Warten auf eine Antwort von der außerhalb des Chips angeordneten AXU aufweist.
  16. Verfahren nach Anspruch 10, ferner aufweisend das Aktualisieren eines angelegten Zustands des Verarbeitungskerns als Reaktion darauf, dass Daten von der außerhalb des Chips angeordneten AXU über die externe AXU-Schnittstelle empfangen wurden.
DE112012005700.7T 2012-01-18 2012-12-19 Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit Pending DE112012005700T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/352,907 2012-01-18
US13/352,907 US9075623B2 (en) 2012-01-18 2012-01-18 External auxiliary execution unit interface for format conversion of instruction from issue unit to off-chip auxiliary execution unit
PCT/IB2012/057453 WO2013108100A1 (en) 2012-01-18 2012-12-19 External auxiliary execution unit interface to off-chip auxiliary execution unit

Publications (1)

Publication Number Publication Date
DE112012005700T5 true DE112012005700T5 (de) 2014-10-09

Family

ID=48780834

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012005700.7T Pending DE112012005700T5 (de) 2012-01-18 2012-12-19 Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit

Country Status (5)

Country Link
US (1) US9075623B2 (de)
CN (1) CN104094222B (de)
DE (1) DE112012005700T5 (de)
GB (1) GB2511675B (de)
WO (1) WO2013108100A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742630B2 (en) * 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US10394635B2 (en) 2014-10-29 2019-08-27 Hewlett Packard Enterprise Development Lp CPU with external fault response handling
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10229470B2 (en) * 2016-08-05 2019-03-12 Intel IP Corporation Mechanism to accelerate graphics workloads in a multi-core computing architecture
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11263014B2 (en) * 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry
CN112953977B (zh) * 2021-05-13 2021-11-02 华锐分布式(北京)技术有限公司 系统数据发送方法、系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3500633B2 (ja) 1992-02-07 2004-02-23 セイコーエプソン株式会社 マイクロエレクトロニクス・デバイスのエミュレーション方法及びエミュレーション装置並びにシミュレーション装置
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5617537A (en) 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5623684A (en) 1994-05-17 1997-04-22 Commquest Technologies, Inc. Application specific processor architecture comprising pre-designed reconfigurable application elements interconnected via a bus with high-level statements controlling configuration and data routing
US7512724B1 (en) * 1999-11-19 2009-03-31 The United States Of America As Represented By The Secretary Of The Navy Multi-thread peripheral processing using dedicated peripheral bus
US6754804B1 (en) * 2000-12-29 2004-06-22 Mips Technologies, Inc. Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions
JP2003196333A (ja) 2001-12-28 2003-07-11 Nec Electronics Corp システムlsiの設計方法及びこれを記憶した記録媒体
US7395410B2 (en) 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
US7469350B2 (en) * 2005-12-22 2008-12-23 Ncr Corporation Power control interface for a self-service apparatus
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit

Also Published As

Publication number Publication date
GB2511675A (en) 2014-09-10
WO2013108100A1 (en) 2013-07-25
GB201409962D0 (en) 2014-07-16
US9075623B2 (en) 2015-07-07
CN104094222B (zh) 2016-10-12
US20130185542A1 (en) 2013-07-18
CN104094222A (zh) 2014-10-08
GB2511675B (en) 2019-03-20

Similar Documents

Publication Publication Date Title
DE112012005700T5 (de) Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit
DE102018005181B4 (de) Prozessor für einen konfigurierbaren, räumlichen beschleuniger mit leistungs-, richtigkeits- und energiereduktionsmerkmalen
DE112013000381B4 (de) Datenverschlüsselung auf der Grundlage einer Speicheradressumsetzung
DE112013000654T5 (de) Verzweigungsvorhersagelogik
DE102018130441A1 (de) Einrichtung, Verfahren und Systeme mit konfigurierbarem räumlichem Beschleuniger
US8438578B2 (en) Network on chip with an I/O accelerator
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
DE112012005058T5 (de) Variablenübertragungsnetzwerk mit geringer Latenzzeit für feingranulierte Parallelität virtueller Threads zwischen mehreren Hardware-Threads
DE102018005172A1 (de) Prozessoren, verfahren und systeme mit einem konfigurierbaren räumlichen beschleuniger
DE102018005216A1 (de) Prozessoren, Verfahren und Systeme für einen konfigurierbaren, räumlichen Beschleuniger mit Transaktions- und Wiederholungsmerkmalen
DE102013200503A1 (de) Virtualisierungs-Support zum Speichern und Wiederherstellen von Zuständen einer Sprungvorhersage-Logik
DE102013200161A1 (de) Datenverschlüsselung/-Komprimierung auf der Grundlage einer Speicheradressübersetzung
DE112013005086T5 (de) Kohärenzprotokoll für Hochleistungszwischenverbindung
DE112016005910T5 (de) Architechtur für Software-Definierten Interconnect-Switch
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
DE112011101469T5 (de) Kompilieren von Software für ein hierarchisches verteiltes Verarbeitungssystem
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
US20100014525A1 (en) Methods, systems, and computer program products for an n-port network adaptor interchangeable between a network switch/router and a network adaptor
DE102019109119A1 (de) Host-verwalteter kohärenter gerätespeicher
DE112013005368T5 (de) Prozessoren, verfahren und systeme für echtzeit-befehlsverfolgung
DE102018127751A1 (de) Einheitlicher Adressraum für mehrere Verbindungen
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112007003206T5 (de) Neukonfigurieren eines sicheren Systems
WO2016102055A2 (de) Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren

Legal Events

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

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication