PatentDe  


Dokumentenidentifikation DE102006025133A1 06.12.2007
Titel Speicher- und Speicherkommunikationssystem
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Reinig, Helmut, 84424 Isen, DE;
Linz, Stefan, 82054 Sauerlach, DE;
Klein, Christian, 81671 München, DE
Vertreter Patentanwälte Lambsdorff & Lange, 81673 München
DE-Anmeldedatum 30.05.2006
DE-Aktenzeichen 102006025133
Offenlegungstag 06.12.2007
Veröffentlichungstag im Patentblatt 06.12.2007
IPC-Hauptklasse G06F 12/00(2006.01)A, F, I, 20060530, B, H, DE
IPC-Nebenklasse G11C 7/10(2006.01)A, L, I, 20060530, B, H, DE   
Zusammenfassung Die vorliegende Erfindung schafft ein Speichersystem mit einem Auswahlelement (107) zum Auswählen einer auswählbaren Zugriffsrate aus einer Mehrzahl von Zugriffsraten und einem Speicherelement (105) zum Bereitstellen oder zum Übernehmen von Daten mit der auswählbaren Zugriffsrate.

Beschreibung[de]

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 Speicher 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 beispielsweise 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 Verarbeitungseinrichtung 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 Protokollwandlung 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 Verarbeitungseinheit 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 programmierbar 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 Implementierungsvarianten 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 354angeordnet. 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 arbeiten 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 extern 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&bgr;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 integraler 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 entweder 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 jedem 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 Statusregister 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 Kanal 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.


Anspruch[de]
Speichersystem mit:

einem Auswahlelement (107) zum Auswählen einer auswählbaren Zugriffsrate aus einer Mehrzahl von Zugriffsraten; und

einem Speicherelement (105) zum Bereitstellen oder zum Übernehmen von Daten mit der auswählbaren Zugriffsrate.
Speichersystem gemäß Anspruch 1, bei dem das Speicherelement (105) einen Speicherbereich umfasst, in dem die Daten frei adressierbar speicherbar sind, und wobei das Speicherelement (105) ausgebildet ist, um den Speicherbereich mit der auswählbaren Zugriffsrate zu adressieren. Speichersystem gemäß Anspruch 1 oder 2, wobei das Speicherelement (105) ausgebildet ist, um die Daten mit einer weiteren auswählbaren Zugriffsrate zu übernehmen und um die Daten mit der auswählbaren Zugriffsrate bereitzustellen. Speichersystem gemäß einem der Ansprüche 1 bis 3, wobei die Mehrzahl der Zugriffsraten in einer Tabelle abgelegt ist, und wobei das Auswahlelement (107) ausgebildet ist, um die auswählbare Zugriffsrate aus der Tabelle auszuwählen. Speichersystem gemäß einem der Ansprüche 1 bis 4, wobei das Auswahlelement (107) ausgebildet ist, um eine weitere auswählbare Zugriffsrate aus der Mehrzahl von Zugriffsraten oder aus einer weiteren Mehrzahl von Zugriffsraten auszuwählen, wobei das Speicherelement (105) ausgebildet ist, um 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 bereitzustellen oder zu übernehmen. Speichersystem gemäß einem der Ansprüche 1 bis 5, das ein Identifikationselement (113) aufweist, das ausgebildet ist, um ein auf das Speicherelement (105) zugreifbares Verarbeitungselement (111) zu identifizieren und um ein Identifikationssignal zu erzeugen, das auf das Verarbeitungselement (111) oder auf dessen Zugriffsrate hinweist, und wobei das Auswahlelement (107) ausgebildet ist, um ansprechend auf das Identifikationssignal diejenige auswählbare Zugriffsrate auszuwählen, die dem Verarbeitungselement oder der Zugriffsrate des Verarbeitungselements zugeordnet ist. Speichersystem gemäß einem der Ansprüche 1 bis 6, mit:

einer ersten Verarbeitungseinrichtung (101) zum Zugreifen auf das Speicherelement (105) mit der auswählbaren Zugriffsrate;

einer zweiten Verarbeitungseinrichtung (111) zum Zugreifen auf das Speicherelement (105) mit einer weiteren Zugriffsrate; wobei

