DE10212622A1 - Prozessorkopplung - Google Patents

Prozessorkopplung

Info

Publication number
DE10212622A1
DE10212622A1 DE10212622A DE10212622A DE10212622A1 DE 10212622 A1 DE10212622 A1 DE 10212622A1 DE 10212622 A DE10212622 A DE 10212622A DE 10212622 A DE10212622 A DE 10212622A DE 10212622 A1 DE10212622 A1 DE 10212622A1
Authority
DE
Germany
Prior art keywords
reconfigurable
processor
standard
vpu
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10212622A
Other languages
English (en)
Inventor
Martin Vorbach
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.)
PACT XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
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 PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Priority to DE10212622A priority Critical patent/DE10212622A1/de
Priority to PCT/EP2002/006865 priority patent/WO2002103532A2/de
Priority to AT02780770T priority patent/ATE478381T1/de
Priority to AU2002347560A priority patent/AU2002347560A1/en
Priority to EP10005502A priority patent/EP2224330B1/de
Priority to AT10005502T priority patent/ATE557344T1/de
Priority to EP02780770A priority patent/EP1402382B1/de
Priority to US10/480,003 priority patent/US7657877B2/en
Priority to JP2003505782A priority patent/JP2004533691A/ja
Priority to EP02777144A priority patent/EP1466264B1/de
Priority to PCT/EP2002/010479 priority patent/WO2003025781A2/de
Priority to US10/490,079 priority patent/US7434191B2/en
Priority to AU2002338729A priority patent/AU2002338729A1/en
Priority to EP02791644A priority patent/EP1472616B8/de
Priority to PCT/EP2002/010572 priority patent/WO2003036507A2/de
Priority to JP2003538928A priority patent/JP4456864B2/ja
Priority to US10/490,081 priority patent/US8429385B2/en
Priority to AU2002357982A priority patent/AU2002357982A1/en
Priority to AT02791644T priority patent/ATE533111T1/de
Priority to US10/508,559 priority patent/US20060075211A1/en
Priority to AU2003223892A priority patent/AU2003223892A1/en
Priority to PCT/DE2003/000942 priority patent/WO2003081454A2/de
Priority to EP03720231A priority patent/EP1518186A2/de
Publication of DE10212622A1 publication Critical patent/DE10212622A1/de
Priority to US12/247,076 priority patent/US8209653B2/en
Priority to US12/571,173 priority patent/US8686549B2/en
Priority to JP2009271120A priority patent/JP2010079923A/ja
Priority to US12/640,201 priority patent/US20100095094A1/en
Priority to US12/729,090 priority patent/US20100174868A1/en
Priority to US12/729,932 priority patent/US20110161977A1/en
Priority to US13/023,796 priority patent/US8686475B2/en
Priority to US14/162,704 priority patent/US20140143509A1/en
Priority to US14/223,793 priority patent/US10031733B2/en
Priority to US14/263,185 priority patent/US8890215B2/en
Priority to US14/540,782 priority patent/US20150074352A1/en
Priority to US14/543,306 priority patent/US9092595B2/en
Priority to US14/810,905 priority patent/US9240220B2/en
Priority to US14/923,702 priority patent/US10579584B2/en
Priority to US15/000,763 priority patent/US10885996B2/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Abstract

Die vorliegende Erfindung befaßt sich mit der Integration und/oder engen Kopplung von rekonfigurierbaren Prozessoren mit Standardprozessoren, dem Datenaustausch und der Synchronisation der Datenverarbeitung.

