DE19835216A1 - Verfahren und Prozessoranordnung zur parallelen Datenverarbeitung - Google Patents

Verfahren und Prozessoranordnung zur parallelen Datenverarbeitung

Info

Publication number
DE19835216A1
DE19835216A1 DE19835216A DE19835216A DE19835216A1 DE 19835216 A1 DE19835216 A1 DE 19835216A1 DE 19835216 A DE19835216 A DE 19835216A DE 19835216 A DE19835216 A DE 19835216A DE 19835216 A1 DE19835216 A1 DE 19835216A1
Authority
DE
Germany
Prior art keywords
data
processing
communication unit
units
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19835216A
Other languages
English (en)
Other versions
DE19835216B4 (de
Inventor
Matthias Weis
Gerhard Fettweis
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.)
NXP Semiconductors Germany GmbH
Original Assignee
Technische Universitaet Dresden
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 Technische Universitaet Dresden filed Critical Technische Universitaet Dresden
Priority to DE19835216A priority Critical patent/DE19835216B4/de
Priority to US09/431,295 priority patent/US6618817B1/en
Publication of DE19835216A1 publication Critical patent/DE19835216A1/de
Priority to CA002325067A priority patent/CA2325067A1/en
Application granted granted Critical
Publication of DE19835216B4 publication Critical patent/DE19835216B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Abstract

Der Erfindung, die ein Verfahren und eine Prozessoranordnung zur parallelen Datenverarbeitung betrifft, bei dem Daten aus einem Datenspeicher ausgelesen und über eine Kommunikationseinheit Verarbeitungseinheiten zur parallelen Bearbeitung zugeführt werden, liegt die Aufgabe zugrunde, eine modulare und skalierbare Speicherschnittstelle für Prozessoren mit parallelen Verarbeitungseinheiten zu schaffen. Diese Aufgabe wird dadurch gelöst, daß die Daten in Datengruppen mit mehreren Elementen aufgeteilt und in einem Gruppenspeicher unter ein und derselben Adresse abgespeichert werden. Jeder Datengruppe wird eine Verarbeitungseinheit zugeordnet, indem die Datengruppe oder zumindest ein Element einer Datengruppe unter Umgehung der Kommunikationseinheit direkt mit der zugeordneten Verarbeitungseinheit verbindbar ist. Eine Datengruppe wird gleichzeitig und parallel aus dem Datenspeicher ausgelesen und auf eine oder mehrere Verarbeitungseinheiten aufgeteilt und in diesen parallel verarbeitet.

Description