das Auswahlelement (107) ausgebildet ist, um die auswählbare Zugriffsrate aus der Mehrzahl von Zugriffsraten auszuwählen, wenn die Verarbeitungseinrichtung (101) auf das Speicherelement (105) zugreift, oder um eine weitere auswählbare Zugriffsrate aus der Mehrzahl von Zugriffsraten oder aus einer weiteren Mehrzahl von Zugriffsraten auszuwählen, wenn die zweite Verarbeitungseinrichtung (111) auf das Speicherelement (105) zugreift.
Speichersystem gemäß einem der Ansprüche 1 bis 7, das eine Crossbar-Verbindungsstruktur aufweist. Vorrichtung zum Speichern, mit:

einer Einrichtung (107) zum Auswählen einer auswählbaren Zugriffsrate aus einer Mehrzahl von Zugriffsraten; und

einer Einrichtung (105) zum Bereitstellen oder zum Übernehmen von Daten mit der auswählbaren Zugriffsrate.
Vorrichtung zum Speichern gemäß Anspruch 9, mit einer Einrichtung (113) zum Identifizieren einer auf die Einrichtung (105) zum Speichern zugreifbaren Einrichtung zum Verarbeiten und zum Erzeugen eines Identifikationssignals, das auf die Einrichtung zum Verarbeiten hinweist, wobei die Einrichtung (107) zum Auswählen ausgebildet ist, um ansprechend auf das Identifikationssignal diejenige auswählbare Zugriffsrate auszuwählen, die der Einrichtung zum Verarbeiten oder deren Zugriffsrate zugeordnet ist. Vorrichtung zum Speichern gemäß Anspruch 9 oder 10, mit:

einer ersten Einrichtung (101) zum Zugreifen auf die Einrichtung (105) zum Speichern mit der auswählbaren Zugriffsrate;

einer zweiten Einrichtung (111) zum Zugreifen auf die Einrichtung (105) zum Speichern mit einer weiteren Zugriffsrate; wobei

die Einrichtung (107) zum Auswählen ausgebildet ist, um die auswählbare Zugriffsrate aus der Mehrzahl von Zugriffsraten auszuwählen, wenn die erste Einrichtung (101) auf die Einrichtung (105) zum Speichern zugreift, oder um die weitere auswählbare Zugriffsrate aus der Mehrzahl oder aus einer weiteren Mehrzahl von Zugriffsraten auszuwählen, wenn die zweite Einrichtung (111) auf die Einrichtung (105) zum Speichern zugreift.
Verfahren zum Bereitstellen oder zum Übernehmen von Daten, mit:

Auswählen einer auswählbaren Zugriffsrate aus einer Mehrzahl von Zugriffsraten; und

Bereitstellen oder Übernehmen von Daten mit der auswählbaren Zugriffsrate.
Verfahren zum Bereitstellen oder zum Übernehmen von Daten gemäß Anspruch 12, mit:

Übernehmen der Daten mit einer weiteren auswählbaren Zugriffsrate; und

Bereitstellen der Daten mit der auswählbaren Zugriffsrate.
Verfahren zum Bereitstellen oder zum Übernehmen von Daten gemäß Anspruch 12 oder 13, mit:

Identifizieren einer Zugriffsrate, mit der die Daten bereitgestellt oder übernommen werden sollen;

Erzeugen eines Identifikationssignals, das auf die Zugriffsrate hinweist; und

ansprechend auf das Identifikationssignal, Auswählen derjenigen auswählbaren Zugriffsrate, die der Zugriffsrate zugeordnet ist.
Verfahren gemäß einem der Ansprüche 12 bis 14, bei dem die Daten mit der auswählbaren Zugriffsrate oder mit einer weiteren auswählbaren Zugriffsrate bereitgestellt werden, und bei dem die auswählbare Zugriffsrate aus der Mehrzahl von Zugriffsraten ausgewählt wird, wenn die Daten mit der auswählbaren Zugriffsrate bereitgestellt oder übernommen werden sollen, oder bei dem die weitere auswählbare Zugriffsrate aus der Mehrzahl oder aus einer weiteren Mehrzahl von Zugriffsraten ausgewählt wird, wenn die Daten mit der weiteren Zugriffsrate bereitgestellt oder übernommen werden sollen. Kommunikationssystem, mit:

