WO2010012566A1 - Memory arrangement and memory architecture - Google Patents

Memory arrangement and memory architecture Download PDF

Info

Publication number
WO2010012566A1
WO2010012566A1 PCT/EP2009/058546 EP2009058546W WO2010012566A1 WO 2010012566 A1 WO2010012566 A1 WO 2010012566A1 EP 2009058546 W EP2009058546 W EP 2009058546W WO 2010012566 A1 WO2010012566 A1 WO 2010012566A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
access port
signal processing
connection matrix
data
Prior art date
Application number
PCT/EP2009/058546
Other languages
German (de)
French (fr)
Inventor
Andreas Loewe
Arne Zender
Wolfgang Niehsen
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Publication of WO2010012566A1 publication Critical patent/WO2010012566A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories

Definitions

  • the data exchange between the process elements is further possible using the architecture shown in FIG.
  • local memories 1001 are used, which form the so-called distributed cache and are implemented in the individual process elements 1103 in conjunction with massively parallel buses.
  • the data exchange between the process elements 1103 continues to be sequential.
  • a mechanism for ensuring cache coherency is necessary.
  • the realization of the architecture shown in FIG. 10 is resource-consuming.
  • the invention is based on the recognition that an efficient exchange of data between process elements can be achieved by separate memories, for example by separate cache memories.
  • Memory which can be connected via a configurable wiring matrix with each process element, can be realized.
  • the process elements therefore access directly the memory which is relevant for them at the time of processing. Therefore, the permanent copying of the data between the process elements is eliminated, which ensures higher data availability with lower power loss.
  • the configurable connection matrix element is a programmable element, in particular an FPGA (FPGA: Field Programmable Gate Array).
  • FPGA Field Programmable Gate Array
  • the first signal processing element is configured to access the first memory for processing the data stored therein via the connection matrix element and to access the second memory via the connection matrix element in order to store therein a result of the processing of this data, wherein the second signal processing element is formed to access the second memory via the connection matrix element for further processing of the result stored in the processing of the data stored in the memory.
  • the memory arrangement according to the invention makes it possible to ensure efficient processing of signal processing steps by the signal processing elements.
  • the memories can be used, for example, as a cache for providing processable data and for storing intermediate results.
  • Each address multiplexer 609 and 611 is connected to each of the process elements 605 and 607. As a result, each process element 605, 607 can access each memory 601 or 603.
  • the write data multiplexers 613 and 615 are connected to each of the process elements 605 and 607, which can write data into each of the memories 601 and 603, respectively.
  • the read data multiplexers 617 and 619 further connect each memory 601 and 603 to each of the process elements 605 and 607, respectively, so that each process element 605, 607 can read the data from the respective memory 601 and 603, respectively.
  • the access control can be carried out by the Arbitr istsele- element 621.
  • connection matrix element 909 may, for example, be a configurable crossbar switch which has, for example, a preconfigured connection matrix which connects the elements shown in FIG. 9 together.
  • connection matrix element may, for example, be realized as an interconnection matrix, for example as a multiplexer or a crossbar switch between the signal processing elements and the distributed memories.
  • the memories may also be designed as a dual-port cache memory.
  • the dual port caches may be replaced with single port caches associated with, for example, a time division multiple access method. By appropriate programming, a further reduction in resource requirements can be achieved.
  • the connection matrix element can also be replaced by a tri-state bus, which enables a particularly resource-saving implementation in an ASIC.

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).

Description

