-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft Anordnungen von Speichern, insbesondere
Anordnungen von Cache-Speichern.
-
Stand der Technik
-
Die
Entwicklung zu immer leistungsfähigeren Steuergeräten im Bereich
der digitalen Signalverarbeitung hält ungebrochen an. Ein wesentlicher
Grund hierfür
sind die großen
Datenmengen, die von immer komplexer werdenden Algorithmen verarbeitet
werden müssen.
In der Vergangenheit konnte der zur Abarbeitung dieser Algorithmen
notwendige Rechenleistungsbedarf durch eine Steigerung der Taktfrequenzen
gedeckt werden. Es zeigt sich jedoch, dass eine signifikante Steigerung
von Taktfrequenzen in künftigen
Systemen, insbesondere in künftigen
Steuergeräten,
nur schwer zu realisieren ist, weil mit steigenden Frequenzen sowohl
die Verlustleistung als auch die Temperatur ansteigen.
-
Eine
Lösung
dieses Problems könnte
darin bestehen, einzelne Verarbeitungsschritte auf mehrere Prozesselemente
mit geringerer Taktfrequenz aufzuteilen. Um eine optimale Leistungsfähigkeit
solcher Systeme zu erlangen, ist jedoch ein leistungsfähiger Datenaustausch
zwischen den einzelnen Prozesselementen notwendig. Zur Realisierung
eines Datenaustausches zwischen derartigen Prozesselementen kann
beispielsweise der in 12 dargestellte Pipeline-Betrieb
vorgesehen werden. Demnach sind die Prozesselemente 1201 fest
verdrahtet und in einer vorgegebenen Reihenfolge angeordnet. Nachteilig an
dem Pipeline-Betrieb ist, dass eine Vertauschung der Prozessreihenfolge
beispielsweise in einem ASIC (Application Specific Integrated Circuit)
nicht möglich
ist. Darüber
hinaus können
wie in 13 dargestellt die Prozesselemente 1301 untereinander über massiv-parallele Busse verbunden
werden. Mit der in 13 dargestellten Architektur
ist zwar ein Datenaustausch zwischen den Prozesselementen 1301 nacheinander
möglich.
Nachteilig ist, dass bei gleichzeitigen Buszugriffsanfragen der
Prozesselemente 1301 Wartezeiten entstehen können. Derartige
parallele Strukturen sind ferner sehr ressourcenaufwendig.
-
Wie
in 11 dargestellt kann der Datenaustausch zwischen
Prozesselementen 1101 ferner durch die Verwendung eines
gemeinsamen Multiport-Speichers 1103 (Shared Cache) realisiert
werden, welcher von allen Prozesselementen 1101 gleichzeitig
genutzt wird. Gewöhnlich
verfügen
Multiport-Speicher über
mehrere Adress- und Datenbusse, so genannte Ports, mit deren Hilfe
gleichzeitig auf den Speicher zugegriffen werden kann. Die Realisierung
eines Multiport-Speichers ist jedoch aufgrund des notwendigen Speicherarbitrierungsmechanismus
ressourcenaufwendig. Darüber
hinaus erhöht sich
bei der Verwendung der Multiport-Speicher der Flächenbedarf eines Datenwortes
auf dem Chip, weil der vorgenannte Arbitrierungsmechanismus in jedem Datenwort
des Speichers implementiert werden muss. Mit zunehmender Port-Anzahl
wird der Flächenbedarf
eines Datenwortes daher maßgeblich durch
den Arbitrierungsmechanismus bestimmt, wodurch ein ungünstiges
Verhältnis
zwischen der Speichermenge und der verfügbaren Chipfläche entsteht.
-
Der
Datenaustausch zwischen den Prozesselementen ist ferner unter Verwendung
der in 10 dargestellten Architektur
möglich.
Dabei werden lokale Speicher 1001 eingesetzt, welche den
so genannten Distributed Cache bilden und in den einzelnen Prozesselementen 1103 in
Verbindung mit massiv-parallelen Bussen implementiert werden. Der
Datenaustausch zwischen den Prozesselementen 1103 erfolgt
weiterhin sequenziell. Durch die Verteilung der Daten auf die Cache-Speicher 1001 und
die Bus-Kommunikation ist jedoch ein Mechanismus zur Sicherstellung
der Cache-Kohärenz
notwendig. Ferner ist aufgrund der parallelen Bus-Struktur die Realisierung
der in 10 dargestellten Architektur
ressourcenaufwendig.
-
Offenbarung der Erfindung
-
Die
Erfindung basiert auf der Erkenntnis, dass ein effizienter Datenaustausch
zwischen Prozesselementen durch separate Speicher, beispielsweise
durch separate Cache- Speicher,
welche über eine
konfigurierbare Verdrahtungsmatrix mit jedem Prozesselement verbunden
sein können,
realisiert werden kann. Die Prozesselemente greifen demnach direkt
auf denjenigen Speicher zu, der für sie zum Verarbeitungszeitpunkt
relevant ist. Daher entfällt das
permanente Kopieren der Daten zwischen den Prozesselementen, wodurch
eine höhere
Datenverfügbarkeit
bei geringerer Verlustleistung gewährleistet ist. Dadurch entsteht
eine blockorientierte gemeinsame Speicherstruktur auf der Basis
einer verteilten Speicherarchitektur, welche mit einem reduzierten
Ressourcenaufwand implementiert werden kann, weil beispielsweise
die im Falle eines Shared-Cache aufgrund der Vielzahl der Ports
notwendige Arbitrierung entfällt.
-
Die
Erfindung betrifft eine Speicheranordnung mit einem ersten Speicher,
einem zweiten Speicher, einem ersten Speicherzugriffsanschluss,
einem zweiten Speicherzugriffsanschluss und einem konfigurierbaren
Verbindungsmatrixelement, das vorgesehen ist, voneinander unabhängige Verbindungen zwischen
dem ersten Speicher und dem ersten Speicherzugriffsanschluss oder
dem zweiten Speicherzugriffsanschluss und zwischen dem zweiten Speicher und
dem ersten Speicherzugriffsanschluss oder dem zweiten Speicherzugriffsanschluss
bereitzustellen. Durch die Konfigurierbarkeit des Verbindungsmatrixelementes
ist die Speicheranordnung daher innerhalb von beliebigen Multiprozessorumgebungen
insbesondere zur parallelen Verarbeitung von beispielsweise komplexen
Signalverarbeitungsalgorithmen einsetzbar.
-
Gemäß einer
Ausführungsform
sind der erste Speicher und der zweite Speicher Cache-Speicher, insbesondere
Dualport-Memory-Cache-Speicher oder Singleport-Memory-Cache-Speicher. Dadurch
ist ein auf bekannte Strukturen zurückgeführtes Hardware-Design möglich.
-
Gemäß einer
Ausführungsform
ist das konfigurierbare Verbindungsmatrixelement vorgesehen, die
voneinander unabhängigen
Verbindungen zeitgleich bereitzustellen. Dadurch kann gewährleistet werden,
dass beispielsweise an unterschiedliche Speicherzugriffanschlüsse angeschlossene
Prozessorelemente gleichzeitig auf unterschiedliche Speicher zugreifen
können.
-
Gemäß einer
Ausführungsform
sind die voneinander unabhängigen
Verbindungen vorkonfiguriert und unveränderlich. Durch die feste Anordnung der
Verbindungen kann die Speicheranordnung beispielsweise einem vorgegebenen
Signalverarbeitungsablauf bereits im Vorfeld angepasst werden.
-
Gemäß einer
Ausführungsform
ist das konfigurierbare Verbindungsmatrixelement ein programmierbares
Element, insbesondere ein FPGA (FPGA: Field Programmable Gate Array).
Durch ist eine einfache Konfigurierbarkeit des Verbindungsmatrixelementes
möglich.
-
Gemäß einer
Ausführungsform
umfasst das konfigurierbare Verbindungsmatrixelement einen ersten
Adressmultiplexer zum adressierbaren Verbinden des ersten Speichers
mit dem ersten Speicherzugriffsanschluss und/oder mit dem Speicherzugriffsanschluss
im Multiplexbetrieb, und einen zweiten Adressmultiplexer zum adressierbaren
Verbinden des zweiten Speichers mit dem ersten Speicherzugriffsanschluss
und/oder mit dem Speicherzugriffsanschluss im Multiplexbetrieb sowie
ein Arbitrierungselement zum Arbitrieren der adressierbaren Verbindungen.
Auf der Basis der Adressmultiplexer kann eine effiziente Speicherarbitrierung
realisiert werden.
-
Die
Erfindung betrifft ferner eine Signalverarbeitungsarchitektur mit
der erfindungsgemäßen Speicheranordnung,
einem ersten Signalverarbeitungselement, insbesondere einem Bilddatenverarbeitungselement,
das zum Zugreifen auf den ersten Speicher oder den zweiten Speicher
mit dem ersten Speicherzugriffsanschluss verbunden ist, und einem zweiten
Signalverarbeitungselement, insbesondere einem Bilddatenverarbeitungselement,
das zum Zugreifen auf den ersten Speicher oder den zweiten Speicher
mit dem zweiten Speicherzugriffsanschluss verbunden ist.
-
Gemäß einer
Ausführungsform
ist das erste Signalverarbeitungselement ausgebildet, über das Verbindungsmatrixelement
auf den ersten Speicher zum Verarbeiten der darin abgelegten Daten
zuzugreifen und über
das Verbindungsmatrixelement auf den zweiten Speicher zuzugreifen,
um darin ein Ergebnis der Verarbeitung dieser Daten zu speichern, wobei
das zweite Signalverarbeitungselement ausgebildet ist, über das
Verbindungsmatrixelement auf den zweiten Speicher zum Weiterverarbeiten
des darin abgelegten Ergebnisses der Verarbeitung der im Speicher
abgelegten Daten zuzugreifen.
-
Durch
die erfindungsgemäße Speicheranordnung
kann eine effiziente Abarbeitung von Signalverarbeitungsschritten
durch die Signalverarbeitungselemente gewährleistet wer den. Die Speicher können beispielsweise
als Cache-Speicher zum Bereitstellen von verarbeitbaren Daten sowie
zum Ablegen von Zwischenergebnissen eingesetzt werden.
-
Die
Erfindung betrifft ferner ein Verfahren zum Bereitstellen von Verbindungen
zwischen einem ersten Speicher, einem zweiten Speicher, einem ersten
Speicherzugriffsanschluss sowie einem zweiten Speicherzugriffsanschluss
einer Speicheranordnung mit Bereitstellen konfigurierbarer und voneinander unabhängiger Verbindungen
mittels eines konfigurierbaren Verbindungsmatrixelementes zwischen dem
ersten Speicher und dem ersten Speicherzugriffsanschluss oder dem
zweiten Speicherzugriffsanschluss und zwischen dem zweiten Speicher und
dem ersten Speicherzugriffsanschluss oder dem zweiten Speicherzugriffsanschluss.
-
Die
Erfindung betrifft ferner ein Signalverarbeitungsverfahren unter
Verwendung der erfindungsgemäßen Signalverarbeitungsarchitektur
und der erfindungsgemäßen Speicheranordnung
mit Zugreifen über
das Verbindungsmatrixelement auf den ersten Speicher zum Verarbeiten
der darin abgelegten Daten, Zugreifen über das Verbindungsmatrixelement auf
den zweiten Speicher, um darin ein Ergebnis der Verarbeitung dieser
Daten zu speichern, und Zugreifen über das Verbindungsmatrixelement
auf den zweiten Speicher zum Weiterverarbeiten des darin abgelegten
Ergebnisses der Verarbeitung der im Speicher abgelegten Daten zuzugreifen.
-
Zeichnungen
-
Weitere
Ausführungsbeispiele
werden Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es
zeigen:
-
1 eine
Speicheranordnung;
-
2 eine
Systemarchitektur;
-
3 eine
Systemarchitektur;
-
4 eine
Systemarchitektur;
-
5 einen
Speicherstruktur;
-
6 eine
Systemarchitektur;
-
7 einen
Ablauf eines Signalverarbeitungsverfahrens;
-
8 ein
Datenflussdiagramm;
-
9 eine
Systemarchitektur;
-
10 eine
Systemarchitektur;
-
11 eine
Systemarchitektur;
-
12 eine
Systemarchitektur; und
-
13 eine
Systemarchitektur.
-
Beschreibung der Ausführungsformen
-
1 offenbart
eine Speicheranordnung mit einem ersten Speicher 101, einem
zweiten Speicher 103, einem ersten Speicherzugriffsanschluss 105,
einem zweiten Speicherzugriffsanschluss 107 sowie einem
konfigurierbaren Verbindungsmatrixelement 109. Sowohl die
Speicher 101, 103 als auch die Speicherzugriffsanschlüsse 105, 107 sind
mittels elektrischer Verbindungen mit dem konfigurierbaren Verbindungsmatrixelement 109 verbunden.
-
Das
konfigurierbare Verbindungsmatrixelement 109 ist beispielsweise
vorgesehen, konfigurierbare elektrische Verbindungen zwischen den
Speicherzugriffsanschlüssen 105 sowie 107 einerseits und
den Speichern 101 sowie 103 andererseits nach Art
einer Verbindungsmatrix bereitzustellen. So kann beispielsweise über den
Speicherzugriffsanschluss 105 sowohl auf den ersten Speicher 101 als
auch auf den zweiten Speicher 103 zugegriffen werden. Demgegenüber kann
die Verbindungsmatrix beispielsweise eine Verbindung zwischen dem
Speicherzugriffsanschluss 107 und dem Speicher 101 unterbinden,
so dass über
den Speicherzugriffsanschluss 107 ausschließlich auf
den zweiten Speicher 103 zugegriffen werden kann. Die Speicher 101 uns 103 sind
beispielsweise Cache-Speicher,
die zur temporärer
Daten- und Ergebnisspeicherung eingesetzt werden. An die Speicherzugriffsanschlüsse 105 und 107 sind
Signalverarbeitungselemente, beispielsweise Prozesselemente, anschließbar, welche
beispielsweise einen Signalverarbeitungsalgorithmus abarbeiten.
-
2 zeigt
eine Systemarchitektur mit einer Mehrzahl von Speichern 201,
beispielsweise Cache-Speichern, sowie mit einer Mehrzahl von Signalverarbeitungselementen 203,
beispielsweise Prozesselementen. Die Signalverarbeitungselemente 203 sind
mit den Speichern 201 nach Art einer Verbindungsmatrix
durch ein Verbindungsmatrixelement 205 verbunden. Dabei
sind jeweils Speicherzugriffsanschlüsse vorgesehen, über die
die Signalverarbeitungselemente 203 an das Verbindungsmatrixelement 205 anschließbar sind.
Das Verbindungsmatrixelement 205 ist bevorzugt konfigurierbar
und kann beispielsweise als ein Crossbar-Switch oder als ein programmierbarer
Prozessor oder als ein programmierbares FPGA (FPGA: Field Programmable
Gate Array) ausgebildet sein.
-
3 zeigt
die in 2 dargestellte Systemarchitektur, bei der zusätzlich zu
den mit dem Verbindungsmatrixelement 205 verbundenen Signalverarbeitungselementen 203,
beispielsweise Prozesselementen, ein weiteres Signalverarbeitungselement 301 vorgesehen
ist. Das weitere Signalverarbeitungselement 301 ist bevorzugt
mit jedem der Signalverarbeitungselemente 203 beispielsweise über einen
Kommunikationsbus verbunden. Bevorzugt ist das weitere Signalverarbeitungselement 301 als
eine übergeordnete
Prozesseinheit, beispielsweise als eine CPU (CPU: Central Processig
Unit) ausgeführt, um
die Signalverarbeitungselemente 203 zu koordinieren. Diese übergeordnete
Prozesseinheit 301 hat beispielsweise Kenntnis darüber, wann
welches Prozesselement 203 welche in dem jeweiligen Cache-Speicher 201 abgelegten
Daten bearbeiten darf. Somit wird ein gleichzeitiger Datenzugriff
mehrerer Prozesselemente 203 auf ein Datenwort bei gleichzeitiger
Erfüllung
des Cache-Kohärenz-Erfordernisses
vermieden.
-
Aus
Ressourcen- und Kostengründen
ist die Größe eines
Cache-Speichers beschränkt.
Falls die Prozesselemente 303 beispielsweise einen Datenbereich
bearbeiten sollen, der größer ist
als die zur Verfügung
stehende Cache-Speichergröße, so kann
die Daten- bzw. Signalverarbeitung bereichsweise erfolgen. Die Datenbereiche
können
dabei beispiels weise in den Cache-Speichern von einem externen Speicher
beispielsweise nacheinander geladen werden. Hierfür ist bevorzugt
ein weiterer Kontrollmechanismus und ein weiterer Port in jedem
Cache vorzusehen. 4 zeigt eine derartige Systemarchitektur
am Beispiel der in 3 dargestellten Systemarchitektur.
-
Dabei
ist beispielsweise ein Kommunikationsbus 401 vorgesehen,
an den Speicher 403, beispielsweise Cache-Speicher, angebunden
sind. Jeder der Speicher 403 ist in der vorstehend beschriebenen
Weise mit dem Verbindungsmatrixelement 205 verbunden. Ferner
ist ein weiterer Speicher 405 vorgesehen, welcher ebenfalls
an den Kommunikationsbus 401 angebunden ist. Das weitere
Signalverarbeitungselement 301 ist ebenfalls an den Kommunikationsbus 401 angebunden,
so dass eine effiziente Steuerung eines Datenflusses zwischen dem
weiteren Speicherelement 405, der beispielsweise als ein
SDRAM-Speicher ausgeführt ist
(SDRAM: Synchronous Dynamic Random Access Memory), gewährleistet
ist. Der Kontrollmechanismus kann beispielsweise mittels des weiteren
Signalverarbeitungselementes 301 realisiert werden, der
dafür sorgt,
dass immer die von dem jeweiligen Prozesselement 201 gewünschten
Datenbereiche aus dem externen Speicher 405, der beispielsweise
ein Massenspeicher ist, in dem jeweiligen Cache-Speicher 403 vorliegen.
Ein derartiger Kontrollmechanismus kann ferner dazu beitragen, dass
geänderte
Datenbereiche des jeweiligen Cache-Speichers 403 zurück in den
weiteren Speicher 405 geschrieben werden. Dabei kann die
Verbindung zwischen dem weiteren Speicher 405 und den einzelnen
Cache-Speichern 403 über
den Kommunikationsbus 401, der beispielsweise ein standardisierter
Prozessorbus ist, erfolgen. Hierfür ist es vorteilhaft, ein Interface
zwischen den Cache-Speichern 403 und dem Kommunikationsbus 401 vorzusehen.
-
Gemäß einer
Ausführungsform
ist es nicht erforderlich, dass jeder Cache-Speicher 403 einen Zugriff
auf den Kommunikationsbus 401 erhält. Ist beispielsweise einer
der Cache-Speicher 403 nicht an
den Kommunikationsbus 401 angebunden, so kann auf diesen
Speicher ausschließlich über das Verbindungsmatrixelement 205 zugegriffen
werden.
-
5 zeigt
eine Struktur eines Cache-Speichers, der beispielsweise als einer
der in 4 dargestellten Cache-Speicher 401 eingesetzt
werden kann. Der Cache-Speicher umfasst eine Busschnittstelle 501,
einen Dualport-Speicherbereich 503 (Dualport-Memory), eine
Cache-Steuerung 505 (Cache-Control) sowie Kommunikationsverbindungen zwischen
der Busschnittstelle 501, dem Dualport-Speicherbereich 503 und
der Cache-Steuerung 505. Die Busschnittstelle 501 kann
beispielsweise bidirektional mit einem in 5 nicht
dargestellten Bus kommunizieren. Der Dualport-Speicher 503 hat
ferner einen weiteren Port, mit dem eine beispielsweise bidirektionale
Verbindung mit einem Verbindungsmatrixelement hergestellt werden
kann. Über
die Cache-Steuerung 505, die ebenfalls an das Verbindungsmatrixelement
angebunden sein kann, kann beispielsweise ein Signalverarbeitungselement
oder ein Kontrollmechanismus auf den Datenfluss zwischen dem Cache-Speicher und beispielsweise
einem externen Speicher einwirken.
-
6 zeigt
eine Systemarchitektur mit einem ersten Speicher 601, beispielsweise
einem Cache-Speicher, und einem zweiten Speicher 603, beispielsweise
einem weiteren Cache-Speicher.
Ferner umfasst die Systemarchitektur ein erstes Signalverarbeitungselement 605 und
ein zweites Signalverarbeitungselement 607. Die Signalverarbeitungselemente 605 und 607 können beispielsweise
Prozesselemente sein.
-
Die
Signalverarbeitungselemente 605 sowie 607 greifen über ein
Verbindungsmatrixelement auf die Speicherelemente 601 und 603 zu.
Jedem der Speicher 601 sowie 603 sind jeweils
ein Adressmultiplexer 609, 611, ein Schreibdatenmultiplexer 613 und 615 sowie
ein Lesedatenmultiplexer 617 und 619 zugeordnet.
Zur Speicherarbitrierung ist optional ein Arbitrierungselement 621 vorgesehen,
das mit jedem Speicherelement 601 und 603 verbunden
ist. Die Signalverarbeitungselemente 605 und 607 weisen
Anschlüsse
auf, welche mit dem Arbitrierungselement 621 verbunden
sind. Das Arbitrierungselement 621 weist ferner einen ersten
und einen zweiten Ausgang auf, wobei der erste Ausgang zur Steuerung
der dem ersten Speicherelement 601 zugeordneten Elemente 609, 613 und 617 und
wobei der zweite Ausgang zur Steuerung der dem zweiten Speicherelement 603 zugeordneten
Elemente 611, 615 und 619 vorgesehen ist.
Das Arbitrierungselement 621 weist ferner einen Fehlerausgang 623 auf, über den
ein Fehlersignal ausgebbar ist.
-
Das
Arbitrierungselement 621 ist insbesondere dann optional,
wenn die Koordinierung der Speicherbereichszugriffe von einem übergeordneten Prozesselement
gesteuert wird. Soll die Koordinierung der Speicherzugriffe jedoch
in Eigenverantwortung der Prozesselemente 605 bzw. 607 durchgeführt werden,
so ist das Vorsehen des Arbitrierungselementes 621 in der
Multiplexerschaltung zur Verhinderung von Speicherkonflikten vorteilhaft.
So kann das Arbitrierungselement 621 beispielsweise den
Adressmultiplexer 609 deaktivie ren, um zu verhindern, dass
das erste Prozesselement 605 auf den ersten Speicher 601 zugreift.
Durch die Aktivierung oder Deaktivierung des jeweiligen Schreibdatenmultiplexers 613 bzw. 615 oder
des jeweiligen Lesedatenmultiplexers 617 bzw. 619 können weitere
Speicherzugriffe koordiniert werden.
-
Jeder
Adressmultiplexer 609 und 611 ist mit jedem der
Prozesselemente 605 und 607 verbunden. Dadurch
kann jedes Prozesselement 605, 607 auf jeden Speicher 601 bzw. 603 zugreifen.
In Analogie hierzu sind die Schreibdatenmultiplexer 613 sowie 615 mit
jedem der Prozesselemente 605 und 607 verbunden,
welche darüber
Daten in jeden der Speicher 601 bzw. 603 hineinschreiben
können.
Die Lesedatenmultiplexer 617 und 619 verbinden
ferner jeden Speicher 601 und 603 mit jedem der
Prozesselemente 605 bzw. 607, so dass jedes Prozesselement 605, 607 die
Daten aus dem jeweiligen Speicher 601 bzw. 603 auslesen
kann. Die Zugriffssteuerung kann dabei durch das Arbitrierungselement 621 vorgenommen
werden.
-
7 veranschaulicht
einen zeitlichen Ablauf eines Signalverarbeitungsverfahrens, bei
dem die Signalverarbeitungselemente 701 und 703,
beispielsweise Prozesselemente, über
ein Verbindungsmatrixelement 705 auf Speicher 707, 709, 711 und 713 zugreifen.
Die Speicher 707, 709, 711 und 713 sind
beispielsweise Cache-Speicher und greifen über einen Kommunikationsbus 715 auf
einen Massenspeicher 717, beispielsweise einen SDRAM, zu.
-
Der
Massenspeicher 717 ist in Datenbereiche D0, D1, ..., D5,
... unterteilt, in welchen Daten abgelegt sind, die von den Prozesselementen 701 bzw. 703 in
zeitlicher Reihenfolge, die beispielsweise durch den Ablauf eines
Bildverarbeitungsalgorithmus festgelegt ist, bearbeitet werden.
So können
beispielsweise zunächst
die Daten D0 in den Speicher-Cache 701 geladen
werden, wodurch der Speicher-Cache 707 Daten C0 enthält. Das
Signalverarbeitungselement 701 bearbeitet die Daten C0
entsprechend einem Signalverarbeitungsalgorithmus und legt ein Ergebnis
C2 in dem zweiten Speicher Speicher-Cache 709 ab. Das Ergebnis
C2 kann ferner beispielsweise im Speicherbereich D2 des Massenspeichers 717 abgelegt
werden. In einem weiteren Signalverarbeitungsschritt werden aus
dem Speicherbereich D1 des Massenspeichers 717 durch das
erste Signalverarbeitungselement 701 die Daten C1 in den
ersten Speicher-Cache 707 geladen. Das erste Signalverarbeitungselement 701 verarbeitet diese
Daten gemäß einem
weiteren Signalverarbei tungsschritt und legt ein Ergebnis dieser
Verarbeitung in Form von Daten C3 beispielsweise in dem dritten
Speicher-Cache 711 ab. Diese Ergebnisdaten C3 können ferner
in dem Speicherbereich D3 des Massenspeichers 717 abgelegt
werden.
-
Das
zweite Signalverarbeitungselement kann wiederum auf die dem Speicher 709 abgelegten Ergebnisdaten
C2 zugreifen, diese gemäß einem weiteren
Signalverarbeitungsschritt bearbeiten und die so entstandenen Ergebnisdaten
C4 in dem Speicher-Cache 713 ablegen. Diese Daten können beispielsweise
ferner in dem Speicherbereich D4 des Massenspeichers 717 abgelegt
werden. Liegen die Ergebnisdaten C3 in dem Speicher-Cache 711 vor, so
kann das zweite Signalverarbeitungselement hierauf zugreifen und
diese Daten weiterverarbeiten, um ein Verarbeitungsergebnis C5 zu
erhalten, das in Form von Daten in dem Speicher-Cache 713 abgelegt
werden kann. Die Ergebnisdaten C5 können wiederum in dem Speicherbereich
D5 des Massenspeichers 717 abgelegt werden. Der Datenfluss
kann beispielsweise von einer übergeordneten
Prozesseinheit, wie beispielsweise einer CPU (CPU: Central Processing
Unit) gesteuert werden.
-
In 7 sind
beispielhaft zwei Signalverarbeitungselemente und vier Speicherelemente
dargestellt. Das in 7 veranschaulichte Konzept kann jedoch
auf beliebig viele Signalverarbeitungselemente und beliebig viele
Speicherelemente ausgeweitet werden.
-
8 veranschaulicht
eine zeitliche Abfolge der Daten C0, C1, C2, C3, C4 und C5. Dabei
werden die Daten C0 und C1 in einem Verarbeitungsabschnitt 801 durch
das erste Signalverarbeitungselement 701 beispielsweise
ausgelesen. In einem Verarbeitungsabschnitt 803 werden
die Ergebnisdaten C2 und C3 durch das erste Signalverarbeitungselement 703 ausgegeben.
In einem weiteren Signalverarbeitungsabschnitt 805 werden
die Daten C2 und C3 durch das zweite Signalverarbeitungselement 703 eingelesen.
Das zweite Signalverarbeitungselement 703 verarbeitet diese
Daten und gibt in einem Verarbeitungsabschnitt 807 die
Ergebnisdaten C4 und C5 aus. Wie durch die senkrecht gestrichelte
Linie 809 dargestellt wird bevorzugt jeder Speicher-Cache 707, 709, 711 bzw. 713 nur
einmal adressiert, um Zugriffskonflikte zu vermeiden.
-
9 zeigt
ein weiteres Ausführungsbeispiel einer
Speicherarchitektur umfassend zwei Signalverarbeitungselemente 901 und 903 sowie
zwei Speicher 905 und 907. Die Speicher 905 und 907 können beispielsweise
Cache-Speicher sein, während
die Signalverar beitungselemente 901 und 903 beispielsweise
Prozesselemente sein können.
Die Signalverarbeitungselemente 901 und 903 greifen über ein Verbindungsmatrixelement 909 auf
die Speicher 905 und 907 zu. Das Verbindungsmatrixelement 909 kann
beispielsweise ein konfigurierbarer Crossbar-Switch sein, der beispielsweise
eine vorkonfigurierte Verbindungsmatrix, welche die in 9 dargestellten
Elemente miteinander verbindet, aufweist.
-
Ein
Vorteil der Erfindung ist, dass alle Prozesselemente direkt mit
einem oder mit mehreren beliebigen Speichern, beispielsweise Cache-Speichern,
verbunden sein können.
Die Speicher können beispielsweise
Ressourcen schonende Dualport-Speicher sein, so dass die erfindungsgemäße Speicherarchitektur
kostengünstig
realisiert werden kann. Das Verbindungsmatrixelement kann beispielsweise
als ein Multiplexer ausgelegt sein, welcher festlegt, welcher Speicher-Cache
mit welchem Signalverarbeitungselement verbunden sein soll. Darüber hinaus
können
bevorzugt alle Signalverarbeitungselemente parallel auf die Cache-Speicher zugreifen,
was die Verarbeitungsgeschwindigkeit erhöht. Dabei ist ein Umkopieren
der Daten von einem Signalverarbeitungselement zum anderen nicht
notwendig, weil der Datenaustausch durch ein einfaches Umschalten
zwischen den Speichern realisiert werden kann. Die Verlustleistung
kann ferner durch den Wegfall des Datentransfers zwischen den Signalverarbeitungselementen
insbesondere über
einen Kommunikationsbus signifikant reduziert werden, weil die hierfür notwendige
Funktionalität
entfällt.
Die Speicher können
ferner eine Zugriffsmöglichkeit
auf einen oder auf mehrere gemeinsame Massenspeicher aufweisen,
so dass die Daten zwischen den Speichern und dem Massenspeicher
bei Bedarf ausgetauscht werden können.
Dabei kann beispielsweise ein Kontrollmechanismus in den Speichern
ein Speicherabbild des Massenspeichers im eigenen Speicher erzeugen.
Der Kontrollmechanismus in den Speichern kann ferner veränderte Datenbereiche
in den Massenspeicher zurückschreiben,
was die Leistungsfähigkeit
der erfindungsgemäßen Struktur
erhöht.
-
Somit
wird eine Ressourcen schonende Speicherarstrunktur zur Gewährleistung
einer höheren
Datenverfügbarkeit
in massiv-parallelen Signalverarbeitungssystemen bereitgestellt.
Das Verbindungsmatrixelement kann beispielsweise als eine Verschaltungsmatrix,
beispielsweise als ein Multiplexer oder ein Crossbar-Switch zwischen
den Signalverarbeitungselementen und den verteilten Speichern realisiert
werden. Die Speicher können
ferner als Dualport-Cache-Speicher ausgelegt sein. Gemäß einer
weiteren Ausführungsform können die
Dualport-Cache-Speicher durch Single-Port-Cache-Speicher in Zusammenhang
mit beispielsweise einem Zeitmultiplexzugriffsverfahren ersetzt
werden. Durch eine geeignete Programmierung kann so eine weitere
Verringerung des Ressourcenbedarfs erzielt werden. Das Verbindungsmatrixelement
kann ferner durch einen Tri-State-Bus ersetzt werden, was eine besonders
Ressourcen schonende Implementierung in einem ASIC ermöglicht.