Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY ARRANGEMENT AND MEMORY ARCHITECTURE
Document Type and Number:
WIPO Patent Application WO/2010/012566
Kind Code:
A1
Abstract:
The invention relates to a memory arrangement comprising a first memory (101), a second memory (103), a first memory access connection (105), a second memory access connection (107), and a configurable interconnection matrix element (109), which is provided to furnish interconnections which are independent of each other between the first memory (101) and the first memory access connection (105) or the second memory access connection (105), and between the second memory (101) and the first memory access connection (105) or the second memory access connection (105).

Inventors:
LOEWE ANDREAS (DE)
ZENDER ARNE (DE)
NIEHSEN WOLFGANG (DE)
Application Number:
PCT/EP2009/058546
Publication Date:
February 04, 2010
Filing Date:
July 07, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
LOEWE ANDREAS (DE)
ZENDER ARNE (DE)
NIEHSEN WOLFGANG (DE)
International Classes:
G06F13/16; G06F12/08; G06F12/0813; G06F13/40; G06F15/173
Foreign References:
US6070003A2000-05-30
US5502683A1996-03-26
US6141728A2000-10-31
US20030229770A12003-12-11
Attorney, Agent or Firm:
ROBERT BOSCH GMBH (DE)
Download PDF:
Claims:
Ansprüche

1. Speicheranordnung, mit:

einem ersten Speicher (101);

einem zweiten Speicher (103);

einem ersten Speicherzugriffsanschluss (105);

einem zweiten Speicherzugriffsanschluss (107); und

einem konfigurierbaren Verbindungsmatrixelement (109), das vorgesehen ist, voneinander unabhängige Verbindungen zwischen dem ersten Speicher (101) und dem ersten Speicherzugriffsanschluss (105) oder dem zweiten Speicherzugriffsanschluss (105) und zwischen dem zweiten Speicher (101) und dem ersten Speicherzugriffs- anschluss (105) oder dem zweiten Speicherzugriffsanschluss (105) bereitzustellen.

2. Speicheranordnung gemäß Anspruch 1, wobei der erste Speicher (101) und der zweite Speicher (103) Cache-Speicher, insbesondere Dualport- Memory- Cache- Speicher, sind.

3. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei das konfigurierbare Verbindungsmatrixelement (109) vorgesehen ist, die voneinander unabhängigen Verbindungen zeitgleich bereitzustellen.

4. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei die voneinander unabhängigen Verbindungen vorkonfiguriert und unveränderlich sind.

5. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei das konfigurierbare Verbindungsmatrixelement (109) ein programmierbares Element, insbesondere ein FPGA (FPGA: Field Programmable Gate Array), ist.

6. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei das konfigu- rierbare Verbindungsmatrixelement (109) einen ersten Adressmultiplexer zum adressierbaren Verbinden des ersten Speichers (101) mit dem ersten Speicher- zugriffsanschluss (105) und/oder mit dem Speicherzugriffsanschluss (105) im Multiplexbetrieb, einen zweiten Adressmultiplexer zum adressierbaren Verbinden des zweiten Speichers (103) mit dem ersten Speicherzugriffsanschluss (105) und/oder mit dem Speicherzugriffsanschluss (105) im Multiplexbetrieb sowie ein Arbitrierung- selement zum Arbitrieren der adressierbaren Verbindungen umfasst.

7. Signalverarbeitungsarchitektur, mit:

der Speicheranordnung gemäß einem der Ansprüche 1 bis 6;

einem ersten Signalverarbeitungselement, insbesondere einem Bilddatenverarbeitungselement, das zum Zugreifen auf den ersten Speicher (101) oder den zweiten Speicher (103) mit dem ersten Speicherzugriffsanschluss (105) verbunden ist; und

einem zweiten Signalverarbeitungselement, insbesondere einem Bilddatenverarbeitungselement, das zum Zugreifen auf den ersten Speicher (101) oder den zweiten Speicher (103) mit dem zweiten Speicherzugriffsanschluss (107) verbunden ist.

8. Signalverarbeitungsarchitektur gemäß Anspruch 7, wobei das erste Signalverarbeitungselement ausgebildet ist, über das Verbindungsmatrixelement (109) auf den ersten Speicher (101) zum Verarbeiten der darin abgelegten Daten zuzugreifen und über das Verbindungsmatrixelement (109) auf den zweiten Speicher (103) zuzugreifen, um darin ein Ergebnis der Verarbeitung dieser Daten zu speichern, und wobei das zweite Signalverarbeitungselement ausgebildet ist, über das Verbindungsmatrixelement (109) auf den zweiten Speicher (103) zum Weiterverarbeiten des darin abgelegten Ergebnisses der Verarbeitung der im Speicher (101) abgelegten Daten zuzugreifen.