Beschreibung description
Titeltitle
Speicheranordnung und SpeicherarchitekturMemory arrangement and memory architecture
Technisches GebietTechnical area
Die vorliegende Erfindung betrifft Anordnungen von Speichern, insbesondere Anordnungen von Cache-Speichern.The present invention relates to arrangements of memories, in particular arrangements of cache memories.
Stand der TechnikState of the art
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.The development towards ever more powerful control units in the field of digital signal processing continues unabated. A major reason for this is the large amount of data that has to be processed by increasingly complex algorithms. In the past, the computing power required to process these algorithms could be met by increasing the clock frequencies. It turns out, however, that a significant increase of clock frequencies in future systems, especially in future ECUs, is difficult to realize because with increasing frequencies, both the power loss and the temperature increase.
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.A solution to this problem could be to divide individual processing steps among several process elements at a lower clock rate. In order to achieve optimal performance of such systems, however, a powerful data exchange between the individual process elements is necessary. To realize a data exchange between such process elements, for example, the pipeline operation shown in FIG. 12 can be provided. Thus, the process elements 1201 are hard-wired and arranged in a predetermined order. A disadvantage of the pipeline operation is that an exchange of the process order, for example, in an ASIC (Application Specific Integrated Circuit) is not possible. Furthermore For example, as shown in FIG. 13, the process elements 1301 may be interconnected via massively parallel buses. Although the architecture illustrated in FIG. 13 permits a data exchange between the process elements 1301 one after the other. The disadvantage is that with simultaneous bus access requests of the process elements 1301 waiting times can arise. Such parallel structures are also very resource-consuming.
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.As shown in FIG. 11, the data exchange between process elements 1101 can also be realized by the use of a common multiport memory 1103 (shared cache), which is used by all process elements 1101 simultaneously. Typically, multiport memories have multiple address and data busses, called ports, that can be used to access memory at the same time. The realization of a multiport memory, however, is resource-consuming due to the necessary memory arbitering mechanism. Moreover, when using the multiport memories, the area requirement of a data word on the chip increases because the abovementioned arbitration mechanism must be implemented in each data word of the memory. Therefore, as the number of ports increases, the footprint of a data word is significantly determined by the arbitration mechanism, thereby creating an unfavorable ratio between the amount of memory and the available chip area.
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.The data exchange between the process elements is further possible using the architecture shown in FIG. In this case, local memories 1001 are used, which form the so-called distributed cache and are implemented in the individual process elements 1103 in conjunction with massively parallel buses. The data exchange between the process elements 1103 continues to be sequential. However, by distributing the data to the cache memories 1001 and the bus communication, a mechanism for ensuring cache coherency is necessary. Furthermore, due to the parallel bus structure, the realization of the architecture shown in FIG. 10 is resource-consuming.
Offenbarung der ErfindungDisclosure of the invention
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.The invention is based on the recognition that an efficient exchange of data between process elements can be achieved by separate memories, for example by separate cache memories. Memory, which can be connected via a configurable wiring matrix with each process element, can be realized. The process elements therefore access directly the memory which is relevant for them at the time of processing. Therefore, the permanent copying of the data between the process elements is eliminated, which ensures higher data availability with lower power loss. This results in a block-oriented common memory structure based on a distributed memory architecture, which can be implemented with a reduced amount of resources, because, for example, eliminates the need in the case of a shared cache due to the large number of ports arbitration.
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.The invention relates to a memory arrangement having a first memory, a second memory, a first memory access terminal, a second memory access terminal and a configurable connection matrix element which is provided, independent connections between the first memory and the first memory access terminal or the second memory access terminal and between the second memory and the first memory access port or the second memory access port. Due to the configurability of the connection matrix element, the memory arrangement can therefore be used within arbitrary multiprocessor surroundings, in particular for the parallel processing of, for example, complex signal processing algorithms.
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.According to one embodiment, the first memory and the second memory are cache memory, in particular dual-port memory cache memory or single-port memory cache memory. This makes possible a hardware design attributed to known structures.
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.According to one embodiment, the configurable connection matrix element is provided to provide the independent connections at the same time. This ensures that, for example, processor elements connected to different memory access connections can simultaneously access different memories.
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.According to one embodiment, the independent connections are preconfigured and fixed. Due to the fixed arrangement of the compounds, the Memory arrangement, for example, a predetermined signal processing sequence already be adapted in advance.
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.According to one embodiment, the configurable connection matrix element is a programmable element, in particular an FPGA (FPGA: Field Programmable Gate Array). By a simple configurability of the connection matrix element is possible.
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.According to one embodiment, the configurable connection matrix element comprises a first address multiplexer for addressably connecting the first memory to the first memory access port and / or to the memory access port in multiplex mode, and a second address multiplexer for addressably connecting the second memory to the first memory access port and / or to the memory access port in Multiplexing as well as an arbitration element for arbitrating the addressable connections. Based on the address multiplexer, efficient memory arbitration can be realized.
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.The invention further relates to a signal processing architecture comprising the memory arrangement according to the invention, a first signal processing element, in particular an image data processing element which is connected to the first memory access terminal for accessing the first memory or the second memory, and a second signal processing element, in particular an image data processing element, for accessing the first memory or the second memory is connected to the second memory access terminal.
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.According to one embodiment, the first signal processing element is configured to access the first memory for processing the data stored therein via the connection matrix element and to access the second memory via the connection matrix element in order to store therein a result of the processing of this data, wherein the second signal processing element is formed to access the second memory via the connection matrix element for further processing of the result stored in the processing of the data stored in the memory.
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.The memory arrangement according to the invention makes it possible to ensure efficient processing of signal processing steps by the signal processing elements. the. The memories can be used, for example, as a cache for providing processable data and for storing intermediate results.
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.The invention further relates to a method for providing connections between a first memory, a second memory, a first memory access port and a second memory access port of a memory device, providing configurable and independent connections by means of a configurable connection matrix element between the first memory and the first memory access port or the second Memory access port and between the second memory and the first memory access port or the second memory access port.
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.The invention further relates to a signal processing method using the inventive signal processing architecture and memory device accessing the first memory for accessing the data stored therein via the connection matrix element, accessing the second memory via the connection matrix element to store therein a result of the processing of that data and accessing the second memory via the connection matrix element to further process the stored result of processing the data stored in the memory.
Zeichnungendrawings
Weitere Ausführungsbeispiele werden Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:Further embodiments will be explained with reference to the accompanying drawings. Show it:
Fig. 1 eine Speicheranordnung;Fig. 1 a memory arrangement;
Fig. 2 eine Systemarchitektur;Fig. 2 is a system architecture;
Fig. 3 eine Systemarchitektur;3 shows a system architecture;
Fig. 4 eine Systemarchitektur; Fig. 5 einen Speicherstruktur;4 shows a system architecture; 5 shows a memory structure;
Fig. 6 eine Systemarchitektur;Fig. 6 is a system architecture;
Fig. 7 einen Ablauf eines Signalverarbeitungsverfahrens;Fig. 7 shows a flow of a signal processing method;
Fig. 8 ein Datenflussdiagramm;8 is a data flow diagram;
Fig. 9 eine Systemarchitektur;Fig. 9 is a system architecture;
Fig. 10 eine Systemarchitektur;Fig. 10 is a system architecture;
Fig. 11 eine Systemarchitektur;Fig. 11 is a system architecture;
Fig. 12 eine Systemarchitektur; undFig. 12 is a system architecture; and
Fig. 13 eine Systemarchitektur.Fig. 13 is a system architecture.
Beschreibung der AusführungsformenDescription of the embodiments
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.1 discloses a memory arrangement having a first memory 101, a second memory 103, a first memory access terminal 105, a second memory access terminal 107, and a configurable connection matrix element 109. Both the memories 101, 103 and the memory access terminals 105, 107 are electrically powered Connections to the configurable connection matrix element 109 connected.
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.The configurable connection matrix element 109 is provided, for example, to provide configurable electrical connections between the memory access terminals 105 and 107 on the one hand and the memories 101 and 103 on the other hand in the manner of a connection matrix. For example, both the first memory 101 and the second memory 103 can be accessed via the memory access port 105. On the other hand, the connection matrix can inhibit, for example, a connection between the memory access terminal 107 and the memory 101, so that only the second memory 103 can be accessed via the memory access port 107. The memories 101 and 103 are, for example, cache memories which are used for temporary data and result storage. To the memory access terminals 105 and 107 are signal processing elements, such as process elements, connected, which process, for example, a signal processing algorithm.
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.2 shows a system architecture with a plurality of memories 201, for example cache memories, as well as with a plurality of signal processing elements 203, for example process elements. The signal processing elements 203 are connected to the feeders 201 in the manner of a connection matrix by a connection matrix element 205. In each case memory access connections are provided, via which the signal processing elements 203 can be connected to the connection matrix element 205. The connection matrix element 205 is preferably configurable and may be designed, for example, as a crossbar switch or as a programmable processor or as a programmable FPGA (FPGA: Field Programmable Gate Array).
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.FIG. 3 shows the system architecture shown in FIG. 2, in which, in addition to the signal processing elements 203, for example process elements, connected to the connection matrix element 205, a further signal processing element 301 is provided. The further signal processing element 301 is preferably connected to each of the signal processing elements 203, for example via a communication bus. Preferably, the further signal processing element 301 is designed as a higher-level process unit, for example as a CPU (CPU: Central Processing Unit), in order to coordinate the signal processing elements 203. This higher-level process unit 301 has, for example, knowledge of when which process element 203 is allowed to process which data stored in the respective cache memory 201. Thus, simultaneous data access of multiple process elements 203 to a data word while satisfying the cache coherency requirement is avoided.
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.For resource and cost reasons, the size of a cache memory is limited. For example, if the process elements 303 are to process a data area which is larger than the available cache memory size, then the data or signal processing can take place in regions. The data areas can be For example, they may be loaded in the cache memories from an external memory sequentially. For this purpose, it is preferable to provide a further control mechanism and a further port in each cache. FIG. 4 shows such a system architecture using the example of the system architecture shown in FIG. 3.
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.In this case, for example, a communication bus 401 is provided, to which memory 403, for example cache memories, are connected. Each of the memories 403 is connected to the connection matrix element 205 in the manner described above. Furthermore, a further memory 405 is provided, which is also connected to the communication bus 401. The further signal processing element 301 is also connected to the communication bus 401, so that an efficient control of a data flow between the further memory element 405, which is embodied for example as an SDRAM memory (SDRAM: Synchronous Dynamic Random Access Memory), is ensured. The control mechanism can be realized, for example, by means of the further signal processing element 301, which ensures that the data areas desired by the respective process element 201 are always present in the respective cache memory 403 from the external memory 405, which is for example a mass memory. Such a control mechanism can also help to write changed data areas of the respective cache memory 403 back into the further memory 405. In this case, the connection between the further memory 405 and the individual cache memories 403 can take place via the communication bus 401, which is for example a standardized processor bus. For this purpose, it is advantageous to provide an interface between the cache memories 403 and the communication bus 401.
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.According to one embodiment, it is not necessary for each cache memory 403 to gain access to the communication bus 401. If, for example, one of the cache memories 403 is not connected to the communication bus 401, then this memory can be accessed exclusively via the connection matrix element 205.
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. 5 shows a structure of a cache memory which may be used as one of the cache memories 401 shown in FIG. 4, for example. The cache memory includes a bus interface 501, a dual-port memory area 503 (dual-port memory), a cache control 505 (cache-control), and communication links between the cache Bus interface 501, the dual-port memory area 503 and the cache controller 505. The bus interface 501, for example, can communicate bidirectionally with a bus not shown in FIG. The dual-port memory 503 also has a further port with which, for example, a bidirectional connection to a connection matrix element can be established. By way of example, a signal processing element or a control mechanism can act on the data flow between the cache memory and, for example, an external memory via the cache controller 505, which may also be connected to the connection matrix element.
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.6 shows a system architecture with a first memory 601, for example a cache memory, and a second memory 603, for example a further cache memory. Further, the system architecture includes a first signal processing element 605 and a second signal processing element 607. The signal processing elements 605 and 607 may be, for example, process elements.
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.The signal processing elements 605 and 607 access the memory elements 601 and 603 via a connection matrix element. Each of the memories 601 and 603 are each assigned an address multiplexer 609, 611, a write data multiplexer 613 and 615 and a read data multiplexer 617 and 619. For memory arbitration, an arbitration element 621 is optionally provided, which is connected to each memory element 601 and 603. The signal processing elements 605 and 607 have terminals connected to the arbitration element 621. The arbitration element 621 further has a first and a second output, the first output for controlling the elements 609, 613 and 617 associated with the first memory element 601 and the second output for controlling the elements 611, 615 and 619 associated with the second memory element 603 is provided. The arbitration element 621 also has an error output 623, via which an error signal can be output.
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.The arbitration element 621 is optional in particular when the coordination of the memory area accesses is controlled by a higher-order process element. However, if the coordination of the memory accesses to be performed in self-responsibility of the process elements 605 and 607, the provision of the Arbitrierungselementes 621 in the multiplexer circuit to prevent memory conflicts is advantageous. For example, the arbitration element 621 can deactivate the address multiplexer 609. in order to prevent the first process element 605 from accessing the first memory 601. By activating or deactivating the respective write data multiplexer 613 or 615 or the respective read data multiplexer 617 or 619, further memory accesses can be coordinated.
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.Each address multiplexer 609 and 611 is connected to each of the process elements 605 and 607. As a result, each process element 605, 607 can access each memory 601 or 603. In analogy, the write data multiplexers 613 and 615 are connected to each of the process elements 605 and 607, which can write data into each of the memories 601 and 603, respectively. The read data multiplexers 617 and 619 further connect each memory 601 and 603 to each of the process elements 605 and 607, respectively, so that each process element 605, 607 can read the data from the respective memory 601 and 603, respectively. The access control can be carried out by the Arbitrierungsele- element 621.
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.FIG. 7 illustrates a timing of a signal processing method in which the signal processing elements 701 and 703, for example, process elements, access memories 707, 709, 711, and 713 via a connection matrix element 705. The memories 707, 709, 711 and 713 are, for example, cache memories and access a mass memory 717, for example an SDRAM, via a communication bus 715.
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.The mass memory 717 is subdivided into data areas DO, D1,..., D5,..., In which data are stored which are processed by the process elements 701 or 703 in chronological order, which is determined, for example, by the execution of an image processing algorithm become. For example, first, the data DO may be loaded into the memory cache 701, whereby the memory cache 707 contains data CO. The signal processing element 701 processes the data CO according to a signal processing algorithm and stores a result C2 in the second memory memory cache 709. The result C2 can also be stored, for example, in the memory area D2 of the mass memory 717. In a further signal processing step, the data Cl are loaded into the first memory cache 707 from the memory area D1 of the mass memory 717 by the first signal processing element 701. The first signal processing element 701 processes this data in accordance with a further signal processing. processing step and stores a result of this processing in the form of data C3, for example, in the third memory cache 711. This result data C3 can also be stored in the memory area D3 of the mass memory 717.
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 vonThe second signal processing element can in turn access the result data C2 stored in the memory 709, process it in accordance with a further signal processing step and store the resultant result data C4 in the memory cache 713. This data may, for example, also be stored in the memory area D4 of the mass memory 717. If the result data C3 is present in the memory cache 711, the second signal processing element can access it and process this data in order to obtain a processing result C5 which is available in the form of
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.Data can be stored in the memory cache 713. The result data C5 can in turn be stored in the memory area D5 of the mass memory 717. The data flow can be controlled, for example, by a higher-level process unit, such as a CPU (CPU: Central Processing Unit).
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. 7 shows by way of example two signal processing elements and four memory elements. However, the concept illustrated in FIG. 7 can be extended to any number of signal processing elements and any number of memory elements.
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 zweiteFig. 8 illustrates a timing of the data CO, C1, C2, C3, C4 and C5. At this time, the data CO and Cl are read out in a processing section 801 by the first signal processing element 701, for example. In a processing section 803, the result data C2 and C3 are output by the first signal processing element 703. In another signal processing section 805, the data C2 and C3 are read in by the second signal processing element 703. The second
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.Signal processing element 703 processes this data and outputs in a processing section 807 the result data C4 and C5. As shown by the vertical dashed line 809, each memory cache 707, 709, 711, and 713 is preferably addressed only once to avoid access conflicts.
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.9 shows a further exemplary embodiment of a memory architecture comprising two signal processing elements 901 and 903 as well as two memories 905 and 907. The memories 905 and 907 can be, for example, cache memories, while the signal processing be processing elements 901 and 903, for example, process elements. The signal processing elements 901 and 903 access the memories 905 and 907 via a connection matrix element 909. The connection matrix element 909 may, for example, be a configurable crossbar switch which has, for example, a preconfigured connection matrix which connects the elements shown in FIG. 9 together.
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.An advantage of the invention is that all process elements can be connected directly to one or more arbitrary memories, for example cache memories. The memories can be, for example, resource-conserving dual-port memories, so that the memory architecture according to the invention can be implemented cost-effectively. The connection matrix element may, for example, be designed as a multiplexer, which determines which memory cache is to be connected to which signal processing element. In addition, preferably all signal processing elements can access the caches in parallel, which increases the processing speed. It is not necessary to copy the data from one signal processing element to another because the data exchange can be realized by simply switching between the memories. The power loss can also be significantly reduced by eliminating the data transfer between the signal processing elements, in particular via a communication bus, because the necessary functionality is eliminated. The memories may also have access to one or more common mass memories so that the data may be exchanged between the memories and the mass storage as needed. In this case, for example, a control mechanism in the memories generate a memory image of the mass storage in its own memory. The control mechanism in the memories may also rewrite changed data areas in the mass storage, which increases the performance of the structure according to the invention.
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. Thus, resource conserving storage ar- rangement is provided to ensure greater data availability in massively parallel signal processing systems. The connection matrix element may, for example, be realized as an interconnection matrix, for example as a multiplexer or a crossbar switch between the signal processing elements and the distributed memories. The memories may also be designed as a dual-port cache memory. According to another embodiment For example, the dual port caches may be replaced with single port caches associated with, for example, a time division multiple access method. By appropriate programming, a further reduction in resource requirements can be achieved. The connection matrix element can also be replaced by a tri-state bus, which enables a particularly resource-saving implementation in an ASIC.

