-
Die
vorliegende Erfindung bezieht sich auf Speichersysteme zum Bereitstellen
oder zum Übernehmen
von Daten sowie auf Speicherkommunikationssysteme.
-
Beim
Entwurf von digitalen Schaltkreisen, insbesondere beim Entwurf von
digitalen Schaltkreisen mit sogenannten Systems-on-a-Chip (SOC), müssen mehrere Komponenten miteinander
verbunden werden. Diese Komponenten können aufgeteilt werden in Master-
und Slave-Einheiten. Master sind Erzeuger von Transaktionen, die
einen Datentransfer verursachen, und Slaves sind Verbraucher der Transaktionen.
Der Datenfluss selbst kann in zwei Richtungen stattfinden: von einem
Master zu einem Slave (Schreib-Transaktion) und von einem Slave
zu einem Master (Lese-Transaktion). Die Komponenten, die miteinander
verbunden werden sollen, können ferner
gleichzeitig durch das Einführen
von mehr als einem Schnittstellentyp sowohl Master als auch Slaves
sein.
-
Ein
zwischen einem Master und einem Slave angeordnetes Kommunikationssystem
sollte es mehreren Mastern ermöglichen,
mit multiplen Slaves nicht-blockierend gleichzeitig zu kommunizieren.
Die unterschiedlichen Schnittstellentypen innerhalb derselben Komponenten
und/oder innerhalb von unterschiedlichen Komponenten können mit
demselben Takt, mit voneinander abhängigen Takten oder mit gänzlich unabhängigen asynchronen
Takten betrieben werden. Der letztgenannte Fall ist mit einer Anzahl
von M Master-Schnittstellen, die mit einer Anzahl S von Slave-Schnittstellen
kommunizieren, am schwierigsten zu handhaben.
-
Die
einfachste Lösung
des vorstehend genannten Kommunikationsproblems besteht darin, einen
unabhängigen
Kommunikationspfad von jedem Master zu jedem Slave, mit dem der
Master kommunizieren soll, bereitzustellen und Speicher mit Graycodierten
Lese- und Schreib-Zeigern in jedem Kommunikationspfad anzuordnen.
Die Speicher (Buffer) synchronisieren die Transaktions-Codes, die Schreib-Daten
und die Lese-Daten zwischen den Taktbereichen eines Masters und
eines Slaves. Diese Lösung
erfüllt
die vorliegenden Kriterien: eine geringe Latenzzeit eines einzelnen
Buffers zwischen einem Master und einem Slave, hoher Durchsatz,
weil unabhängige
Kommunikationskanäle
eine nicht-blockierende parallele Kommunikation ermöglichen;
unabhängige
Taktbeziehungen zwischen jedem Master und jedem Slave, sodass Änderungen
in einem Takt eines einzelnen Moduls keine Auswirkungen auf das Verbindungsschema
(Interconnection) haben. Ein Nachteil an diesem Konzept besteht
darin, dass die Siliziumfläche
für größere Systeme
stark anwächst, weil
M × S
Buffer benötigt
werden. Falls die Speicher beispielsweise 32-Bit breite Datenwörter und Burst-Größen von
8 Wörtern
aufnehmen müssen, führt dieses
Konzept zu einem signifikanten Flächenverbrauch.
-
Eine
andere Lösung
des vorstehend genannten Problems verbessert die Ausnutzung der
Siliziumfläche
durch das Verwenden eines zweistufigen Taktbereichs-Überquerens:
Zunächst
verwendet jeder Master einen oder mehrere Buffer für eine Übersetzung
zu einem Crossbar-Netzwerk. Am Ende des Netzwerkes wird ein anderes
Speicherelement verwendet, um in den Taktbereich des Slaves zu wechseln.
Auf diese Weise werden M + S anstatt M × S Buffer benötigt, was
eine signifikante Reduktion für größere Anzahlen
von Mastern und Slaves bedeutet. Die Latenz ist jedoch höher, da
zwei Buffer in jedem Pfad von jedem Master zu einem Slave durchlaufen werden
müssen.
Der Durchsatz ist der gleiche, weil der Crossbar eine nicht-blockierende
Kommunikation von jedem Master zu jedem Slave ermöglicht.
Ferner ist eine Flexibilität
der Taktgeschwindigkeiten für Master
und Slaves aufgrund von privaten Buffern für jeden Master und Slave gegeben,
was eine Überbrückung eines
jeden Taktbereichs ohne Beeinträchtigung
anderer Komponenten ermöglicht.
-
Für eine Routing-Anwendung,
in der der Datenfluss von den Mastern zu den Slaves nur unidirektional
ist, sind sogar kleinere Verbindungsschemata (Interconnect-Schemata)
bekannt. Der Transaktions-Code wird aus einem Header eines Datenpakets,
das in Rahmen (Frames) gesendet wird, extrahiert. Der Transaktions-Code
umfasst zumindest die Zieladresse und die Anzahl der zu übertragenden Dateneinheiten.
Die Dateneinheiten folgen dem Payload des Pakets. Für jeden
Master ist ein Buffer vorgesehen, um das Eingangspaket aufzunehmen.
Die Zieladresse wird verwendet, um den Ausgangs-Port zu einem Slave
zu bestimmen. Da eine Mehrzahl von Mastern möglicherweise mit demselben
Slave gleichzeitig kommunizieren will, entscheidet ein für jeden Slave
vorgesehener Arbitrations-Mechanismus, welcher der Master zu einem
gegebenen Zeitpunkt auch wirklich verbunden ist. Die Verbindungen
selbst können
durch eine Crossbar-Struktur bereitgestellt werden. Die Buffer können die Überbrückung der
unterschiedlichen Taktbereiche zwischen einem Master und einem Slave
ermöglichen.
Die Interconnect-Struktur
reduziert die Anzahl der Buffer auf M. Auch die Latenz wird reduziert
auf die Latenz eines einzelnen Buffers zwischen einem Master und
einem Slave. Der Durchsatz ist derselbe wie in anderen bekannten
Konzepten aufgrund des nicht-blockierenden
Crossbars.
-
Ein
weiteres Problem, das beim Entwurf von digitalen Schaltkreisen mit
den vorstehend genannten Systems-on-a-Chip entsteht, besteht darin,
dass Schnittstellen oder interne Beschleuniger einen Datentransfer
zwischen einander und beispielsweise zu oder von einem Speicher
mit hohen Datenraten benötigen.
Es ist nicht praktikabel, Daten mit hohen Datenraten unter Verwendung
einer CPU, die die Daten kopiert, zu übertragen, weil eine CPU zunächst die Daten
in ein internes Register schreiben muss, bevor sie die Daten nach
einem anderen Bestimmungsort weiterleiten kann. Aus diesem Grund
werden Komponenten mit hohen Datenraten üblicherweise zu einem DMA (direkter
Speicherzugriff, Direct Memory Access) verbunden.
-
Dadurch
wird diesen Komponenten zumindest ermöglicht, unabhängig von
einer CPU für
eine längere
Zeit auf einen Speicher zuzugreifen, wobei von Zeit zu Zeit eine
Rekonfigurierung der Quell- und Zieladressen durch die CPU benötigt wird.
Dieses Merkmal wird mit Peripherie-zu-Speicher-Kopie (peripheral-to-memory copy) und
Speicher-zu-Peripherie-Kopie (memory-to-peripheral copy) bezeichnet, weil der
Speicherzugriff in beide Richtungen erfolgen kann. Dadurch kann
auch die Fähigkeit
zum direkten Kopieren zwischen zwei Komponenten ohne eine Zwischenspeicherung
in einem Speicher ermöglicht werden
(peripheral-to-peripheral copy). Ferner kann dadurch eine Speicher-zu-Speicher-Kopie
realisiert werden (memory-to-memory
copy).
-
Es
gibt zwei Möglichkeiten
einer DMA-Implementierung: dezentraler DMA und zentraler DMA. Für den dezentralen
DMA wird benötigt,
dass jede Komponente eine eingebaute Bus-Master-Fähigkeit aufweist,
sodass sie (oder andere Komponenten) selbständig auf einen Speicher zugreifen
kann. Der zentrale DMA kann eine Schnittstelle zu Komponenten mit
einfachen Slave-Schnittstellen durch das Arbeiten als ein Master
für die
Speicherschnittstellen bilden, um Datenübertragungen zu diesen Komponenten
durchzuführen,
und durch das Arbeiten als ein Master für die Speicherschnittstellen.
-
Ein
DMA-Controller eines zentralen DMAs kann mit allen Komponenten durch
die Verwendung einer einzigen Schnittstelle oder durch die Verwendung
von mehreren Schnittstellen gekoppelt werden. Je mehr Schnittstellen
verwendet werden, desto höhere
Datenraten werden erreicht und desto mehr Unabhängigkeit kann in den Taktbereichen
theoretisch ermöglicht
werden, da eine einzige Schnittstelle das Betreiben von allen Komponenten
in demselben Taktbereich erfordert.
-
Das
Design einer zentralen DMA-Architektur für unterschiedliche SOC-Entwürfe ist
aus den folgenden drei Gründen
kompliziert:
- 1. Die Komponenten, die mit einer
zentralen DMA-Einheit verbunden werden sollten, weisen üblicherweise
Schnittstellen unterschiedlicher Herkunft auf: Manche sind ältere In-House-Module, manche
werden von unterschiedlichen IP-Ausrüstern zu
unterschiedlichen Zeitpunkten bezogen. Folglich kann im ungünstigsten
Fall jede der anzuschliessenden Komponenten unterschiedliche Arten
einer Slave-Schnittstelle aufweisen. Daher sollte eine zentrale
DMA-Einheit in der Lage sein, für
eine Vielfalt von Schnittstellen Master-Aufgaben zu übernehmen.
- 2. Jede mit der zentralen DMA-Einheit verbundene Komponente
sollte in der Lage sein, mit der ihr zugeordneten Taktgeschwindigkeit
(Clock Speed) zu arbeiten, hinsichtlich der Taktgeschwindigkeiten
von anderen angeschlossenen Komponenten, der DMA selbst und des
Speichers unabhängig und
asynchron sind.
- 3. Die Anzahl der mit einer DMA-Einheit zu verbindenden Komponenten,
die Anzahl der unterstützten
Schnittstellen, die Taktgeschwindigkeiten und die Datenraten sind
hoch systemspezifisch. Aus diesem Grund sollte jedes SOC idealerweise
einen maßgeschneiderten
DMA aufweisen – dies verursacht
jedoch einen hohen Implementierungs- und Verifikationsaufwand.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein effizientes Konzept
zum Bereitstellen, zum Übernehmen
oder zum Übertragen
von Daten zu schaffen.
-
Diese
Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst.
-
Die
vorliegende Erfindung basiert auf der Erkenntnis, dass ein effizienter
Zugriff auf einen Speicher insbesondere im Falle von unterschiedlichen Zugriffsraten
der auf den Spei cher zugreifenden Komponenten durch eine Bereitstellung
eines Speicherelements mit einer variablen Zugriffsrate erreicht werden
kann.
-
Dadurch
wird beispielsweise ein Verbindungs-Schema (Interconnect-Schema)
ermöglicht,
in dem beispielsweise jede Master-Schnittstelle und jede Slave-Schnittstelle
einer eigenen Taktfrequenz zugeordnet werden kann, die hinsichtlich
der Performance die externen Schnittstellenanforderungen am ehesten
erfüllt,
wobei gleichzeitig jeder Master mit jedem Slave mit einer geringen
Latenz und mit einem hohen Durchsatz kommunizieren kann. Das Interconnect-Schema,
beispielsweise ein Crossbar, muss daher nicht erneut entworfen werden,
wenn die Taktgeschwindigkeiten der angeschlossenen Entitäten geändert werden.
Da beispielsweise ein einziger, dem Master zugeordneter Speicher
eine Mehrzahl von mit unterschiedlichen Taktraten operierenden Slaves
bedienen kann, kann erfindungsgemäß der für die Implementierung des Interconnect-Schemas benötigte Flächenbedarf
reduziert werden, sodass die Anordnung auf einem einzelnen Chip
mit all den angeschlossenen Komponenten implementiert werden kann.
-
Gemäß einem
ersten Aspekt schafft die vorliegende Erfindung ein Speichersystem
mit einem Auswahlelement zum Auswählen einer auswählbaren
Zugriffsrate aus einer Mehrzahl von Zugriffsraten. Die Aufgabe des
Auswahlelements ist beispielsweise die Auswahl einer Zeitbasis (z.B.
eines Taktsignals) oder zweier Zeitbasen zur Festlegung der Zugriffsrate
und eines Datenweges, so dass Daten mit der ausgewählten Zugriffsrate übertragen
werden können. Die
zweite Zugriffsrate ist notwendig, wenn Master und Slave mit verschiedenen
Zugriffsraten Daten transferieren wollen. Das Speichersystem umfasst ferner
ein Speicherelement zum Bereitstellen oder zum Übernehmen von Daten mit der
auswählbaren Zugriffsrate,
die von dem Auswahlelement ausgewählt worden ist. Bei dem Zugriff
kann es sich beispielsweise um einen Speicher- oder um einen Lesezugriff
handeln. Die Zugriffsrate ist erfindungsgemäß diejenige Rate, mit der in
das Speicherelement gespeichert (bzw. geschrieben) oder mit der
aus dem Speicherelement herausgelesen wird, bzw. mit der das Speicherelement
Daten übernimmt
oder bereitstellt. Dabei können
die Zugriffsraten für
die Schreib- und für
die Leseoperation unterschiedlich sein. Dadurch wird erreicht, dass
mehrere und unterschiedliche Kommunikationseinheiten, die beispielsweise mit
unterschiedlichen Taktraten betrieben werden, auf dasselbe Speicherelement
zugreifen können, ohne
dass eine vorherige und aufwendige Taktumsetzung notwendig ist.
Somit wird ermöglicht,
dass beispielsweise ein Master mit einem einzigen Speicherelement
eine Mehrzahl von mit unterschiedlichen Taktraten betriebenen Slaves
bedienen kann, die beispielsweise mit unterschiedlichen Zugriffsraten
auf das Speicherelement zugreifen. Somit wird die Anzahl der Speicher
reduziert, weil das Vorsehen eines Speichers für jeden Slave entfällt.
-
Zum
Auswählen
der auswählbaren
Zugriffsraten aus der Mehrzahl von Zugriffsraten umfasst das Speichersystem
beispielsweise ein Auswahlelement, das ein Steuersignal erzeugen
kann, das die ausgewählte
Zugriffsrate anzeigt. Das Speicherelement ist beispielsweise vorgesehen,
um das von dem Auswahlelement erzeugte Steuersignal zu empfangen und
um die Daten ansprechend auf das Steuersignal mit der auswählbaren
(ausgewählten)
Zugriffsrate bereitzustellen oder zu übernehmen. Hierzu kann das
Speicherelement anhand des Steuersignals die ausgewählte Zugriffsrate
detektieren, um festzustellen, welche Zugriffsrate aus der Mehrzahl
von Zugriffsraten angezeigt wird.
-
Bevorzugt
umfasst das Speicherelement einen Speicherbereich, in dem die Daten
frei addressierbar speicherbar sind. Zum Bereitstellen der Daten
aus dem Speicherbereich oder zum Schreiben der Daten in den Speicherbereich
mit variablen Zugriffsraten kann das Speicherelement den Speicherbereich
beispielsweise mit der ausgewählten
Zugriffsrate adressieren. Handelt es sich bei dem Zugriffsvorgang
um eine Leseoperation, so können
die Daten mit variablen Zugriffsraten bei spielsweise durch eine Änderung
der Geschwindigkeit der Adressierung des Speicherbereichs durch
einen Lesezeiger erfolgen. Entsprechendes gilt für einen Schreibvorgang, bei
dem zur Ermöglichung
von unterschiedlichen Speicherraten der Schreibzeiger den Speicherbereich
mit unterschiedlichen Raten adressieren kann. Das Speicherelement
kann somit ausgebildet sein, um die Rate zu steuern, mit der ein Adresszeiger
(Schreib- oder Lesezeiger) den Speicherbereich adressiert.
-
Gemäß einem
Aspekt kann das Speicherelement die Daten mit einer weiteren auswählbaren Schreib-Zugriffsrate,
die sich von der auswählbaren Lese-Zugriffsrate
unterscheidet, übernehmen,
und die Daten mit der auswählbaren
Lese-Zugriffsrate bereitstellen. Das Speicherelement kann ausgebildet sein,
um den Speicherbereich zum Schreiben mit der weiteren auswählbaren
Schreib-Zugriffsrate, die sich von der auswählbaren Lese-Zugriffsrate unterscheiden
kann, zu adressieren und um den Speicherbereich zum Auslesen mit
der auswählbaren
Lese-Zugriffsrate
zu adressieren.
-
Zum
Auswählen
der auswählbaren
Lese-Zugriffsrate bzw. der weiteren auswählbaren Schreib-Zugriffsrate
kann das Speichersystem eine Tabelle bereitstellen, in der eine
Mehrzahl von möglichen
Zugriffsraten abgelegt ist. Die in Frage kommenden Zugriffsraten
sind beim Entwurf eines integrierten Schaltkreises oft a priori
bekannt. Das Auswahlelement wählt
beispielsweise aus der Mehrzahl der Zugriffsraten die ausgewählte Zugriffsrate,
mit der die Daten bereitzustellen (oder zu speichern) sind (Slave-Seite).
In der Tabelle oder in einer weiteren Tabelle kann beispielsweise
eine Mehrzahl von weiteren Zugriffsraten abgelegt sein. Das Auswahlelement
wählt dann
beispielsweise die weitere auswählbare
Zugriffsrate (Master-Seite) aus der Tabelle oder aus der weiteren
Tabelle. Die Tabelle bzw. die weitere Tabelle kann beispielsweise
in einem Speicher abgelegt sein, wodurch z.B. eine dynamische Änderung der
Tabelleninhalte zur Laufzeit ermöglicht
wird.
-
Gemäß einem
weiteren Aspekt kann das Auswahlelement beispielsweise eine weitere
auswählbare
Zugriffsrate aus der Mehrzahl (bzw. aus der weiteren Mehrzahl) von
Zugriffsraten auswählen,
um das Speicherelement zu veranlassen, die Daten zu einem ersten
Zeitpunkt mit der auswählbaren
Zugriffsrate zu übernehmen
oder bereitzustellen und um die Daten oder um weitere Daten zu einem
weiteren Zeitpunkt mit der weiteren auswählbaren Zugriffsrate zu übernehmen
oder bereitzustellen.
-
Die
gegenwärtig
zu verwendende Zugriffsrate (z.B. die auswählbare Zugriffsrate) hängt davon ab,
mit welcher Zugriffsrate eine Verarbeitungseinheit (z.B. ein Master
oder ein Slave) auf das Speicherelement zugreift oder zugreifen
will. Gemäß einem
Aspekt umfasst der Speicher ein Identifikationselement, das eine
auf das Speicherelement zugreifbare Verarbeitungseinheit identifiziert
oder das die Zugriffsrate der auf das Speicherelement zugreifbaren
Verarbeitungseinheit und optional die Zugriffsart (Speichern oder
Auslesen) identifiziert. Das Identifikationselement erzeugt bevorzugt
ein Identifikationssignal, das auf die Verarbeitungseinheit und/oder
auf die Zugriffsrate und optional auf die Zugriffsart hinweist. Das
Auswahlelement ist bevorzugt vorgesehen, um ansprechend auf das
Identifikationssignal diejenige auswählbare Zugriffsrate auszuwählen, die
der Verarbeitungseinheit zugeordnet ist oder die der Zugriffsrate
der Verarbeitungseinheit entspricht. Optional kann das Auswahlelement
auch die Zugriffsart detektieren und diese Information an das Speicherelement
weiterleiten. Das Speicherelement ordnet dann die auswählbare Zugriffsrate
der jeweiligen Zugriffsart zu.
-
Gemäß einem
weiteren Aspekt umfasst das Speichersystem eine erste Verarbeitungseinrichtung, die
auf das Speicherelement mit, der auswählbaren Zugriffsrate zugreift,
und eine zweite Verarbeitungseinrichtung, die auf das Speicherelement
mit der weiteren auswählbaren
Zugriffsrate zugreift. Erfindungsgemäß wählt das Auswahlelement die
auswählbare Zugriffsrate
aus der Mehrzahl von Zugriffsraten, wenn die erste Verarbeitungsein richtung
auf das Speicherelement zugreift. Greift hingegen die zweite Verarbeitungseinrichtung
auf das Speicherelement zu, so wählt
das Auswahlelement die weitere auswählbare Zugriffsrate aus der
Mehrzahl von Zugriffsraten oder aus einer weiteren Mehrzahl von
Zugriffsraten. Bei der ersten Verarbeitungseinrichtung kann es sich
beispielsweise um einen Master und bei der zweiten Verarbeitungseinrichtung
kann es sich beispielsweise um einen Slave handeln. In diesem Fall kann
z.B. der Master mit der auswählbaren
Zugriffsrate, die dem Speicherelement angezeigt wird, auf das Speicherelement
zugreifen, das die Daten von dem Master mit der auswählbaren
Zugriffsrate übernimmt.
Die zweite Verarbeitungseinheit, als Slave konfiguriert, kann hingegen
auf die Daten mit der weiteren Zugriffsrate, die dem Speicherelement
ebenfalls angezeigt wird, zugreifen und die Daten mit der weiteren
Zugriffsrate aus dem Speicher auslesen. Die Slave-Verarbeitungseinheiten
können
beispielsweise Komponenten des Hauptspeichers sein. Ebenso können sie
aber Schnittstellen zu anderen Komponenten im Gesamtsystem bereitstellen,
wie zum Beispiel Festplattencontroller, Netzwerk-Interfaces oder Bus-Interfaces.
-
Gemäß einem
Aspekt sind die erste Verarbeitungseinrichtung und die zweite Verarbeitungseinrichtung
mit dem Speicherelement durch eine Crossbar-Struktur gekoppelt und
greifen auf das Speicherelement über
diese zu. Im Allgemeinen umfasst das erfindungsgemäße Speichersystem
eine Mehrzahl von Verarbeitungseinheiten, die mit dem Speicherelement
durch eine Crossbar-Struktur gekoppelt sind und die auf das Speicherelement
mit unterschiedlichen Zugriffsraten zugreifen. Beispielsweise umfasst das
Speichersystem eine Mehrzahl von Slave-Einheiten, die mit einer
einzigen Master-Einheit unter Verwendung des Speicherelementes (Buffers)
kommunizieren.
-
Gemäß einem
weiteren Aspekt umfasst das erfindungsgemäße Speichersystem eine Anzahl
von Master-Einheiten und eine Anzahl von Slave-Einheiten, die über eine
Crossbar-Struktur auf die jeweiligen, der jeweiligen Master-Einheit
zugeordneten Speicherelemente zugreifen. Ein Speicherelement ist gemäß einem
Aspekt genau einer Master-Einheit zugeordnet und bedient die Anzahl
des Slaves mit beispielsweise unterschiedlichen Zugriffsraten. Gemäß einem
weiteren Aspekt kann ein Speicherelement sowohl eine Anzahl von
Master-Einheiten als auch eine Anzahl von Slave-Einheiten mit unterschiedlichen Zugriffsraten
bedienen.
-
Gemäß einem
weiteren Aspekt ist ein Arbiter vorgesehen, der die Steuerung des
Zugriffs auf das Speicherelement (oder auf die die Slave-Verarbeitungseinheit)
bzw. auf die Speicherelemente (oder Slave-Verarbeitungseinheiten)
in dem erfindungsgemäßen Speichersystem
steuert. Die Steuerung kann beispielsweise durch eine Zeitsteuerung,
durch eine Prioritätssteuerung
etc. erfolgen.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung ein Verfahren zum Speichern,
bei dem eine auswählbare
Zugriffsrate aus einer Mehrzahl von Zugriffsraten ausgewählt wird
und bei dem die Daten mit der ausgewählten Zugriffsrate bereitgestellt
oder übernommen
werden. Die Schritte des erfindungsgemäßen Verfahrens gemäß weiteren
Aspekten ergeben sich direkt aus der Funktionalität des erfindungsgemäßen Speichersystems.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung eine Vorrichtung zum Speichern
mit einer Einrichtung zum Auswählen
einer auswählbaren
Zugriffsrate aus einer Mehrzahl von Zugriffsraten und mit einer
Einrichtung zum Bereitstellen oder zum Übernehmen von Daten mit der
auswählbaren
Zugriffsrate. Die Einrichtung zum Bereitstellen oder zum Übernehmen
von Daten kann beispielsweise einen Speicherbereich umfassen, in
dem die Daten speicherbar sind, wobei die Einrichtung zum Bereitstellen
oder zum Übernehmen
von Daten den Speicherbereich mit der auswählbaren Zugriffsrate adressiert.
Gemäß einem
Aspekt umfasst die Vorrichtung zum Speichern eine Einrichtung zum
Identifizieren einer auf das Speicherelement zugreifbaren Entität. Die Einrichtung
zum Identifizieren erzeugt beispielsweise ein Signal, das auf die
Entität
bzw. auf deren Zugriffsrate und optional auf deren Zugriffsart hinweist.
Ansprechend auf das Identifikationssignal wählt die Einrichtung zum Auswählen diejenige
auswählbare
Zugriffsrate aus, die der Entität
bzw. deren Zugriffsrate und optional der Zugriffsart zugeordnet ist.
-
Gemäß einem
weiteren Aspekt umfasst die Vorrichtung zum Speichern eine erste
Einrichtung zum Verarbeiten, die beispielsweise mit der auswählbaren
Zugriffsrate auf die Einrichtung zum Bereitstellen oder zum Übernehmen
von Daten zugreift. Ferner kann die Vorrichtung zum Speichern eine
zweite Einrichtung zum Verarbeiten umfassen, die auf die Einrichtung
zum Bereitstellen oder zum Übernehmen von
Daten mit einer weiteren Zugriffsrate zugreift. Die Einrichtung
zum Auswählen
wählt beispielsweise
die auswählbare
Zugriffsrate aus, wenn die erste Einrichtung zum Verarbeiten auf
die Einrichtung zum Bereitstellen oder zum Übernehmen von Daten zugreift. Analog
wählt die
Einrichtung zum Auswählen
die weitere auswählbare
Zugriffsrate aus der Mehrzahl von Zugriffsraten oder aus einer weiteren
Mehrzahl von Zugriffsraten aus, wenn die zweite Einrichtung zum Verarbeiten
auf die Einrichtung zum Bereitstellen oder zum Übernehmen von Daten zugreift.
-
Die
Funktionalität
der erfindungsgemäßen Vorrichtung
zum Speichern umfasst bevorzugt die Funktionalität des erfindungsgemäßen Speichersystems.
Insbesondere umfasst die Funktionalität der Einrichtung zum Auswählen die
Funktionalität
des Auswahlelementes. Darüber
hinaus umfasst die Funktionalität
der Einrichtung zum Bereitstellen oder zum Übernehmen von Daten die Funktionalität des Speicherelements.
Die erste und die zweite Einrichtung zum Verarbeiten kann in analoger
Weise ein Master oder ein Slave sein.
-
Die
Erfindung schafft ferner ein Kommunikationssystem mit einer ersten
Schnittstelle zum Bereitstellen von ersten Daten gemäß einem
ersten Datenkommunikations-Protokoll mit einem ersten Protokollwandler,
der das erste Datenkommunikations-Protokoll in ein Systemkommunikations-Protokoll
umwandelt. Erfindungsgemäß nimmt
der erste Protokollwandler die ersten Daten gemäß dem ersten Datenkommunikations-Protokoll
entgegen und stellt aufgrund der durchgeführten Protokollwandlung erste
Daten gemäß dem Systemkommunikations-Protokoll
bereit. Beispielsweise wandelt der erste Protokollwandler die ersten
Daten, die gemäß dem ersten
Datenkommunikations-Protokoll vorliegen, in die ersten Daten, die
gemäß dem Systemkommunikations-Protokoll
vorliegen.
-
Das
Kommunikationssystem umfasst ferner eine zweite Schnittstelle zum
Entgegennehmen der ersten Daten gemäß dem Systemkommunikations-Protokoll
oder zum Entgegennehmen von zweiten Daten gemäß einem zweiten Datenkommunikations-Protokoll,
das sich beispielsweise von dem ersten Datenkommunikations-Protokoll unterscheidet, und
stellt die zweiten Daten gemäß dem Systemkommunikations-Protokoll
auf der Basis der zweiten Daten gemäß dem zweiten Datenkommunikations-Protokoll
bereit.
-
Bei
den Datenkommunikations-Protokollen und bei dem Systemkommunikations-Protokoll
kann es sich beispielsweise um bekannte Chip-Kommunikations-Protokolle
oder um Schnittstellenprotokolle handeln, die zur Steuerung der
Chip-Kommunikation eingesetzt werden. Dabei unterscheiden sich das erste
Datenkommunikations-Protokoll, das zweite Datenkommunikations-Protokoll und das
Systemkommunikations-Protokoll voneinander, wobei das Systemkommunikations-Protokoll
ein gemeinsames, Chip-internes Kommunikations-Protokoll repräsentiert.
Dadurch wird ermöglicht,
dass an die Schnittstellen des Kommunikationssystems unterschiedliche
Entitäten
angeschlossen werden können,
deren Datenkommunikation durch unterschiedliche Datenkommunikations-Protokolle
gesteuert wird. Jeder der Schnittstellen, die ein von dem Systemkommunikations-Protokoll unterschiedliches
Datenkommunikations-Protokoll unterstützt, kann ein Protokollwandler zugeordnet
werden, der das Systemkommunikations-Protokoll in das jeweilige
Datenkommunikations-Protokoll und/oder umgekehrt wandelt.
-
So
kann beispielsweise an die zweite Schnittstelle eine Kommunikationseinheit
(beispielsweise ein Master oder ein Slave) angeschlossen werden,
deren Datenkommunikation gemäß dem Systemkommunikations-Protokoll
gesteuert wird. In diesem Fall wird der zweiten Schnittstelle kein
weiterer Protokollwandler zugeordnet, weil die zweite Schnittstelle
vorgesehen ist, um die ersten Daten gemäß dem Systemkommunikations-Protokoll
bereitzustellen. Die zweite Schnittstelle kann jedoch ausgebildet sein,
um erste Daten gemäß einem
zweiten Datenkommunikations-Protokoll auf der Basis der ersten Daten
gemäß dem Systemkommunikations-Protokoll bereitzustellen.
-
Zwecks
Umwandlung kann die zweite Schnittstelle einen zweiten Protokollwandler
umfassen, der beispielsweise das zweite Datenkommunikations-Protokoll
in das Systemkommunikations-Protokoll
oder das Systemkommunikationsprotokoll in das zweite Datenkommunikations-Protokoll
umwandelt.
-
Bei
der Protokollumwandlung werden die zu übertragenden Daten bevorzugt
nicht geändert.
Es können
jedoch die zu dem jeweiligen Datentransfer gehörigen Steuerinformationen in
ein anderes Format überführt werden.
Gemäß einem
anderen Aspekt sind die Protokollwandler ausgebildet, um auf der
Basis der Daten und Steuerinformationen gemäß dem ersten oder dem zweiten
Datenkommunikations-Protokoll beispielsweise einen Datentransfer
gemäß dem Systemkommunikations-Protokoll
zu erzeugen, der die ersten bzw. zweiten Daten umfasst, und umgekehrt.
-
Gemäß einem
weiteren Aspekt wird beispielsweise der erste Protokollwandler mit
einem einzigen Arbeitstakt betrieben, sodass die ersten Daten mit
demselben Arbeitstakt entgegengenommen und bereitgestellt werden.
Dasselbe gilt für
den zweiten Protokollwandler. Mit anderen Worten findet bei der Pro tokollwandlung
bevorzugt keine Taktwandlung statt, sodass der Eingang des jeweiligen
Protokollwandlers und der Ausgang des jeweiligen Protokollwandlers
innerhalb desselben Taktbereichs (Clock Domain) angeordnet sind.
-
Erfindungsgemäß kann die Änderung
der Taktraten durch die Verwendung des erfindungsgemäßen Speichersystems
realisiert werden. Das Kommunikationssystem umfasst hierzu bevorzugt ein
Speichersystem, das der ersten oder der zweiten Schnittstelle zugeordnet
ist. Das Speichersystem umfasst ein Auswahlelement zum Auswählen einer auswählbaren
Zugriffsrate aus einer Mehrzahl von Zugriffsraten und ein Speicherelement
zum Bereitstellen oder zum Übernehmen
von Daten mit der auswählbaren
Zugriffsrate.
-
Gemäß einem
weiteren Aspekt umfasst das Kommunikationssystem eine erste Kommunikationseinrichtung,
die mit der ersten Schnittstelle gekoppelt ist, und eine zweite
Kommunikationseinrichtung, die mit der zweiten Schnittstelle gekoppelt
ist. Somit ist das Speichersystem, das mit der ersten Schnittstelle
gekoppelt ist, vorgesehen, um die der ersten Kommunikationseinrichtung
zugeordneten Daten mit der der ersten Kommunikationseinrichtung zugeordneten
Zugriffsrate (beispielsweise die auswählbare Zugriffsrate) entgegenzunehmen
oder bereitzustellen. Ist das Speichersystem hingegen der zweiten
Kommunikationseinrichtung zugeordnet und mit dieser gekoppelt, so
kann die zweite Kommunikationseinrichtung mit der ihr zugeordneten
Zugriffsrate auf die zweite Schnittstelle zugreifen.
-
Zum
Anpassen der unterschiedlichen Taktbereiche kann z.B. jeder Schnittstelle
ein Speichersystem mit einem Speicherelement (Buffer) zugeordnet
werden, das die Daten mit einer variablen Zugriffsrate entgegennimmt
oder bereitstellt. Dadurch wird das Design von integrierten Schaltkreisen
vereinfacht, weil die unterschiedlichen Zugriffsraten (z.B. die
unterschiedlichen Taktraten der jeweiligen Verarbeitungseinheiten) an
der jeweiligen Schnittstelle durch die Verwendung des erfindungsgemäßen Speichersystems
umgewandelt werden.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung eine Vorrichtung zur Datenkommunikation mit
einer ersten Einrichtung zum Bereitstellen von ersten Daten gemäß einem
ersten Datenkommunikations-Protokoll mit einer ersten Einrichtung
zum Umwandeln des ersten Datenkommunikations-Protokolls in ein Systemkommunikations-Protokoll,
wobei die erste Einrichtung zum Umwandeln die ersten Daten gemäß dem ersten
Datenkommunikations-Protokoll entgegennimmt und erste Daten gemäß dem Systemkommunikations-Protokoll
bereitstellt. Die Vorrichtung zur Datenkommunikation umfasst ferner eine
zweite Einrichtung zum Entgegennehmen der ersten Daten gemäß dem Systemkommunikations-Protokoll
oder zum Entgegennehmen von zweiten Daten gemäß einem zweiten Datenkommunikations-Protokoll
und zum Bereitstellen von zweiten Daten gemäß dem Systemkommunikations-Protokoll auf der
Basis der zweiten Daten gemäß dem zweiten Datenkommunikations-Protokoll.
-
Gemäß einem
weiteren Aspekt umfasst die Einrichtung zur Datenkommunikation eine
zweite Einrichtung zum Umwandeln des zweiten Datenkommunikations-Protokolls
in das Systemkommunikations-Protokoll oder zum Umwandeln des Systemkommunikations-Protokolls
in das zweite Datenkommunikations-Protokoll. Bevorzugt nimmt die
erste Einrichtung zum Umwandeln oder/und die zweite Einrichtung
zum Umwandeln die Daten mit demselben Arbeitstakt entgegen und stellt
diese in diesem Arbeitstakt bereit.
-
Gemäß einem
weiteren Aspekt umfasst die Vorrichtung zur Datenkommunikation eine
erste Einrichtung zum Speichern, wie sie vorstehend beschrieben
wurde, die der ersten Einrichtung zum Bereitstellen zugeordnet ist.
-
Die
Einrichtung zur Datenkommunikation umfasst gemäß einem weiteren Aspekt eine
erste Einrichtung zum Kommunizieren, die mit der ersten Einrichtung
zum Bereitstellen gekoppelt ist, und eine zweite Einrichtung zum
Kommunizieren, die mit der zweiten Einrichtung zum Entgegennehmen
gekoppelt ist.
-
Die
Funktionalität
der Vorrichtung zur Datenkommunikation umfasst bevorzugt die Funktionalität des vorstehend
beschriebenen Kommunikationssystems.
-
Gemäß einem
weiteren Aspekt sind die erste Schnittstelle und die zweite Schnittstelle
bzw. die erste Einrichtung zum Bereitstellen und die zweite Einrichtung
zum Entgegennehmen über
eine Crossbar-Struktur gekoppelt. Im Allgemeinen umfasst das erfindungsgemäße Kommunikationssystem
eine Mehrzahl von Schnittstellen, denen jeweils ein Protokollwandler
zugeordnet werden kann, die über
eine Crossbar-Architektur verbunden sind. Somit kann eine an die
jeweilige Schnittstelle angeschlossene Entität mit Hilfe der Crossbar-Struktur
auf eine an eine andere Schnittstelle angeschlossene Entität zugreifen
oder mit dieser kommunizieren.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung ein Verfahren zur Datenkommunikation, bei
dem erste Daten gemäß einem
ersten Datenkommunikations-Protokoll bereitgestellt werden und bei dem
das erste Datenkommunikations-Protokoll in ein Systemkommunikations-Protokoll
umgewandelt wird. Hierzu werden die ersten Daten gemäß dem ersten Datenkommunikations-Protokoll entgegengenommen
und auf deren Basis werden erste Daten gemäß dem Systemkommunikations-Protokoll
bereitgestellt. Das Verfahren umfasst ferner den Schritt eines Entgegennehmens
der ersten Daten gemäß dem Systemkommunikations-Protokoll oder eines
Entgegennehmens von zweiten Daten gemäß einem zweiten Datenkommunikations-Protokoll
und einen Schritt eines Bereitstellens von zweiten Daten gemäß dem Systemkommunikations-Protokoll
auf der Basis der zweiten Daten gemäß dem zweiten Datenkommunikations-Protokoll.
Weitere Ausgestaltungen des erfindungsgemäßen Verfahrens zur Datenkommunikation
ergeben sich aus der Funktionalität des erfindungsgemäßen Kommunikationssystems
bzw. der erfindungsgemäßen Einrichtung
zur Datenkommunikation.
-
Die
Erfindung schafft ferner ein Speicherkommunikationssystem mit einer
Speicherschnittstelle zum Zugreifen auf einen Speicher, mit einer ersten
Schnittstelle, mit einem ersten Zugriffssteuerungselement zum Steuern
des Zugriffs auf die Speicherschnittstelle über die erste Schnittstelle,
mit einer zweiten Schnittstelle und mit einem zweiten Zugriffssteuerungselement
zum Steuern des Zugriffs auf die Speicherschnittstelle oder auf
eine weitere Speicherschnittstelle über die zweite Schnittstelle.
Das Speicherkommunikationssystem ermöglicht beispielsweise den Datentransfer
zwischen Verarbeitungseinheiten an der ersten oder zweiten Schnittstelle
und Verarbeitungseinheiten (zum Beispiel Speicherkomponenten) an
der ersten oder zweiten Speicherschnittstelle ohne Eingriffe einer
CPU.
-
Der
Speicher ist bevorzugt an die Speicherschnittstelle anschließbar, sodass
an die erste Schnittstelle und an die zweite Schnittstelle anschließbare Verarbeitungseinheiten über die
jeweilige Schnittstelle auf den Speicher zugreifen. Ferner kann
eine weitere Schnittstelle, an die ein weiterer Speicher anschließbar ist,
vorgesehen sein, über
die eine Verarbeitungseinheit auf den weiteren Speicher zugreift.
-
Der
Zugriff auf die jeweilige Speicherschnittstelle wird unter Verwendung
der Zugriffssteuerungselemente gesteuert. Bevorzugt weisen das erste
und das zweite Zugriffssteuerungselement dieselbe Funktionalität auf. Gemäß einem
weiteren Aspekt sind das erste und das zweite Zugriffssteuerungselement
identisch aufgebaut. Dadurch wird erreicht, dass bereits beim Entwurf
eines Speicherkommunikationssystems mit einer beliebigen Anzahl
von Schnittstellen auf bereits entworfene Zugriffssteuerungselemente
zugegriffen werden kann, die beispielsweise den hinzukommenden Schnittstellen quasi
mittels "Copy and
Paste" zugeordnet
werden können,
was Entwurfkosten reduziert. Wird das erfindungsgemäße Speicherkommunikationssystem
beispielsweise als ein DMA-System ausgeführt, so kann durch die modulare
Zuordnung von identischen Zugriffssteuerungselementen, die beispielsweise
als Kanal-Controller oder Speicher-Controller ausgeführt sein
können,
ein Standard-Design
festgelegt werden, das von der Anzahl der Schnittstellen sowie von
der Anzahl der an die Schnittstellen angeschlossenen Speicher unabhängig ist.
-
Gemäß einem
weiteren Aspekt umfasst das Speicherkommunikationssystem eine erste
Kommunikationseinheit, die mit der ersten Schnittstelle gekoppelt
ist, eine zweite Kommunikationseinheit, die mit der zweiten Schnittstelle
gekoppelt ist, und einen Speicher, der mit der Speicherschnittstelle
gekoppelt ist. Das erste und das zweite Zugriffssteuerungselement
sind vorgesehen, um beispielsweise die Adresse des Speichers und/oder
um die Adresse der jeweiligen Kommunikationseinheit bereitzustellen,
sodass die jeweilige Kommunikationseinheit auf den Speicher unter
Verwendung der Adresse zugreifen kann.
-
Wie
bereits erwähnt,
ist an das erfindungsgemäße Kommunikationssystem
eine Mehrzahl von Speichern anschließbar. Beispielsweise kann ein weiterer
Speicher an die bereits erwähnte
weitere Speicherschnittstelle angeschlossen werden, wobei über die
zweite Speicherschnittstelle, die zum Zugreifen auf den weiteren
Speicher vorgesehen ist, auf denselben über beispielsweise die erste
Schnittstelle oder über
eine weitere Schnittstelle von der jeweiligen an die jeweilige Schnittstelle
angeschlossenen Verarbeitungseinheit zugegriffen werden kann.
-
Gemäß einem
weiteren Aspekt umfasst das Speicherkommunikationssystem einen Arbiter,
der den Zugriff auf die Speicherschnittstelle bzw. den Zugriff auf
die weitere Speicherschnittstelle über die erste oder über die
zweite Schnittstelle steuert.
-
Gemäß einem
weiteren Aspekt sind dem Arbiter ein Speicherelement und ein Auswahlelement zugeordnet.
Das Auswahlelement entspricht beispielsweise dem im Zusammenhang
mit dem vorstehend beschriebenen Speichersystem beschriebenen Auswahlelement
und ist vorgesehen, um eine Zugriffsrate auszuwählen, mit der das Speicherelement Daten
bereitstellt oder speichert.
-
Gemäß einem
weiteren Aspekt kann einem Zugriffssteuerungselement ein Speicherelement
zugeordnet werden. Gemäß einem
weiteren Aspekt ist jedem Zugriffssteuerungselement oder der Speicherschnittstelle
oder der weiteren Speicherschnittstelle ein Speicherelement zugeordnet.
-
Gemäß einem
weiteren Aspekt sind die den Schnittstellen zugeordneten Speicherelemente
ausgebildet, um die Daten mit variablen Zugriffsraten bereitzustellen
oder zu übernehmen.
Hierzu ist beispielsweise jedem Speicherelement ein Auswahlelement
zugeordnet, das eine Zugriffsrate aus einer Mehrzahl von Zugriffsraten
auswählt,
wie es vorstehend beschrieben wurde. Das Gleiche gilt auch für die Speicherschnittstellen.
-
Gemäß einem
weiteren Aspekt ist der ersten Schnittstelle ein erster Protokollwandler
zugeordnet, der ein erstes Datenkommunikations-Protokoll beispielsweise
auf ein Systemkommunikations-Protokoll umsetzt, das der Kommunikation
innerhalb des Speicherkommunikationssystems zugrunde liegt. Gemäß einem
weiteren Aspekt kann der zweiten Speicherschnittstelle ein zweiter
Protokollwandler zugeordnet werden, der beispielsweise ein zweites
Datenkommunikations-Protokoll auf das Systemkommunikations-Protokoll
(oder vice versa) umsetzt. Bevorzugt umfassen der erste und der
zweite Protokollwandler die Struktur und die Funktionalität der vorstehend
beschriebenen Protokollwandler.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung eine Vorrichtung zur Speicherkommunikation
mit einer Einrichtung zum Koppeln an einen Speicher, um auf den
Speicher zuzugreifen, einer ersten Einrichtung zum Koppeln, einer
ersten Einrichtung zum Steuern des Zugriffs auf die Einrichtung zum
Koppeln über
die erste Einrichtung zum Koppeln, einer zweiten Einrichtung zum
Koppeln und einer zweiten Einrichtung zum Steuern des Zugriffs auf die
Einrichtung zum Koppeln oder auf eine weitere Einrichtung zum Koppeln über die
zweite Einrichtung zum Koppeln. Die Funktionalität der Vorrichtung zur Speicherkommunikation
umfasst die Funktionalität des
vorstehend beschriebenen Speicherkommunikationssystems. Insbesondere
umfasst die Funktionalität
der Einrichtung zum Koppeln die Funktionalität der Speicherschnittstelle.
Die Funktionalität
der ersten Einrichtung zum Koppeln umfasst die Funktionalität der ersten
Schnittstelle, die Funktionalität
der Einrichtung zum Steuern des Zugriffs auf die Einrichtung zum
Koppeln über
die erste Einrichtung zum Koppeln umfasst die Funktionalität des ersten
Zugriffssteuerungselements und die Funktionalität der Einrichtung zum Steuern
des Zugriffs auf die Einrichtung zum Koppeln oder auf die weitere
Einrichtung zum Koppeln über
die zweite Einrichtung zum Koppeln umfasst die Funktionalität des zweiten
Zugriffssteuerungselements.
-
Gemäß einem
weiteren Aspekt schafft die Erfindung ein Verfahren zum Herstellen
eines Speicherkommunikationssystems, mit Ausbilden einer Speicherschnittstelle,
Ausbilden einer ersten Schnittstelle, Ausbilden eines ersten Zugriffssteuerungselements
zum Steuern des Zugriffs auf die Speicherschnittstelle über die
erste Schnittstelle, Ausbilden einer zweiten Schnittstelle, und
Ausbilden eines zweiten Zugriffssteuerungselements zum Steuern des
Zugriffs auf die Speicherschnittstelle oder auf eine weitere Speicherschnittstelle über die
zweite Schnittstelle, wobei das erste Zugriffssteuerungselement
und das zweite Zugriffssteuerungselement identisch sind, wobei das
zweite Zugriffssteuerungselement z.B. als eine Kopie des ersten
Zugriffssteuerungselements erzeugt wird.
-
Weitere
Ausführungsbeispiele
der Erfindung werden anhand von Figuren beschrieben. Es zeigen:
-
1a ein
Blockdiagramm eines Speichersystems;
-
1b ein
Blockdiagramm eines Speichersystems;
-
2 ein
Blockdiagramm eines Kommunikationssystems;
-
3 ein
Blockdiagramm eines Systems mit dem Speichersystem und dem Kommunikationssystem;
-
4 ein
Blockdiagramm einer Busbrücke;
-
5 ein
Speicherkommunikationssystem;
-
6 ein
Speicherkommunikationssystem;
-
7 ein
Speicherkommunikationssystem;
-
8a ein
Blockdiagramm einer Steuerung in einem Speicherkommunikationssystem;
und
-
8b ein
Blockdiagramm einer Steuerungseinheit für ein Speicherkommunikationssystem.
-
1a zeigt
ein Blockdiagramm eines erfindungsgemäßen Speichersystems. Das Speichersystem
umfasst eine erste Verarbeitungseinheit 101, eine mit der
ersten Verarbeitungseinheit 101 gekoppelte Schnittstelle 103 (Busif),
ein mit der Schnittstelle 103 gekoppeltes Speicherelement 105 (Buffer),
ein mit dem Speicherelement 105 gekoppeltes Auswahlelement 107 (CLKSEL
= Clock Select), einen mit dem Auswahlelement 107 gekoppelten
Arbiter 109, ein mit dem Arbiter 109 gekoppeltes
weitere Schnittstelle 110 und eine mit der weiteren Schnittstelle 110 gekoppelte
zweite Verarbeitungseinheit 111. Das Speichersystem umfasst
ferner ein Identifikationselement 113, das mit dem Auswahlelement 107 gekoppelt
ist. Ferner ist die Schnittstelle 103 mit dem Identifikationselement 113 (Decoder,
DEC) gekoppelt. Das Identifikationselement 113 umfasst
optional einen weiteren Eingang 115. Das Auswahlelement 107 hat
optional einen weiteren Ein-/Ausgang 123 zur Verbindung
mit weiteren Arbitern. Der Arbiter 109 hat optional einen
weiteren Ein-/Ausgang 123 zur Verbindung mit weiteren Auswahlelementen.
-
1b zeigt
ein Blockdiagramm eines Speichersystems gemäß einem weiteren Aspekt. Im
Unterschied zu dem in 1a dargestellten Ausführungsbeispiel
ist die Busschnittstelle 110 nicht über einen Arbiter, sondern
direkt mit dem Auswahlelement 107 gekoppelt.
-
Die
in 1a und 1b dargestellten
Verbindungen zwischen den jeweiligen Elementen sind zur Übertragung
der folgenden Signale vorgesehen:
Master oder Slave-spezifisches
Busprotokoll 117;
M2B (M2B = Master-to-Buffer) Schnittstelle
(Transaktions-Code,
Schreib- und Lesedaten) 119;
M2B Schnittstelle (Transaktions-Code) 121;
D2B (D2B = Decoder-to-Buffer) Schnittstelle (Slave-Auswahl) 124;
B2S
(B2S = Buffer-to-Slave) Schnittstelle (Transaktions-Code, Schreib-
und Lesedaten) 123;
Ausgewählter Slave-Takt (Slave Clock) 125;
Cfg2D
(Configuration-to-Decoder) Schnittstelle (Decoder-Konfigurierung) 127.
-
Eine
Funktion sowohl der M2B-Schnittstellen als auch der B2S-Schnittstellen ist
die Bereitstellung von Transaktions-Codes ((Start-)Adresse, Transferrichtung,
Burst-Art und -Länge,
Master-ID und/oder Transaktions-ID), Schreib-Daten und Lese-Daten, sowie Statusinformationen
(zum Beispiel Lesefehler) gemäß dem Systemkommunikationsprotokoll.
Beide Schnittstellen sind mit verschiedenen Bezeichnungen benannt,
um deutlich zu machen, dass sie nicht zwangsläufig dieselbe Kodierung der
Information verwenden, auch wenn sie dieselbe Funktion erfüllen. Mögliche allgemein
bekannte Vertreter solcher Schnittstellen sind AXI (von ARM Ltd.)
oder OCP (von VSIA standardisiert).
-
Eine
Funktion der D2B-Schnittstelle ist die Bereitstellung der Identifikationssignale
zur Auswahl von Zeitbasis und Datenweg durch das Auswahlelement.
Minimal beinhaltet diese Schnittstelle die Identifikation des ausgewählten Datenwegs
(für den
Fall dass jeder Datenweg seinen eigene Datenübertragungsrate hat). Wenn
mehrere Datenwege dieselbe Datenübertragungsrate
verwenden, kann es sinnvoll sein, eine separate Identifikation des
Datenwegs und der gewählten
Datenübertragungsrate
mit dieser Schnittstelle bereitzustellen. Aus Optimierungsgesichtspunkten
können
noch weitere Informationen beigefügt werden, z.B. über die Änderung
der Zeitbasis.
-
Eine
Funktion der Cfg2D-Schnittstelle ist die Bereitstellung aller Entscheidungsgrundlagen,
die das Identifikationselement benötigt, um die Auswahl des Datenwegs
und der Zugriffsrate zu treffen. Dazu gehören für jeden Datenweg und jede auswählbare Zugriffsrate
die Festlegung des Adress-Bereichs, der Transfer-Richtung, sowie
optional zusätzlicher
Sicherheitsinformationen die Bedingungen an die Zulässigkeit
des Zugriffs stellen, wie zum Beispiel die Unterscheidung von privilegiertem
und nicht-privilegiertem Zugriff, von sicheren Quellen ausgelösten Zugriffen,
Instruktions- oder Datenzugriffen. Die Form in der diese Informationen
bereitgestellt werden ist unerheblich. Möglicherweise sind diese Informationen
sogar fest in das Identifikationselement hineinkodiert.
-
Die
erste Verarbeitungseinheit 101, die Schnittstelle 103 sowie
das Identifikationselement 113 operieren innerhalb eines
Master-Taktbereichs 129 (Master Clock Domain), dessen Takt- bzw. Zugriffsrate
durch die Taktrate der ersten Verarbei tungseinheit 101 (Master-Einheit)
vorgegeben ist. Das Auswahlelement 107 (CLKSEL), der Arbiter 109 sowie
die zweite Verarbeitungseinheit 111 (Slave-Einheit) arbeiten
innerhalb des Slave-Taktbereichs 131 (Slave Clock Domain),
innerhalb dessen die Takt- bzw. die Zugriffsrate durch die Taktrate
der zweiten Verarbeitungseinheit 111 (Slave-Einheit) festgelegt wird.
-
Die
Elemente des Speichersystems sind miteinander gekoppelt, wie es
in 1a und 1b dargestellt
sind. Das Auswahlelement 107 umfasst optional einen weiteren
Anschluss 123, der beispielsweise mit anderen Komponenten,
die in 1a und 1b nicht
dargestellt sind, unter Verwendung einer Crossbar-Struktur verbindbar
ist. Auch der in 1a dargestellte Arbiter 109 umfasst
optional einen weiteren Anschluss 123, der mit weiteren
Komponenten, die in 1a nicht dargestellt sind, beispielsweise
durch einen Crossbar verbindbar ist.
-
Im
Folgenden wird lediglich beispielhaft angenommen, dass die erste
Verarbeitungseinheit 101 eine Master-Einheit ist und dass
die zweite Verarbeitungseinheit 111 eine Slave-Einheit
ist. Die erste Verarbeitungseinheit 101 kann jedoch eine
Slave-Einheit sein und die zweite Verarbeitungseinheit 111 kann hingegen
eine Master-Einheit sein. Ein Master, der Transaktionen auslöst, ist
bevorzugt mit einem Identifikationselement verbunden, um die Auswahl
der Zugriffsrate zu treffen. Der Verarbeitungseinheit 111 kann
ebenfalls ein Identifikationselement zugeordnet werden.
-
Werden
mehrere der in 1a bzw. in 1b dargestellten
Speicherkommunikationssysteme innerhalb einer Kommunikationsstruktur
angeordnet, so ergibt sich eine erfindungsgemäße Kommunikationsstruktur,
die eines oder mehrere der folgenden Merkmale umfasst:
- – Eine
Anzahl von M Master-Einheiten 101, die Erzeuger von Transaktionen
sind;
- – eine
Anzahl von S Slave-Einheiten 111, die Verbraucher von Transaktionen
sind;
- – eine
Anzahl von M Busschnittstellen 103, die ein Master-Kommunikationsprotokoll
(Datenkommunikations-Protokoll) in einen Transaktions-Code (beispielsweise
ein Systemkommunikations-Code) umsetzen bzw. in eine Sequenz von
Transaktions-Codes umsetzen. Die Busschnittstellen 103 können ferner
Daten schreiben (d.h. von einem Master zu einem Slave) und Daten
lesen (d.h. von einem Slave zu einem Master),
- – eine
Anzahl von M Speicherelementen 105 (Buffer-Strukturen),
wobei jede Speicherelement 105 die Aufnahme von einem oder
mehreren Sets von Transaktions-Codes, von einem oder mehreren Sets
von Schreib-Daten und einen oder mehrere Sets von Lese-Daten unterstützt. Die
Speicherelement 105 ist derart ausgebildet, dass das Speichern
von Daten (Schreiboperation) innerhalb eines Taktbereichs (Clock
Domain) und dass die Bereitstellung von Informationen (Leseinformation)
in einem anderen Taktbereich sicher und ohne Datenverlust ausgeführt werden
können,
selbst wenn die Lesetakte und die Schreibtakte voneinander unabhängig und/oder
bezüglich
einander asynchron sind;
- – eine
Entscheidungseinheit 113 zum Auswählen der jeweiligen Slave-Einheit 111 in
Abhängigkeit von
dem Transaktions-Code,
mit der kommuniziert werden soll;
- – einen
(Takt)-Auswahlmechanismus 107 beispielsweise zum Einstellen
des Auslesetaktes eines Transaktions-Code-Speichers und eines Schreibdatenspeichers
und zum Einstellen eines Schreibtaktes des Lesedatenspeichers bezüglich des
Taktes der ausgewählten
Slave-Einheit 111;
- – eine
Crossbar-ähnliche
Struktur, die eine nicht-blockierende
parallele Kommunikation zwischen multiplen Master-Einheiten 101 und
multiplen Slave-Einheiten 111 gleichzeitig ermöglicht;
- – einem
Arbitrierungs-Mechanismus 109 für jede Slave-Einheit, der vorgesehen
ist, um Konflikte aufzulösen,
falls mehrere Master-Einheiten 101 dieselbe Slave-Einheit 111 gleichzeitig
auswählen,
um eine Kommunikation durchzuführen.
Der von dem Arbitrierungs-Mechanismus 109 (Arbiter) verwendete
Arbitrierungs-Algorithmus kann entweder fest oder beispielsweise
teilweise programmierbar sein. Ein programmierbarer Arbitrierungs-Mechanismus
erlaubt eine Einstellung der Latenz und des Durchsatzes für unterschiedliche Master-Einheiten hinsichtlich
derselben Slave-Einheit gemäß der zu
einem gegebenen Zeitpunkt aktiven Anwendung,
- – einer
Anzahl von S weiteren Schnittstellen 110 (Slave-Interfaces), die
die Transaktions-Codes, die Schreibdaten und die Lesedaten in ein
durch die jeweilige Slave-Einheit 111 verwendetes Kommunikationsprotokoll
(Datenkommunikations-Protokoll) übersetzen
(umsetzen);
- – ein
genau definiertes Schnittstellenprotokoll M2B (M2B = Master-to-Bus, 119),
das zwischen einer beliebigen Busschnittstelle (Bus-Interface), die
mit einem Master verbunden ist, und einer beliebigen Speicherelement
verwendet wird;
- – ein
genau definiertes Schnittstellenprotokoll B2S (B2S = Bus-to-Slave, 123),
das zwischen einem Speicherelement und einem Arbiter oder einer
Busschnittstelle (Bus-Interface), die oder der mit einem Slave verbunden
ist, verwendet wird. Dasselbe Schnittstellenprotokoll wird verwendet zwischen
einem Arbiter und einer Busschnittstelle (Bus-Interface), der bzw.
die mit dem Slave verbunden ist. Die Arbiter verwenden daher dasselbe Protokoll
an deren Eingängen
und an deren Ausgang, was eine Umgehung eines Arbiters ermöglicht,
falls nichts arbitriert werden soll, wie es beispielsweise in 1b dargestellt
ist;
- – ein
genau definiertes Schnittstellenprotokoll D2B (D2B = Decoder-to-Buffer, 124),
das zwischen einem Identifikationselement und einem Speicherelement
verwendet wird,
- – ein
genau definiertes Schnittstellenprotokoll Cfg2D (Cfg2D = Configuration-to-Decoder, 127) zum
Konfigurieren irgendeines Identifikationselements, um festzulegen,
wie die Transaktions-Codes auf eine Auswahl einer aus mehreren Slave-Einheiten,
mit der kommuniziert werden soll, übersetzt werden sollen,
- – die
Konfigurierung des Identifikationselements und optional des Arbiters
kann gesteuert werden
- a) durch bezüglich
der Kommunikationsstruktur externe Vorrichtungen,
- b) durch eine Slave-Einheit, die für zumindest einige Master-Einheiten über die
Kommunikationsstruktur zugänglich
ist,
- c) irgendeine Kombination von a) und b),
Die unter b) und
c) aufgeführten
Optionen unterstützen
die Redundanz in der Kommunikationsstruktur, weil mehrere äquivalente
Slave-Einheiten mit redundanten Kommunikationspfaden bereitgestellt
werden können.
Falls eine Slave-Einheit oder falls Kommunikationspfade zu einer
Slave-Einheit sich
als nicht funktionierend herausstellen, können die Identifikationselemente
programmiert werden, um nicht auf diese Slave-Einheit, sondern auf
eine äquivalente
Slave-Einheit über
die zugeordneten Kommunikationspfade zuzugreifen.
-
Die
in 1a und 1b dargestellte
D2B Schnittstelle (124) ist vorgesehen, um die Taktbereichsgrenzen
zu überqueren.
Eine mögliche
Implementierung, die eine Synchronisation dieses Signals ermöglicht,
besteht darin, diese Information durch ein Speicherelement passieren
zu lassen, was das Synchronisationsproblem aufgrund der Möglichkeiten des
vorstehend beschriebenen Speicherelements implizit löst. Gemäß einem
Aspekt kann ferner ein dezidierter Synchronisationsmechanismus eingesetzt werden.
-
1a und 1b verdeutlichen
ferner die Struktur des erfindungsgemäßen Kommunikationssystems,
das vorstehend beschrieben worden ist. Die erfindungsgemäße erste
Schnittstelle zum Bereitstellen von ersten Daten gemäß einem
ersten Datenkommunikations-Protokoll und der erfindungsgemäße erste
Protokollwandler zum Umwandeln des Datenkommunikations-Protokolls in ein
Systemkommunikations-Protokoll können
beispielsweise in der Schnittstelle 103 (Busif) und/oder
in der Schnittstelle 110 angeordnet sein. Das Systemkommunikations-Protokoll ist in
diesem Zusammenhang das zwischen den Schnittstellen 103 und 110 verwendete Datenkommunikations-Protokoll in den
Ausprägungen
M2B (119) und B2S (123). Die zweite Schnittstelle
kann möglicherweise
mit dem zweiten Protokollwandler beispielsweise innerhalb der Schnittstelle 110 (Busif)
oder innerhalb der Schnittstelle 103 (Busif) angeordnet
sein. Die Zuordnung der ersten Schnittstelle bzw. der zweiten Schnittstelle
zu einer der in 1a und 1b dargestellten
Schnittstellen 103 und 110 hängt davon ab, welche Funktionalität (Master
oder Slave) der jeweiligen Verarbeitungseinheit 101 bzw. 111 zugeordnet
ist.
-
Gemäß einem
weiteren Aspekt zeigen 1a und 1b Ausführungsbeispiele
der erfindungsgemäßen Vorrichtung
zum Datentransfer, deren Funktionalität die Funktionalität des vorstehend beschriebenen
Speichersystems umfasst.
-
Die
in 1a und 1b dargestellten
Basiskonzepte ermöglichen
die Zusammenstellung und Verbindung von komplexen Systemen mit einer Mehrzahl
von Master- und Slave-Einheiten. Dabei limitiert das Minimum min
(M, S) der Anzahl der Master- und Slave-Einheiten die Anzahl der
Transaktionen, die parallel und ohne gegenseitige Blockierung ausgeführt werden
kann. Die geeignete Verdrahtung bzw. Verbindung der Einheiten kann
mit Hilfe eines Crossbars realisiert werden. Die Taktbereichs-Überquerung (Clock Domain Crossing)
findet, wie in 1a und 1b gezeigt,
in dem Speicherelement 105 statt. Das bedeutet, dass die
Daten mit einer ersten Taktrate in das Speicherelement 105 gespeichert und
mit einer zweiten Taktrate, die sich von der ersten Taktrate unterscheiden
kann, aus demselben ausgelesen werden. Das erfindungsgemäße Auswahlelement 107 (Taktauswahlmechanismus,
Clock Selection Mechanism) ermöglicht
allen Master- und Slave-Einheiten, innerhalb deren individuellen
Taktbereich zu arbeiten.
-
Ein
Ausführungsbeispiel
einer komplexeren Kommunikationsstruktur ist in 2 dargestellt,
der eine skalierbare Crossbar-Struktur zugrunde liegt.
-
Das
in 2 dargestellte System umfasst eine Mehrzahl von
Master-Einheiten 101 und eine Mehrzahl von Busschnittstellen 103,
wobei eine Schnittstelle 103 jeweils einer Master-Einheit 101 zugeordnet
ist. Das System umfasst ferner eine Mehrzahl von Identifikationselementen 113 (Decoder), eine
Mehrzahl von Speicherelementen 105 und eine Mehrzahl von
Auswahlelementen 107. Dabei bilden jeweils ein Speicherelement 105 und
ein dem Speicherelement zugeordnetes Auswahlelement 107 jeweils
ein Speichersystem mit einem gemäß einem weiteren
Aspekt vorgesehenen Identifikationselement 113.
-
Im
unteren Bereich des in 2 dargestellten Ausführungsbeispiels
sind weitere Arbiter 109, weitere Schnittstellen 110 und
weitere zweite Verarbeitungseinheiten 111 angeordnet.
-
Die
Verbindungen zwischen den in 2 dargestellten
Elementen sind mit Hilfe einer Crossbar-Verbindungsstruktur realisiert.
Die Verbindungen sind ferner vorgesehen, um die bereits im Zusammenhang
mit den in 1a und 1b dargestellten Ausführungsbeispielen
diskutierten Signale zu übertragen.
-
Falls
eine Master-Einheit 101 direkt unter Verwendung des M2B-Protokolls
kommuniziert, besteht keine Notwendigkeit, eine weitere Busschnittstelle
für eine
Protokollwandlung zwischen der Master-Einheit und der Speicherelement
vorzusehen (siehe die obere rechte Seite in 2). Das
Gleiche gilt, falls eine Slave-Einheit direkt unter Verwendung des
B25-Protokolls kommuniziert,
denn auch in diesem Fall besteht keine Notwendigkeit, eine Busschnittstelle
für eine
Protokollübersetzung
(Protokollwandlung) zwischen dem jeweiligen Arbiter und der jeweiligen
Slave-Einheit anzuordnen (siehe z.B. die untere linke Seite in 1). Die Arbitrierung (Arbitration) der
mehreren Master-Einheiten zu einer Slave-Einheit kann unter Verwendung eines
einzigen Arbiters (Single-Level Arbiter) durchgeführt werden, wie
es beispielsweise im unteren Bereich von 1 dargestellt
ist. Alternativ kann diese Arbitrierung mit einer Menge von kaskadierten
Arbitern durchgeführt werden.
-
Die
Schnittstellen der in 2 dargestellten Anordnung können jeweils
ein Speicherelement zum Bereitstellen oder zum Entgegennehmen von
Daten und/oder einen dem jeweiligen Speicherelement zum Bereitstellen
oder zum Entgegennehmen zugeordneten Protokollwandler mit den jeweils
vorstehend beschriebenen Merkmalen aufweisen.
-
Gemäß einem
weiteren Aspekt zeigt die in 2 dargestellte
Anordnung ein Blockdiagramm einer erfindungsgemäßen Vorrichtung zur Datenkommunikation,
deren Funktionalität
die Funktionalität des
vorstehend beschriebenen Kommunikationssystems umfasst.
-
Die
erfindungsgemäße Kommunikationsstruktur
umfasst z.B. eines oder mehrere der folgenden Merkmale:
- – geringe
Latenz eines einzelnen Speicherelements (Buffers) zwischen einer
Master-Einheit und einer Slave-Einheit;
- – einen
hohen Durchsatz aufgrund der nicht-blockierenden parallelen Kommunikation
durch den Crossbar;
- – flexible
und unabhängige
Taktbeziehungen zwischen allen Master- und Slave-Einheiten. Auf
der Master-Seite wird dies aufgrund der Eigenschaft des erfindungsgemäßen Speicherelements
(Buffer) zur Taktbereichs-Überquerung
und auf der Slave-Seite aufgrund des Taktauswahlmechanismus (Clock
Selection Mechanism) realisiert;
- – Datenübertragung
von einer Master-Einheit zu einer Slave-Einheit und vice versa;
- – geringer
Flächenverbrauch
aufgrund der Verwendung von nur M Speicherelementen (Buffern);
- – verringerter
Implementierungsbedarf durch Wiederverwendung derselben Basiskomponenten
für unterschiedliche
SOC-Verbindungsstrukturen. Dies
wird durch die Verwendung von wenigen, geeignet definierten Schnittstellenprotokollen
erreicht;
- – Verringerter
Verifikationsaufwand durch Wiederverwendung von vorverifizierten,
geprüften
Komponenten in unterschiedlichen SOCs;
- – Wiederverwendung
von Verifikationskomponenten aufgrund der Verwendung von wenigen,
geeignet definierten Schnittstellenprotokollen.
-
Ein
Merkmal des erfindungsgemäßen Speichersystems
sowie der in 1 und 2 dargestellten
Ausführungsbeispiele
ist das Auswahlelement 107 (Taktauswahlmechanismus), das
innerhalb kürzester
Zeit die Anpassung an den ausgewählten Taktbereich
(Clock Domain) der Slave-Einheit ermöglicht. Falls eine Sequenz
von Transaktionen durch dieselbe Master-Einheit zu derselben Slave-Einheit übertragen
wird, wird der Taktauswahlmechanismus nur einmal getriggert, um
die Latenz weiter zu verbessern.
-
Das
Merkmal des Einstellens des Back-End-Taktes des Speicherelements
(Lesetakt für
den Transaktions-Code und die Schreibdaten sowie den Schreibtakt
für Lesedaten)
ist der Schlüssel zur
Ermöglichung
der Verwendung desselben Speicherelements für alle angeschlossenen Slave-Einheiten.
Dadurch werden die Silizium-Ressourcen, die den Speicherelementen
zugewiesen werden, effizient genutzt, weil eine einzelne Master-Einheit
mit einer einzelnen Slave-Einheit zu jeder Zeit kommunizieren kann.
Im Ergebnis kann insgesamt ein einzelnes Speicherelement pro Master-Einheit
und ein einzelnes Speicherelement innerhalb des Timing-Pfades von
der Master-Einheit zu der Slave-Einheit vorgesehen werden. Durch
den erstgenannten Effekt wird die gewünschte Flächenreduktion erreicht, durch
den zweitgenannten Effekt wird die Latenz gering gehalten.
-
Das
zweite Merkmal ist die Zusammensetzung von beliebigen komplexen
Verbindungsstrukturen (Interconnect-Strukturen) aus wenigen Blöcken mit
genau definierten Schnittstellen. Dadurch wird die Flexibilität beim Aufbau
von optimierten Verbindungsstrukturen für unterschiedliche SOC-Designs effizient
ermöglicht.
-
Die
Verwendung von erfindungsgemäßen Arbitern,
die die Funktionen des Multiplexen der Datenwege und der Arbitrierung
vereinigen, resultiert in einer Crossbar-Struktur, die lediglich
verdrahtet ist, aber keine weiteren Schaltelemente enthält. Falls
die Funktion der Arbitrierung separat von dem Crossbar-Schalten
ausgeführt
wird, erhält
man einen Crossbar mit Schaltelementen, die die Funktion des Multiplexens
der Datenwege realisieren. Die Implementierungsart (z.B. durch Programmierung,
durch Verdrahtung, durch analoge oder durch digitale Komponenten)
ist für
die erfindungsgemäßen Strukturen nicht
wesentlich. Die Zusammensetzung der komplexen Verbindungsstrukturen
auf der Basis der beispielsweise in 1 dargestellten
bildenden Blöcke wird
wie dort gezeigt ausgeführt.
-
Die
erfindungsgemäßen Strukturen
können auf
vielfältige
Weise implementiert werden. Die Busschnittstellen auf der Master-Seite sind optional,
falls der Master das Protokoll (M2B) zu den Speicherelementen direkt
erzeugt. Dies ist beispielsweise dann der Fall, wenn der Master
das vorstehend bereits erwähnte
Systemkommunikations-Protokoll direkt verwendet. Die Busschnittstellen
auf der Slave-Seite sind ebenfalls optional, falls der jeweilige
Slave direkt das Protokoll (B2S) der Arbiter oder des Crossbars verwendet,
wie es beispielsweise in 3 verdeutlicht ist (Register
und Slave). Der Arbiter für
eine Slave-Einheit ist optional, falls auf diese Slave-Einheit durch einen
einzigen Master zugegriffen werden soll, wie es beispielsweise in 3 veranschaulicht
ist. Der Arbitrierungs-Algorithmus kann entweder fest oder programmier bar
sein (siehe 3). Die Entscheidungseinheit
ist ebenfalls optional, falls eine Master-Einheit nur mit einer
Slave-Einheit kommunizieren soll, wie es beispielsweise in 4 dargestellt ist.
Das Speicherelement ist optional, falls die Kommunikation zwischen
einer Master-Einheit und einer Slave-Einheit oder Slave-Einheiten
in demselben Takt stattfindet und beispielsweise zeitlich eng gekoppelt
sein sollte. Das Speicherelement kann, was die Handhabung der Lese-
und Schreibtakte anbetrifft, vereinfacht werden, falls die Taktraten
beispielsweise voneinander abhängen
oder eine definierte Phasenbeziehung aufweisen. Dies ist beispielsweise dann
der Fall, wenn die Synchronisierer (dem Stand der Technik entsprechend
Ketten von zwei oder mehr Registern) zwischen den Lese- und Schreibzeigern für ein schnelleres
Update der auf den Buffer-Füllpegel
bezogenen Status-Flags umgangen werden.
-
Der
Taktauswahlmechanismus (Clock Selection Mechanism) ist optional,
falls alle angeschlossenen Slave-Einheiten innerhalb desselben Taktbereichs
(Clock Domain) angeordnet sind, wie es in 4 dargestellt
ist. Der Crossbar muss nicht vollständig verbunden sein, sondern
kann vereinfacht ausgeführt
werden, je nachdem, welche Master-Einheiten mit welchen Slave-Einheiten
kommunizieren sollen und welche von diesen Kommunikationen nicht-blockierend
ausgeführt
werden sollen (siehe 3).
-
Der
Crossbar kann entweder bestehen aus einer horizontalen und vertikalen
Verdrahtung mit schaltbaren Elementen an den Kreuzungspunkten, wobei
die Arbiter beispielsweise nur die schaltbaren Elemente steuern.
Gemäß einem
weiteren Aspekt kann der Arbiter die Arbitrierungs-Logik und die
gesteuerten schaltbaren Elemente zu einem einzelnen Modul kombinieren,
das einem Multiplexer ähnlich ist.
In dem Fall werden die verbleibenden Bereiche des Crossbars nur
durch Verdrahtung ohne schaltende Elemente gebildet. Beide Implementierungsva rianten
verkörpern
unterschiedliche Sichtweisen desselben Basiskonzepts.
-
Die
Arbitrierung muss nicht notwendigerweise direkt gegenüber einer
Slave-Einheit stattfinden, die alle Master-Einheiten in derselben
Art behandelt, wie es beispielsweise im unteren mittleren Bereich
in 2 dargestellt ist. Ein hierarchisches Arbitrierungs-Verfahren
kann ebenfalls angewendet werden, bei dem einige Master-Einheiten
zuerst arbitriert werden, bevor eine selektierte Master-Einheit
mit dem nächsten
Arbitrations-Level verbunden wird, wie es beispielsweise im unteren
linken und rechten Bereich in 2 dargestellt
ist. Die Anzahl der kaskadierten Arbitrations-Level und die Anzahl
der Master-Einheiten, die in jedem Level arbitriert werden, kann
entsprechend den Systemanforderungen gewählt werden. In diesem Fall
entstehen mehrere Ebenen von Crossbar-Verdrahtung und Arbitrierung
in einer Hierarchischen-Interconnect-Struktur, wie es in 3 links
unten und rechts unten dargestellt ist.
-
Die
Anzahl der Master- und die Anzahl der Slave-Einheiten kann auf eins
reduziert werden, was eine Busbrücke
ergibt, die aus einer Untermenge derselben Basiskomponenten, wie
z.B. eines komplexen SOC-Verbindungsschemas, gebildet werden (siehe 4).
-
Das
Speicherelement kann beispielsweise ausstehende Schreibtransaktionen
zu derselben Slave-Einheit in der Sequenz ermöglichen oder nicht ermöglichen.
Ausstehende Transaktionen sind Transaktionen, die noch nicht abgeschlossen
sind, obwohl schon neue Transaktionen begonnen wurden. Das Speicherelement
kann ferner ausstehende Lesetransaktionen zu derselben Slave-Einheit in der Sequenz
ermöglichen
oder nicht ermöglichen.
Ferner kann das Speicherelement ausstehende Schreibtransaktionen
(Speichertransaktionen) zu unterschiedlichen Slave-Einheiten in der
Sequenz ermöglichen
oder nicht ermöglichen.
Aus der Sicht des Crossbars und/oder der Arbitrierungs-Logik stellt
ein Speicherelement, das in der Lage ist, ausstehende Speicheroperationen
zu unterschiedlichen Slave-Einheiten auszuführen, mehrere unabhängige Master-Schnittstellen
dar.
-
Das
Speicherelement kann beispielsweise ausstehende Lesetransaktionen
zu unterschiedlichen Slave-Einheiten in der Sequenz erlauben oder nicht
erlauben. Aus der Sicht des Crossbars und der Arbitrierungs-Logik
stellt sich ein derartiges Speicherelement, das in der Lage ist,
ausstehende Leseoperationen zu unterschiedlichen Slave-Einheiten auszuführen, dar
wie mehrere unabhängige
Master-Schnittstellen.
-
Die
B2S-Schnittstelle für
den Transaktions-Code und die zu speichernden Daten können beispielsweise
Punkt-zu-Punkt orientiert sein oder den Transaktions-Code und die
Ausgänge
der zu speichernden Daten beim Taktauswahlmechanismus duplizieren.
Gemäß einem
weiteren Aspekt kann der Transaktions-Code und die zu speichernden
Daten per Broadcast zu allen angeschlossenen Arbitern/Slave-Einheiten übertragen
werden, wobei nur einige Steuersignale übertragen werden, die anzeigen,
welcher angeschlossene Arbiter/Slave an der Kommunikation teilnehmen
soll. Die B2S-Schnittstelle für
die auszulesenden Daten kann entweder Punkt-zu-Punkt orientiert
sein, wobei die auszulesenden Daten durch die Arbiter zurück zu der
Taktauswahl und zu dem Buffer des Masters der gegenwärtigen Transaktionen
geroutet werden, oder die Slave-Einheiten können per Broadcast die auszulesenden
Daten zu allen angeschlossenen Taktauswahlmechanismen mit einem
Indikator übertragen,
der anzeigt, für
welchen Master die Daten bestimmt sind. Es ist die Aufgabe des Taktauswahlmechanismus und
des Speicherelements, die richtigen Lesedaten aufzunehmen (siehe 3).
-
Die
Slave-Einheiten können
die Funktionalität
von peripheren Elementen oder Speichern aufweisen. Die Gemeinsamkeit
der Slave-Einheiten kann darin bestehen, dass sie ein Set von Transaktionen
akzeptieren und Schreibdaten aufnehmen oder die Lesedaten gemäß der durchzuführenden
Transaktion bereitstellen.
-
Die
Master-Einheiten können
als ein Teil der existierenden CPUs, MCUs, ASSPs oder DSPs ausgeführt werden.
Gemäß einem
weiteren Aspekt können
sie an funktionale Komponenten in einem Chip angebunden werden,
die bestimmte Anwendungen ausführen.
-
Darüber hinaus
können
auf demselben Chip mehrere unabhängige
Speichersysteme implementiert werden. Diese Speichersysteme können über Komponenten
verbunden werden, die für
das eine Speichersystem Slave-Einheiten und für das andere Speichersystem
Master-Einheiten sind.
-
Beliebige
vorstehend beschriebene Basiskomponenten können entweder in Sub-Komponenten
aufgeteilt oder mit anderen Komponenten auf dem etwaigen Abstraktions-Level
verbunden werden (z.B. RTL-Code, Netzliste, Layout etc.). Das impliziert,
dass einige neue Schnittstellen beispielsweise durch das Aufteilen
von Komponenten entstehen oder dass einige Schnittstellen durch
das Zusammenführen
von Komponenten verschwinden.
-
3 zeigt
ein Blockdiagramm eines Systems gemäß einem weiteren Aspekt der
vorliegenden Erfindung. Das System umfasst die Verarbeitungseinheiten 301, 303, 305 und 307,
die beispielsweise als Master-Einheiten ausgeführt sind. Der jeweiligen Master-Einheit 301 bis 307 ist
jeweils eine Schnittstelle (Busif) 309 bis 315 zugeordnet.
Jede der Schnittstellen 309 bis 315 ist jeweils
mit einem der Speicherelemente 317 bis 323 verbunden.
Jedes der Speicherelemente 317 bis 323 ist mit
einem jeweiligen Auswahlelement 325 bis 331 gekoppelt.
Ferner ist ein Arbiter 333 vorgesehen, der mit einer Schnittstelle 335 (Busif)
gekoppelt ist. Die Schnittstelle 335 ist mit einer Verarbeitungseinheit 337 gekoppelt,
die beispielsweise eine Slave-Einheit ist. Ferner sind ein Arbiter 339 und
eine spezielle Slave-Verarbeitungseinheit 341 (Regs) vorgesehen,
die vor allem Register enthält.
Alle Elemente sind, wie in 3 dargestellt,
verschaltet.
-
Darüber hinaus
sind einige der in 3 dargestellten Verbindungen
vorgesehen, um B2S (B2S = Buffer-to-Slave) Transaktions- und Schreibdaten-Steuersignale 343 zu übertragen
(beispielsweise Punkt-zu-Punkt). Ferner sind Leitungen vorgesehen, um
die D2B (D2B = Decoder-to-Buffer) Schnittstellensignale 124 zu übertragen
(Slave Select).
-
3 zeigt
eine beispielhafte Implementierung, bei der der Transaktions-Code
und die Schreibdaten nach der Taktauswahl zu allen angeschlossenen
Arbitern und Slave-Einheiten per Broadcast übertragen werden. Auf eine ähnliche
Weise werden die Lesedaten durch eine Master-ID erweitert und von
den Slave-Einheiten direkt zu den angeschlossenen Taktauswahlblöcken (Auswahlelementen)
der Master per Broadcast übertragen,
wobei die Arbiter umgangen werden können. Die Arbitrations-Prioritäten und
die Entscheidungs-Kriterien sind in dem Registerblock 341 (Regs)
programmierbar. In der gezeigten Implementierung ist das Register 341 als eine
Slave-Einheit mit dem Crossbar verbunden, wodurch die Durchführung der
Konfiguration mit mehr als einem einzelnen Master ermöglicht wird.
-
Die
in 3 dargestellten Elemente können gemäß einem Aspekt der vorliegenden
Erfindung innerhalb von unterschiedlichen Taktbereichen angeordnet
werden. Die Master-Einheit 301, die Schnittstelle 309 sowie
die mit der Schnittstelle 309 kommunizierende Seite des
Speicherelementes 317 sind beispielsweise innerhalb eines
ersten Master-Taktbereichs 350 angeordnet. Die Master-Einheit 303,
die Schnittstelle 311 sowie die mit der Schnittstelle 311 kommunizierende
Seite des Speicherelementes 319 sind beispielsweise innerhalb
eines zweiten Master-Taktbereichs 352 angeordnet. Die Master-Einheit 305,
die Schnittstelle 313 sowie die mit der Schnittstelle 313 kommunizierende
Seite des Speichers 321 sind beispielsweise innerhalb eines
dritten Master-Taktbereichs 354 angeordnet. Die Master-Einheit 307,
die Schnittstelle 315 sowie die mit der Schnittstelle 315 kommunizierende
Seite des Speicherelementes 323 sind beispielsweise innerhalb
eines vierten Master-Taktbereichs 356 angeordnet. Die Master-Taktbereiche 350 bis 356 zeichnen
sich beispielsweise durch unterschiedliche Taktraten aus, die beispielsweise
durch die Taktraten der Master 301 bis 307 festgelegt
sind. Gemäß einem
Aspekt können manche
oder alle der Master-Taktbereiche 350 bis 356 jedoch
dieselbe Taktrate aufweisen. Das Register 341, das Auswahlelement 325 sowie
die mit dem Auswahlelement 325 kommunizierende Seite des Speichers 317 sind
beispielsweise innerhalb eines Slave-Taktbereichs 360 (Slave
Clock Domain) angeordnet. Die übrigen
Elemente sowie die mit den Auswahlelementen 327, 329 und 331 kommunizierenden Seiten
der Speicherelemente 319, 321 und 323 sind beispielsweise
innerhalb eines zweiten Slave-Taktbereichs 362 angeordnet.
Die Slave-Taktbereiche 360 und 362 zeichnen
sich beispielsweise durch gleiche oder unterschiedliche Taktraten
aus, mit denen die jeweiligen Elemente arbeiten.
-
4 zeigt
eine Busbrücke,
die eine Vereinfachung der Kommunikationsstruktur darstellt. Die Busbrücke umfasst
eine Verarbeitungseinheit 401 (beispielsweise eine Master-Einheit), die mit
einer Schnittstelle 403 (Busif) gekoppelt ist. Die Schnittstelle 403 ist
mit einem Speicherelement 405 (Buffer) gekoppelt. Das Speicherelement 405 ist
mit einer weiteren Busschnittstelle 407 gekoppelt, die
mit einer Verarbeitungseinheit 409 (beispielsweise einer
Slave-Einheit) verbunden ist. Die Master-Einheit 401, die
der Master-Einheit 401 zugeordnete Schnittstelle 403 sowie
die mit der Schnittstelle 403 kommunizierende Seite des
Speicherelementes 405 sind innerhalb eines Master-Taktbereichs 411 angeordnet
und werden in dem Master-Takt betrieben. Die Slave-Einheit 409,
die Schnittstelle 407 sowie die mit der Schnittstelle 407 kommunizierende
Seite des Speicherelementes 405 sind hingegen innerhalb
eines Slave-Taktbereichs 413 angeordnet und arbei ten in dem
Slave-Takt. Die Busbrücke 415 umfasst
die Schnittstellen 403 und 407 sowie das Speicherelement 405.
-
Bei
den Schnittstellen 403 und 407 handelt es sich
beispielsweise um Busschnittstellen (Bus-Interface). In 4 sind
ferner die von der jeweiligen Verbindung zwischen den jeweiligen
Komponenten übertragenen
Signale gekennzeichnet, die bereits im Zusammenhang mit den in 1a und 1b dargestellten
Ausführungsbeispielen
erörtert
worden sind.
-
Die
vorstehend beschriebenen Systeme umfassen sowohl die Merkmale des
erfindungsgemäßen Speichersystems
als auch die Merkmale des erfindungsgemäßen Kommunikationssystems,
um eine gemeinsame Wirkung beider Systeme insbesondere bei Crossbar-Verbindungen zu verdeutlichen.
Sowohl das Speichersystem als auch das Kommunikationssystem sind
jedoch unabhängig
voneinander verwendbar und beispielsweise an eine Crossbar-Verbindungsstruktur
anschließbar.
-
Die
Erfindung schafft ferner ein Speicherkommunikationssystem, das beispielsweise
als eine DMA-Einrichtung ausgebildet sein kann. Insbesondere schafft
die vorliegende Erfindung ein moduzlares Speicherkommunikationssystem,
das eine modulare DMA-Architektur aus vorverifizierten Komponenten
in Übereinstimmung
mit den Anforderungen eines jeden SOCs bilden kann. Gemäß einem
Aspekt unterstützt
das erfindungsgemäße Speicherkommunikationssystem
eine oder mehrere folgenden Funktionen:
- 1.
Speicher-zu-Peripherie-Kopie, Peripherie-zu-Speicher-Kopie, Speicher-zu-Speicher-Kopie
und Peripherie-zu-Peripherie-Kopie;
- 2. eine konfigurierbare Anzahl von Schnittstellen zum Anschließen von
Komponenten, die eine DMA-Fähigkeit
benötigen.
Solche physikalischen Schnittstellen werden mit dem Begriff "Port" bezeichnet;
- 3. mehreren Komponenten gemeinsame und/oder für jede Komponente
dezidierte Ports. Mit gemeinsamen Ports wird das Konzept der sogenannten
Kanäle
(Channels) wichtig: Ein Kanal ist die Sichtweise eines Programmierers,
die Quelle und den Zielort der Kopieroperation zu beschreiben. Selbst
mit gemeinsamen Ports kann jede Komponente ihren eigenen Kanal aufweisen. Aus
Sicht des Programmierers kann jede Komponente unabhängig Datenkopieroperationen
ausführen,
wobei mit einem gemeinsamen Port ein gewisses Arbitrations-Schema
notwendig ist, um die Zugriffe seriell anzuordnen, die für denselben Port
zu dem selben Zeitpunkt angefragt werden;
- 4. gemeinsam genutzte/dezidierte Kanäle für jede Komponente;
- 5. die unter 2. und 3. aufgeführten Funktionalitäten implizieren,
dass die Anzahl der Komponenten, die an eine zentrale DMA-Einheit
angeschlossen werden soll, konfigurierbar ist. Diese Konfiguration
kann unabhängig
von der Anzahl der Ports (mit gemeinsamen Ports) und Kanäle (mit
gemeinsamen Kanälen)
sein;
- 6. eine konfigurierbare Arbitrierung mit gemeinsamen Ports und/oder
Kanälen – insbesondere
bei einem Port oder mehreren Ports zu dem Speicher. Dies erlaubt
die Programmierung von Quality of Service Anforderungen für unterschiedliche
Mischungen von aktiven Applikationen auf demselben SOC;
- 7. unterschiedliche Arten von Slave-Schnittstellenprotokollen
an jedem Port;
- 8. unterschiedliche nicht voneinander abhängige Taktfrequenzen (Clock
Frequencies) bei jedem Port;
- 9. unterschiedliche Speichergrößen für jeden Port und/oder Kanal,
um eine Adaption auf die unterschiedlichen Datenratenanforderungen
für jede Komponente
und Speicher zu ermöglichen;
- 10. mehr als ein einzelner Port zu einem Speicher, falls der
SOC selbst mehrere unabhängige
Speicher aufweist und eine Erhöhung
des Datendurchsatzes erwünscht
ist.
-
Erfindungsgemäß wird eine
DMA-Architektur verwendet, welche im Wesentlichen auf denselben Komponenten
und Schnittstellen basiert, die verwendet werden, um eine Kommunikationsstruktur aufzubauen.
Daher sind es nur einige wenige DMA-spezifische Komponenten, die
neu entworfen werden müssen.
-
5 zeigt
ein Blockdiagramm eines erfindungsgemäßen Speicherkommunikationssystems 500 mit
einer Mehrzahl von Zugriffssteuerungselementen 501, 503, 505 und 507.
Die Zugriffssteuerungselemente 501 bis 507 (ChCon,
Channel Controller) sind gemäß einem
Aspekt identisch aufgebaut und weisen dieselbe Funktionalität auf. Das
Speicherkommunikationssystem umfasst ferner eine Mehrzahl von Speicherelementen
(Buffer) 509, 511, 513, 515 und 517.
Das erste Speicherelement 509 ist dem ersten Zugriffssteuerungselement 501 zugeordnet.
Das zweite Speicherelement 511 ist dem zweiten Zugriffssteuerungselement 503 zugeordnet.
Das dritte Speicherelement 513 ist dem dritten Zugriffssteuerungselement 505 zugeordnet
und das vierte Speicherelement 515 ist dem vierten Zugriffssteuerungselement 507 zugeordnet.
Somit ist jeweils eines der Speicherelemente 509 bis 515 dem
jeweiligen Zugriffssteuerungselement 501 bis 507 zugeordnet. Das
Speicherkommunikationssystem umfasst ferner einen M2B Arbiter 519,
der mit den Zugriffssteuerungselementen 501 bis 507 sowie
mit den Speicherelementen 509 bis 515 gekoppelt
ist. Der M2B Arbiter 519 (M2B = Master-to-Buffer) ist ferner
mit dem Speicherelement 517 gekoppelt.
-
Das
Speicherkommunikationssystem umfasst ferner eine Mehrzahl von Schnittstellen 521, 523, 525, 527 und 529.
Die Schnittstellen 521 bis 527 sind jeweils einem
der Speicherelemente 509 bis 515 zugeordnet bzw.
mit jeweils einem dieser Speicherelemente gekoppelt. Die Schnittstelle 529 bildet
eine Speicherschnittstelle zum Zugreifen auf einen Speicher 531.
-
Das
Speicherkommunikationssystem umfasst ferner eine Mehrzahl von Verarbeitungseinheiten 533, 535, 537 und 539.
Die Verarbeitungseinheiten sind Slave-Einheiten, die auf Transaktionen
der zentralen DMA reagieren. Das Speicherkommunikationssystem 500 bildet
beispielsweise den Kern eines DMA-Systems, wie es in 5 dargestellt
ist. Die Verarbeitungseinheiten 533 bis 539 sowie
der Speicher 531 sind gemäß einem Aspekt der vorliegenden Erfindung
Bestandteile des Speicherkommunikationssystems 500. Gemäß einem
weiteren Aspekt der vorliegenden Erfindung sind die Verarbeitungseinheiten 533 bis 539 sowie
der Speicher 531 externe Elemente und nicht Bestandteile
des Speicherkommunikationssystems.
-
Die
Speicherelemente 509 bis 517 sind gemäß einem
Aspekt der Erfindung gleich aufgebaut. Deren Funktionalität entspricht
gemäß einem
weiteren Aspekt der Funktionalität
der vorstehend beschriebenen Speicherelemente. Die Schnittstellen 521 bis 527 sowie
die Speicherschnittstelle 529 sind gemäß einem Aspekt der Erfindung
identisch aufgebaut und weisen eine Funktionalität auf, wie sie bereits im Zusammenhang
mit den vorstehend beschriebenen Schnittstellen beschrieben worden
ist. Der M2B Arbiter 519 steuert in der vorstehend bereits beschriebenen
Weise den Zugriff auf den Speicher 531 über die jeweilige Schnittstelle 521 bis 529.
-
Zwischen
den Elementen des in 5 dargestellten Speicherkommunikationssystems
werden die folgenden Signale übertragen:
Master-spezifische
Busprotokoll 540;
M2B Schnittstelle 542 (Transaktions-Code,
Schreib- und Lesedaten, M2B = Master-to-Buffer);
M2B Schnittstelle 544 (Transaktions-Code),
M2B
Schnittstelle 546 (Lesedaten oder Schreibdaten);
B2S
Schnittstelle 548 (Transaktions-Code, Schreib- und Lesedaten,
B2S = Buffer-to-Slave).
-
Gemäß einem
Aspekt der Erfindung sind die Zugriffssteuerungselemente 501 bis 507,
der M2B Arbiter 519 sowie die mit den Zugriffssteuerungselementen 501 bis 507 und
dem M2B Arbiter 519 jeweils kommunizierenden Seiten der
Speicherelemente 509 bis 517 innerhalb eines DMA-Taktbereichs 550 (DMA
Clock Domain) angeordnet. Der Speicher 531, die Speicherschnittstelle 529 sowie
die mit der Speicherschnittstelle 529 kommunizierende Seite
des Speicherelements 517 sind in einem Speichertaktbereich 552 (Memory
Clock Domain) angeordnet. Die erste Verarbeitungseinheit 533,
die erste Schnittstelle 529 sowie die mit der ersten Schnittstelle
kommunizierende Seite des Speicherelementes 509 sind innerhalb
eines ersten peripheren Taktbereichs 554 (Peripheral Clock
Domain) angeordnet. Die zweite Verarbeitungseinheit 535,
die zweite Schnittstelle 523 sowie die mit der zweiten
Schnittstelle 523 kommunizierende Seite des Speicherelementes 511 sind innerhalb
eines zweiten peripheren Taktbereichs 556 angeordnet. Die
dritte Verarbeitungseinheit 537, die dritte Schnittstelle 525 sowie
die mit der dritten Schnittstelle 525 kommunizierende Seite
des Speicherelementes 513 sind innerhalb eines dritten
peripheren Taktbereichs 558 angeordnet. Die vierte Verarbeitungseinheit 539,
die vierte Schnittstelle 527 sowie die mit der vierten
Schnittstelle 527 kommunizierende Seite des Speicherelementes 515 sind
innerhalb eines vierten peripheren Taktbereichs 560 angeordnet.
Gemäß einem
Aspekt können
alle Taktbereiche unterschiedlich sein und sich durch unterschiedliche
Takt- bzw. Zugriffsraten auszeichnen.
-
Die
Taktumsetzung kann gemäß einem
Aspekt der vorliegenden Erfindung unter Verwendung der Speicherelemente 509 bis 517 erfolgen,
wie es vorstehend bereits beschrieben wurde. Darüber hinaus können die
in 5 dargestellten Komponenten unter Verwendung von
unterschiedlichen Datenkommunikations-Protokollen bzw. Schnittstellenkommunikations-Protokollen
kommunizieren. Die Protokollwandlung kann die jeweilige Schnittstelle 521 bis 529 vornehmen
(Busif). Hierzu kann jede der Schnittstellen 521 bis 529 oder
nur eine bzw. einige davon einen Protokollwandler aufweisen, der
vorgesehen ist, um die jeweiligen Protokolle ineinander zu überführen.
-
Die
erfindungsgemäße Architektur
des Speicherkommunikationssystems umfasst z.B. eines oder mehrere
der nachfolgenden Merkmale:
- – eine Anzahl
von P Busschnittstellen, die als Master-Einheiten Zugriffe ausführen auf
die Slave-Schnittstellen der angeschlossenen Komponenten, die eine
DMA-Fähigkeit
benötigen.
Die Busschnittstellen können
dieselben Komponenten sein, die in der beschriebenen Kommunikationsstruktur
verwendet werden. Sie beinhalten die Fähigkeiten zur Protokollumwandlung;
- – eine
Anzahl von C Speicherelementen für
jeden Kanal. Jedes Speicherelement ermöglicht die Aufnahme von einem
oder mehreren Sets von Transaktions-Codes, von einem oder mehreren
Sets von Schreibdaten und von einem oder mehreren Sets von Lesedaten.
Das Speicherelement ist derart aufgebaut, dass die Daten in einem
Taktbereich hineingeschrieben werden können und in einem anderen Taktbereich
sicher ausgelesen werden können,
ohne dass Datenverluste auftreten, selbst dann, wenn die Lese- und
Schreibtakte voneinander unabhängig
und bezüglich
einander asynchron sind. Die Speicherelemente können dieselben Komponenten
sein, die in dem beschriebenen Speichersystem verwendet werden;
- – eine
Anzahl von M Busschnittstellen, die als Master-Einheiten Zugriffe ausführen auf
die Slave-Einheiten der Speicher (On-Chip oder Off-Chip). Die Busschnittstellen
können
dieselben Komponenten sein, die in der beschriebenen Kommunikationsstruktur
verwendet werden. Sie beinhalten die Fähigkeiten zur Protokollumwandlung;
- – eine
Anzahl von M Speicherelementen für
jeden Speicher-Port.
Jedes Speicherelement ermöglicht die
Aufnahme von einem oder mehreren Sets von Transaktions-Codes, von
einem oder mehreren Sets von Schreibdaten und von einem oder mehreren
Sets von Lesedaten. Das Speicherelement ist derart aufgebaut, dass
Daten in einem Taktbereich hineingeschrieben werden können und
in einem anderen Taktbereich sicher ausgelesen werden können, ohne
dass Datenverluste auftreten, selbst dann, wenn die Lese- und Schreibtakte voneinander
unabhängig
und bezüglich
einander asynchron sind. Die Speicherelemente können dieselben Komponenten
sein, die in dem beschriebenen Speichersystem verwendet werden;
- – eine
Anzahl von M Arbitern (die beispielsweise für den DMA angepasst sein können, wenn
das M2B Protokoll sich von dem B2S Protokoll unterscheidet, so dass
der angepasste Arbiter an Ein- und Ausgängen das M2B Protokoll verwendet) und
die die Arbitrierung von einigen oder allen der Transaktionen, des
Schreibens und des Lesens von Daten in den angeschlossenen Speicher-Buffer
vornehmen;
- – eine
Anzahl von C Kanal-Controllern (Zugriffssteuerungselemente), die
gleichzeitig als Master für
einen Kanal-Buffer
und einen Speicher-Arbiter (und daher Speicherelement) arbeiten:
Ein Speicherelement empfängt
eine Lesetransaktion, das andere empfängt eine Schreibtransaktion.
Die Daten-Ports der angeschlossenen Speicherelemente werden gekreuzt,
sodass die Lesedaten eines Speicherelements als Schreibdaten in
das andere Speicherelement eingespeist werden und umgekehrt;
- – optional
kann eine Anzahl von M Identifikationselementen vorgesehen werden,
um denjenigen Port auszuwählen,
mit dem kommuniziert werden soll, in Abhängigkeit von dem Transaktions-Code, was
beispielsweise bei einer Peripherie-zu-Peripherie-Kopie von Bedeutung sein
kann. Die Identifikationselemente können dieselben Komponenten
sein, die in dem beschriebenen Speichersystem verwendet werden;
- – optional
kann ein Taktauswahlmechanismus (Auswahlelement) vorgesehen werden,
um die Einstellung des Lesetaktes des Transaktions-Code-Buffers
und des Schreibdaten-Buffers vorzunehmen und um die Einstellung
des Schreibtaktes des Lesedaten-Buffers hinsichtlich des Taktes
des ausgewählten
Port-Codes vorzunehmen, was beispielsweise für eine Peripherie-zu-Peripherie-Kopie
von Bedeutung sein kann. Das Auswahlelement kann dieselbe Komponente
sein, die in dem beschriebenen Speichersystem verwendet wird;
- – eine
Crossbar ähnliche
Struktur (wie in dem Speichersystem), die eine nicht-blockierende
parallele Kommunikation zwischen mehreren Mastern und mehreren Slaves
gleichzeitig ermöglicht;
- – optional,
eine Anzahl von P+M Arbitrierungs-Mechanismen für jeden Port, um Konflikte aufzulösen, falls
mehrere Transaktionen gleichzeitig denselben Port verwenden sollen,
um eine Kommunikation durchzuführen.
Dies ist vorteilhaft für
eine Speicher-zu-Speicher-Kopie unter Verwendung eines einzelnen
Speicher-Ports, um einen einzelnen Port für mehrere Kanäle vorzusehen,
und mit mehreren Speicher-Ports-Arbitern, die
hinsichtlich desselben Ports in Peripherie-zu-Peripherie-Kopie im Wettbewerb stehen. Der
Arbitrations-Algorithmus
kann fest oder zumindest teilweise programmierbar sein. Ein programmierbarer
Arbitrations-Mechanismus erlaubt die Einstellung der Latenz und
des Durchsatzes für
unterschiedliche Kanäle
zu demselben Port gemäß der zum
gegebenen Zeitpunkt aktiven Anwendung. Die Arbiter können dieselben
Komponenten sein, die in dem beschriebenen Speichersystem verwendet
werden, da hier auch am Eingang und Ausgang das B2S Protokoll verwendet wird;
- – ein
definiertes Schnittstellenprotokoll M2B (wie in dem Speichersystem),
das zwischen einem Kanal-Controller und einem Speicher-Port-Arbiter sowie
zwischen einem Speicher-Port-Arbiter
und einem Speicherelement als auch zwischen einem Kanal-Controller
und einem Speicherelement verwendet werden kann;
- – ein
definiertes Schnittstellenprotokoll B2S (wie in dem Crossbar), das
zwischen einem Speicherelement und einem Arbiter oder einer Busschnittstelle,
die mit einer Slave-Einheit
verbunden ist, verwendet werden kann. Dasselbe Schnittstellenprotokoll
kann zwischen einem Arbiter und einer Busschnittstelle, die mit
einer Slave-Einheit verbunden ist, verwendet werden. Die Arbiter
verwenden daher dasselbe Protokoll an deren Eingängen und an deren Ausgängen, was
eine Umgehung des Arbiters ermöglicht,
falls nicht arbitriert werden soll (siehe z.B. 1b);
- – ein
definiertes Schnittstellenprotokoll D2B (wie in dem Speichersystem),
das zwischen einem Identifikationselement und einem Speicherelement
verwendet werden kann;
- – ein
definiertes Schnittstellenprotokoll Cfg2D (wie in dem Speichersystem),
um ein Identifikationselement zu konfigurieren, um festzulegen,
wie aus den Transaktions-Codes die Auswahl von einem Slave aus einer
Mehrzahl von Slaves getroffen werden soll;
- – die
Konfigurierung der Kanal-Controller, der Identifikationselemente
und optional der Arbiter kann gesteuert werden durch
- a) einen DMA-internen Speicher (Register und eine Art von Deskriptor-Speicher)
zum Konfigurieren der Betriebsweise der Kanal-Controller, welche
durch eine CPU über
ein Slave-Interface in eine On-Chip Kommunikationsstruktur konfigurierbar
ist;
- b) eine oder mehrere Zustandsmaschinen, die autonom die notwendigen
Konfigurationsdaten aus dem Speicher abrufen und die Komponenten
des DMA initialisieren;
- c) verdrahtete Konfigurationseinstellungen;
- d) irgendeine Kombination von a), b) und c).
-
Die
in 5 dargestellte Struktur ist in der dargestellten
Konfiguration in der Lage, eine Speicher-zu-Peripherie-Kopiertransaktion
und eine Peripherie-zu-Speicher-Kopiertransaktion auszuführen.
-
Die
peripheren Verarbeitungseinheiten 533, 535, 537 und 539 (P1,
P2, P3, P4) und der Speicher 552 (MEM) sind gemäß einem
Ausführungsbeispiel als
Slave-Einheiten mit dem zentralen Speicherkommunikationssystem 500 (DMA)
verbunden. Die Zugriffssteuerungselemente 501, 503, 505, 507 (Kanal-Controller
ChCon) arbeiten als Master-Einheiten mit zwei Transaktionsschnittstellen.
Der DMA 500 umfasst separate Speicherelemente 509 bis 515 für jeden
peripheren Kanal und einen gemeinsamen Buffer 517 für den Speicher 552.
Der jeweilige Kanal-Controller 501 bis 507 sorgt
für die
Ausführung
einer Lese-(Schreib-)Transaktion
zu dem jeweiligen angeschlossenen peripheren Speicherelement und eine
Schreib-(Lese-) Transaktion zu dem gemeinsamen Zwischenspeicherelement 529, was
in einer Peripherie-zu-Speicher- bzw. in einer Speicher-zu-Peripherie-Kopie
resultiert. Der M2B Arbiter 519, der vor dem Speicherelement 517 angeordnet
ist, ermöglicht eine
Priorisierung des Zugriffs, falls mehrere Transaktionen gleichzeitig
ausgeführt
werden könnten. Dies
erweitert die Funktionalität
der erfindungsgemäßen DMA-Einheit 550,
um Quality-of-Service-Anforderungen
gerecht zu werden.
-
Die
erfindungsgemäße modulare,
zentrale DMA-Einheit 500 umfasst eine oder mehrere der
folgenden Eigenschaften:
- – Unterstützung von allen Arten von Kopieroperationen;
- – Unterstützung von
allen Arten von Slave-Busschnittstellen (Wiederverwendung der Schnittstellen
der Kommunikationsstruktur);
- – Unterstützung von
einer oder mehreren Speicherschnittstellen;
- – Unterstützung von
einer beliebigen Anzahl von Ports;
- – Unterstützung einer
beliebigen Anzahl von Kanälen
pro Port;
- – Unterstützung einer
beliebigen Anzahl von peripheren Komponenten, die an einen Port
angeschlossen sind, wobei die Anzahl der peripheren Komponenten
nur durch die Eigenschaften des Busses begrenzt ist;
- – Unterstützung von
gemeinsamen und/oder dedizierten Ports;
- – Unterstützung von
gemeinsamen und/oder dedizierten Kanälen;
- – konfigurierbare
Speichergrößen für jeden
Kanal und Port;
- – konfigurierbare
Arbitrations-Prioritäten
und ein faires Arbitrations-Schema, wie für das Speichersystem bereits
beschrieben;
- – flexible
unabhängige
Taktbeziehungen zwischen allen Ports bzw. zwischen allen peripheren Komponenten
sowie Speichern;
- – konfigurierbares
Quality-of-Service aufgrund der Arbitrations-Konfigurierbarkeit;
- – ein
Trade-off zwischen Flächenbedarf
und Durchsatz kann stets erreicht werden, weil die Crossbar-ähnliche
Struktur die Bereitstellung von mehreren unabhängigen Datenpfaden ermöglicht (paralleler
Zugriff auf unabhängige
Speicher, Peripherie-zu-Peripherie-Kopieoperationen, die parallel
zu Speicher-zu-Peripherie-Kopieoperationen ausgeführt werden
etc.);
- – reduzierter
Implementierungsaufwand durch Wiederverwendung derselben Basiskomponenten,
wie z.B. des Speichersystems und durch Wiederverwendung derselben
Komponenten für
unterschiedliche SOC DMA Strukturen, was aufgrund der wenigen definierten
Schnittstellenprotokolle möglich
ist;
- – reduzierter
Verifikationsaufwand durch die Wiederverwendung von vorverifizierten
geprüften Komponenten
in unterschiedlichen SOCs;
- – Wiederverwendung
von Verifikationskomponenten aufgrund der geringen Anzahl der definierten Schnittstellenprotokolle.
-
Ein
Merkmal des erfindungsgemäßen Speicherkommunikationssystems
ist das Zugriffssteuerungselement (Channel Controller), das gleichzeitig mit
zwei M2B Schnittstellen arbeitet. Der Channel Controller ist daher
in der Lage, sowohl die Quell- als auch
die Zielortadresse sowie die Transaktions-Codes bereitzustellen.
Durch eine Kreuzverbindung der Lese- und Schreibdatenpfade von zwei
angeschlossenen Speicherelementen (Buffern) ermöglicht der Channel Controller
ferner einen Datenaustausch zwischen beliebigen Komponenten.
-
Der
M2B Arbiter verwendet das M2B Protokoll statt des B2S Protokolls
des Speichersystems. Falls beide Protokolle ähnlich aufgebaut sind, ist
hierzu eine geringfügige
Anpassung vorzusehen. Bei dem M2B Protokoll und bei dem B2S Protokoll
kann es sich um beliebige Protokolle handeln, die eine Datenkommunikation
zwischen einem Master und einem Buffer (M2B) und einem Buffer und
einem Slave (B2S) unterstützen
bzw. steuern. Dasselbe gilt für
die übrigen
Protokolle, die vorstehend genannt worden sind.
-
Das
erfindungsgemäße Speicherkommunikationssystem
kann beispielsweise unter Verwendung der Crossbar-Verbindungsstruktur
mit den vorstehend beschriebenen DMA-spezifischen Komponenten hinsichtlich
der weiteren Funktionalität
auf der Basis von bereits existierenden und verifizierten Komponenten
der Kommunikationsstruktur aufgebaut werden. Ferner können unterschiedlich
komplexe DMA-Strukturen zusammengesetzt werden.
-
6 zeigt
ein Blockdiagramm eines erfindungsgemäßen Speicherkommunikationssystems 600,
das eine Erweiterung einer DMA-Funktionalität für beliebige Arten von Kopieroperationen
darstellt.
-
Im
Unterschied zu dem in 5 dargestellten Ausführungsbeispiel
umfasst das in 6 dargestellte Kommunikationssystem
ein Speichersystem mit einem Speicherelement 601 (Buffer)
und einem Auswahlelement 603 (CLKSEL). Ferner ist ein Identifikationselement 605 (Decoder)
vorgesehen. Das Speicherkommunikationssystem umfasst ferner einen
ersten Arbiter 607, der mit den Speicherelementen 509, 511 und
dem Auswahlelement 603 gekoppelt ist, und einen zweiten
Arbiter 609, der mit dem Speicherelement 513 und
dem Auswahlelement 603 gekoppelt ist. Der erste Arbiter 607 ist
mit einer ersten Schnittstelle 611 gekoppelt. Der zweite
Arbiter 609 ist mit einer zweiten Schnittstelle 613 gekoppelt. Ferner
ist ein dritter Arbiter 615 vorgesehen, der mit dem Speicherelement 515 und
dem Auswahlelement 603 gekoppelt ist. Dem dritten Arbiter 615 ist
eine dritte Schnittstelle 617 zugeordnet.
-
Mit
der ersten Schnittstelle 611 sind eine erste Verarbeitungseinheit 619 (P1)
und eine zweite Verarbeitungseinheit 621 (P2) gekoppelt.
Mit der zweiten Schnittstelle 613 ist eine dritte Verarbeitungseinheit 623 (P3)
und eine vierte Verarbeitungseinheit 625 (P4) gekoppelt.
Ferner ist ein Speicher 627 mit der Schnittstelle 617 (Speicherschnittstelle)
gekoppelt.
-
Die
Verarbeitungseinheiten 619 bis 625 sowie der Speicher 627 sind
gemäß einem
Aspekt Elemente des Speicherkommunikationssystems. Gemäß einem
anderen Aspekt sind diese Elemente ex tern und sind an das Speicherkommunikationssystem
anschließbar.
-
Die
Verarbeitungselemente 619 bis 625 sowie der Speicher 627 können beispielsweise
als Slave-Einheiten oder als Master-Einheiten konfiguriert sein.
-
Die
Verbindung der in 6 gezeigten Komponenten kann
beispielsweise unter Verwendung eines Crossbars erfolgen, wobei
zwischen den einzelnen Elementen die bereits im Zusammenhang mit dem
in 5 dargestellten Ausführungsbeispiel beschriebenen
Signale ausgetauscht werden. Darüber hinaus
wird von dem Identifikationselement 605 zu dem Auswahlelement 603 ein
D2B Schnittstellensignal 630 übertragen (Slave Select, D2B
= Decoder-to-Buffer). Das Speicherelement 601 empfängt ferner
ein Signal 632 (Selected Slave Clock), das den ausgewählten Slave-Takt
anzeigt.
-
Wie
in 6 dargestellt, sind die Verarbeitungseinheiten 619 sowie 621 sowie
die diesen Verarbeitungseinheiten zugeordneten Elemente beispielhaft
innerhalb eines peripheren Taktbereichs 650 angeordnet.
Die Verarbeitungseinheiten 623 und 625 sowie die
diesen Einheiten zugeordneten Elemente sind beispielsweise innerhalb
eines zweiten peripheren Taktbereichs 652 angeordnet. Der
Speicher 627 sowie die dem Speicher 627 zugeordneten Elemente
sind beispielsweise innerhalb eines Speichertaktbereichs 654 angeordnet.
Die Taktbereiche können
sich durch unterschiedliche oder durch gleiche Takt- bzw. Zugriffsraten
auszeichnen.
-
Gemäß einem
Aspekt sind die Speicherelemente 509 bis 515 Vereinfachungen
der vorstehend beschriebenen Speichersysteme mit jeweils genau einer
Zugriffsrate im DMA-Taktbereich und einer Zugriffsrate im peripheren
Taktbereich, wodurch die Taktumsetzung realisiert wird. Gemäß einem
weiteren Aspekt kann den Speicherelementen 509 bis 515 jeweils
ein Auswahlelement zugeordnet werden mit einer fest verdrahteten D2BβSchnittstelle,
um die Taktumsetzung zu realisieren. Die Speicherelemente 509 bis 515 sowie
das Speicherelement 601 umfassen die Funktionalität der vorstehend
beschriebenen Speicherelemente. Das Auswahlelement 603 umfasst
die Funktionalität
der vorstehend beschriebenen Auswahlelemente. Die Schnittstellen 611, 613 und 617 können gemäß einem
Aspekt vorgesehen sein, um eine Protokollwandlung vorzunehmen. Gemäß einem
Aspekt kann den Schnittstellen 611, 613 und 617 jeweils
ein Protokollwandler zugeordnet werden, wie es vorstehend beschrieben
ist. Diese Protokollwandler umfassen die vorstehend beschriebene
Funktionalität
eines Protokollwandlers. Gemäß einem
Aspekt können
die Schnittstellen selbst jeweils einen Protokollwandler aufweisen,
um die vorstehend beschriebene Protokollwandlung durchzuführen.
-
Das
in 6 dargestellte Speicherkommunikationssystem unterstützt die
Speicher-zu-Speicher-Kopieroperationen und die Peripherie-zu-Peripherie-Operationen
und ergibt sich beispielsweise durch eine Erweiterung des in 5 dargestellten Speicherkommunikationssystems.
-
Durch
die Hinzufügung
von weiteren (z.B. Peripheren) Speicherelementen zu dem Speicherkommunikationssystem
kann das Merkmal des Speicher-zu-Speicher-Kopierens unterstützt werden. Durch
die Hinzufügung
eines Taktauswahlmechanismus (Clock Selection) und eines Identifikationselements
zusätzlich
zu dem gemeinsamen Speicherelements und dem Arbiter zwischen der
Busschnittstelle und dem Speicher von jedem peripheren Kanal kann das
gemeinsame Speicherelement wiederverwendet werden, um eine Peripherie-zu-Peripherie-Kopieroperation
auszuführen.
-
Die
Speicher-zu-Speicher-Kopieroperation funktioniert wie folgt: Der
Kanal-Controller 507 liefert die Quell- und Zielortadressen
sowie die Transaktionen. Der gegenüber der Speicherschnittstelle 617 angeordnete
Arbiter 615 ist derart konfiguriert, dass eine Leseoperation
eine höhere
Priorität
als eine Schreiboperation hat. Daher ist die Leseoperation aus dem
Speicher 627 die erste auszuführende Transaktion, wodurch
der Lesepuffer des Speicherelements 601, das der Speicherschnittstelle 617 zugeordnet
ist, gefüllt
wird. Die Daten werden dann über den
M2B Arbiter 519 zu dem dem Kanal-Controller 507 zugeordneten
Speicherelement 515 in den Schreibpuffer übertragen.
Letzteres geschieht, sobald die Speicher-zu-Speicher-Kopieroperation
diejenige auszuführende
Operation mit der höchsten Priorität ist, die
beispielsweise von dem Quality of Service abhängig ist, der am M2B Arbiter
eingestellt ist.
-
Sobald
sowohl das Speicherelement 515 als auch das Speicherelement 601 gefüllt sind,
werden keine weiteren Lesetransaktionen ausgeführt und die Schreibtransaktion
gewinnt die Arbitration. Sie verschiebt die Daten von dem Speicherelement 515 zu der
Zielortadresse in dem Speicher (in dem Speicherkommunikationssystem),
wodurch zunächst
das Speicherelement 515 und dann das Speicherelement 601 geleert
werden. Sobald ein weiterer Burst ausgeführt werden kann, um das Speicherelement 601 neu zu
füllen,
wird die nächste
Leseoperation die Arbitration erneut gewinnen. Auf diese Weise schaltet
der DMA 600 zwischen Speicherlese- und -schreiboperationen
unter Verwendung eines einzelnen Ports zu dem Speicher 627.
-
Peripherie-zu-Peripherie-Kopieroperationen machen
Gebrauch von dem Identifikationselement 605 und dem Taktauswahlelement 603,
die in 6 dargestellt sind. Anstatt der Speicheradresse
wird in einem der Zugriffsteuerelemente eine Adresse programmiert,
die im peripheren Adressraum liegt. Die Daten werden von der Peripherie über die
Busschnittstelle und von den peripheren Speicherelementen abgerufen.
Falls die Quality-of-Service-Arbitration es erlaubt, werden die
Daten zu dem Schreibpuffer des Speicherelements 601 mit
der Adresse des peripheren Zielelementes in dem Transaktions-Code übertragen.
Das Auswahlelement 603 wählt den Datenweg zu einem der
Arbiter 607 oder 609, je nach der Vorgabe des
Identifikationselements 605. Der Taktauswahlmechanismus
schaltet um in den Taktbereich der peripheren Zielkomponente und die
Daten werden zu der peripheren Zielkomponente über den Arbiter und die Busschnittstelle
des geeigneten Ports übertragen.
-
Mehrere
Kanäle
pro peripheren DMA Port mit separaten Buffern können einfach implementiert werden,
falls der angeschlossene Bus zu den peripheren Elementen in der
Lage ist, mehrere Slave-Einheiten zu bedienen. Hierzu kann beispielsweise
der Arbiter erweitert werden, um zwischen mehreren Kanal-Buffern
und dem gemeinsamen Buffer auszuwählen, sodass derselbe Port
verwendet werden kann, um mit einer Mehrzahl von peripheren Komponenten
zu kommunizieren. Beispielsweise sind die in 2 dargestellten
Verarbeitungseinheiten 619 (P1) und 621 (P2) mit
demselben DMA-Port verbunden. Dies reduziert die Anzahl der externen Schnittstellen
des DMAs und die Verdrahtung der On-Chip-Busse.
-
Mehrere
periphere Komponenten, die denselben Kanal teilen, machen Gebrauch
von den Fähigkeiten
des peripheren Busses: Derselbe Kanal-Controller greift beispielsweise
auf die in 2 dargestellten Verarbeitungseinheiten 623 (P3)
und 625 (P4) zu. In Abhängigkeit
von der Adresse des Transaktions-Codes
wird entweder auf die periphere Einheit P3 oder P4 über den
Bus zugegriffen, wobei die jeweilige periphere Einheit P3 oder P4
an der Kommunikation teilnimmt. Daher müssen die Zugriffe in einer
geeigneten und brauchbaren Reihenfolge programmiert werden, weil
innerhalb desselben Kanals keine Quality-of-Service-Arbitration
möglich
ist.
-
Zur
Erweiterung des in 6 dargestellten Speicherkommunikationssystems
können
sogar mehrere gemeinsame Buffer eingeführt werden, wodurch mehrere
Transaktionen gleichzeitig stattfinden können (z.B. Peripherie-zu-Peripherie-Kopie
und Peripherie-zu-Speicher-Kopie). Dies ist möglich, weil die Basiskomponenten
für einen
nicht-blockierenden Crossbar bereitgestellt werden, der in diesem
Fall beispielsweise ein inte graler Part des DMAs ist, wie es beispielsweise
in 7 dargestellt ist.
-
7 zeigt
ein Speicherkommunikationssystem 700 mit den Zugriffssteuerungselementen (Kanal-Controller,
ChCon) 701, 703, 705 und 707. Dem
ersten Zugriffssteuerungselement 701 ist ein erstes Speicherelement 709 zugeordnet,
das mit einem Arbiter 711 gekoppelt ist. Der Arbiter 711 ist
mit einer ersten Schnittstelle 713 gekoppelt. Die erste Schnittstelle 713 ist
beispielsweise über
einen Schnittstellen-Port mit einer ersten Verarbeitungseinheit 715 und
mit einer zweiten Verarbeitungseinheit 717 gekoppelt.
-
Dem
zweiten Zugriffssteuerungselement 703 ist ein zweites Speicherelement 719 zugeordnet,
das mit einem zweiten Arbiter 721 gekoppelt ist. Der zweite
Arbiter 721 ist über
eine zweite Schnittstelle 723 und möglicherweise über einen
weiteren Schnittstellen-Port mit einer dritten Verarbeitungseinheit 725 gekoppelt.
-
Dem
dritten Zugriffssteuerungselement 705 ist ein drittes Speicherelement 727 zugeordnet,
das mit einem dritten Arbiter 729 gekoppelt ist. Der dritte Arbiter 729 ist über eine
dritte Schnittstelle 731 (Speicherschnittstelle) über beispielsweise
einen Speicher-Port mit einem ersten Speicher 733 gekoppelt. Dem
vierten Zugriffssteuerungselement 707 ist ein viertes Speicherelement 735 zugeordnet,
das mit einem vierten Arbiter 737 gekoppelt ist. Der vierte
Arbiter 737 ist über
eine vierte Schnittstelle 739 mit einem zweiten Speicher 741 gekoppelt.
-
Das
zweite und das dritte Zugriffssteuerungselement 703, 705,
sind über
einen Arbiter 743 mit einem Speichersystem umfassend ein
Speicherelement 745, ein Auswahlelement 747 und
ein Identifikationselement 749 gekoppelt. Das Identifikationselement 749 ist
ferner mit dem Auswahlelement 747 gekoppelt.
-
Das
vierte Zugriffssteuerungselement ist über einen Arbiter 751 (B2S
Arbiter) mit einem weiteren Speichersystem gekoppelt, das ein Speicherelement 753,
ein Auswahlelement 755 (CLKSEL) und ein Identifikationselement 757 (der
beispielsweise die Funktionalität
des erfindungsgemäßen Identifikationselements
umfasst) aufweist, gekoppelt.
-
Die
in 6 dargestellte Struktur veranschaulicht die Erweiterung
der Struktur aus 5 durch die Verwendung von mehreren
gemeinsamen Speicherelementen, wodurch mehrere Transaktionen gleichzeitig
stattfinden können
(z.B. Peripherie-zu-Peripherie-Kopie und Peripherie-zu-Speicher-Kopie).
Dies ist möglich,
weil die erfindungsgemäßen Komponenten
beispielsweise für
einen nicht-blockierenden Crossbar erzeugt werden, der in diesem
Fall ein integraler Part des Speicherkommunikationssystems (DMAs)
ist.
-
Die
Verarbeitungseinheiten 715, 717 und 725 (P1,
P2, P3) sind Slave-Einheiten. Die in 7 dargestellten
Speicherelemente umfassen gemäß einem
Aspekt die Funktionalität
der vorstehend beschriebenen Speicherelemente. Gemäß einem
weiteren Aspekt kann einem oder mehreren der Speicherelemente 709, 719, 727, 745, 735, 753 jeweils ein
Auswahlelement (z.B. CLKSEL) zugeordnet werden, wie es vorstehend
beschrieben worden ist. Die Schnittstellen (Busif) 713, 723, 731 und 739 umfassen
gemäß einem
Aspekt die Funktionalität
der vorstehend beschriebenen Schnittstellen und sind beispielsweise
ferner ausgebildet, um eine Protokollwandlung durchzuführen. Hierzu
kann einer oder mehreren Schnittstellen jeweils ein Protokollwandler zugeordnet
werden. Gemäß einem
weiteren Aspekt umfasst eine oder mehrere Schnittstellen einen Protokollwandler,
wie es vorstehend beschrieben worden ist.
-
Die
Verarbeitungseinheiten 715, 717 und 725 sowie
die Speicher 733 und 741 sind über einen Port an das Speicherkommunikationssystem 700 anschließbar. Diese
Elemente können
entwe der Bestandteile des Speicherkommunikationssystems 700 oder
hierzu externe Komponente sein.
-
Die
Verarbeitungseinrichtungen 715 sowie 717 und die
diesen Verarbeitungseinrichtungen zugeordneten Komponenten sind
beispielsweise innerhalb eines ersten peripheren Taktbereichs 760 angeordnet.
Die Verarbeitungseinrichtung 725 und die dieser Verarbeitungseinrichtung
zugeordneten Komponenten (z.B. Schnittstelle 723, Arbiter 721 und
die mit dem Arbiter 721 kommunizierende Seite des Speichers 719)
sind beispielsweise innerhalb eines zweiten peripheren Taktbereichs 762 angeordnet. Der
Speicher 733 sowie die diesem Speicher zugeordneten Komponenten
sind beispielsweise innerhalb eines ersten Speichertaktbereichs 764 angeordnet.
Der Speicher 741 sowie die diesem Speicher zugeordneten
Komponenten sind beispielsweise innerhalb eines zweiten Taktspeicher-Taktbereichs 766 angeordnet.
Diese Taktbereiche unterscheiden sich beispielsweise durch unterschiedliche
Takt- bzw. Zugriffsraten. Die Kanal-Controller 701, 703, 705, 707 sowie
die diesen Kanal-Controllern
zugeordneten Komponenten und die mit diesen Kanal-Controllern kommunizierenden
Seiten der Speicherelemente 709, 719, 727, 745, 735 und 753 sind
beispielsweise innerhalb eines DMA-Taktbereichs 768 angeordnet.
-
Die
erfindungsgemäßen Speicherstrukturen können beispielsweise
auf der Basis von bekannten Speicherelementen, wie z.B. Flip-Flops,
Latches oder Mikro-SRAMs) aufgebaut werden. Die Crossbar-ähnlichen
Verbindungsmuster können
beispielsweise eine Mehrzahl von parallelen Verdrahtungen aufweisen.
-
Der
Aufbau eines DMA mit mehreren gemeinsamen Buffern und Schnittstellen
ist insbesondere vorteilhaft im Falle von Speichersystemen mit einem
Crossbar und mehreren Speichern als Slave-Einheiten. Dann kann die
DMA-Einheit beispielsweise auf mehrere Speicher nicht-blockierend
zugreifen oder eine Speicher-zu-Speicher-Kopie zwischen unterschiedlichen
Speichern durch den parallelen, nicht blockierenden Zugriff auf zwei
Speicher gleichzeitig statt durch das Umschalten zwischen dem Lesen
und dem Schreiben in denselben Speicher ausführen.
-
Unter
Verwendung dieser Komponenten kann jede der vorstehend beschriebenen
DMA-Implementierungen die Möglichkeit
erhalten, jeden Port innerhalb eines separaten Taktbereichs zu betreiben und
den Speicher mit einem Takt aus wieder einem anderen Taktbereich
zu betreiben.
-
Falls
der Speicherzugriff selbst mit über
ein Speichersystem, das aus denselben Komponenten aufgebaut ist,
erfolgt, benötigt
der Speicher-Port des Speicherkommunikationssystems keine Busschnittstelle:
Er kann direkt an das Speichersystem unter Verwendung des B2S Protokolls
nach dem Arbiter angeschlossen werden.
-
Das
erfindungsgemäße Speicherkommunikationssystem
(DMA-System) kann
auf eine oder mehrere der nachfolgend beschriebenen Weisen implementiert
werden:
- a) Die Speicherschnittstellen auf der
jeweiligen Speicherseite sind optional, falls der Speicher direkt
unter Verwendung des B2S-Protokolls arbeitet;
- b) die Busschnittstellen an den peripheren Port sind optional,
falls die peripheren Einheiten direkt mit dem B2S-Protokoll arbeiten;
- c) der Arbiter für
einen peripheren Port ist optional, falls weder eine Peripherie-zu-Peripherie-Kopie
noch eine Speicher-zu-Speicher-Kopie mit mehreren Speicherschnittstellen
unterstützt
werden sollten (siehe 5);
- e) der Arbitrations-Algorithmus kann fest oder programmierbar
sein;
- f) die Entscheidungskomponente (das Identifikationselement)
ist optional, falls weder eine Peripherie-zu-Peripherie-Kopie noch mehrere
Speicherschnittstellen unterstützt
werden müssen
(siehe 1);
- g) das Speicherelement an den peripheren Ports ist optional,
falls die Kommunikation zwischen dem DMA und einer oder mehreren
peripheren Einheiten unter Verwendung desselben Taktes durchgeführt wird
und zeitlich eng gekoppelt sein sollte;
- h) das Speicherelement kann vereinfacht werden hinsichtlich
der Handhabung der Lese- und Schreibtakte, falls bekannt ist, dass
die Takte voneinander abhängig
sind und eine definierte (vorbekannte) Phasenbeziehung aufweisen.
Die Vereinfachung kann beispielsweise durch das Umgehen der Synchronisierer
zwischen den Lese- und Schreibzeigern für ein schnelleres Update der
auf den Speicherfüllzustand
bezogenen Status-Flags realisiert werden;
- i) der Taktauswahlmechanismus (z.B. das Auswahlelement) ist
optional, falls alle angeschlossenen Ports innerhalb desselben Taktbereichs
arbeiten;
- j) die Arbitration muss nicht direkt vor einer Busschnittstelle
eines Ports durchgeführt
werden, der bzw. die die im Wettbewerb stehenden Kanäle gleich
behandelt. Ein hierarchisches Arbitrations-Verfahren kann genauso
gut angewendet werden, indem einige Kanäle zunächst arbitriert werden, bevor
die ausgewählten
Kanäle
mit dem nächsten
Arbitrations-Level verbunden werden. Die Anzahl der kaskadierten
Arbitrations-Level und die Anzahl der Kanäle, die in jedem Level arbitriert
werden, kann in Übereinstimmung
mit den Systemanforderungen gewählt
werden;
- k) das Speicherelement kann beispielsweise ausstehende Schreibtransaktionen
zu denselben peripheren Einheiten oder Speichern in der Sequenz ermöglichen;
- l) das Speicherelement kann beispielsweise ausstehende Lesetransaktionen
zu derselben peripheren Einheit (Verarbeitungseinheit) oder zu demselben
Speicher in der Sequenz ermöglichen;
- m) das Speicherelement kann beispielsweise ausstehende Schreibtransaktionen
zu unterschiedlichen peripheren Einheiten oder Speichern in der
Sequenz erlauben oder diese unterbinden;
- n) das Speicherelement kann beispielsweise ausstehende Lesetransaktionen
zu unterschiedlichen peripheren Einheiten oder Speichern in der
Sequenz erlauben oder diese unterbinden;
- o) die B2S-Schnittstelle für
einen Transaktions-Code und Schreibdaten kann entweder Punkt-zu-Punkt
orientiert sein, wobei der Transaktions-Code und die Schreibdatenausgänge beim
Taktauswahlmechanismus dupliziert werden, oder wobei der Transaktions-Code
und die Schreibdaten beispielsweise per Broadcast zu allen angeschlossenen
Arbitern/Busschnittstellen übertragen
werden, wobei nur einige wenige Punkt-zu-Punkt-Steuersignale übrigbleiben,
die indizieren, welcher angeschlossene Arbiter/welche angeschlossene
Busschnittstelle an der Kommunikation teilnehmen soll;
- p) die M2B-Schnittstelle für
die Lesedaten kann entweder Punkt-zu-Punkt orientiert sein, wobei die
Lesedaten über
den M2B-Arbiter zurück
zu dem Kanal-Buffer geroutet werden, oder wobei der Speicher-Buffer
beispielsweise per Broadcast die Lesedaten zu allen angeschlossenen
Kanal-Buffern übertragen
kann und nur einige wenige Punkt-zu-Punkt-Signale übriglassen, um zu bestimmen,
welcher Kanal-Buffer
an dem Datentransfer teilnehmen soll;
- q) die Konfiguration der Transaktionen, die durch die Kanal-Controller erzeugt
werden, der Arbitrations-Algorithmus und Prioritäten sowie die Zielauswahlkriterien
des Identifikationselements können
durchgeführt
werden aus a) einem Set von Konfigurationsregistern, welche durch
eine CPU programmierbar sind, b) hartcodierte Konstanten, c) eine
Steuerlogik, die entweder hartcodiert oder durch eine CPU programmierbar
ist, d) eine Steuerlogik, die autonom die Konfigurationsdaten aus dem
Speicher ausliest oder d) eine Kombination von allen vorstehend
genannten Verfahren;
- r) auf demselben Chip können
mehrere unabhängige
Strukturen implementiert werden;
- s) irgendeine der vorstehend beschriebenen Basiskomponenten
kann in Subkomponenten aufgeteilt werden oder mit anderen Komponenten
kombiniert werden, was beispielsweise auf je dem Abstraktions-Level
durchgeführt
werden kann (RTL-Code, Netzliste, Layout etc.). Das impliziert, dass
einige neue Schnittstellen beispielsweise durch das Aufteilen von
Komponenten entstehen oder dass einige Schnittstellen durch beispielsweise
das Zusammenführen
von Komponenten verschwinden. Solange dieselbe Funktionalität implementiert
wird, ist dies jeweils eine andere Art, die erfindungsgemäße Kommunikationsstruktur
zu implementieren.
-
In 8a und 8b sind
Blockdiagramme von DMA-Steuerungsanordnungen
(DMA-Steuerungslogik) dargestellt.
-
Die
in 8a dargestellte DMA-Steuerungsanordnung umfasst
eine Schnittstelle 801, einen mit der Schnittstelle 801 gekoppelten
Deskriptor-Speicher 803, ein mit der Schnittstelle 801 gekoppeltes Konfigurationsregister 805,
einen mit dem Konfigurationsregister (CfgRegs) gekoppelten Arbiter 807 sowie
einen mit dem Konfigurationsregister 805 gekoppelten M2B
Arbiter 809. Ferner umfasst die DMA-Steuerungseinheit ein
erstes Zugriffssteuerungselement 811 (Kanal-Controller,
ChCon) und ein zweites Zugriffssteuerungselement 813 (Kanal-Controller, ChCon).
Ferner ist ein Identifikationselement 815 mit dem Konfigurationsregister 805 gekoppelt.
-
Der
Arbiter kann beispielsweise innerhalb eines peripheren Taktbereichs 817 angeordnet
sein. Die übrigen
Elemente können
beispielsweise innerhalb eines DMA-Taktbereichs 819 angeordnet
sein. Die Takt- bzw. Zugriffsraten innerhalb der jeweiligen Taktbereiche
können
gleich oder unterschiedlich sein.
-
Die
DMA-Steuerungseinheit umfasst ferner ein Statusregister 821 (CTRL & Status), das
mit der Busschnittstelle 801, mit dem Deskriptor-Speicher 803 sowie
mit dem Konfigurationsregister 805 gekoppelt ist.
-
Die
in 8b dargestellte DMA-Steuerungseinheit umfasst
ferner ein drittes Steuerungselement 823, das mit dem Status register 821,
mit dem Deskriptor-Speicher 803 sowie mit dem M2B Arbiter 809 gekoppelt
ist.
-
Die
Schnittstelle 801 umfasst beispielsweise die Funktionalität der vorstehend
beschriebenen Schnittstellen sowie beispielsweise einen Protokollwandler
zur Protokollwandlung. Gemäß einem
Aspekt kann der Busschnittstelle 801 ein Protokollwandler
zugeordnet werden. Die in 8a und 8b dargestellten
DMR-Steuerungseinheiten können
zur Steuerung der Funktionalität
des erfindungsgemäßen Speicherkommunikationssystems eingesetzt
werden.
-
Die
in 8a dargestellte Implementierung verdeutlicht eine
Architektur, in der der DMA (Speicherkommunikationssystem) an einen
On-Chip-Bus angeschlossen werden kann, sodass eine Programmierung
durch eine CPU möglich
ist. 8b verdeutlicht eine erweiterte Struktur, in der
der DMA selbst in der Lage ist, das Deskriptor-Update aus dem Speicher
auszuführen,
wenn beispielsweise einem Kanal die Deskriptoren ausgehen.
-
Wie
in 8a dargestellt, ermöglicht die Schnittstelle 801 (Bus-Interface)
der CPU den Zugriff auf den gesamten Deskriptor-Speicher 803 (DescrMem),
auf das Konfigurationsregister 805 bzw. auf eine Mehrzahl
von Konfigurationsregistern, die die DMA-Steuerungseinheit aufweisen
kann, für
einen Arbitrations-Algorithmus, für die Prioritätseinstellungen
und für
die Konfiguration des Identifikationselements 815. Der
Deskriptor-Speicher 803 kann beispielsweise einen einzelnen
Deskriptor-Speicher für jeden
Kanal-Identifikationselement 815 oder eine vollständige Liste
von Einträgen
umfassen, welche in einer Sequenz ausgeführt werden. Eine Vervollständigungsinformation
wird von den Kanal-Identifikationselementen 815 zu dem
Deskriptor-Speicher 803 sequentiell übertragen, nachdem die Operationen bezüglich eines
einzelnen Deskriptor-Eintrags vervollständigt worden sind. Der Deskriptor-Speicher 803 signalisiert
der Steuerungslogik (Statusregister 821), wenn keine weiteren
Deskriptoren für
einen Ka nal vorhanden sind. In diesem Fall erzeugt die Steuerungslogik 821 ein
Interrupt-Signal (IRQ) und überträgt dieses
zu einer CPU, wodurch ein Update der Deskriptoren angefordert wird.
Die Identifikationselement- und Arbiter-Konfigurationen können auf
der Basis von statischen Signalen realisiert werden, die beispielsweise
in dem Konfigurationsregisterblock 805 gespeichert werden.
Aufgrund deren pseudo-statischer Natur ist das Überqueren der Taktbereiche
von beispielsweise dem DMA-Taktbereich 819 zu dem peripheren
Takt 817 durch die Arbitrations-Konfigurationsignale nicht
problematisch. Gemäß einem
Aspekt ist es diesen Signalen nicht erlaubt, den Taktbereich zu
wechseln, solange ein DMA-Kanal aktiv ist.
-
Die
in 8b dargestellte Struktur unterscheidet sich von
dem Ausführungsbeispiel
aus 8a durch eine Art des Updatens des Deskriptor-Speichers 803.
Anstatt eines direkten CPU-Eingriffs, verwendet die Steuerungslogik
(Steuerungsregister) den dezidierten Kanal-Controller 823,
um aus dem Speicher neue Deskriptoren auszulesen, wenn einem Kanal
die Deskriptoren ausgehen. Aus diesem Grund verwendet der Deskriptor-Speicher 803 die M2B-Schnittstelle
so als wäre
er ein Speicherelement. Daher können
dieselben Identifikationselemente verwendet werden.
-
Zwischen
den in 8a und 8b dargestellten
Elementen werden ferner die folgenden Signale übertragen:
Cfg2D Schnittstellensignal
(Interface, Decoder-Konfiguration) 830;
Konfigurierung
des Arbitrations-Algorithmus 832;
Interrupt-Verbindungen
(IRQ) 834;
Kanaloperation vervollständigt 836;
Kanaloperations-Deskriptor 838;
Konfigurierung
des Arbitrations-Algorithmus 840.
-
Bei
den Systemkommunikationsprotokollen, den Datenkommunikationsprotokollen
bzw. den Schnittstellenprotokollen kann es sich um bekannte On-Chip-Protokolle
bzw. On-Chip-Busprotokolle
handeln, wie z.B. AHB, AXI oder OCP (Open Core Interconnect). So
ist es gemäß einem
Aspekt möglich, Komponenten
unterschiedlicher Hersteller zu verwenden, die unterschiedliche
Protokolle einsetzen.