9. Verfahren zum Bereitstellen von Verbindungen zwischen einem ersten Speicher, einem zweiten Speicher, einem ersten Speicherzugriffsanschluss sowie einem zweiten Speicherzugriffsanschluss (107) 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.

10. Signalverarbeitungsverfahren unter Verwendung der Signalverarbeitungsarchitektur gemäß Anspruch 7 oder 8 mit der Speicheranordnung gemäß einem der Ansprüche 1 bis 6, mit:

Zugreifen über das Verbindungsmatrixelement auf den ersten Speicher zum Verar- beiten 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.

Description:
Beschreibung

Titel

Speicheranordnung und Speicherarchitektur

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 Fig. 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 Fig. 13 dargestellt die Prozesselemente 1301 untereinander über massiv- parallele Busse verbunden werden. Mit der in Fig. 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 Fig. 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 Speich- erarbitrierungsmechanismus 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 imp- lementiert 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 Fig. 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 Fig. 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 Speicherzugriffsan- schluss 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 Multiprozessor- umgebungen 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 Ar- ray). 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 Ergeb- nisses 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 Spei- cherzugriffsanschluss.

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:

Fig. 1 eine Speicheranordnung;

Fig. 2 eine Systemarchitektur;

Fig. 3 eine Systemarchitektur;

Fig. 4 eine Systemarchitektur; Fig. 5 einen Speicherstruktur;

Fig. 6 eine Systemarchitektur;

Fig. 7 einen Ablauf eines Signalverarbeitungsverfahrens;

Fig. 8 ein Datenflussdiagramm;

Fig. 9 eine Systemarchitektur;

Fig. 10 eine Systemarchitektur;

Fig. 11 eine Systemarchitektur;

Fig. 12 eine Systemarchitektur; und

Fig. 13 eine Systemarchitektur.

Beschreibung der Ausführungsformen

Fig. 1 offenbart eine Speicheranordnung mit einem ersten Speicher 101, einem zweiten Speicher 103, einem ersten Speicherzugriffsanschluss 105, einem zweiten Speicher- zugriffsanschluss 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 ver- bunden.

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 Verbin- dungsmatrix 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 Signalverarbeitungsalgo- rithmus abarbeiten.

Fig. 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 Spei- ehern 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 program- mierbares FPGA (FPGA: Field Programmable Gate Array) ausgebildet sein.

Fig. 3 zeigt die in Fig. 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 Processing 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. Fig. 4 zeigt eine derartige Systemarchitektur am Beispiel der in Fig. 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.

Fig. 5 zeigt eine Struktur eines Cache-Speichers, der beispielsweise als einer der in Fig. 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 Fig. 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 Ver- bindungsmatrixelement angebunden sein kann, kann beispielsweise ein Signalverarbeitungselement oder ein Kontrollmechanismus auf den Datenfluss zwischen dem Cache- Speicher und beispielsweise einem externen Speicher einwirken.

Fig. 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 Schreibdatenmultiple- xers 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 Arbitrierungsele- ment 621 vorgenommen werden.

Fig. 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 DO, Dl, ..., 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 DO in den Speicher- Cache 701 geladen werden, wodurch der Speicher-Cache 707 Daten CO enthält. Das Signalverarbeitungselement 701 bearbeitet die Daten CO 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 Massen- Speichers 717 abgelegt werden. In einem weiteren Signalverarbeitungsschritt werden aus dem Speicherbereich Dl des Massenspeichers 717 durch das erste Signalverarbeitungselement 701 die Daten Cl 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 abge- legten 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 Da- ten 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 Fig. 7 sind beispielhaft zwei Signalverarbeitungselemente und vier Speicherelemente dargestellt. Das in Fig. 7 veranschaulichte Konzept kann jedoch auf beliebig viele Signalverarbeitungselemente und beliebig viele Speicherelemente ausgeweitet werden.

Fig. 8 veranschaulicht eine zeitliche Abfolge der Daten CO, Cl, C2, C3, C4 und C5. Dabei werden die Daten CO und Cl 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.

Fig. 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 Fig. 9 dargestellten Elemente miteinander verbindet, auf- weist.

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 bereitge- stellt. 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.