einer ersten Schnittstelle (103) zum Bereitstellen von ersten Daten gemäß einem ersten Datenkommunikations-Protokoll, wobei die erste Schnittstelle (103) einen ersten Protokollwandler zum Umwandeln des ersten Datenkommunikations-Protokolls in ein Systemkommunikations-Protokoll aufweist, wobei der erste Protokollwandler ausgebildet ist, um die ersten Daten gemäß dem ersten Datenkommunikations-Protokoll entgegenzunehmen und um erste Daten gemäß dem Systemkommunikations-Protokoll bereitzustellen;

einer zweiten Schnittstelle (110) 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.
Kommunikationssystem gemäß Anspruch 16, wobei die zweite Schnittstelle (110) ausgebildet ist, um die ersten Daten gemäß einem zweiten Datenkommunikations-Protokoll auf der Basis der ersten Daten gemäß dem Systemkommunikations-Protokoll bereitzustellen oder um die ersten Daten gemäß dem Systemkommunikations-Protokoll bereitzustellen. Kommunikationssystem gemäß Anspruch 16 oder 17, wobei die zweite Schnittstelle (110) einen zweiten Protokollwandler zum Umwandeln des zweiten Datenkommunikations-Protokolls in das Systemkommunikations-Protokoll oder zum Umwandeln des Systemkommunikations-Protokoll in das zweite Datenkommunikationsprotokoll umfasst. Kommunikationssystem gemäß einem der Ansprüche 16 bis 18, wobei der erste Protokollwandler ausgebildet ist, um die ersten Daten mit demselben Arbeitstakt entgegenzunehmen und bereitzustellen. Kommunikationssystem gemäß einem der Ansprüche 16 bis 19, mit:

einer ersten Kommunikationseinrichtung (101), die mit der ersten Schnittstelle (103) gekoppelt ist;

einer zweiten Kommunikationseinrichtung (111), die mit der zweiten Schnittstelle (110) gekoppelt ist;

einem ersten Speichersystem gemäß einem der Ansprüche 1 bis 8, das mit der ersten Schnittstelle (110) gekoppelt ist; und

einem zweiten Speichersystem gemäß einem der Ansprüche 1 bis 8, das mit der zweiten Schnittstelle (103) gekoppelt ist.
Vorrichtung zur Datenkommunikation, mit:

einer ersten Einrichtung (103) zum Bereitstellen von ersten Daten gemäß einem ersten Datenkommunikations-Protokoll, wobei die Einrichtung (103) einen ersten Protokollwandler zum Umwandeln des ersten Datenkommunikations-Protokolls in ein Systemkommunikations-Protokoll umfasst, wobei der erste Protokollwandler ausgebildet ist, um die ersten Daten gemäß dem ersten Datenkommunikations-Protokoll entgegenzunehmen und um erste Daten gemäß dem Systemkommunikations-Protokoll bereitzustellen;

einer zweiten Einrichtung (110) 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.
Vorrichtung zur Datenkommunikation nach Anspruch 21, mit:

einer ersten Einrichtung (101) zum Kommunizieren, die mit der ersten Einrichtung (103) zum Bereitstellen gekoppelt ist;

einer zweiten Einrichtung (111) zum Kommunizieren, die mit der zweiten Einrichtung (110) zur Entgegennahme gekoppelt ist; und

einer Vorrichtung zum Speichern gemäß einem der Ansprüche 9 – 11, die mit der ersten Einrichtung (103) zum Bereitstellen oder mit der zweiten Einrichtung (110) zum Entgegennehmen gekoppelt ist.
Verfahren zum Kommunizieren, mit:

Bereitstellen von ersten Daten gemäß einem ersten Datenkommunikations-Protokoll, wobei in dem Schritt des Bereitstellens der ersten Daten gemäß dem ersten Datenkommunikations-Protokoll das erste Datenkommunikations-Protokoll in ein Systemkommunikations-Protokoll gewandelt wird, wobei die ersten Daten gemäß dem ersten Datenkommunikations-Protokoll entgegengenommen und wobei auf der Basis der ersten Daten gemäß dem ersten Datenkommunikations-Protokoll erste Daten gemäß dem Systemkommunikations-Protokoll bereitgestellt werden; und

Entgegennehmen der ersten Daten gemäß dem Systemkommunikations-Protokoll oder Entgegennehmen von zweiten Daten gemäß einem zweiten Datenkommunikations-Protokoll und Bereitstellen von zweiten Daten gemäß dem Systemkommunikations-Protokoll auf der Basis der zweiten Daten gemäß dem zweiten Datenkommunikations-Protokoll.
Speicherkommunikationssystem, mit:

einer Speicherschnittstelle (529; 617; 739) zum Zugreifen auf einen Speicher (531; 627; 733; 741);

einer ersten Schnittstelle (521; 523; 525; 527);

einem ersten Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) zum Steuern des Zugriffs auf die erste Speicherschnittstelle (529; 617; 739) über die erste Schnittstelle (521; 523; 525; 527);

einer zweiten Schnittstelle (521; 523; 525; 527); und

einem zweiten Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) zum Steuern des Zugriffs auf die Speicherschnittstelle (529; 617; 739) oder auf eine weitere Speicherschnittstelle (731) über die zweite Schnittstelle (521; 523; 525; 527);
Speicherkommunikationssystem gemäß Anspruch 24, bei dem das erste Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) und das zweite Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) identisch sind. Speicherkommunikationssystem gemäß Anspruch 24 oder 25, mit:

einer ersten Kommunikationseinrichtung (533, 535, 537, 539; 619, 621, 623, 625; 715, 717, 725), die mit der ersten Schnittstelle (521; 523; 525; 527) gekoppelt ist;

einer zweiten Kommunikationseinrichtung (533, 535, 537, 539; 619, 621, 623, 625; 715, 717, 725), die mit der zweiten Schnittstelle (521; 523; 525; 527) gekoppelt ist;

einem Speicher (531; 627; 733; 741), der mit der Speicherschnittstelle (529; 617; 731; 739) gekoppelt ist, wobei das erste Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) und das zweite Zugriffssteuerungselement (501, 503, 505, 507; 701, 703, 705, 707) vorgesehen sind, um die Adresse des Speichers (531; 627; 733; 741) bereitzustellen.
Speicherkommunikationssystem gemäß einem der Ansprüche 24 bis 26, bei dem ein Arbiter (519; 751) vorgesehen ist, um den Zugriff auf die Speicherschnittstelle (529; 617; 739) oder auf die weitere Speicherschnittstelle (731) über die erste Schnittstelle (521; 523; 525; 527) oder über die zweite Schnittstelle (521; 523; 525; 527) zu steuern. Speicherkommunikationssystem gemäß einem der Ansprüche 24 bis 27, bei dem der ersten Schnittstelle (521; 523; 525; 527) oder der zweiten Schnittstelle (521; 523; 525; 527) oder der Speicherschnittstelle (529; 617; 739) ein Speichersystem gemäß einem der Ansprüche 1 bis 8 zugeordnet ist. Speicherkommunikationssystem gemäß einem der Ansprüche 24 bis 28, wobei

der ersten Schnittstelle (521; 523; 525; 527) ein erster Protokollwandler zum Umwandeln eines ersten Datenkommunikations-Protokolls in ein Systemkommunikations-Protokoll zugeordnet ist; und wobei

der zweiten Schnittstelle (521; 523; 525; 527) ein zweiter Protokollwandler zum Umwandeln des Systemkommunikations-Protokolls in ein zweites Datenkommunikations-Protokoll oder zum Umwandeln eines zweiten Datenkommunikations-Protokolls in das Systemkommunikations-Protokoll zugeordnet ist.
Vorrichtung zur Speicherkommunikation, mit:

einer Einrichtung (529; 617; 739) zum Zugreifen auf einen Speicher;

einer ersten Einrichtung (521; 523; 525; 527) zum Koppeln;

einer ersten Einrichtung (501, 503, 505, 507; 701, 703, 705, 707) zum Steuern des Zugriffs auf die Einrichtung (529; 617; 739) zum Zugreifen auf einen Speicher über die erste Einrichtung (521; 523; 525; 527) zum Koppeln;

einer zweiten Einrichtung (521; 523; 525; 527) zum Koppeln; und

einer zweiten Einrichtung (501, 503, 505, 507; 701, 703, 705, 707) zum Steuern des Zugriffs auf die Einrichtung (529; 617; 739) zum Zugreifen auf einen Speicher oder auf eine weitere Einrichtung zum Zugreifen auf einen Speicher über die zweite Einrichtung (521; 523; 525; 527) zum Koppeln.
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.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

  Patente PDF

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com