Claims

Ansprüche claims
1. Speicheranordnung, mit:1. Memory arrangement, with:
einem ersten Speicher (101);a first memory (101);
einem zweiten Speicher (103);a second memory (103);
einem ersten Speicherzugriffsanschluss (105);a first memory access port (105);
einem zweiten Speicherzugriffsanschluss (107); unda second memory access port (107); and
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.a configurable connection matrix element (109) which is provided, independent connections between the first memory (101) and the first memory access port (105) or the second memory access port (105) and between the second memory (101) and the first memory access port ( 105) or the second memory access port (105).
2. Speicheranordnung gemäß Anspruch 1, wobei der erste Speicher (101) und der zweite Speicher (103) Cache-Speicher, insbesondere Dualport- Memory- Cache- Speicher, sind.2. A memory device according to claim 1, wherein the first memory (101) and the second memory (103) are cache memory, in particular dual-port memory cache memories.
3. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei das konfigurierbare Verbindungsmatrixelement (109) vorgesehen ist, die voneinander unabhängigen Verbindungen zeitgleich bereitzustellen.A memory device according to any one of the preceding claims, wherein the configurable connection matrix element (109) is arranged to provide the independent connections at the same time.
4. Speicheranordnung nach einem der vorstehenden Ansprüche, wobei die voneinander unabhängigen Verbindungen vorkonfiguriert und unveränderlich sind. A memory device according to any one of the preceding claims, wherein the independent connections are preconfigured and fixed.
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.5. Memory device according to one of the preceding claims, wherein the configurable connection matrix element (109) is a programmable element, in particular an FPGA (FPGA: Field Programmable Gate Array).
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.6. The memory device of claim 1, wherein the configurable connection matrix element comprises a first address multiplexer for addressably connecting the first memory to the first memory access port and / or to the memory access port in multiplex mode , a second address multiplexer for addressably connecting the second memory (103) to the first memory access port (105) and / or to the memory access port (105) in multiplex mode, and an arbitration element for arbitrating the addressable connections.
7. Signalverarbeitungsarchitektur, mit:7. Signal processing architecture, with:
der Speicheranordnung gemäß einem der Ansprüche 1 bis 6;the memory device according to one of claims 1 to 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; unda first signal processing element, in particular an image data processing element, connected to the first memory access port (105) for accessing the first memory (101) or the second memory (103); and
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.a second signal processing element, in particular an image data processing element, which is connected to the second memory access port (107) for accessing the first memory (101) or the second memory (103).
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. A signal processing architecture according to claim 7, wherein the first signal processing element is arranged to access the first memory (101) via the connection matrix element (109) for processing the data stored therein and to access the second memory (103) via the connection matrix element (109). for storing therein a result of the processing of this data, and wherein the second signal processing element is adapted to access, via the connection matrix element (109), the second memory (103) for further processing the result of processing therein the data stored in the memory (101).
9. Verfahren zum Bereitstellen von Verbindungen zwischen einem ersten Speicher, einem zweiten Speicher, einem ersten Speicherzugriffsanschluss sowie einem zweiten Speicherzugriffsanschluss (107) einer Speicheranordnung, mit:A method for providing connections between a first memory, a second memory, a first memory access port, and a second memory access port (107) of a memory device, comprising:
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.Providing configurable and independent connections by means of a configurable connection matrix element between the first memory and the first memory access port or the second memory access port and between the second memory and the first memory access port or the second memory access port.
10. Signalverarbeitungsverfahren unter Verwendung der Signalverarbeitungsarchitektur gemäß Anspruch 7 oder 8 mit der Speicheranordnung gemäß einem der Ansprüche 1 bis 6, mit:Signal processing method using the signal processing architecture according to claim 7 or 8 with the memory device according to one of claims 1 to 6, comprising:
Zugreifen über das Verbindungsmatrixelement auf den ersten Speicher zum Verar- beiten der darin abgelegten Daten;Accessing, via the connection matrix element, the first memory for processing the data stored therein;
Zugreifen über das Verbindungsmatrixelement auf den zweiten Speicher, um darin ein Ergebnis der Verarbeitung dieser Daten zu speichern, undAccessing the second memory via the connection matrix element to store therein a result of the processing of that data, and
Zugreifen über das Verbindungsmatrixelement auf den zweiten Speicher zum Weiterverarbeiten des darin abgelegten Ergebnisses der Verarbeitung der im Speicher abgelegten Daten zuzugreifen. Accessing the second memory via the connection matrix element to further process the stored result of processing the data stored in the memory.
PCT/EP2009/058546 2008-07-28 2009-07-07 Memory arrangement and memory architecture WO2010012566A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008040794.1 2008-07-28
DE102008040794A DE102008040794A1 (en) 2008-07-28 2008-07-28 Memory arrangement and memory architecture