Description

  • Die vorliegende Erfindung befaßt sich mit der Integration und/oder engen Kopplung von rekonfigurierbaren Prozessoren mit Standardprozessoren, dem Datenaustausch und der Synchronisation der Datenverarbeitung.
  • Aufgabe der Erfindung ist es, Neues für die gewerbliche Nutzung bereitzustellen.
  • Die Lösung der Aufgabe wird unabhängig beansprucht. Bevorzugte Ausführungsformen befinden sich in den Unteransprüchen.
  • Unter einer rekonfigurierbaren Architektur werden vorliegend Bausteine (VPU) mit konfigurierbarer Funktion und/oder Vernetzung verstanden, insbesondere integrierte Bausteine mit einer Mehrzahl von ein- oder mehrdimensional angeordneten arithmetischen und/oder logischen und/oder analogen und/oder speichernden und/oder intern/extern vernetzenden Baugruppen, die direkt oder durch ein Bussystem miteinander verbunden sind.
  • Zur Gattung dieser Bausteine zählen insbesondere systolische Arrays, neuronale Netze, Mehrprozessor Systeme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen und/oder kommunikativen/peripheren Zellen (IO), Vernetzungs- und Netzwerkbausteine wie z. B. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, Chameleon, XPUTER, etc. Hingewiesen wird insbesondere in diesem Zusammenhang auf die folgenden Schutzrechte und Anmeldungen desselben Anmelders: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/01 869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10 516, EP 01 102 674.7, PACT02, PACT04, PACT05, PACT08, PACT10, PACT11, PACT13, PACT21, PACT13, PACT18, PACTI8a, PACT19, PACT25, PACT25a. Diese sind hiermit zu Offenbarungszwecken vollumfänglich eingegliedert.
  • Die o. g. Architektur wird beispielhaft zur Verdeutlichung herangezogen und im folgenden VPU genannt. Die Architektur besteht aus beliebigen arithmetischen, logischen (auch Speicher) und/oder Speicherzellen und/oder Vernetzungszellen und/oder kommunikativen/peripheren (IO) Zellen (PAEs), die zu einer ein- oder mehrdimensionalen Matrix (PA) angeordnet sein können, wobei die Matrix unterschiedliche beliebig ausgestaltete Zellen aufweisen kann, auch die Bussysteme werden dabei als Zellen verstanden. Der Matrix als ganzes oder Teilen davon zugeordnet ist eine Konfigurationseinheit (CT), die die Vernetzung und Funktion des PA durch Konfigurations bestimmt.
  • Verschieden Methoden zum Ankoppeln von rekonfigurierbaren Prozessoren an Standardprozessoren sind bekannt. Diese sehen für gewöhnlich eine lose Kopplung vor.
  • Beschreibung der Erfindung
  • Ein Standardprozessor z. B. ein RISC, CISC, DSP (CPU) wird mit einem rekonfigurierbaren Prozessor (VPU) gekoppelt.
  • Zwei unterschiedliche bevorzugt jedoch zugleich implementierte Kopplungsvarianten werden beschrieben.
  • Eine erste Variante sieht eine direkte Ankoppelung an den Befehlssatz einer CPU vor (Befehlssatzkopplung).
  • Eine zweite Variante sieht eine Ankoppelung über Tabellen im Hauptspeicher vor.
  • Befehlssatzkoppelung
  • Innerhalb eines Instruktionssets (ISA) einer CPU sind für gewöhnlich freie unbenutzte Befehle vorhanden. Einer oder eine Mehrzahl dieser freien unbenutzen Befehle wird nunmehr für die Steuerung von VPUs verwendet (VPUCODE).
  • Durch die Dekodierung eines VPUCODEs wird eine Konfigurationseinheit (CT) einer VPU angesteuert die in Abhängigkeit des VPUCODEs bestimmte Abläufe ausführt.
  • Beispielsweise kann ein VPUCODE das Laden und/oder Ausführen von Konfigurationen durch die Konfigurationseinheit (CT) für eine VPU auslösen.
  • Kommandoübergabe an VPU
  • In einer erweiterten Ausführung kann ein VPUCODE über eine Übersetzungstabelle, die bevorzugt von der CPU aus aufgebaut wird auf unterschiedliche VPU-Kommandos übersetzt werden. Die Konfigurationstabelle kann in Abhängigkeit von dem ausgeführten CPU Programm oder Codeabschnitt gesetzt werden.
  • Die VPU läd nach Eintreffen eines Ladekommandos Konfigurationen aus einem eigenen oder mit der CPU geteilten Speicher. Insbesondere kann eine Konfiguration im Code des aktuell ausgeführten Programmes beinhaltet sein.
  • Nach Erhalt eines Ausführungskommandos führt eine VPU die auszuführende Konfiguration aus und die entsprechende Datenverarbeitung durch. Das Beenden der Datenverarbeitung kann durch ein Terminierungssignal (TERM) an die CPU angezeigt werden.
  • VPUCODE-Verarbeitung auf CPU
  • Das Auftreten eines VPUCODEs können solange Wartezyklen auf der CPU ausgeführt werden, bis das Terminierungssignal (TERM) der Beendingung der Datenverarbeitung von der VPU eintrifft.
  • In einer bevorzugten Ausgestaltung wird mit der Verarbeitung der nächsten Codes fortgefahren. Tritt ein weiterer VPUCODE auf, kann sodann auf die Beendigung des vorhergehenden gewartet werden, oder sämtliche gestartete VPUCODEs werden in einer Verarbeitungspipeline eingereiht, oder ein Taskwechsel wird wie nachfolgend beschrieben ausgeführt.
  • Die Beendigung einer Datenverarbeitung wird durch das eintreffen des Terminierungssignal (TERM) in einem Statusregister signalisiert. Die Terminierungssignale treffen in der Reihenfolge einer möglichen Verarbeitungspipeline ein. Die Datenverarbeitung auf der CPU kann durch das Testen des Statusregisters auf das Eintreffen eines Terminierungssignales synchronisiert werden.
  • In einer möglichen Ausgestaltung kann, sofern eine Applikation vor dem Eintreffen von TERM z. B. durch Datenabhängigkeiten nicht fortgesetzt werden kann, ein Taskwechsel ausgelöst werden.
  • Coprozessor-Kopplung (lose gekoppelt)
  • Nach PACT18 werden bevorzugt lose Kopplungen zwischen Prozessoren und VPUs aufgebaut, bei welchen VPUs weitestgehend als unabhängige Coprozessoren arbeiten.
  • Eine derartige Kopplung sieht eine oder mehrere gemeinsame Datenquellen und -senken, zumeist über gemeinsame Bussysteme und/oder gemeinsame Speicher vor. Über DMAs und/oder andere Speicherzugriffskontroller werden Daten zwischen einer CPU und einer VPU ausgetauscht. Die Synchronisation der Datenverarbeitung erfolgt bevorzugt über eine Interruptsteuerung oder einen Statusabfragemechanismus (z. B. Polling).
  • Rechenwerk-Kopplung (eng gekoppel)
  • Eine enge Ankopplung entspricht der vorab beschriebenen direkten Ankopplung einer VPU in den Befehlssatz einer CPU.
  • Bei einer direkten Rechenwerk-Ankopplung ist besonders auf eine hohe Rekonfigurationsperformance zu achten. Bevorzugt kann daher die Wave-Rekonfiguration nach PACT10, PACT13, PACT17 zum Einsatz kommen. Desweiteren werden die Konfigurationsworte bevorzugt nach PACT04, PACT13, PACT17, PACT31 vorab derart vorgeladen, dass bei Ausführung des Befehls die Konfiguration besonders schnell (mittels Wave-Reconfiguration im Optimalfall innerhalb eines Taktes) konfiguriert werden kann.
  • Für die Wave-Reconfiguration werden bevorzugt die voraussichtlich auszuführenden Konfigurationen vorab durch den Compiler zur Compilezeit erkannt und zur Laufzeit entsprechend vorgeladen. Mögliche Verfahren sind beispielsweise aus aus PACT04, PACT08, PACT10, PACT13, PACT17, PACT31 bekannt. Zum Zeitpunkt der Befehlsausführung wird die entsprechende Konfiguration selektiert und ausgeführt. Auch derartige Verfahren sind nach den o. g. Schriften bekannt.
  • Datentransfers
  • Eine bevorzugte Implementierung kann unterschiedliche Datentransfers zwischen einer CPU und VPU vorsehen. Drei besonders bevorzugte einzeln oder kombiniert einsetzbare Methoden werden nachfolgend beschrieben.
  • Register
  • Bei einer Registerkopplung kann die VPU Daten aus einem CPU- Register entnehmen, verarbeiten und in ein CPU-Register zurückschreiben.
  • Bevorzugt werden Synchronisationsmechanismen zwischen der CPU und der VPU eingesetzt.
  • Beispielsweise kann die VPU durch das Einschreiben der Daten in ein CPU-Register durch die CPU ein RDY-Signal (PACT02, PACT18) erhalten und daraufhin die eingeschriebenen Daten verarbeiten. Das Auslesen von Daten aus einem CPU-Register durch die CPU kann ein ACK-Signal (PACT02, PACT18) generieren, wodurch die Datenabnahme durch die CPU der VPU signalisiert wird.
  • CPUs stellen typischerweise keine entsprechenden Mechanismen zur Verfügung.
  • Zwei mögliche Lösungen werden nähers beschrieben:
    Ein einfach zu realsierenden Ansatz ist, die Datensynchronisation über ein Statusregister durchzuführen. Beispielsweise kann die VPU das erfolgte Auslesen von Daten aus einem Register und das damit verbundene ACK-Signal (PACT02, PACT18) und/oder das Einschreiben von Daten in ein Register und das damit verbundene RDY-Signal (PACT02, PACT18) in dem Statusregister anzeigen. Die CPU testet zunächst das Statusregister und führt beispielsweise so lange Warteschleifen oder Taskwechsel aus, bis - je nach Operation - das RDY oder ACK eintraf. Danach führt die CPU den jeweiligen Registerdatentransfer aus.
  • In einer erweiterten Ausgestaltung wird der Befehlssatz der CPU um load/store-Instruktionen mit integrierter Statusabfrage (load_rdy, store_ack) erweitert. Beispielsweise wird bei einem store ack nur dann ein neues Datenwort in ein CPU- Register geschrieben, wenn das Register vorher von der VPU ausgelesen wurde und ein ACK eintraf. Entsprechend liest load_rdy nur Daten aus einem CPU-Register, wenn die VPU vorher neue Daten eingeschrieben und ein RDY generiert hat.
  • Daten die zu einer auszuführenden Konfiguration gehören können successive, quasi durch Block-Moves nach dem Stand der Technik in die CPU-Register geschrieben oder aus diesen gelesen werden. Ggf. implementierte Block-Move-Instruktionen können bevorzugt durch die beschriebene integrierte RDY/ACK Statusabfrage erweitert werden.
  • Es ist offensichtlich, dass eine Vielzahl von leichten Modifikationen und unterschiedlichen Ausgestaltungen dieses Grundverfahrens möglich sind.
  • Die bereits erwähnte Wave-Rekonfiguration erlaubt das Starten eines neuen VPU-Befehls und der entsprechenden Konfiguration, sobald die Operanden des vorhergehenden VPU-Befehls aus den CPU-Registern abgenommen wurden. Die Operanden für den neuen Befehl können direkt nach Befehlsstart in die CPU-Register geschrieben werden.
  • Entsprechend des Wave-Rekonfiguration-Verfahrens wird die VPU successive mit Fertigstellung der Datenverarbeitung des vorherigen VPU-Befehls für den neuen VPU-Befehl umkonfiguriert und die neuen Operanden verarbeitet.
  • Buszugriffe
  • Weiterhin können Daten zwischen einer VPU und einer CPU durch geeignete Buszugriffe auf gemeinsame Ressourcen ausgetauscht werden.
  • Cache
  • Sofern Daten ausgetauscht werden sollen, die kurz zuvor von der CPU verarbeitet wurden und daher voraussichtlich noch im Cache der CPU liegen bzw. sofort anschliessend von der CPU verarbeitet werden und daher sinnvollerweise in den Cache der CPU gelegt werden, werden diese bevorzugt von der VPU aus dem Cache der CPU gelesen, bzw. in den Cache der CPU geschrieben. Dies kann durch geeignete Analysen weitestgehend vorab zur Compilezeit der Applikation durch den Compiler festgestellt und der Binärcode entsprechend generiert werden.
  • Bus
  • Sofern Daten ausgetauscht werden sollen, die sich voraussichtlich nicht im Cache der CPU befinden bzw. voraussichtlich nicht nachfolgend im Cache der CPU benötigt werden, werden diese bevorzugt von der VPU direkt vom externen Bus und der damit verbundenen Datenquelle (z. B. Speicher, Peripherie) gelesen, bzw. an den externen Bus und der damit verbundenen Datensenke (z. B. Speicher, Peripherie) geschrieben. Dies kann durch geeignete Analysen weitestgehend vorab zur Compilezeit der Applikation durch den Compiler festgestellt und der Binärcode entsprechend generiert werden.
  • Bei einem Transfer über den Bus am Cache vorbei, wird bevorzugt ein Protokoll zwischen Cache und Bus implementiert, das für einen korrekten Inhalt des Caches sorgt. Beispielsweise kann das bekannte MESI-Protokoll nach dem Stand der Technik hierzu verwendet werden.
  • Betriebssystemmechanismen
  • Die beschriebenen Verfahren sehen zunächst keinen besonderen Mechanismus für die Unterstützung von Betriebssystemen vor. Es ist nämlich bevorzugt sicherzustellen, dass ein auszuführendes Betriebssystem sich entsprechend des Status einer zu unterstützenden VPU verhält. Insbesondere sind Scheduler erforderlich.
  • Bei einer engen Rechenwerkkopplung wird bevorzugt das Statusregister der CPU abgefragt, in welches die angekoppelte VPU ihren Datenverarbeitungsstatus (Terminierungssignal) einträgt. Soll eine weitere Datenverarbeitung an die VPU übertragen werden, und die VPU hat die vorherige Datenverarbeitung noch nicht beendet wird gewartet oder bevorzugt ein Taskwechsel ausgeführt.
  • Für eine Coprozessorkopplung werden bevorzugt über das Betriebssystem, i. b. den Scheduler gesteuerte Mechanismen verwendet:
    Ein einfacher Scheduler kann nach Übertragung einer Funktion auf eine VPU entweder den akutellen Task auf der CPU weiterlaufen lassen, sofern dieser unabhängig und parallel zur Datenverarbeitung auf einer VPU ablaufen kann. Sofern oder sobald der Task auf die Beendigung der Datenverarbeitung auf der VPU warten muss, schaltet der Taskscheduler auf einen anderen Task um.
  • Jeder neu aktivierte Task muss, sofern er die VPU verwendet, vor Verwendung prüfen, ob diese für eine Datenverarbeitung zur Verfügung steht oder aktuell noch Daten verarbeitet; dann muss entweder auf die Beendigung der Datenverarbeitung gewartet oder bevorzugt der Task gewechselt werden.
  • Ein einfaches und dennoch leistungsfähiges Verfahren kann durch sogenannte Descriptor Tables aufgebaut werden, die bespielsweise folgendermassen realisiert werden können:
    Jeder Task generiert zum Aufruf der VPU eine oder mehrere Tabelle(n) (VPUCALL) mit einem geeigneten festgelegten Datenformat in dem ihm zugewiesenen Speicherbereich. Diese Tabelle beeinhaltet sämtliche Steuerinformation für eine VPU, wie z. B. das auszuführende Programm/die auszuführende Konfiguration und/oder Zeiger auf die Speicherstelle(n) oder Datenquellen der Eingangsdaten und/oder die Speicherstelle(n) oder Datensenken der Ergebnisdaten.
  • Im Speicherbereich des Betriebssystems befindet sich eine Tabelle oder verkettete Liste (LINKLIST), die auf sämtliche VPUCALL-Tabellen in der Reihenfolge ihrer Erstellung zeigt.
  • Die Datenverarbeitung auf der VPU läuft nunmehr derart ab, dass ein Task einen VPUCALL erstellt und über das Betriebssystem die VPU aufruft. Das Betriebssystem erstellt einen Eintrag in der LINKLIST. Die VPU arbeitet die LINKLIST ab und führt die jeweils referenzierten VPUCALL aus. Die Beendigung einer der jeweiligen Datenabarbeitung wird jeweils durch einen entsprechenden Eintrag in die LINKLIST und/oder VPUCALL Tabelle angezeigt.
  • Die VPU arbeitet somit weitgehend unabhängig von der CPU. Das Betriebssystem und/oder die jeweiligen Task müssen lediglich die Tabellen (LINKLIST bzw. VPUCALL) überwachen.
  • Besonders performanceeffizient arbeiten die beiden Verfahren, wenn als VPU eine Architektur zum Einsatz kommt, die eine mit der Datenverarbeitung überlagerte Rekonfiguration zulässt, wie z. B. die Wave-Reconfiguration nach PACT10, PACT13, PACT17.
  • Damit ist es möglich eine neue Datenverarbeitung und eine ggf. damit verbundene Rekonfiguration sofort nach lesen der letzten Operanden aus den Datenquellen zu starten. Mit anderen Worten ist für die Synchronisation nicht mehr das Beenden der Datenverarbeitung, sonderen das Lesen der letzten Operanden erforderlich. Dadurch wird die Performance der Datenverarbeitung erheblich gesteigert.
  • Sämtliche erwähnten PACT Patentanmeldungen sind zu Offenbarungszwecken vollumfänglich eingegliedert.
  • Beliebige weitere Ausgestaltungen und Kombinationen der erläuterten Erfindungen sind möglich und einem Fachmann offensichtlich.

