-
Stand der Technik
-
Die Erfindung betrifft eine Speicherdirektzugriffssteuereinrichtung nach dem Oberbegriff des Anspruchs 1, sowie ein Verfahren nach dem nebengeordneten Patentanspruch.
-
Vom Markt her bekannt sind Recheneinheiten, beispielsweise Prozessoren, welche einen oder mehrere Prozessorkerne aufweisen, und welche auf einen Arbeitsspeicher zugreifen können. Weiterhin umfassen Rechnersysteme, welche eine oder mehrere solcher Recheneinheiten aufweisen, üblicherweise eine Mehrzahl von weiteren mit der Recheneinheit zusammenwirkenden Einheiten, beispielsweise Eingabe- und Ausgabebausteine ("IO") und dergleichen. Zumindest einige der besagten Elemente des Rechnersystems können über einen gemeinsamen, bevorzugt parallelen, Bus miteinander Daten austauschen. Weiterhin sind Verfahren für einen so genannten Speicherdirektzugriff, DMA, englisch "direct memory access", bekannt, wodurch der Datenaustausch über den gemeinsamen Bus verbessert werden kann.
-
Offenbarung der Erfindung
-
Das der Erfindung zugrunde liegende Problem wird durch eine Speicherdirektzugriffssteuereinrichtung nach Anspruch 1, sowie durch ein Verfahren nach dem nebengeordneten Anspruch gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben. Für die Erfindung wichtige Merkmale finden sich ferner in der nachfolgenden Beschreibung und in den Zeichnungen, wobei die Merkmale sowohl in Alleinstellung als auch in unterschiedlichen Kombinationen für die Erfindung wichtig sein können, ohne dass hierauf nochmals explizit hingewiesen wird.
-
Die Erfindung betrifft eine Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit, wobei die Speicherdirektzugriffssteuereinrichtung einen Anschluss zur Verbindung der Speicherdirektzugriffssteuereinrichtung mit einem die Recheneinheit mit dem Arbeitsspeicher verbindenden Bussystem aufweist. Dabei ist die Speicherdirektzugriffssteuereinrichtung zur Ausführung der folgenden Schritte ausgebildet:
- – Auslesen von ersten Daten aus einem mit dem Bussystem verbundenen Quellmodul, wobei die ersten Daten wenigstens einem zumindest zeitweise in dem Quellmodul gespeicherten Informationsblock zugeordnet sind,
- – Ermitteln einer Zieladresse in dem Arbeitsspeicher für den mindestens einen Informationsblock in Abhängigkeit der ersten Daten und in Abhängigkeit von Konfigurationsinformationen,
- – Übertragen des mindestens einen Informationsblocks von dem Quellmodul an die Zieladresse unter Verwendung eines Speicherdirektzugriffs von dem Quellmodul zu dem Arbeitsspeicher.
-
Der besagte wenigstens eine Informationsblock kann "Nutzdaten" und/oder Steuerinformationen umfassen und beispielsweise auch ganze Datenpakete bilden, wie sie durch das Quellmodul über ein (von dem oben beschriebenen Bussystem verschiedenes) Bussystem und/oder über ein Datennetzwerk von anderen Einheiten empfangen werden können.
-
Die Recheneinheit (beispielsweise eine CPU, englisch: "central processing unit") kann einen oder mehrere Prozessorkerne (Rechenkerne) umfassen, wobei die Prozessorkerne nachfolgend auch als Recheneinheiten bezeichnet werden. Die Prozessorkerne bzw. die Recheneinheiten können in einem gemeinsamen Bauelement (integrierte Schaltung) oder in jeweils getrennten Bauelementen angeordnet sein.
-
Der Arbeitsspeicher kann als zentraler Arbeitsspeicher ausgeführt sein, welcher von den Prozessorkernen gemeinsam nutzbar ist, und/oder es kann für jeden der Prozessorkerne ein jeweils separater Arbeitsspeicher vorgesehen sein. Dieser Arbeitsspeicher kann zusammen mit dem jeweiligen Prozessorkern in einem gemeinsamen Bauelement angeordnet sein ("intern") oder physisch davon getrennt sein ("extern").
-
Die Zieladresse ist beispielsweise eine einzelne Adresse in dem Arbeitsspeicher, wobei die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet ist, in Abhängigkeit von dem zu übertragenden Informationsblock die Zieladresse gegebenenfalls in geeigneter und an sich bekannter Weise fortlaufend schrittweise zu erhöhen.
-
In einer Ausgestaltung sind die Konfigurationsinformationen mittels einer Tabelle ("Konfigurationstabelle"), einer Matrix oder dergleichen vorgegeben. In einer weiteren Ausgestaltung wird mittels der besagten Konfigurationsinformationen vorgegeben, auf welche Weise die ersten Daten für das Ermitteln der Zieladresse zu interpretieren sind. Die Konfigurationsinformationen können auch Filterkriterien aufweisen, welche auf die ersten Daten angewendet werden können, z.B. zur Selektion von Daten.
-
Das Quellmodul kann eine an sich beliebige Einheit sein, welche mindestens einen Informationsblock aufweist, der an die Zieladresse in dem Arbeitsspeicher übertragen werden kann.
-
Vorzugsweise, aber nicht zwingend, ist die Speicherdirektzugriffssteuereinrichtung mittels Hardware ausgeführt, also mittels eines oder mehrerer diskreter und/oder integrierter elektronischer Bauelemente. Bei einer vorteilhaften Ausführungsform kann eine konventionelle Speicherdirektzugriffssteuereinrichtung um die erfindungsgemäße Funktionalität ergänzt sein.
-
In einer Ausgestaltung ist die Speicherdirektzugriffssteuereinrichtung eine separate Einheit, welche ergänzend zu einer nach dem Stand der Technik vorbekannten Speicherdirektzugriffssteuereinrichtung verwendet wird.
-
In einer weiteren Ausgestaltung ist die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet, ein Triggersignal, ein Steuerbit, oder ein sonstiges Signal von dem Quellmodul zu empfangen, wodurch die Speicherdirektzugriffssteuereinrichtung veranlasst werden kann, die ersten Daten aus dem mit dem Bussystem verbundenen Quellmodul auszulesen. Dadurch ist ein periodisches Abfragen ("Pollen") des Quellmoduls durch die Speicherdirektzugriffssteuereinrichtung entbehrlich, wodurch der Betrieb der Speicherdirektzugriffssteuereinrichtung vorteilhaft beschleunigt und/oder vereinfacht werden kann.
-
Die Erfindung weist den Vorteil auf, dass eine Datenübertragung, insbesondere das Übertragen des mindestens einen Informationsblocks von dem Quellmodul an die Zieladresse, ohne eine Mitwirkung durch die Recheneinheit bzw. einen jeweiligen Prozessorkern möglich ist. Dies kann Rechenzeit sparen, weil Zugriffe der Recheneinheit auf ihre Peripherie im Allgemeinen vergleichsweise langsam sind. Dadurch kann der Betrieb der Recheneinheit bzw. eines die Recheneinheit aufweisenden Rechnersystems insgesamt verbessert werden.
-
Ein weiterer Vorteil ist, dass die Speicherdirektzugriffssteuereinrichtung die Leistung von solchen Quellmodulen erhöht, die nicht explizit zum Betrieb mit einem so genannten "Multicore-System" (also eine Recheneinheit mit mehreren Prozessorkernen) ausgelegt worden sind, sondern nur mit dem Designziel der Kommunikation mit einem einzelnen Prozessorkern entwickelt wurden.
-
In einer weiteren Ausgestaltung umfasst das Quellmodul ein Kommunikationsmodul, insbesondere ein CAN-Modul, ein MCAN-Modul, ein FlexRay-Modul und/oder ein Ethernet-Modul. Diese Module sind besonders vorteilhaft zusammen mit der Speicherdirektzugriffssteuereinrichtung verwendbar. Die Abkürzung "CAN" bedeutet "Controller Area Network". Der Buchstabe "M" charakterisiert dabei einen optionalen herstellerspezifischen Namenszusatz. Der Begriff "FlexRay" charakterisiert ein serielles, deterministisches und fehlertolerantes Feldbussystem, insbesondere für den Einsatz in Kraftfahrzeugen. Bei anderen Ausführungsformen kann das Quellmodul auch eine Speichereinheit aufweisen bzw. darstellen. Bei einer weiteren Ausführungsform kann das Quellmodul auch einen Speicher, z.B. einen Arbeitsspeicher (RAM, random access memory), umfassen bzw. darstellen.
-
Weiterhin kann vorgesehen sein, dass die ersten Daten Nutzdaten und/oder Metadaten des Informationsblocks sind. Die Metadaten können beispielsweise eine so genannte "CAN-ID" umfassen, falls das Quellmodul ein CAN-Modul umfasst, oder die Metadaten können beispielsweise eine so genannte "Minislot-Nummer" umfassen, falls das Quellmodul ein FlexRay-Modul umfasst. Somit kann die Speicherdirektzugriffssteuereinrichtung in Abhängigkeit von einer jeweiligen Konfiguration vorteilhaft mehrere Möglichkeiten nutzen, um die Zieladresse in dem Arbeitsspeicher zu ermitteln.
-
Weiterhin kann vorgesehen sein, dass der Informationsblock in dem Quellmodul eine von dem Quellmodul empfangene Nachricht charakterisiert. Beispielsweise wird die Nachricht von dem Quellmodul über ein von der Recheneinheit und der Speicherdirektzugriffssteuereinrichtung getrenntes Bussystem (z.B. CAN-Bus) von einem anderen Busteilnehmer dieses Bussystems empfangen. Diese Nachricht kann mittels der Speicherdirektzugriffssteuereinrichtung vorteilhaft an die Zieladresse des Arbeitsspeichers übertragen werden.
-
In einer weiteren Ausgestaltung sind die Konfigurationsinformationen innerhalb und/oder außerhalb der Speicherdirektzugriffssteuereinrichtung lokalisiert. Beispielsweise sind die Konfigurationsinformationen in einem die Speicherdirektzugriffssteuereinrichtung umfassenden elektronischen Bauelement flüchtig oder nicht-flüchtig gespeichert. Ergänzend oder alternativ können die Konfigurationsinformationen beispielsweise in einem Bereich des Arbeitsspeichers oder in einem dazu vergleichbaren Speicher lokalisiert sein. Dadurch können die Konfigurationsinformationen vorteilhaft auf vielseitige Weise vorgegeben werden, beispielsweise durch die Recheneinheit.
-
Weiterhin kann vorgesehen sein, dass die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet ist, ergänzend zu dem Ermitteln der Zieladresse eine für die Übertragung des mindestens einen Informationsblocks bestimmte Recheneinheit und/oder einen für die Übertragung des mindestens einen Informationsblocks bestimmten Arbeitsspeicher (bzw. Arbeitsspeicherbereich bzw. Arbeitsspeicher-Einheit) zu ermitteln. Dies erfolgt vorzugsweise in Abhängigkeit von den ersten Daten und/oder in Abhängigkeit von den Konfigurationsinformationen. Dies ist besonders vorteilhaft, wenn die Recheneinheit mehrere Prozessorkerne umfasst, wodurch der Betrieb der Recheneinheit bzw. des die mindestens eine Recheneinheit umfassenden Rechnersystems verbessert werden kann.
-
In einer weiteren Ausgestaltung ist die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet, die Zieladresse in Abhängigkeit wenigstens einer absoluten ersten Speicheradresse in dem Arbeitsspeicher und/oder wenigstens einer relativen zweiten Speicheradresse in dem Arbeitsspeicher zu ermitteln. Die Auswahl, ob jeweils die absolute erste Speicheradresse und/oder die relative zweite Speicheradresse verwendet wird, erfolgt vorzugsweise in Abhängigkeit von den weiter oben beschriebenen Konfigurationsinformationen und/oder in Abhängigkeit von den ersten Daten. Dadurch werden die Möglichkeiten der Speicherdirektzugriffssteuereinrichtung vorteilhaft erweitert.
-
Dabei ist die absolute erste Speicheradresse beispielsweise eine vorgegebene Adresse in dem Arbeitsspeicher, wobei die erste Speicheradresse z.B. mittels der Speicherdirektzugriffssteuereinrichtung schrittweise erhöht werden kann, bis der gesamte Informationsblock in den Arbeitsspeicher übertragen wurde.
-
Dabei ist die relative zweite Speicheradresse beispielsweise durch einen Schreibzeiger zur Speicherung des Informationsblocks in einem Ringpuffer (Ringspeicher) charakterisiert. Beispielsweise umfasst der Ringpuffer einen in dem Arbeitsspeicher vorgegebenen Speicherbereich von fester Länge, wobei der Schreibzeiger den Speicherbereich zyklisch durchlaufen kann. Ein beispielsweise von einem Prozessorkern gesteuerter Lesezeiger kann dem Schreibzeiger zeitlich beabstandet folgen und somit den Informationsblock schrittweise einer durch den Prozessorkern gesteuerten weiteren Verarbeitung zuführen.
-
Weiterhin kann vorgesehen sein, dass die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet ist, wenigstens ein Steuerbit in dem mindestens einen Informationsblock zu setzen, und/oder eine Unterbrechungsanforderung (englisch: "interrupt") bei der Recheneinheit und/oder bei einem Prozessorkern der Recheneinheit auszulösen. Vorzugsweise, aber nicht zwingend, betrifft die Unterbrechungsanforderung nur denjenigen Prozessorkern, welcher als Empfänger für den jeweiligen Informationsblock vorgesehen ist. Dadurch kann die Recheneinheit bzw. das die mindestens eine Recheneinheit umfassende Rechnersystem besonders schnell auf die Übertragung des Informationsblocks in den Arbeitsspeicher reagieren. Das besagte Steuerbit ist beispielsweise ein so genanntes "New-Flag".
-
In einer weiteren Ausgestaltung ist die Speicherdirektzugriffssteuereinrichtung dazu ausgebildet, ein Steuerbit, englisch: "acknowledge", an das Quellmodul zu übertragen, nachdem ein jeweiliger Informationsblock mittels der Speicherdirektzugriffssteuereinrichtung erfolgreich von dem Quellmodul an den Arbeitsspeicher übertragen wurde. Dadurch kann ein in dem Quellmodul zeitweise für den Informationsblock reservierter Speicherbereich vorteilhaft schnell wieder freigegeben werden und steht somit für eventuelle weitere Übertragungen zur Verfügung.
-
Weiterhin betrifft die Erfindung ein Verfahren zum Betreiben der Speicherdirektzugriffssteuereinrichtung für mindestens eine einen Arbeitsspeicher aufweisende Recheneinheit, wobei die Speicherdirektzugriffssteuereinrichtung einen Anschluss zur Verbindung der Speicherdirektzugriffssteuereinrichtung mit einem die Recheneinheit mit dem Arbeitsspeicher verbindenden Bussystem aufweist. Dabei umfasst das Verfahren die folgenden Schritte:
- – Auslesen von ersten Daten aus einem mit dem Bussystem verbundenen Quellmodul, wobei die ersten Daten wenigstens einem zumindest zeitweise in dem Quellmodul gespeicherten Informationsblock zugeordnet sind,
- – Ermitteln einer Zieladresse in dem Arbeitsspeicher für den mindestens einen Informationsblock in Abhängigkeit der ersten Daten und in Abhängigkeit von Konfigurationsinformationen,
- – Übertragen des mindestens einen Informationsblocks von dem Quellmodul an die Zieladresse unter Verwendung eines Speicherdirektzugriffs von dem Quellmodul zu dem Arbeitsspeicher.
-
Es ergeben sich vergleichbare Vorteile, wie es weiter oben für die Speicherdirektzugriffssteuereinrichtung bereits beschrieben wurde.
-
In einer Ausgestaltung des Verfahrens umfasst das Quellmodul ein Kommunikationsmodul, insbesondere ein CAN-Modul, ein MCAN-Modul, ein FlexRay-Modul und/oder ein Ethernet-Modul. Bei einer weiteren Ausführungsform kann das Quellmodul auch einen Speicher, z.B. einen Arbeitsspeicher (RAM, random access memory), umfassen bzw. darstellen.
-
In einer weiteren Ausgestaltung des Verfahrens sind die ersten Daten Nutzdaten und/oder Metadaten des Informationsblocks.
-
In einer weiteren Ausgestaltung des Verfahrens charakterisiert der Informationsblock in dem Quellmodul eine von dem Quellmodul empfangene Nachricht.
-
In einer weiteren Ausgestaltung des Verfahrens wird ergänzend zu dem Ermitteln der Zieladresse eine für die Übertragung des mindestens einen Informationsblocks bestimmte Recheneinheit und/oder ein für die Übertragung des mindestens einen Informationsblocks bestimmter Arbeitsspeicher ermittelt.
-
In einer weiteren Ausgestaltung des Verfahrens wird die Zieladresse in Abhängigkeit wenigstens einer absoluten ersten Speicheradresse in dem Arbeitsspeicher und/oder wenigstens einer relativen zweiten Speicheradresse in dem Arbeitsspeicher ermittelt.
-
In einer weiteren Ausgestaltung des Verfahrens wird wenigstens ein Steuerbit in dem mindestens einen Informationsblock gesetzt und/oder eine Unterbrechungsanforderung (englisch: "interrupt") bei der Recheneinheit und/oder bei einem Prozessorkern der Recheneinheit ausgelöst.
-
Für die beschriebenen Ausgestaltungen des Verfahrens ergeben sich ebenfalls vergleichbare Vorteile, wie es weiter oben für die entsprechenden Ausgestaltungen der Speicherdirektzugriffssteuereinrichtung bereits beschrieben wurde.
-
Nachfolgend werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigen:
-
1 ein stark vereinfachtes Blockschaltbild für ein Rechnersystem mit einem Bus;
-
2 eine Ausführungsform des Rechnersystems von 1 mit einer Mehrzahl von Recheneinheiten und den Recheneinheiten jeweils zugeordneten Arbeitsspeicher-Einheiten;
-
3 ein Schema für einen Ringpufferspeicher; und
-
4 ein Flussdiagramm für eine Ausführungsform eines Verfahrens zum Betreiben einer Speicherdirektzugriffssteuereinrichtung des Rechnersystems nach 2 zur Durchführung eines Speicherdirektzugriffs.
-
Es werden für funktionsäquivalente Elemente und Größen in allen Figuren auch bei unterschiedlichen Ausführungsformen die gleichen Bezugszeichen verwendet.
-
Die 1 zeigt schematisch ein stark vereinfachtes Blockschaltbild für ein Rechnersystem 10 mit einer Recheneinheit 20, einem Arbeitsspeicher 30 und einer Speicherdirektzugriffssteuereinrichtung 40, welche jeweils mit einem die Recheneinheit 20 mit dem Arbeitsspeicher 30 verbindenden Bussystem 12 verbunden sind. Das Bussystem 12 kann beispielsweise – ebenso wie eine oder mehrere der Komponenten 20, 30, 40, 50 – auf einem Halbleiterbauelement (Chip) ("Network on Chip") angeordnet sein. Ergänzend umfasst die Speicherdirektzugriffssteuereinrichtung 40 Konfigurationsinformationen 42, welche weiter unten bei der 2 noch näher erläutert werden. Weiterhin zeigt die 1 ein mit dem Bussystem 12 verbundenes Quellmodul 50. An das Quellmodul 50 ist vorliegend ein CAN-Bus 52 angeschlossen.
-
Die 2 zeigt das Rechnersystem 10, welches vorliegend eine Recheneinheit 20 mit einer Mehrzahl von Prozessorkernen 20_1 bis 20_n und den Prozessorkernen 20_1 bis 20_n jeweils zugeordneten Arbeitsspeicher-Einheiten 30_1, 30_2 bis 30_n umfasst.
-
Nachfolgend werden die Prozessorkerne 20_1 bis 20_n gleichbedeutend auch als Recheneinheiten 20_1 bis 20_n bezeichnet. Nachfolgend werden die Arbeitsspeicher-Einheiten 30_1, 30_2 bis 30_n zusammenfassend auch als Arbeitsspeicher 30 bezeichnet. In Abhängigkeit von einer Ausführungsform kann der Arbeitsspeicher 30 jedoch auch als ein zentrales Element des Rechnersystems 10 ausgebildet sein, wobei alle Recheneinheiten 20_1 bis 20_n auf diesen Arbeitsspeicher 30 lesend und schreibend zugreifen können.
-
In einer Ausführungsform ist das Quellmodul 50 zum Betrieb mit einer Recheneinheit 20 ausgebildet, welche nur einen einzelnen Prozessorkern 20_1 bis 20_n umfasst. In einer weiteren Ausführungsform ist das Quellmodul 50 zum Betrieb mit mehreren Prozessorkernen 20_1 bis 20_n ausgebildet. Beide Ausführungsformen des Quellmoduls 50 können in dem Rechnersystem 10 der 1 oder 2 alternativ verwendet werden.
-
Der Arbeitsspeicher 30 bzw. die Arbeitsspeicher-Einheiten 30_1, 30_2 bis 30_n können beispielsweise ein "externes" RAM, Speicher mit wahlfreiem Zugriff, englisch "random access memory", oder ein der Recheneinheit 20 bzw. den Recheneinheiten 20_1, 20_2, 20_n zugehöriges "internes" RAM sein.
-
Die Recheneinheit 20, die Arbeitsspeicher-Einheiten 30_1 bis 30_n, die Speicherdirektzugriffssteuereinrichtung 40 und das Quellmodul 50 sind über das gemeinsame Bussystem 12 (siehe 1) miteinander verbunden, über welches Informationsblöcke 60 ausgetauscht werden können. Die Informationsblöcke 60 können "Nutzdaten" und/oder Steuerinformationen umfassen.
-
Vorliegend werden nur solche Informationsblöcke 60 betrachtet, welche von dem Quellmodul 50 hin zu dem Arbeitsspeicher 30 bzw. den Arbeitsspeicher-Einheiten 30_1 bis 30_n übertragen werden bzw. übertragen werden sollen (so genannter "Rx-Betrieb"). Dennoch kann das Quellmodul 50 bzw. das Kommunikationsmodul 50 selbstverständlich auch dazu ausgebildet sein, Informationsblöcke 60 von dem Arbeitsspeicher 30 über das Bussystem 12 zur Übertragung über den CAN-Bus 52 zu empfangen (so genannter "Tx-Betrieb").
-
Das Bussystem 12 kann beispielsweise als paralleles Bussystem 12 mit einem eine erste Anzahl von Adressleitungen aufweisenden Adressbus und eine zweite Anzahl von Datenleitungen aufweisenden Datenbus ausgebildet sein.
-
Die in der 2 gezeichneten Doppelpfeile zwischen den Arbeitsspeicher-Einheiten 30_1, 30_2 bis 30_n und der Speicherdirektzugriffssteuereinrichtung 40, sowie zwischen der Speicherdirektzugriffssteuereinrichtung 40 und dem Quellmodul 50, charakterisieren vorliegend eine jeweilige funktionale Zuordnung und nur bedingt eine jeweilige physikalische Verbindung.
-
Vorliegend umfasst das Quellmodul 50 ein Kommunikationsmodul 50, insbesondere ein CAN-Modul bzw. MCAN-Modul. Entsprechend werden nachfolgend die Begriffe "Quellmodul" und "Kommunikationsmodul" gleichbedeutend verwendet. Das Quellmodul 50 bzw. das Kommunikationsmodul 50 bzw. das MCAN-Modul kann mit dem an das Kommunikationsmodul 50 angeschlossenen CAN-Bus 52 kommunizieren, an welchem eine (nicht dargestellte) Mehrzahl von vorliegend als "logische Einheiten" bezeichnete CAN-Bus-Teilnehmer angeschlossen sein kann. Die Abkürzung "CAN" bedeutet "Controller Area Network". Der Buchstabe "M" charakterisiert einen optionalen herstellerspezifischen Namenszusatz. In einer Ausführungsform ist das Quellmodul 50 bzw. das Kommunikationsmodul 50 ein FlexRay-Modul und/oder ein Ethernet-Modul. Bei einer weiteren Ausführungsform kann das Quellmodul auch einen Speicher, z.B. einen Arbeitsspeicher (RAM, random access memory), umfassen bzw. darstellen.
-
Beispielsweise umfasst das MCAN-Modul bzw. das Kommunikationsmodul 50 unter anderem folgende Teilschaltungen:
- – eine Schnittstellen-Verwaltung (engl. "interface management logic") für das Bussystem 12,
- – einen Sendepuffer (engl. "transmit buffer"),
- – einen oder mehrere Empfangspuffer (engl. "receive buffer"),
- – einen Daten-Prozessor (engl. "bit stream processor"),
- – eine Fehlerbehandlungseinrichtung (engl. "error management logic"),
- – eine Übertragungs-Logik (engl. "transceive logic"),
- – eine Zeitsteuerung (engl. "bit timing logic"), und/oder
- – eine Schnittstellen-Logik (engl. "line interface logic") für einen angeschlossenes CAN-Bussystem.
-
Unter anderem zeigt die 2 also die Speicherdirektzugriffssteuereinrichtung 40 für mindestens eine einen Arbeitsspeicher 30 aufweisende Recheneinheit 20, wobei die Speicherdirektzugriffssteuereinrichtung 40 einen Anschluss zur Verbindung der Speicherdirektzugriffssteuereinrichtung 40 mit dem die Recheneinheit 20 mit dem Arbeitsspeicher 30 verbindenden Bussystem 12 aufweist. Dabei ist die Speicherdirektzugriffssteuereinrichtung 40 zur Ausführung der folgenden Schritte ausgebildet:
- – Auslesen 102 (siehe 4) von ersten Daten aus dem mit dem Bussystem 12 verbundenen Quellmodul 50, wobei die ersten Daten wenigstens einem zumindest zeitweise in dem Quellmodul 50 gespeicherten Informationsblock 60 zugeordnet sind,
- – Ermitteln 104 (siehe 4) einer Zieladresse 82' (siehe die 3) in dem Arbeitsspeicher 30 bzw. in den Arbeitsspeicher-Einheiten 30_1 bis 30_n für den mindestens einen Informationsblock 60 in Abhängigkeit der ersten Daten und in Abhängigkeit von den Konfigurationsinformationen 42,
- – Übertragen 108 (siehe 4) des mindestens einen Informationsblocks 60 von dem Quellmodul 50 an die Zieladresse 82' unter Verwendung eines Speicherdirektzugriffs von dem Quellmodul 50 zu dem Arbeitsspeicher 30.
-
In einer Ausführungsform sind die ersten Daten Nutzdaten und/oder Metadaten des Informationsblocks 60. Vorliegend charakterisiert der Informationsblock 60 in dem Quellmodul 50 eine von dem Quellmodul 50 empfangene Nachricht, welche also beispielsweise über den an dem Kommunikationsmodul 50 angeschlossenen CAN-Bus 52 empfangen werden kann.
-
In einer weiteren Ausführungsform sind die Konfigurationsinformationen 42 innerhalb und/oder außerhalb der Speicherdirektzugriffssteuereinrichtung 40 lokalisiert. Die Konfigurationsinformationen 42 charakterisieren vorliegend, auf welche Weise die ersten Daten für das Ermitteln 104 der Zieladresse 82' zu interpretieren sind. Beispielsweise sind die Konfigurationsinformationen 42 in einem die Speicherdirektzugriffssteuereinrichtung 40 umfassenden elektronischen Bauelement flüchtig oder nicht-flüchtig gespeichert. In einer Ausführungsform sind die Konfigurationsinformationen 42 in einem Bereich des Arbeitsspeichers 30 bzw. 30_1 bis 30_n oder in einem dazu vergleichbaren Speicher lokalisiert.
-
Vorliegend ist die Speicherdirektzugriffssteuereinrichtung 40 dazu ausgebildet, ergänzend zu dem Ermitteln 104 der Zieladresse 82' eine für die Übertragung des mindestens einen Informationsblocks 60 bestimmte Recheneinheit 20_1 bis 20_n und/oder einen für die Übertragung des mindestens einen Informationsblocks 60 bestimmten Arbeitsspeicher 30 bzw. 30_1 bis 30_n zu ermitteln. Dies erfolgt bevorzugt ebenfalls in Abhängigkeit von den ersten Daten und/oder den Konfigurationsinformationen 42.
-
In einer Ausführungsform ist die Speicherdirektzugriffssteuereinrichtung 40 dazu ausgebildet, wenigstens ein Steuerbit in dem mindestens einen Informationsblock 60 zu setzen, und/oder eine Unterbrechungsanforderung (englisch: "interrupt") bei der Recheneinheit 20 und/oder bei einem Prozessorkern 20_1 bis 20_n der Recheneinheit 20 auszulösen. Vorzugsweise, aber nicht zwingend, betrifft die Unterbrechungsanforderung nur denjenigen Prozessorkern 20_1 bis 20_n, welcher als Empfänger für den jeweiligen Informationsblock 60 vorgesehen ist.
-
In einer weiteren Ausführungsform ist die Speicherdirektzugriffssteuereinrichtung 40 dazu ausgebildet, ein Steuerbit, englisch: "acknowledge", an das Quellmodul 50 zu übertragen, nachdem ein jeweiliger Informationsblock 60 mittels der Speicherdirektzugriffssteuereinrichtung 40 erfolgreich von dem Quellmodul 50 an den Arbeitsspeicher 30 bzw. 30_1 bis 30_n übertragen wurde. Dadurch kann ein in dem Quellmodul 50 zeitweise für den Informationsblock 60 reservierter Speicherbereich schnell wieder freigegeben werden und steht somit für eventuelle weitere Übertragungen zur Verfügung.
-
In einer weiteren Ausführungsform ist die Speicherdirektzugriffssteuereinrichtung 40 dazu ausgebildet, die Zieladresse 82' in Abhängigkeit wenigstens einer absoluten ersten Speicheradresse in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n und/oder wenigstens einer relativen zweiten Speicheradresse in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n zu ermitteln. Dies erfolgt bevorzugt ebenfalls in Abhängigkeit von den ersten Daten und/oder den Konfigurationsinformationen 42.
-
Dabei ist die absolute erste Speicheradresse beispielsweise eine vorgegebene Adresse in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n, wobei die erste Speicheradresse schrittweise erhöht werden kann, bis der gesamte Informationsblock 60 übertragen wurde. Dabei ist die relative zweite Speicheradresse beispielsweise ein Schreibzeiger 82 zur Speicherung des Informationsblocks 60 in einem Ringpufferspeicher 80.
-
Mittels der besagten absoluten ersten Speicheradresse kann der Informationsblock 60 vollständig in einem vorgegebenen Speicherbereich des Arbeitsspeichers 30 bzw. 30_1 bis 30_n (gegebenenfalls dauerhaft) abgespeichert werden. Mittels der relativen zweiten Speicheradresse kann der Informationsblock 60 beispielsweise in einem Ringpufferspeicher 80 (3) zwischengespeichert werden. Andere Speicherformen wie z.B. ein Queue-speicher ("Warteschlange") bzw. ein Stack(Stapel)-Speicher sind ebenfalls denkbar.
-
In einer Ausführungsform ist die Recheneinheit 20 und/oder der Arbeitsspeicher 30 und/oder ein jeweiliger Informationsblock 60 unter anderem durch folgende im Wesentlichen selbst erklärende Größen, Steuerinformationen, und/oder Konfigurationsinformationen 42 charakterisiert:
CAN_ID(1...n); Data NEW.
-
Hierbei bedeutet:
- CAN_ID(1...n)
- – ID einer von DMA übertagenen Nachricht
- Data
- – Daten der zugehörigen ID
- NEW
- – bedeutet, dass neue Daten empfangen wurden – wird z.B. von DMA (Speicherdirektzugriffssteuereinrichtung) gesetzt und durch CPU zurückgesetzt;
-
In einer Ausführungsform ist die Speicherdirektzugriffssteuereinrichtung 40 und/oder ein jeweiliger Informationsblock 60 unter anderem durch folgende im Wesentlichen selbst erklärende Größen, Steuerinformationen, und/oder Konfigurationsinformationen 42 charakterisiert:
SrcAddr; Len; CriteriaDefinition(1...N); TargetAddr; CPUx; Intr.
-
Hierbei bedeutet:
- SrcAddr
- – Quelladresse;
- Len
- – Länge, wie viele Bytes zu übertragen sind;
- TargetAddr
- – Zieladresse (beispielsweise in dem Arbeitsspeicher 30);
- CriteriaDefinition
- – z.B. CAN_ID einer Nachricht – verwendbar als Kriterium für Entscheidung, an welche CPU (Zieladresse) die Daten übertragen werden sollen. Weitere mögliche Kriterien – MiniSlot ID, Protokoll Identifikation etc.
- CPUx
- – Nachdem die Nachricht empfangen wurde, wird an die CPUx der Interrupt ausgelöst – Konfigurationsbit;
- Intr
- – Interrupt – Konfigurationsbit, bedeutet: Interrupt auslösen, nachdem eine Nachricht empfangen wurde.
-
Die 3 zeigt schematisch einen Ringpufferspeicher 80, welcher beispielsweise einen in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n vorgegebenen Speicherbereich von fester Länge umfasst. Der Ringpufferspeicher 80 weist einen Schreibzeiger 82 auf, welcher eine aktuelle Adresse charakterisiert, an welcher ein aktuell übertragenes Element des Informationsblocks 60 in den Ringpufferspeicher 80 geschrieben werden kann. Dabei charakterisiert der Schreibzeiger 82 zugleich eine Zieladresse 82' für den mindestens einen Informationsblock 60.
-
Ein beispielsweise von der Recheneinheit 20 bzw. 20_1 bis 20_n gesteuerter Lesezeiger 84 kann dem Schreibzeiger 82 zeitlich beabstandet folgen und somit den Informationsblock 60 schrittweise einer durch die Recheneinheit 20 bzw. 20_1 bis 20_n gesteuerten weiteren Verarbeitung zuführen. Der Schreibzeiger 82 und der Lesezeiger 84 können zyklisch den dem Ringpufferspeicher 80 zugeordneten Speicherbereich durchlaufen.
-
Die 4 zeigt ein Flussdiagramm für ein Verfahren zum Betreiben der Speicherdirektzugriffssteuereinrichtung 40 für mindestens eine den Arbeitsspeicher 30 bzw. 30_1 bis 30_n aufweisende Recheneinheit 20 bzw. 20_1 bis 20_n, wobei die Speicherdirektzugriffssteuereinrichtung 40 einen Anschluss zur Verbindung der Speicherdirektzugriffssteuereinrichtung 40 mit dem die Recheneinheit 20 bzw. 20_1 bis 20_n mit dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n verbindenden Bussystem 12 aufweist. Dabei umfasst das Verfahren die folgenden Schritte:
- – Auslesen 102 von ersten Daten aus dem mit dem Bussystem 12 verbundenen Quellmodul 50, wobei die ersten Daten wenigstens einem zumindest zeitweise in dem Quellmodul 50 gespeicherten Informationsblock 60 zugeordnet sind,
- – Ermitteln 104 einer Zieladresse 82' in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n für den mindestens einen Informationsblock 60 in Abhängigkeit der ersten Daten und in Abhängigkeit von den Konfigurationsinformationen 42,
- – Übertragen 108 des mindestens einen Informationsblocks 60 von dem Quellmodul 50 an die Zieladresse 82' unter Verwendung eines Speicherdirektzugriffs von dem Quellmodul 50 zu dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n. Die jeweils zugehörigen Blöcke sind in der 4 mittels einer durchgehenden Linie gezeichnet.
-
In einer Ausführungsform wird im Block 104 die Zieladresse 82' in Abhängigkeit wenigstens einer absoluten ersten Speicheradresse in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n und/oder wenigstens einer relativen zweiten Speicheradresse in dem Arbeitsspeicher 30 bzw. 30_1 bis 30_n ermittelt.
-
In einer Ausführungsform des Verfahrens umfasst das Quellmodul 50 ein Kommunikationsmodul 50, insbesondere ein CAN-Modul, ein MCAN-Modul, ein FlexRay-Modul und/oder ein Ethernet-Modul. Bei einer weiteren Ausführungsform kann das Quellmodul auch einen Speicher, z.B. einen Arbeitsspeicher (RAM, random access memory), umfassen bzw. darstellen.
-
In einer Ausführungsform sind die ersten Daten Nutzdaten und/oder Metadaten des Informationsblocks 60.
-
In einer Ausführungsform charakterisiert der Informationsblock 60 in dem Quellmodul 50 eine von dem Quellmodul 50 empfangene Nachricht.
-
In einer Ausführungsform erhält die Speicherdirektzugriffssteuereinrichtung 40 ein Triggersignal, ein Steuerbit, oder ein sonstiges Signal von dem Quellmodul 50, wodurch die Speicherdirektzugriffssteuereinrichtung 40 veranlasst wird, das Auslesen 102 der ersten Daten aus dem mit dem Bussystem 12 verbundenen Quellmodul 50 durchzuführen. Dies ist durch einen gestrichelt gezeichneten Block 100 charakterisiert.
-
In einer Ausführungsform des Verfahrens wird ergänzend zu dem Ermitteln 104 der Zieladresse 82' eine für die Übertragung des mindestens einen Informationsblocks 60 bestimmte Recheneinheit 20_1 bis 20_n und/oder ein für die Übertragung des mindestens einen Informationsblocks 60 bestimmter Arbeitsspeicher 30_1 bis 30_n ermittelt. Dies ist durch einen gestrichelt gezeichneten Block 106 charakterisiert.
-
In einer Ausführungsform wird wenigstens ein Steuerbit in dem mindestens einen Informationsblock 60 gesetzt und/oder eine Unterbrechungsanforderung (englisch: "interrupt") bei der Recheneinheit 20 und/oder bei einem Prozessorkern 20_1 bis 20_n der Recheneinheit 20 ausgelöst. Dies ist durch einen gestrichelt gezeichneten Block 110 charakterisiert.
-
In einer Ausführungsform ist die Speicherdirektzugriffssteuereinrichtung 40 dazu ausgebildet, ein Steuerbit, englisch: "acknowledge", an das Quellmodul 50 zu übertragen, nachdem ein jeweiliger Informationsblock 60 mittels der Speicherdirektzugriffssteuereinrichtung 40 erfolgreich von dem Quellmodul 50 an den Arbeitsspeicher 30 übertragen wurde. Dadurch kann ein in dem Quellmodul 50 zeitweise für den Informationsblock 60 reservierter Speicherbereich vorteilhaft schnell wieder freigegeben werden und steht somit für eventuelle weitere Übertragungen zur Verfügung. Dies ist durch einen gestrichelt gezeichneten Block 112 charakterisiert.