Publications (1)

Publication Number Publication Date
WO2010012566A1 true WO2010012566A1 (en) 2010-02-04

Family

ID=40912130

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/058546 WO2010012566A1 (en) 2008-07-28 2009-07-07 Memory arrangement and memory architecture

Country Status (2)

Country Link
DE (1) DE102008040794A1 (en)
WO (1) WO2010012566A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048892A1 (en) * 2014-09-22 2016-03-31 Xilinx, Inc. Managing memory in a multiprocessor system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502683A (en) * 1993-04-20 1996-03-26 International Business Machines Corporation Dual ported memory with word line access control
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
US20030229770A1 (en) * 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070003A (en) * 1989-11-17 2000-05-30 Texas Instruments Incorporated System and method of memory access in apparatus having plural processors and plural memories
US5502683A (en) * 1993-04-20 1996-03-26 International Business Machines Corporation Dual ported memory with word line access control
US6141728A (en) * 1997-09-29 2000-10-31 Quantum Corporation Embedded cache manager
US20030229770A1 (en) * 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048892A1 (en) * 2014-09-22 2016-03-31 Xilinx, Inc. Managing memory in a multiprocessor system
CN106716336A (en) * 2014-09-22 2017-05-24 赛灵思公司 Managing memory in a multiprocessor system
US9990131B2 (en) 2014-09-22 2018-06-05 Xilinx, Inc. Managing memory in a multiprocessor system
CN106716336B (en) * 2014-09-22 2018-09-11 赛灵思公司 memory management in a multi-processor system