Claims (10)

1. Verfahren zur Integration und/oder Kopplung von rekonfigurierbaren an Standard-Prozessoren, dadurch gekennzeichnet, daß im Instruktionssatz des Standardprozessors zumindest ein Ansteuerungsbefehl für zumindest einen rekonfigurierbaren Prozessor vorgesehen wird, um bei Auftreten desselben eine Ansteuerung des rekonfigurierbaren Prozessors vorzunehmen.
2. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß die Ansteuerung über eine Konfigurationseinheit bzw. eine Konfigurationsverwaltungseinheit erfolgt.
3. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß die Ansteuerung erfolgt, um die Konfigurationseinheit zum Laden einer oder mehrerer Konfigurationen erfolgt.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß dem Standardprozessor die Beendigung der Datenverarbeitung durch den rekonfigurierbaren Prozessor angezeigt wird.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Ansteuerung zur Ausführung weiterer Konfigurationen diese unter Durchführung eines Takswechsels auf dem rekonfigurierbaren Prozessor durchgeführt werden, insbesondere über eine Waverekonfiguration des rekonfigurierbaren Prozessors.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zwischen dem rekonfigurierbaren und dem Standard-Prozessor Rdy-/Ack-Signal übertragen werden und der Standard-Prozessor -Befehlssatz so gewählt ist, daß load/Store-Befehle mit Statusabfrage durchgeführt werden können.
7. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß der Standard-Prozessor bis zum Eintreffen eines RDY oder ACK Warteschleifen und/oder Taskwechsel ausführt.
8. Verfahren zur Integration und/oder Kopplung von rekonfigurierbaren an Standard-Prozessoren, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß Daten über gemeinsame Bussysteme und/oder Speicher übertragen werden.
9. Verfahren zur Integration und/oder Kopplung von rekonfigurierbaren an Standard-Prozessoren, insbesondere nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß vor dem Aufruf des rekonfigurierbares Prozessors überprüft wird, ob derselbe zur Verfügung steht und im Ansprechen auf das Überprüfungsergebnis entweder auf die Datenverarbeitungsbeendigung gewartet oder der Task gewechselt wird.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es mit einer rekonfigurierbaren Architektur aus beliebigen arithmetischen, logischen (auch Speicher) und/oder Speicherzellen und/oder Vernetzungszellen insbesondere Bussystemen und/oder kommunikativen/peripheren (IO) Zellen (PAEs) angewendet wird, die zu einer ein- oder mehrdimensionalen Matrix (PA) angeordnet sind oder werden.
DE10212622A 1995-12-29 2002-03-21 Prozessorkopplung Ceased DE10212622A1 (de)