Die Erfindung betrifft ein Verfahren zur parallelen Datenver­ arbeitung, bei dem Daten aus einem Datenspeicher ausgelesen und über eine Kommunikationseinheit Verarbeitungseinheiten zur parallelen Verarbeitung zugeführt werden.
Die Erfindung betrifft auch eine Prozessoranordnung zur paral­ lelen Datenverarbeitung mit einem Datenspeicher und parallelen Datenverarbeitungseinheiten, die über eine Kommunikationsein­ heit miteinander verbunden sind.
Es sind Prozessoren mit einer parallelen Datenverarbeitung bekannt, wie sie unter anderem in dem Fachbuch J. Hennessy, D. Patterson: Computer Architecture: A Quantitiative Approach. Morgan Kaufmann Publishers Inc., 1990 beschrieben sind. Dabei werden Verarbeitungseinheiten einer Architektur mehrfach aus­ gelegt, um eine parallele Verarbeitung zu erreichen. Für eine gleichzeitige Nutzung dieser parallelen Verarbeitungseinheiten müssen diesen parallel Daten zugeführt werden. Dazu müssen gegebenenfalls Dateneinheiten mehrfach ausgelegt werden. Hier­ zu wird entweder ein Multiprozessorsystem erforderlich oder es ist eine gemeinsame Nutzung eines Datenspeichers durch mehrere Verarbeitungseinheiten vorzusehen.
Nachteilig bei diesen bekannten Anordnungen ist, daß bei mehr­ facher Auslegung von Verarbeitungseinheiten entweder Daten­ speicher mehrfach vorhanden sein müssen oder Zwischenregister­ sätze eingeführt werden müssen, die mit Hilfe eines vollstän­ dig verbunden Kommunikationsnetzwerkes ihren Inhalt umordnen können. Dies wiederum erfordert entweder den mehrfachen Aufbau von Adressgenerierungseinheiten, Speicherports sowie dem Auf­ bau eines Verbindungsnetzwerkes zwischen diesen Speichern oder ein vollständiges Verbindungsnetzwerk zwischen Registersätzen. Es ist beispielsweise ein Schaltkreis der Firma Texas Instru­ ments Inc. mit der Bezeichnung C80/C82 bekannt, in dem mehrere Adressgenerierungseinheiten, Speicherports und ein umfangrei­ ches Verbindungsnetzwerk vorhanden ist. Darin sind jeweils 4/2 Digitalsignalprozessorkerne sowie ein Reduced-Instruction-Set- Computer vorgesehen, die mit Hilfe eines Crossbar-Netzwerkes mit einem Speicher verbunden sind.
Weiterhin ist aus C. Hansen, "Microunity's Media Processor Architecture", IEEE Micro, pp. 34-38, Aug. 1997, ein Prozessor mit einem vollständigen Verbindungsnetzwerk versehen, in wel­ chem die Ausführungseinheiten direkt mit dem Registersatz verbunden sind. Die Kommunikation erfolgt zwischen zwei Regi­ stersätzen und wird jeweils durch das allgemeine Netzwerk bereitgestellt.
Es ist nunmehr Aufgabe der Erfindung, den Paralleli­ sierungsgrad einer Prozessorarchitektur zu erhöhen, ohne die Anzahl von Speichern und/oder die Breite der Verbindungsnetz­ werke zu vergrößern.
Verfahrensseitig wird die Aufgabe dadurch gelöst, daß die Daten in Datengruppen, mit mehreren Elementen aufgeteilt, unter ein und derselben Adresse abgespeichert werden. Jedem Element einer Datengruppe wird eine Verarbeitungseinheit zu­ geordnet, indem das Element unter Umgehung der Kommunikations­ einheit direkt mit der zugeordneten Verarbeitungseinheit ver­ bindbar ist. Eine Datengruppe wird gleichzeitig und parallel aus dem Datenspeicher ausgelesen und auf mehrere Verarbei­ tungseinheiten aufgeteilt und in diesen Verarbeitungseinheiten parallel verarbeitet.
Soll eine Datengruppe aus dem Datenspeicher ausgelesen werden, so ist es erforderlich, lediglich die Adresse dieser Daten­ gruppe aufzurufen. Eine einzelne Adressierung von Datenelemen­ ten kann dabei entfallen. Jede Datengruppe kann sodann entwe­ der direkt der zugeordneten Verarbeitungseinheit zugeführt werden oder mit Hilfe der Kommunikationseinheit auf andere Verarbeitungseinheiten verteilt werden. Sind mehrere Daten von den Verarbeitungseinheiten berechnet worden, können diese wiederum direkt in den Datenspeicher geschrieben oder mittels der Kommunikationseinheit verteilt werden.
Die Wahl, ob die Datengruppe direkt an die Verarbeitungsein­ heit gegeben wird oder über die Kommunikationseinheit auf andere Verarbeitungseinheiten verteilt wird, richtet sich nach der zu lösenden Aufgabe. Allerdings wird hierbei deutlich, daß die Kommunikationseinheit durch die Möglichkeit des direkten Anlegens von Datengruppen an die zugeordneten Verarbeitungs­ einheiten Entlastung erfährt, wodurch diese in ihrer Breite und damit in ihrem Aufwand verringert werden kann.
Eine besonders zweckmäßige Ausgestaltung der Erfindung besteht darin, daß Daten aus dem Verarbeitungseinheiten zu einander benachbarten Verarbeitungseinheiten direkt verschoben werden können.
Auch durch diese direkte Verschiebung wird die Kommunikations­ einheit eine weitere Entlastung erfahren, was die Verringerung von deren Breite unterstützt.
In einer günstigen Ausgestaltung des erfindungsgemäßen Verfah­ rens ist vorgesehen, daß Elemente einer Datengruppe über die Kommunikationseinheit auf eine oder mehrere Verarbeitungsein­ heiten verteilt werden.
Es ist zweckmäßig, die Elemente einer Datengruppe vor der Verarbeitung in den Verarbeitungseinheiten um einen Schritt, d. h. bis zum Eintreffen eines neuen Elements bei einem näch­ sten Schritt zu verzögern. Somit kann in den Verarbeitungsein­ heiten und hierbei insbesondere in den Prozesseinheiten die Behandlung der Daten des vorhergehenden Schrittes abgeschlos­ sen werden, die dann am Ausgang der Verarbeitungseinheit an­ liegen, wenn die Berechnung der Verarbeitung der aktuellen Elemente der Datengruppe abgeschlossen ist. In der Zwischen­ zeit können die Daten an der Verarbeitungseinheit, d. h. die Ergebnisse des vorhergehenden Schrittes, von anderen Verarbei­ tungseinheiten genutzt oder in den Datenspeicher zurückge­ schrieben werden.
Anordnungsseitig wird die Aufgabe dadurch gelöst, daß der Datenspeicher als Gruppenspeicher ausgeführt ist. In dem Grup­ penspeicher ist mindestens eine Datengruppe mit mehreren Ele­ menten unter einer Adresse gespeichert. Die Kommunikationsein­ heit ist als globale Kommunikationseinheit ausgestaltet. Dies bedeutet, daß die globale Kommunikationseinheit eine Breite aufweist, die kleiner ist als die Anzahl der Elemente in einer Datengruppe. Der Datenspeicher ist direkt mit der globalen Kommunikationseinheit verbunden. Jedem Element der Datengruppe ist ein Teil der globalen Kommunikationseinheit und eine Ver­ arbeitungseinheit, bestehend aus einer Anzahl an Prozessein­ heiten und einer Anzahl an Speichereinheiten, zugeordnet. Dieser zugeordnete Teil der globalen Kommunikationseinheit und der Verarbeitungseinheit sind in einem Streifen angeordnet. Dieser Streifen ist mit weiteren Streifen gleichen Aufbaus benachbart. Der Datenspeicher ist in der Breite eines Elements einer Datengruppe innerhalb eines Streifens direkt mit den Speicherelementen einer zugeordneten Verarbeitungseinheit verbunden.
Durch diese Anordnung wird es möglich, daß Datenelemente einer Datengruppe entweder direkt an eine zugeordnete Verarbeitungs­ einheit gegeben werden oder über die Kommunikationseinheit auf andere Verarbeitungseinheiten verteilt werden. Durch die streifenweise Zuordnung von Elementen der Datengruppe, Teil der globalen Kommunikationseinheit und Verarbeitungseinheit wird dies auch geometrisch unterstützt, was die Gestaltung der Kommunikationseinheit zu einer globalen Kommunikationseinheit mit einer gegenüber dem bekannten Stand der Technik verringer­ ten Breite ermöglicht.
In den Fällen, in denen sehr häufig eine Kommunikation zwischen dem Datenspeicher und der zugeordneten Verarbeitungs­ einheit stattfindet, kann dies über die direkte Verbindung geschehen. Je stärker der Anteil dieser direkten Verbindunge­ nen ist, desto stärker kann die Breite der globalen Kommunika­ tionseinheit verringert werden.
In einer besonders günstigen Ausgestaltung ist vorgesehen, daß zwischen Verarbeitungseinheiten einander benachbarter Streifen lokale Kommunikationseinheiten angeordnet sind. Diese lokalen Kommunikationseinheiten weisen eine Breite auf, die mindestens 1 beträgt und die höchstens gleich der doppelten Anzahl von Speicherelementen in einer Verarbeitungseinheit ist.
Durch diese lokalen Kommunikationseinheiten können Daten, insbesondere Verarbeitungsergebnisse voneinander benachbarten Verarbeitungseinheiten direkt ausgetauscht werden, ohne hier­ für die globale Kommunikationseinheit benutzen zu müssen. Dies liefert einen weiteren Beitrag zur Entlastung der globalen Kommunikationseinheit und ermöglicht damit zusätzlich, diese globale Kommunikationseinheit schmaler zu gestalten.
In einer weiteren Ausgestaltung der Erfindung ist vorgesehen, daß die Speicherelemente als Register ausgeführt sind.
In einem einfachen Aufbau der erfindungsgemäßen Schaltungs­ anordnung ist vorgesehenm, daß die Breite der globalen Kommu­ nikationseinheit gleich 0 ist. Dabei ist der Datenspeicher als Gruppenspeicher ausgeführt, indem mindestens eine Datengruppe mit mehreren Elementen unter einer Adresse gespeichert ist. Jedem Element der Datengruppe ist eine Verarbeitungseinheit, bestehend aus einer Anzahl an Prozeßeinheiten und einer Anzahl an Speichereinheiten zugeordnet. Diese sind in einem Streifen angeordnet sind, der mit weiteren Streifen gleichen Aufbaus benachbart ist. Der Datenspeicher ist in der Breite eines Elemente einer Datengruppe innerhalb eines Streifens direkt mit den Speicherelementen einer zugeordneten Verarbeitungsein­ heit verbunden.
Die Erfindung soll nachfolgend an Hand zweier Ausführungsbei­ spiele näher erläutert werden.
In den zugehörigen Zeichnungen zeigt
Fig. 1 eine schematische Darstellung einer erfindungsgemäßen Prozessorarchitektur,
Fig. 2 einen Flußgraph einer 8-Punkte-FFT mit einem Dezimie­ rung-in-der-Zeit-Kern,
Fig. 3 einen Flußgraph einer 16-Punkte-FFT mit parallelen Schmetterlingen
Fig. 4 eine Struktur eines Radix-2-Schmetterlings
Fig. 5 eine schematische Darstellung einer Verarbeitungsein­ heit,
Fig. 6 eine Darstellung einer überlappten Ausführung dreier überlappter Schmetterlinge,
Fig. 7 eine Darstellung des Ein-/Ausgabeverhaltens der Ver­ arbeitungseinheit,
Fig. 8 eine Darstellung notwendiger Kommunikationen in Stufe 1,
Fig. 9 eine Darstellung notwendiger Kommunikationen in Stufe 2,
Fig. 10 eine Darstellung notwendiger Kommunikationen in Stufe 3,
Fig. 11 eine Darstellung einer 64 Punkte FFT,
Fig. 12 eine Darstellung eines Verteilers in einer globalen Kommunkationseinheit für den k-ten Streifen,
Fig. 13 eine Darstellung von Schaltern für den Verteiler,
Fig. 14 eine Darstellung des Aufbaus eines Streifens mit lokaler Kommunikationseinheit,
Fig. 15 eine Darstellung einer überlappten Ausführung zweier aufeinanderfolgender Filterberechnungen.
Die Erfindung soll in einem ersten Ausführungsbeispiel anhand der Anwendung des Fast Fourier Transform Algorithmus (FFT) beschrieben werden. Dieser stellt einen effizienten Algorith­ mus zur Berechnung einer diskreten Fourier-transformation (DFT) dar. Er liefert ein diskretes Frequenzspektrum einer zeitdiskreten Wertfolge. Die Rücktransformation wird durch eine inverse FFT realisiert, die dieselbe Gestalt wie die FFT hat.
Es sind eine Reihe unterschiedlicher Realisierungen der FFT bekannt. Dieses Ausführungsbeispiel bezieht sich auf die so­ genannte Radix-2-Dezimierung-in-der-Zeit(Decimation-intime), wie sie 1969 von Cooley und Tukey vorgeschlagen wurde. Fig. 2 zeigt eine solche Realisierung der FFT.
Die Eingangsdaten X sind komplexe Werte, die ihrerseits aus zwei reellen Werten bestehen. Jeweils M/2 komplexe bzw. M reelle Werte, also M Elemente, sind zu einer Gruppe zusammen­ gefaßt.
Wie in Fig. 1 dargestellt, beinhaltet in diesem Ausführungs­ beispiel ein Streifen 1 ein Element und eine Verarbeitungsein­ heit 2, bestehend aus vier Registern, einer Mulitplizier-Akku­ mulier-Einheit, nachfolgend MAC genannt, sowie einem Akkumula­ tor. Zwei dieser Streifen bilden einen Doppelstreifen. In­ nerhalb dieses Doppelstreifens sind beide Verarbeitungsein­ heiten 2 mit einer lokalen Kommunikationseinheit 3 verbunden. Ein solcher Doppelstreifen kann genau einen sogenannten Radix- 2-Schmetterling in 7 Schritten berechnen. Diese Schritte kön­ nen jedoch überlappend ausgeführt werden. Auch ist eine gleichzeitige Berechnung mehrerer Schmetterlinge möglich, wie es nachfolgend beschrieben wird.
Wie in Fig. 2 dargestellt, beinhaltet ein Flußgraph einer Radix-2-FFT allgemein bei N komplexen Eingangswerten log2(N) Stufen zu je N/2 Radix-2 Grundelementen. Innerhalb einer Stufe sind die Radix-2 Elemente voneinander unabhängig und können somit parallel, also in unabhängigen Streifen, ausgeführt werden. Ohne Einschränkung der Allgemeinheit können somit für die Berechnung einer N-Punkte-FFT N/2 Doppelstreifen auf je 2 komplexen Werten parallel arbeiten.
Um nun die Verarbeitung mit einer Architektur, wie Sie in Fig. 1 angegeben ist, nutzen zu können, sind die Ein- und Ausgangs­ daten für jeden Schmetterling nicht getrennt zu lesen und/­ oder zu schreiben sondern zu Gruppen zusammenzufassen. Dazu ist der Flußgraph gemäß Fig. 2 in Fig. 3 derart dargestellt, daß für jede Stufe alle Schmetterlinge parallel sind, während zwischen den Stufen die Kommunikationsverbindungen angegeben sind, für die eine Umordnung der Daten nötig ist.
Wie bereits angegeben, kann die Kombination beim Lesen oder Schreiben der Gruppendaten ausgeführt werden. Werden beim Schreiben jeweils die oberen Ausgänge, die in Fig. 3 mit einem Kreis gekennzeichnet sind, oder die unteren Ausgänge der Schmetterlinge, die in Fig. 3 mit einem Kreuz gekennzeichnet sind, zu Gruppen zusammengefaßt, was vorteilhafterweise für die Berechnung der Schmetterling-Basisstruktur wie nachfolgend ausgeführt geschieht, müssen diese Gruppen beim Einlesen um­ sortiert werden. So müssen die Ausgangswerte aus Schmetterling 4 und Schmetterling 5 aus Stufe 1 in Stufe 2 beide auf Schmet­ terling 4 ausgeführt werden.
Allgemein läßt sich feststellen, daß jeweils M/2 Elemente mit Hilfe der globalen Kommunikationseinheit 6 verschoben werden müssen, während die restlichen M/2 Daten im selben Streifen 1 abgespeichert wie gelesen werden können. M ist dabei die An­ zahl von Elementen in einer Gruppe.
Da diese Kommunikation bei jedem Lesezugriff, sowohl innerhalb einer Stufe sowie zwischen unterschiedlichen Stufen, unter­ schiedlich ist, muß die globale Kommunikationseinheit 6 pro­ grammierbar sein. Allgemein wird für eine Gruppe von Daten, die in dem Gruppenspeicher 7 gespeichert sind, mit M komplexen Elementen M/2 Kommunikationen ausgeführt werden.
Besteht die Gruppe beispielsweise aus 8 komplexen Elementen, werden 4 komplexe Busse in der globalen Kommunikationseinheit 6 für eine vollständige Kommunikation benötigt.
Die in Fig. 4 dargestellte Grundstruktur eines Radix-2 Schmet­ terlings hat 3 komplexe Eingänge A, B, W und 2 komplexe Aus­ gänge x und Y. Die Berechnungsvorschrift, die durchzuführen ist, besteht aus folgenden 4 Gleichungen:
Xre = Are + Wx,re * Bre - Wx,im * Bim
Xim = Aim + Wx,re * Bim + Wx,im * Bre
Yre = Are - Wx, re * Bre + Wx, im * Bim
Yim = Aim - Wx, re * Bim - Wx, im * Bre
Diese Berechnungsvorschrift enthält 8 reele Multiplikationen, wie 12 Additionen. Sind zur Verarbeitung zwei Multiplizier- Akkumulier-Einheiten vorhanden, können die 4 Gleichungen in den folgenen Teilschritten berechnet werden:
Diese Teilschritte können nun mit Hilfe einer Verarbeitungs­ einheit, wie sie in Fig. 5 dargestellt ist, berechnet werden. Um später eine überlappte Ausführung zu erreichen, werden in diesem Ausführungsbeispiel die Werte A, B und W sowie X und Y in jeweils unterschiedlichen Taktzyklen gelesen bzw. geschrie­ ben.
Da beim Lesen jedoch noch ein Umsortieren der Eingangsdaten nötig ist, wie dies in Fig. 3 dargestellt ist, wird das Lesen der Werte A und B abhängig von der algorithmischen Anforderung entweder im zweiten oder dritten Takt ausgeführt.
Hierbei werden folgende Registerzuordnungen vorgenommen:
Die Verarbeitung erfolgt nun mit Hilfe dieser Register:
Am Ende müssen die Resultate abgespeichert werden, wobei der erste Schreibzyklus W1 parallel zum dritten Ausführungsschritt E3 ausgeführt werden muß.
Um die Abarbeitung zu beschleunigen, können die Phasen Lesen (R1-R3), Berechnen (E1-E3) und Schreiben (W1-W2) überlappt ausgeführt werden, wie dies in Fig. 6 dargestellt ist. Während der Schmetterling i berechnet wird, können die Werte des näch­ sten Schmetterling i+1 schon gelesen werden. Hierbei dürfen jedoch keine Werte überschrieben werden, die bei der Berech­ nung von Schmetterling i noch benötigt werden. Hier ist in Fig. 6 die Nutzung jedes Registers für die überlappten Zyklen angegeben. In Zyklus 4 (R1; E1) wird RC eingelesen, obwohl der alte Wert noch in Zyklus 5 (R2/3; E2) benötigt wird. Er wird daher in RD zwischengespeichert. Im nächsten Zyklus wird der Wert RA eingelesen, obwohl er noch in Zyklus 6 (R2/3; E3) benö­ tigt wird. In diesem Zyklus wird Register RC jdoch nicht mehr benötigt. Daher kann Register RC nun im Zyklus 5 (R2/3; E2) den zwischengespeicherten Wert von RD aufnehmen, während RD den Wert von RA zwischenspeichern kann. Im letzten Zyklus 6 (R2,3/E3) werden dann die restlichen Streifen geladen und Register RD in Register RA übernommen. Dies ist in Fig. 7 dargestellt.
Ein Doppelstreifen, wie in Fig. 5 dargestellt ist, enthält somit 2 MAC-Einheiten, die über drei Verbindungen, der lokal­ ten Kommunikationseinheit, die 3 Busse benötigt, verbunden sind. Die Daten werden über die globale Kommunikationseinheit 6 zugeführt.
Für die Ausführung wird das oben beschriebene Verfahren im folgenden auf eine Prozessorarchitektur mit 16 Streifen gege­ ben. Zur Beschreibung werden einführend in Fig. 8 bis 10 die Kommunikationen angeben, wie sie für die Berechnung einer FFT mit 16 Punkten und mehr nötig sind. Diese Kommunikationen sind allerdings für eine FFT mit mehr als 16 Punkten nur in den ersten drei Stufen auszuführen, was in Fig. 11 dargestellt ist. In Fig. 8 ist für die Stufe 1 in Fig. 6 die Kommunikation für das Lesen einer Gruppe in den oberen bzw. unteren Aus­ gängen der Schmetterlinge angegeben. Dies ist in Fig. 9 für Stufe 2 und in Fig. 10 für Stufe 3 angegeben.
Kann in jedem Zyklus eine Gruppe von 16 Elementen gelesen werden, sind für die Verteilung von 8 Werten in einem Takt 8 globale Busse nötig. Diese Kommunikation kann allerdings auch in 8 Zyklen über einen globalen Bus realisiert werden. Des­ weiteren können Kommunikationen auch durch direkte Verbindun­ gen oder aufgetrennte Busse realisiert werden. Diese Flexibi­ lität kann schließlich für eine kosteneffiziente Realisierung der Speicherarchitektur genutzt werden, indem die globale Kommunikationseinheit 6 jeweils an die Anforderung der Appli­ kation angepaßt wird.
Da die Kommunikation von 8 Werten nun nicht in jeder Stufe der FFT benötigt wird und die notwendige Kommunikation in der Stufe 1, wie in Fig. 8 dargestellt, mit Hilfe eines geteilten Busses realisiert werden kann, ist in der globalen Kommunika­ tionseinheit 6 ein nicht näher dargestellter globaler und geteilter Bus vorhanden. Für die Verteilung eines Streifens auf diese Busstruktur ist ein Verteiler 8 vorgesehen, wie er in Fig. 12 dargestellt ist. Jeder Eingang des Verteilers 8 kann auf einen geteilten Bus IB0 oder auf 4 globale Busse IB1- IB4 geschaltet werden. Auf die Register RA oder RB können nun entweder einer der 5 Busse oder der Eingang selber geschaltet werden. Die notwendigen Schaltungen, am Beispiel der notwendi­ gen Kommunikation gemäß Fig. 8, sind in der Tabelle in Fig. 13 angegeben. Dabei geben die Spalten die 16 Streifen einer so­ genannten M3-Architektur wieder, während die Zeile 4-7 die Busse kennzeichnen und die Zeile 5 die Schaltung des direkten Einganges. Eine M3-Architektur bezeichnet eine Ausführung der erfindungsgemäßen Schaltungsanordnung mit 16 Streifen.
In einem 2. Ausführungsbeispiel ist ein Finite Impulse Respon­ se Filter, nachfolgend FIR genannt, ausgeführt. Der FIR Filter ist einer der wichtigsten Algorithmen innerhalb der digitalen Signalverarbeitung. Daher sind auch digitale Signal­ prozessoren, nachfolgend DSP genannt, im allgemeinen für die­ sen Algorithmus optimiert. Diese Optimierung geschieht bei­ spielsweise durch die Multiplizier-Akkumulier-Einheit, durch eine zugeschnittene Speicherarchitektur oder durch spezielle Adressierungsmodi.
Für die Parallelisierung dieses FIR Algorithmus gilt
Hierfür gibt es im wesentlichen zwei Möglichkeiten. Einerseits kann die Summation selbst nach folgender Beziehung aufgespal­ ten werden.
Dabei können die neuen Summen nun getrennt und parallel berechnet werden. Die beiden Teilsummen müssen dann in einem letzten Schritt aufsummiert werden. Der Nachteil dieser Me­ thode liegt darin, daß für jede Summation unterschiedliche Werte benötigt werden. In diesem Beispiel müssen 4 Eingabe­ werte gleichzeitig den Verarbeitungseinheiten zugeführt wer­ den, um eine Parallelschaltung zu erreichen.
Sind nun mehrere Ausgangswerte yk zu berechnen, können diese auch gleichzeitig in verschiedenen Ausführungseinheiten be­ rechnet werden:
Diese Anordnung hat den entschiedenen Vorteil, daß einerseits der Wert ai gleichzeitig genutzt werden kann und anderseits der Wert xk-i durch den Einsatz von Verzögerungsregistern nur einmal gelesen werden muß. Hiermit ist es möglich, mit nur 2 Speicherzugriffen pro Takt mehrere Verarbeitungseinheiten zu beschäftigen. Werden nun mehrere ai bzw. xk-i zu Gruppen zu­ sammengefaßt, muß in einem Streifen jeweils ein Register für ai bzw. xk-i vorgesehen werden.
Die Eingabedaten müssen hierbei nur nach links bzw. rechts verschoben werden. Dabei kann als Verarbeitungseinheit ein Streifen mit einer MAC-Einheit dienen, der jeweils drei Regi­ ster hat. (RBk = xk, RAk = xk + 16, RCk = ck.) Dies ist in Fig. 14 dargestellt.
Sollen nun die Gleichungen 3a und 3b parallet ausgeführt wer­ den, können beide MACs mit den gleichen Koeffizienten rechnen. Dies kann über einen globalen Bus realisiert werden, der den gleichen Koeffizienten auf alle MACs verteilt. Die Werte x müssen dagegen mit jedem Zyklus nach links oder rechts ver­ schoben werden. Dies geschieht über eine lokale Kommunika­ tionseinheit 3 zwischen jeweils 2 benachbarten MAC Einheiten.
Gleichzeitig mit dieser Verschiebung wird ganz links oder rechts ein Register frei und enthält keine Daten. Diese müssen dorthin geladen werden. Die Daten können aus dem Gruppenspei­ cher 7 nur in Gruppen geladen werden, wodurch nicht auf ein­ zelne Elemente zugegriffen werden kann. Daher muß die ganze Gruppe in Register RC gelesen werden, die als Zwischenspeicher dienen. Die jeweils freiwerdende Stelle wird dann mit einem Wert aus diesem Zwischenspeicher gefüllt. Dies kann mit Hilfe eines zweiten globalen Busses geschehen.
Wie im Ausführungsbeispiel bei der FFT verlangt eine überlapp­ te Ausführung, wie sie in Fig. 15 dargestellt ist, das Zwi­ schenspeichern der Koeffizienten in dem Verzögerungsregister RD. So werden nach Zyklus 17 sowohl eine Gruppe neuer Koeffi­ zienten als auch eine Gruppe neuer Datenwerte benötigt. Kann nur eine Gruppe pro Zyklus geladen werden, muß im Zyklus 16 die Gruppe Koeffizienten zwischengespeichert werden. Dies geschieht wiederum mit Hilfe eines Verzögerungsregisters RD.
Die globalen Busse können nun mit den vom FFT Algorithmus geforderten globalen Bussen gefaltet werden. Je nach Anforde­ rung der Applikationen kann so durch Anpassung der globalen Kommunikationseinheit 6 die DSP-Architektur angepaßt und opti­ miert werden.
Im Falle der Ausführungsbeispiele der FFT und der FIR Algo­ rithmen können somit 2 Busse der globalen Kommunikationsein­ heit 6 zwei Busse der lokalen Kommunikationseinheit 3, 4 Regi­ ster, die MAC Einheit sowie der Akkumulator gefaltet und somit gemeinsam genutzt werden. Daher stellt diese Erfindung die Grundlage für den automatisierten Prozessorentwurf dar.
Im Gegensatz zu existierenden Lösungen nutzen beide Architek­ turen einen Gruppenspeicher 7 und können modular über Streifen 1 aufgebaut werden. Weiterhin kann die Programmierung über ein SIMD (Single Instruction Multiple Data) Verfahren erfolgen, das die gleichen Steuersignale auf alle Streifen 1 verteilt und somit die Implementierbarkeit und Programmierarbeit er­ leichtert.
Bezugszeichenliste
1
Streifen
2
Verarbeitungseinheit
3
lokale Kommunikationseinheit
4
Schmetterling
5
Schmetterling
6
globale Kommunikationseinheit
7
Gruppenspeicher
8
Verteiler
A, B, Wkomplexe Eingänge eines Radix-2-Schmetterlings
X, Ykomplexe Ausgänge eines Radix-2-Schmetterlings
MACMultiplizier-Akkumulier-Einheit
RA, RB, RC, RDRegister
IB0geteilter Bus
IB1-IB4globaler Bus

Claims (8)

1. Verfahren zur parallelen Datenverarbeitung, bei dem Daten aus einem Datenspeicher ausgelesen und über eine Kommuni­ kationseinheit Verarbeitungseinheiten zur parallelen Ver­ arbeitung zugeführt werden, dadurch gekenn­ zeichnet, daß die Daten in Datengruppen mit mehre­ ren Elementen aufgeteilt unter ein und derselben Adresse abgespeichert werden, daß jeder Datengruppe eine Verarbei­ tungseinheit zugeordnet wird, indem die Datengruppe oder zumindest ein Element einer Datengruppe unter Umgehung der Kommunikationseinheit direkt mit der zugeordneten Ver­ arbeitungseinheit verbindbar ist, und daß eine Datengruppe gleichzeitig und parallel aus dem Datenspeicher ausgelesen und auf eine oder mehrere Verarbeitungseinheiten aufge­ teilt und in diesen Verarbeitungseinheiten parallel ver­ arbeitet wird.
2. Verfahren nach Anspruch 1, dadurch gekenn­ zeichnet, daß Daten aus den Verarbeitungseinheiten (2) zu anderen Verarbeitungseinheiten (2) direkt verscho­ ben werden.
3. Verfahren nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet, daß Elemente einer Datengruppe über die Kommunikationseinheit auf eine oder mehrere Ver­ arbeitungseinheiten verteilt werden.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Elemente vor der Verarbeitung in den Verarbeitungseinheiten (2) um einen Schritt, d. h. bis zum Eintreffen eines neuen Elementes bei einem nächsten Schritt, verzögert werden.
5. Prozessoranordnung zur parallelen Datenverarbeitung mit einem Datenspeicher und parallelen Verarbeitungseinheiten, die über eine Kommunikationseinheit miteinander verbunden sind, dadurch gekennzeichnet,
daß der Datenspeicher als Gruppenspeicher (7) ausgeführt ist, in dem mindestens eine Datengruppe mit mehreren Ele­ menten unter einer Adresse gespeichert ist, daß die Kommu­ nikationseinheit als globale Kommunikationseinheit (6) derart ausgestaltet ist, daß die globale Kommunikations­ einheit (6) eine Breite aufweist, die kleiner ist als die Anzahl der Elemente in einer Datengruppe,
daß der Datenspeicher (7) direkt mit der globalen Kommuni­ kationseinheit (6) verbunden ist,
daß jedem Element der Datengruppe ein Teil der globalen Kommunikationseinheit (6), und eine Verarbeitungseinheit (2), bestehend aus einer Anzahl an Prozeßeinheiten (MAC) und einer Anzahl an Speichereinheiten (RA-RD), zugeordnet ist, die in einem Streifen (1) angeordnet sind, der mit weiteren Streifen (1) gleichen Aufbaus benachbart ist, und
daß der Datenspeicher (7) in der Breite eines Elemente einer Datengruppe innerhalb eines Streifens (1) direkt mit den Speicherelementen (RA-RD) einer zugeordneten Verarbei­ tungseinheit (2) verbunden ist.
6. Prozessoranordnung zur parallelen Datenverarbeitung nach Anspruch 5, dadurch gekennzeichnet, daß zwischen Verarbeitungseinheiten (2) einander benach­ barter Streifen lokale Kommunikationseinheiten (3) an­ geordnet sind, die eine Breite aufweisen, die mindestens 1 beträgt und die höchstens gleich der doppelten Anzahl von Speicherelementen in einer Verarbeitungseinheit (2) ist.
7. Prozessoranordnung zur parallelen Datenverarbeitung nach 5 oder 6, dadurch gekennzeichnet, daß die Speicherelemente als Register (RA-RD) ausgeführt sind.
8. Prozessoranordnung nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet,
daß die Breite der globalen Kommunikationseinheit (6) gleich 0 ist, derart,
daß der Datenspeicher als Gruppenspeicher (7) ausgeführt ist, in dem mindestens eine Datengruppe mit mehreren Ele­ menten unter einer Adresse gespeichert ist,
daß jedem Element der Datengruppe eine Verarbeitungsein­ heit (2), bestehend aus einer Anzahl an Prozeßeinheiten (MAC) und einer Anzahl an Speichereinheiten (RA-RD), zu­ geordnet ist, die in einem Streifen (1) angeordnet sind, der mit weiteren Streifen (1) gleichen Aufbaus benachbart ist, und
daß der Datenspeicher (7) in der Breite eines Elemente einer Datengruppe innerhalb eines Streifens (1) direkt mit den Speicherelementen (RA-RD) einer zugeordneten Verarbei­ tungseinheit (2) verbunden ist.
DE19835216A 1998-08-05 1998-08-05 Prozessor und Verfahren zur parallelen Datenverarbeitung Expired - Fee Related DE19835216B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE19835216A DE19835216B4 (de) 1998-08-05 1998-08-05 Prozessor und Verfahren zur parallelen Datenverarbeitung
US09/431,295 US6618817B1 (en) 1998-08-05 1999-10-29 System and method for providing a fault tolerant distributed computing framework
CA002325067A CA2325067A1 (en) 1998-08-05 2000-10-27 System and method for providing a fault tolerant distributed computing framework

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19835216A DE19835216B4 (de) 1998-08-05 1998-08-05 Prozessor und Verfahren zur parallelen Datenverarbeitung
US09/431,295 US6618817B1 (en) 1998-08-05 1999-10-29 System and method for providing a fault tolerant distributed computing framework