Also Published As

Publication number Publication date
DE102008040794A1 (en) 2010-02-04

Similar Documents

Publication Publication Date Title
DE4416881C2 (en) Method for operating a data processing device
EP1787204B1 (en) Message administrator and method for controlling access to data of the message memory of a communications component
DE102007050864B4 (en) Method and apparatus for communicating command and address signals
EP0428770A1 (en) Data controlled array processor
DE2117936A1 (en) Microprogram-controlled central unit of an electronic data processing system
DE102007050406A1 (en) Memory buffer and method for buffering data
DE112008002273B4 (en) Optimal solution for controlling data channels
EP1776807A1 (en) Method and device for accessing data of a message memory of a communication component
EP1599794B1 (en) Processor with different types of control units for commonly used resources
DE102008024262B4 (en) Connection multiplexing
DE60132424T2 (en) Clock protection for common components of a multiprocessor DSP device
DE19950255B4 (en) microprocessor
DE102017200456A1 (en) Arithmetic unit and operating method for this
DE69034165T2 (en) Microprocessor with a variety of bus configurations
DE102006025133A1 (en) Storage and storage communication system
CH654947A5 (en) MEMORY ARRANGEMENT WITH A VARIETY OF MEMORY ELEMENTS.
DE19628039B4 (en) Memory address control circuit
WO2010012566A1 (en) Memory arrangement and memory architecture
DE102017209856A1 (en) Arithmetic unit and operating method for this
DE4206079C2 (en) Semiconductor memory device and method for reading data from such a semiconductor memory device
EP1308846B1 (en) Data Transfer Device
DE4408695C1 (en) Multi-gate data storage arrangement for computer
DE102006059396A1 (en) Memory system couples memory on memory module to one of the other primary and secondary memories through point-to-point link
DE102009037158B4 (en) Control device for controlling an electric drive
DE60107754T2 (en) CPU system with high-speed peripheral LSI circuit

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09780212

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 09780212

Country of ref document: EP

Kind code of ref document: A1