Priority Applications (38)

Application Number Priority Date Filing Date Title
DE10212622A DE10212622A1 (de) 2002-03-21 2002-03-21 Prozessorkopplung
PCT/EP2002/006865 WO2002103532A2 (de) 2001-06-20 2002-06-20 Verfahren zur bearbeitung von daten
AT02780770T ATE478381T1 (de) 2001-06-20 2002-06-20 Verfahren zur bearbeitung von daten
AU2002347560A AU2002347560A1 (en) 2001-06-20 2002-06-20 Data processing method
EP10005502A EP2224330B1 (de) 2001-06-20 2002-06-20 Verfahren und gerät zum partitionieren von grossen rechnerprogrammen
AT10005502T ATE557344T1 (de) 2001-06-20 2002-06-20 Verfahren und gerät zum partitionieren von grossen rechnerprogrammen
EP02780770A EP1402382B1 (de) 2001-06-20 2002-06-20 Verfahren zur bearbeitung von daten
US10/480,003 US7657877B2 (en) 2001-06-20 2002-06-20 Method for processing data
JP2003505782A JP2004533691A (ja) 2001-06-20 2002-06-20 データを処理するための方法
EP02777144A EP1466264B1 (de) 1995-12-29 2002-09-18 Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
PCT/EP2002/010479 WO2003025781A2 (de) 2001-09-19 2002-09-18 Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US10/490,079 US7434191B2 (en) 2001-09-03 2002-09-18 Router
AU2002338729A AU2002338729A1 (en) 2001-09-19 2002-09-18 Router
EP02791644A EP1472616B8 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
PCT/EP2002/010572 WO2003036507A2 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
JP2003538928A JP4456864B2 (ja) 2001-09-19 2002-09-19 リコンフィギュアブル素子
US10/490,081 US8429385B2 (en) 2001-09-03 2002-09-19 Device including a field having function cells and information providing cells controlled by the function cells
AU2002357982A AU2002357982A1 (en) 2001-09-19 2002-09-19 Reconfigurable elements
AT02791644T ATE533111T1 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
US10/508,559 US20060075211A1 (en) 2002-03-21 2003-03-21 Method and device for data processing
EP03720231A EP1518186A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
AU2003223892A AU2003223892A1 (en) 2002-03-21 2003-03-21 Method and device for data processing
PCT/DE2003/000942 WO2003081454A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
US12/247,076 US8209653B2 (en) 2001-09-03 2008-10-07 Router
US12/571,173 US8686549B2 (en) 2001-09-03 2009-09-30 Reconfigurable elements
JP2009271120A JP2010079923A (ja) 2001-09-19 2009-11-30 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置
US12/640,201 US20100095094A1 (en) 2001-06-20 2009-12-17 Method for processing data
US12/729,090 US20100174868A1 (en) 2002-03-21 2010-03-22 Processor device having a sequential data processing unit and an arrangement of data processing elements
US12/729,932 US20110161977A1 (en) 2002-03-21 2010-03-23 Method and device for data processing
US13/023,796 US8686475B2 (en) 2001-09-19 2011-02-09 Reconfigurable elements
US14/162,704 US20140143509A1 (en) 2002-03-21 2014-01-23 Method and device for data processing
US14/223,793 US10031733B2 (en) 2001-06-20 2014-03-24 Method for processing data
US14/263,185 US8890215B2 (en) 1997-10-08 2014-04-28 Reconfigurable elements
US14/540,782 US20150074352A1 (en) 2002-03-21 2014-11-13 Multiprocessor Having Segmented Cache Memory
US14/543,306 US9092595B2 (en) 1997-10-08 2014-11-17 Multiprocessor having associated RAM units
US14/810,905 US9240220B2 (en) 1997-10-08 2015-07-28 Stacked-die multi-processor
US14/923,702 US10579584B2 (en) 2002-03-21 2015-10-27 Integrated data processing core and array data processor and method for processing algorithms
US15/000,763 US10885996B2 (en) 1997-10-08 2016-01-19 Processor having a programmable function unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10212622A DE10212622A1 (de) 2002-03-21 2002-03-21 Prozessorkopplung