Publications (2)

Publication Number Publication Date
DE19835216A1 true DE19835216A1 (de) 2000-02-17
DE19835216B4 DE19835216B4 (de) 2005-10-27

Family

ID=29551079

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19835216A Expired - Fee Related DE19835216B4 (de) 1998-08-05 1998-08-05 Prozessor und Verfahren zur parallelen Datenverarbeitung

Country Status (3)

Country Link
US (1) US6618817B1 (de)
CA (1) CA2325067A1 (de)
DE (1) DE19835216B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099685A1 (de) * 2001-06-06 2002-12-12 Afca-System Kft Verfahren und schaltungsanordnung, vorteilhaft zur parallelen, sich zyklisch wiederholenden datenverarbeitung
WO2003071431A2 (de) * 2002-02-18 2003-08-28 Philips Semiconductors Dresden Ag Verfahren und anordnung zur zusammenführung von daten auf parallelen datenpfaden
DE102004004434A1 (de) * 2003-11-24 2005-08-04 Technische Universität Dresden Verfahren zur automatischen Erzeugung eines Prozessors aus einer Maschinen-Beschreibung

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213063B2 (en) * 2000-01-18 2007-05-01 Lucent Technologies Inc. Method, apparatus and system for maintaining connections between computers using connection-oriented protocols
US6772228B1 (en) * 2000-08-16 2004-08-03 Intel Corporation Achieving polymorphism in a COM software architecture or the like
US6895539B1 (en) 2000-08-16 2005-05-17 Intel Corporation Universal method and apparatus for controlling a functional test system
DE10045558A1 (de) * 2000-09-14 2002-04-04 Siemens Ag Verfahren und Anordnung zum Verifizieren einer Verbindung zwischen einer einen Zugriff auf eine Kommunikationseinrichtung durchführenden Applikation und einer den Zugriff steuernden Einrichtung
US6922796B1 (en) * 2001-04-11 2005-07-26 Sun Microsystems, Inc. Method and apparatus for performing failure recovery in a Java platform
US20030208605A1 (en) * 2002-05-03 2003-11-06 Vu Victor N. System and method of communication between java components in different namespaces
US6745339B2 (en) * 2002-09-13 2004-06-01 Docomo Communications Laboratories Usa, Inc. Method for dynamically switching fault tolerance schemes
US7565660B2 (en) * 2002-09-26 2009-07-21 Siemens Energy & Automation, Inc. System and method for universal extensibility that supports a plurality of programmable logic controllers
US7805716B2 (en) * 2002-12-10 2010-09-28 Siemens Aktiengesellschaft Method for executing a first software program, developed for a stored-program controller, on a computer
US7945909B2 (en) * 2003-05-09 2011-05-17 Sap Aktiengesellschaft Initiating recovery of an executing task using historical information and task information
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
WO2005114504A2 (en) * 2004-05-13 2005-12-01 Sun Microsystems, Inc. Method and apparatus for executing event driven simulations
US20050273502A1 (en) * 2004-05-21 2005-12-08 Patrick Paul B Service oriented architecture with message processing stages
US20060031432A1 (en) * 2004-05-21 2006-02-09 Bea Systens, Inc. Service oriented architecture with message processing pipelines
US20050273521A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060069791A1 (en) * 2004-05-21 2006-03-30 Bea Systems, Inc. Service oriented architecture with interchangeable transport protocols
US20050273847A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Programmable message processing stage for a service oriented architecture
US7774485B2 (en) * 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US20060031354A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture
US20060080419A1 (en) * 2004-05-21 2006-04-13 Bea Systems, Inc. Reliable updating for a service oriented architecture
US20050278374A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Dynamic program modification
US20050273520A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with file transport protocol
US20060031355A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Programmable service oriented architecture
US20060136555A1 (en) * 2004-05-21 2006-06-22 Bea Systems, Inc. Secure service oriented architecture
US20050270970A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Failsafe service oriented architecture
US20060031353A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamic publishing in a service oriented architecture
US20050267947A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Service oriented architecture with message processing pipelines
US20050278335A1 (en) * 2004-05-21 2005-12-15 Bea Systems, Inc. Service oriented architecture with alerts
US20050273517A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with credential management
US7310684B2 (en) * 2004-05-21 2007-12-18 Bea Systems, Inc. Message processing in a service oriented architecture
US20050273516A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Dynamic routing in a service oriented architecture
US20060031930A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060005063A1 (en) * 2004-05-21 2006-01-05 Bea Systems, Inc. Error handling for a service oriented architecture
US20060007918A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Scaleable service oriented architecture
US20050264581A1 (en) * 2004-05-21 2005-12-01 Bea Systems, Inc. Dynamic program modification
US7653008B2 (en) * 2004-05-21 2010-01-26 Bea Systems, Inc. Dynamically configurable service oriented architecture
US20060031481A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Service oriented architecture with monitoring
US20060031433A1 (en) * 2004-05-21 2006-02-09 Bea Systems, Inc. Batch updating for a service oriented architecture
US20050267892A1 (en) * 2004-05-21 2005-12-01 Patrick Paul B Service proxy definition
US20050273497A1 (en) * 2004-05-21 2005-12-08 Bea Systems, Inc. Service oriented architecture with electronic mail transport protocol
US7502961B2 (en) * 2004-09-09 2009-03-10 Microsoft Corporation Method, system, and apparatus for providing alert synthesis in a data protection system
US7716523B2 (en) * 2007-05-03 2010-05-11 Symantec Corporation End-to-end transactional protection for requests in a web application
US8996394B2 (en) 2007-05-18 2015-03-31 Oracle International Corporation System and method for enabling decision activities in a process management and design environment
US8185916B2 (en) 2007-06-28 2012-05-22 Oracle International Corporation System and method for integrating a business process management system with an enterprise service bus
US20090276654A1 (en) * 2008-05-02 2009-11-05 International Business Machines Corporation Systems and methods for implementing fault tolerant data processing services
US9185025B2 (en) * 2012-06-22 2015-11-10 Telefonaktiebolaget L M Ericsson (Publ) Internetworking and failure recovery in unified MPLS and IP networks
US8988985B2 (en) 2012-06-22 2015-03-24 Telefonaktiebolaget L M Ericsson (Publ) Internetworking and IP address management in unified MPLS and IP networks
US9569517B1 (en) 2013-11-27 2017-02-14 Google Inc. Fault tolerant distributed key-value storage
US11102103B2 (en) * 2015-11-23 2021-08-24 Bank Of America Corporation Network stabilizing tool

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5056006A (en) * 1988-09-12 1991-10-08 General Electric Company Parallel processor with single program storage and sequencer and simultaneous instruction processing
EP0684553B1 (de) * 1994-05-26 2004-06-16 Sun Microsystems, Inc. Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
DE69628087D1 (de) * 1995-03-22 2003-06-18 Sun Microsystems Inc Vorrichtung und Verfahren zur Verwaltung von Rechnerprozessen
US6249821B1 (en) * 1995-07-14 2001-06-19 Oki Data Americas, Inc. Network object frameworks
DE19643688C2 (de) * 1996-10-23 2001-01-25 Johannes Kneip Verfahren zur Steuerung einer Cachespeichereinheit mit konfliktfreiem Parallelzugriff auf virtuelle, 2-dimensionale Adreßräume
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US6185695B1 (en) * 1998-04-09 2001-02-06 Sun Microsystems, Inc. Method and apparatus for transparent server failover for highly available objects
US6370654B1 (en) * 1998-12-17 2002-04-09 Northern Telecom Limited Method and apparatus to extend the fault-tolerant abilities of a node into a network
US6438705B1 (en) * 1999-01-29 2002-08-20 International Business Machines Corporation Method and apparatus for building and managing multi-clustered computer systems
US6513112B1 (en) * 1999-07-26 2003-01-28 Microsoft Corporation System and apparatus for administration of configuration information using a catalog server object to describe and manage requested configuration information to be stored in a table object

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002099685A1 (de) * 2001-06-06 2002-12-12 Afca-System Kft Verfahren und schaltungsanordnung, vorteilhaft zur parallelen, sich zyklisch wiederholenden datenverarbeitung
WO2003071431A2 (de) * 2002-02-18 2003-08-28 Philips Semiconductors Dresden Ag Verfahren und anordnung zur zusammenführung von daten auf parallelen datenpfaden
WO2003071431A3 (de) * 2002-02-18 2004-04-08 Philips Semiconductors Dresden Verfahren und anordnung zur zusammenführung von daten auf parallelen datenpfaden
US7779229B2 (en) 2002-02-18 2010-08-17 Nxp B.V. Method and arrangement for bringing together data on parallel data paths
DE102004004434A1 (de) * 2003-11-24 2005-08-04 Technische Universität Dresden Verfahren zur automatischen Erzeugung eines Prozessors aus einer Maschinen-Beschreibung
DE102004004434B4 (de) * 2003-11-24 2007-08-09 Gordon Cichon Verfahren für einen verbesserten Entwurf eines Prozessors aus einer Maschinen-Beschreibung

