DE102008040794A1 - Speicheranordnung und Speicherarchitektur - Google Patents

Speicheranordnung und Speicherarchitektur Download PDF

Info

Publication number
DE102008040794A1
DE102008040794A1 DE102008040794A DE102008040794A DE102008040794A1 DE 102008040794 A1 DE102008040794 A1 DE 102008040794A1 DE 102008040794 A DE102008040794 A DE 102008040794A DE 102008040794 A DE102008040794 A DE 102008040794A DE 102008040794 A1 DE102008040794 A1 DE 102008040794A1
Authority
DE
Germany
Prior art keywords
memory
access port
signal processing
data
connection matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102008040794A
Other languages
English (en)
Inventor
Andreas Loewe
Arne Zender
Wolfgang Niehsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
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
Priority to DE102008040794A priority Critical patent/DE102008040794A1/de
Priority to PCT/EP2009/058546 priority patent/WO2010012566A1/de
Publication of DE102008040794A1 publication Critical patent/DE102008040794A1/de
Withdrawn legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Die Erfindung betrifft eine 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 (107) und zwischen dem zweiten Speicher (103) und dem ersten Speicherzugriffsanschluss (105) oder dem zweiten Speicherzugriffsanschluss (107) bereitzustellen.

Description

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

Claims (10)

  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 Speicherzugriffsanschluss (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 konfigurierbare Verbindungsmatrixelement (109) einen ersten Adressmultiplexer zum adressierbaren Verbinden des ersten Speichers (101) mit dem ersten Speicherzugriffsanschluss (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 Arbitrierungselement 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 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.
DE102008040794A 2008-07-28 2008-07-28 Speicheranordnung und Speicherarchitektur Withdrawn DE102008040794A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008040794A DE102008040794A1 (de) 2008-07-28 2008-07-28 Speicheranordnung und Speicherarchitektur
PCT/EP2009/058546 WO2010012566A1 (de) 2008-07-28 2009-07-07 Speicheranordnung und speicherarchitektur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008040794A DE102008040794A1 (de) 2008-07-28 2008-07-28 Speicheranordnung und Speicherarchitektur

Publications (1)

Publication Number Publication Date
DE102008040794A1 true DE102008040794A1 (de) 2010-02-04

Family

ID=40912130

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008040794A Withdrawn DE102008040794A1 (de) 2008-07-28 2008-07-28 Speicheranordnung und Speicherarchitektur

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990131B2 (en) 2014-09-22 2018-06-05 Xilinx, Inc. Managing memory in a multiprocessor system

Family Cites Families (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
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction

Also Published As

Publication number Publication date
WO2010012566A1 (de) 2010-02-04

Similar Documents

Publication Publication Date Title
DE69722117T2 (de) Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung
DE102004009497B3 (de) Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
DE102005051478B4 (de) Flashdatenspeichervorrichtung
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE2953861C2 (de)
DE112008002273B4 (de) Optimale Lösung zur Steuerung von Datenkanälen
DE102008024262B4 (de) Anschlussmultiplexbildung
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE19828620A1 (de) Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen
EP1941668A1 (de) Teilnehmerschnittstelle zwischen einem flexray-kommunikationsbaustein und einem flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
WO1997031318A1 (de) Mehrprozessor-zentraleinheit
EP0477595A2 (de) Cachespeichereinrichtung mit m Busanschlüssen
DE69034165T2 (de) Mikroprozessor mit einer Vielzahl von Buskonfigurationen
DE102006025133A1 (de) Speicher- und Speicherkommunikationssystem
EP1116129B1 (de) Konfigurierbarer hardware-block
DE102008040794A1 (de) Speicheranordnung und Speicherarchitektur
DE4408695C1 (de) Mehrtorige Datenspeicheranordnung und Verfahren zum Betrieb derselben
DE19929419C2 (de) Synchroner Kommunikationsbus und Verfahren zur synchronen Kommunikation zwischen Schaltungsmodulen
EP1308846B1 (de) Datenübertragungseinrichtung
DE112020005466T5 (de) Bussystem und verfahren zum betrieb eines bussystems
DE60107754T2 (de) CPU-System mit Hochgeschwindigkeitsperipherie-LSI-Schaltung
EP1435578A1 (de) DMA-Kontroller um die gespeicherten Deskriptoren nach jedem Zugriff weiterzustellen
DE10360637B4 (de) Programmgesteuerte Einheit
DE102013018602A1 (de) System und Verfahren zur Datenübertragung
DE112020001914T5 (de) Halbleitervorrichtung und fehlersuchsystem

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110201