Publications (1)

Publication Number Publication Date
DE10212622A1 true DE10212622A1 (de) 2003-10-23

Family

ID=28458362

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10212622A Ceased DE10212622A1 (de) 1995-12-29 2002-03-21 Prozessorkopplung

Country Status (1)

Country Link
DE (1) DE10212622A1 (de)

Similar Documents

Publication Publication Date Title
EP1402382B1 (de) Verfahren zur bearbeitung von daten
DE102018130441A1 (de) Einrichtung, Verfahren und Systeme mit konfigurierbarem räumlichem Beschleuniger
DE69332663T2 (de) Datenprozessor mit einem Cachespeicher
DE19735350B4 (de) Vektorprozessor zum Ausführen paralleler Operationen und Verfahren hierfür
DE69909829T2 (de) Vielfadenprozessor für faden-softwareanwendungen
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE19735348B4 (de) Vektorprozessor zur Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern und zugehöriges Verfahren zum Betreiben desselben
DE102018005169A1 (de) Prozessoren und verfahren mit konfigurierbaren netzwerkbasierten datenflussoperatorschaltungen
EP3077912B1 (de) Steuergerät für ein kraftfahrzeug
DE112015004983T5 (de) Parallel-Slice-Prozessor mit einer Lade-Speicher-Umlaufwarteschlange für eine schnelle Freigabe von Einträgen in einer Ausgabewarteschlange
DE112017001825T5 (de) Prozessoren, verfahren, systeme und instruktionen zum atomischen speichern von daten, die breiter als eine nativ unterstützte datenbreite sind, in einem speicher
DE102005021749A1 (de) Verfahren und Vorrichtung zur programmgesteuerten Informationsverarbeitung
DE102005055000A1 (de) Modulares Avioniksystem eines Flugzeuges
DE19735869A1 (de) System und Verfahren zum Verarbeiten von Softwareunterbrechungen durch Parameterübergabe
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
EP1518186A2 (de) Verfahren und vorrichtung zur datenverarbeitung
DE102018128626A1 (de) Systeme, Verfahren und Vorrichtungen für Matrixoperationen
EP1449083B1 (de) Verfahren zum debuggen rekonfigurierbarer architekturen
EP0130269A2 (de) Speicherprogrammierbare Steuerung
DE4009804A1 (de) Programmierbarer prozessrechner mit einem funktionsblockprozessor und einem bit-prozessor
EP1483682A2 (de) Reconfigurierbarer prozessor
DE19735349B4 (de) Vektorprozessor und Verfahren zu dessen Betrieb
DE10212622A1 (de) Prozessorkopplung
DE10303053A1 (de) Registerumbenennung zum Reduzieren einer Umgehung und Erhöhen einer scheinbaren physischen Registergröße

Legal Events

Date Code Title Description
ON Later submitted papers
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection