DE19835216A1 - Verfahren und Prozessoranordnung zur parallelen Datenverarbeitung - Google Patents
Verfahren und Prozessoranordnung zur parallelen DatenverarbeitungInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 84
- 238000004891 communication Methods 0.000 title claims abstract description 72
- 238000003672 processing method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 5
- 230000003111 delayed effect Effects 0.000 claims 1
- 241000255777 Lepidoptera Species 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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
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.
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
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.
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.
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.
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)
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)
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)
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 |
-
1998
- 1998-08-05 DE DE19835216A patent/DE19835216B4/de not_active Expired - Fee Related
-
1999
- 1999-10-29 US US09/431,295 patent/US6618817B1/en not_active Expired - Fee Related
-
2000
- 2000-10-27 CA CA002325067A patent/CA2325067A1/en not_active Abandoned
Cited By (6)
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 |