Also Published As

Publication number Publication date
US6618817B1 (en) 2003-09-09
DE19835216B4 (de) 2005-10-27
CA2325067A1 (en) 2001-04-29

Similar Documents

Publication Publication Date Title
DE19835216A1 (de) Verfahren und Prozessoranordnung zur parallelen Datenverarbeitung
DE60215835T2 (de) Reduzierung von komponenten in einer montgomery multiplikations-recheneinheit
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE2724125C2 (de)
DE2819571C2 (de)
DE1901343C3 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1549584C3 (de) Datenverarbeitungsanlage
DE3632639C2 (de) Einrichtung zum Hochgeschwindigkeitsverarbeiten von Bilddaten durch Faltung
DE1222717B (de) Digitaler Interpolationsrechner
DE2423265C3 (de) Optimierende Rechenmaschine
DE2338469A1 (de) Programmierbares digitales datenverarbeitungsgeraet
DE4403917A1 (de) Vorrichtung zum Berechnen einer Besetzungszählung
DE4345029C2 (de) Schaltkreis für diskrete Kosinustransformation
DE3507584C2 (de)
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
DE4036455C1 (de)
DE112020004231T5 (de) Ausführen von skalarproduktoperationen unter verwendung einer memristiven crossbar-anordnung
DE19504089A1 (de) Pipelined SIMD-Systolic Array Prozessor und dessen Arbeitsverfahren
DE1549508B2 (de) Anordnung zur uebertragsberechnung mit kurzer signallaufzeit
EP0009625A2 (de) Datentransferschalter mit assoziativer Adressauswahl in einem virtuellen Speicher
DE1222290B (de) Binaere Recheneinrichtung zur Bildung und Akkumulation von Produkten
DE3416536C2 (de)
DE19637369C2 (de) Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren
EP0629943B1 (de) Multiplizierer für reelle und komplexe Zahlen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: SYSTEMONIC AG, 01099 DRESDEN, DE

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee