DE102014207417A1 - Schnittstelleneinheit - Google Patents

Schnittstelleneinheit Download PDF

Info

Publication number
DE102014207417A1
DE102014207417A1 DE102014207417.7A DE102014207417A DE102014207417A1 DE 102014207417 A1 DE102014207417 A1 DE 102014207417A1 DE 102014207417 A DE102014207417 A DE 102014207417A DE 102014207417 A1 DE102014207417 A1 DE 102014207417A1
Authority
DE
Germany
Prior art keywords
data
interface unit
memory
unit
descriptor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014207417.7A
Other languages
English (en)
Inventor
Christopher Pohl
Andreas Brune
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014207417.7A priority Critical patent/DE102014207417A1/de
Priority to US14/688,427 priority patent/US9880955B2/en
Priority to JP2015084375A priority patent/JP6534851B2/ja
Priority to CN201510179517.6A priority patent/CN105022707B/zh
Publication of DE102014207417A1 publication Critical patent/DE102014207417A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • G06F13/34Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

Es wird eine Schnittstelleneinheit (4) zur Anordnung zwischen einem Bussystem (6), an das eine Prozessoreinheit (8) und ein Datenspeicher (10) anschließbar sind, und einer Datentransporteinheit (20), insbesondere einem Netzwerkprozessor, beschrieben. Die Schnittstelleneinheit (4) führt einen Speicherdirektzugriff auf den Datenspeicher (10) in Abhängigkeit von einer vorab zwischen einer Applikation (12) und der Datentransporteinheit (20) vereinbarten Kennung (chid) durch.

Description

  • Stand der Technik
  • Die Erfindung betrifft eine Schnittstelleneinheit nach dem Oberbegriff des Anspruchs 1.
  • Systeme, die an einem Bussystem angeordnet sind und einen Speicherdirektzugriff (DMA = direct memory access) über das Bussystem durchführen, sind bekannt. Insbesondere ist bekannt, dass durch eine Vielzahl sogenannter DMA-Einheiten an einem Bussystem die Zugriffskonflikte auf das Bussystem zunehmen.
  • Um Netzwerkverkehr von unterschiedlichen Teilnetzen oder unterschiedlichen Netzwerktypen, wie bspw. CAN (controller area network), Flexray und/oder Ethernet, zu beobachten, werden bspw. an einem Personal Computer mehrere Schnittstellenkarten benötigt, die verwaltet werden müssen.
  • Gateway-Einheiten, die zwischen verschiedenen Teilnetzen, auch unterschiedlicher Netzwerktypen, wie bspw. CAN (controller area network), Flexray und/oder Ethernet, müssen stets an die gewünschte Kommunikation zwischen den Teilnetzen angepasst werden, womit die entsprechende Logik in Software ausgeführt wird.
  • Offenbarung der Erfindung
  • Das der Erfindung zu Grunde liegende Problem wird durch eine Schnittstelleneinheit nach dem Anspruch 1 gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben. Für die Erfindung wichtige Merkmale finden sich in der nachfolgenden Beschreibung und in den Zeichnungen, wobei die Merkmale in Alleinstellung als auch in unterschiedlichen Kombinationen für die Erfindung wichtig sein können, ohne dass hierauf nochmals explizit hingewiesen wird.
  • Dadurch, dass eine Schnittstelleneinheit einen Speicherdirektzugriff auf den Datenspeicher in Abhängigkeit von einer vorab zwischen einer Applikation und der Datentransporteinheit vereinbarten Kennung durchführt, wird es möglich, nur eine Schnittstelleneinheit zwischen einem Bussystem und der Datentransporteinheit vorzusehen, mittels derer eine Kommunikation mit unterschiedlichen Teilnetzen oder Netztypen hergestellt werden kann.
  • Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnungen dargestellt sind. Alle beschriebenen oder dargestellten Merkmale bilden für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung oder Darstellung in der Beschreibung oder Zeichnung. Für funktionsäquivalente Größen und Merkmale werden in allen Figuren auch bei unterschiedlichen Ausführungsformen die gleichen Bezugszeichen verwendet. Nachfolgen werden beispielhafte Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigen;
  • 1 in schematischer Ansicht ein Kommunikationssystem;
  • 2 in schematischer Ansicht einen Teil einer Schnittstelleneinheit;
  • 3 in schematischer Ansicht den Versand eines Datensegments;
  • 4 in schematischer Ansicht einen weiteren Teil der Schnittstelleneinheit; und
  • 5 in schematischer Ansicht einen Empfang eines Datensegments.
  • 1 zeigt in schematischer Ansicht ein Kommunikationssystem 2. Eine Schnittstelleneinheit 4 ist an einem Bussystem 6 angeordnet. Das Bussystem 6 kann bspw. ein PCI-Bus oder ein proprietärer Bus eines Mikrocontrollers sein. An das Bussystem 6 sind eine Prozessoreinheit 8 und ein Datenspeicher 10 angeschlossen. Auf der Prozessoreinheit 8 sind mehrere Applikationen 12a, 12b und 12c lauffähig. Die Prozessoreinheit 8, der Datenspeicher 10 sowie das Bussystem 6 bilden eine Kommunikationseinheit 14, die bspw. als Gateway in Form eines Mikrokontrollers oder aber als Personal Computer ausgestaltet sein kann. Die Kommunikationseinheit 14 kann die Schnittstelleneinheit 4 und/oder eine Datentransporteinheit 20 umfassen.
  • Die Schnittstelleneinheit 4 ist mit der Datentransporteinheit 20 verbunden und ist damit zwischen der Datentransporteinheit 20 und dem Bussystem 6 anordenbar. Die Datentransporteinheit 20 ist auch als Netzwerkprozessor bezeichenbar. Neben der Schnittstelleneinheit 4 sind weitere Kommunikations-Schnittstellen 22a, 22b und 22c an die Datentransporteinheit 20 angeschlossen. Die Kommunikations-Schnittstellen 20 können sowohl unterschiedlichen Netzwerktypen, die bspw. CAN, FlexRay oder Ethernet und/oder unterschiedlichen Teilnetzwerken der vorgenannten Netzwerktypen zugeordnet sein. Selbstverständlich sind weitere Netzwerktypen denkbar, für die eine entsprechende Schnittstelleneinheit 22 vorhanden sein kann. Vor Inbetriebnahme des Kommunikationssystems 2 wird zwischen einer der Applikationen 12a12c und der Datentransporteinheit 20 eine Kennung chid vereinbart, die für eine oder mehrere Datensegmente gültig ist. Die Schnittstelleneinheit 4 führt während des Betriebs des Kommunikationssystems 2 einen Speicherdirektzugriff über das Bussystem 6 auf den Datenspeicher 10 in Abhängigkeit von der vorab zwischen der Applikation 12a, 12b, 12c und der Datentransporteinheit 20 vereinbarten Kennung chid durch.
  • Da die Schnittstelleneinheit 4 und die Datentransporteinheit 20 bevorzugt in Hardware ausgeführt sind, kann durch die vorab vereinbarte Kennung chid für ein oder mehrere Datensegmente erreicht werden, dass eine Arbitrierung auf dem Bussystem 6 für einen Speicherdirektzugriff durch die Schnittstelleneinheit 4 für mehrere Kommunikations-Schnittstellen 22 stark vereinfacht wird, wodurch die Datenverarbeitung schneller und effizienter über das Bussystem 6 abgewickelt werden kann. Damit kann vorteilhaft eine Vielzahl von Kommunikationsschnittstellen 22 auf eine Schnittstelleneinheit 4 und damit die Kommunikationseinheit 14 abgebildet werden. Die vorab vereinbarte Kennung chid ist auch als channel identifier bezeichenbar. Damit ergeben sich auch Vorteile für die Datentransporteinheit 20, da diese deterministische Abarbeitungsschritte enhalten kann und damit in Hardware ausführbar ist.
  • 2 zeigt in schematischer Form einen Ausschnitt 24 der Schnittstelleneinheit 4. In dem Block 26 ist ein Block 28, eine Ausgabeeinheit 30 und ein Block 32 gezeigt. Des Weiteren ist ein Eingangs-Deskriptor-Pool 34 gezeigt. Zum Versenden eines Datensegments aus dem Datenspeicher 10 an die Datentransporteinheit 20 wird aus einem Deskriptor des Eingangs-Deskriptor-Pools 34 die Speicherbereichadresse des Datensegments im Datenspeicher 10 und die vereinbarte Kennung chid ermittelt und dem Block 28 übergeben. Die Schnittstelleneinheit 10 bzw. der Block 28 liest ein Datensegment gemäß dem Pfeil 36 in Form eines Speicherdirektzugriffs über das Bussystem 6 aus dem Datenspeicher 10 und stellt das Datensegment gemäß dem Pfeil 38 in eine Warteschlage 40 der Ausgabeeinheit 30. Ein Deskriptor in dem Eingangs-Deskriptor-Pool umfasst die Speicherbereichadresse des Datensegments und der vereinbarten Kennung sowie weitere Größen. Der Deskriptor wird von dem Block 32 an den Block 28 übergeben. Entsprechend wird anhand des Deskriptors mittels des Blocks 28 ein zu dem Datensegment, das gemäß des Pfeils 26 ausgelesen wurde, passender Header erzeugt, der gemäß dem Pfeil 42 in eine Warteschlange 44 eingestellt wird. Der Block 46 erzeugt gemäß einem Pfeil 48 für die Datentransporteinheit 20 passende Datentransporteinheit-Datensegmente, die jeweils das Datensegment der Warteschlage 40 und den dazu passenden Header der Warteschlange 44 umfassen. Der Header kann eine die Ausgabeeinheit identifizierende Information devid, auch als device identification bezeichenbar, umfassen. Damit wird das Datensegment aus der Warteschlange 40 mit einem zugehörigen Header, der die vereinbarte Kennung chid umfasst, als Datentransporteinheit-Datensegment der Datentransporteinheit 20 bereitgestellt.
  • Gemäß einem Pfeil 50 kann der Eingangs-Deskriptor-Pool 34 von der Prozessoreinheit 8 ausgelesen und beschrieben werden. Für diesen Schreib- und Lesezugriff auf den Eingangs-Deskriptor-Pool 34 gemäß dem Pfeil 50 fungiert die Schnittstelleneinheit 4 an dem Bussystem 6 als Bus-Slave. Für den lesenden Speicherdirektzugriff auf den Datenspeicher 10 gemäß einem Pfeil 27 greift die Schnittstelleneinheit 26 als Bus-Master auf das Bussystem 6 zu. Mithin ist das Bussystem 6 als Multi-Master-Bus ausgebildet. Selbstverständlich kann das Bussystem 6 auch andere Busvermittlungsverfahren aufweisen bzw. unterstützen und ist nicht auf einen Multi-Master-Bus beschränkt.
  • 5 zeigt beispielhaft eine Interaktion zwischen der Schnittstelleneinheit 4 und der Kommunikationseinheit 14 umfassend die Prozessoreinheit 8 und den Datenspeicher 10.
  • 3 ist auf das Versenden eines Datensegments aus den Datenspeicher 10. In einem Ausschnitt des Datenspeichers 10 sind ein erstes Datensegment 52 und ein letztes Datensegment 54 eines Datenblocks 56 gezeigt. Es wird im Folgenden ein Versand des Datenblocks 56 mit einer Vielzahl von Datensegmenten beschrieben. Die Datensegmente 5254 sind Teil des Datenblocks 56. Für jedes der Datensegmente 5254 ist in dem Eingangs-Deskriptor-Pool 34 ein entsprechender Deskriptor 6264 hinterlegt. Die Kommunikationseinheit 14 hinterlegt zum Versenden des jeweiligen Datensegments 5254 durch eine entsprechende Applikation 12, die auf der Prozessoreinheit 8 ausgeführt wird, die Deskriptoren 6264. Hierzu hinterlegt die Kommunikationseinheit 14 eine Speicherbereichadresse des Datensegments 52, 54 im Datenspeicher 10 sowie die vereinbarte Kennung chid. Des Weiteren wird in dem Deskriptor 6264 hinterlegt, welche Position das jeweilige Datensegment 5254 in dem Datenblock 56 hat. Bspw. wird in dem Deskriptor 6264 hinterlegt, ob ein Datensegment 5254 ein erstes Datensegment wie das Datensegment 52 ist. Bspw. wird in dem Deskriptor 6264 hinterlegt, ob ein Datensegment 5254 ein letztes Datensegment wie das Datensegment 54 ist. Des Weiteren wird in einem der Deskriptoren 5254 jeweils die Größe des Datensegments 5254 hinterlegt. Des Weiteren kann auch die Speicherbereichadresse bzw. die Speicheranfangsadresse der Datensegmente 5254 hinterlegt werden. Dieser beschreibende Zugriff auf ist gemäß dem Pfeil 66 gezeigt.
  • Möchte eine Applikation 12, die auf der Prozessoreinheit 8 läuft, einen Datenblock 56 versenden, so speichert die Applikation 12 den Datenblock 56 in dem Datenspeicher 10. Danach werden gemäß dem Pfeil 66 die den Datenblock 56 hinsichtlich Speicherbereich und vereinbarter Kennung chid nötigen Informationen in den Eingangs-Deskriptor-Pool 34 geschrieben. Des Weiteren wird in dem jeweiligen Deskriptor 6264 die Versandbereitschaft des jeweiligen Datensegments 5254 signalisiert.
  • Ist das jeweilige Segment 5254 über den zugehörigen Deskriptor 6264 als versandbereit markiert, so kann die Schnittstelleneinheit 4 gemäß dem Pfeil 68 einen Speicherdirektzugriff auf den Datenspeicher 10 gemäß dem Pfeil 26 ausführen. Entsprechend wird ausgehend vom Deskriptor 62 bis zum Deskriptor 64 gemäß einem Pfeil 70 der gesamte Datenblock 56 aus dem Datenspeicher 10 ausgelesen. Das Auslesen des Datenblocks 56 geschieht hierbei segmentweise bzw. deskriptorweise, wodurch vorteilhaft ein paralleles Befüllen des Datenblocks 56 durch die Applikation 12 und ein Leeren des gleichen Datenblocks 56 durch die Schnittstelleneinheit 4 möglich ist. Nach dem Auslesen und Weiterleiten eines Datensegments 52, 54 gemäß dem Pfeil 26 wird die Versandbereitschaft von der Schnittstelleneinheit 4 in dem jeweiligen Deskriptor 6264 gelöscht. Die Versandbereitschaft kann von der Kommunikationseinheit 14 überwacht werden, indem die Versandbereitschaft des jeweiligen Deskriptors 6264 überwacht wird. Durch die segmentweise Verarbeitung und den Deskriptor-Pool 34 wird die Verarbeitung der in dem Datenspeicher 10 liegenden Datensegmente bzw. Datenblöcke vereinfacht, was eine Hardware-Ausführung des Schnittstelleneinheit 4 und damit ein schnelles Abarbeiten zum Versand von Datensegmenten 5254 ermöglicht.
  • 4 zeigt in schematischer Ansicht einen Ausschnitt 74 der Schnittstelleneinheit 4. In einem Block 76 werden in einer Eingabeeinheit 80 gemäß dem Pfeil 28 einem Block 84 Datentransporteinheit-Datensegmente ausgehend von der Datentransporteinheit 20 zugeführt. Die Datentransporteinheit-Datensegmente gemäß dem Pfeil 28 enthalten Headerinformationen, die in eine Warteschlange 86 der Eingabeeinheit 80 eingestellt werden und die vereinbarte Kennung chid enthalten. Die Datensegmente im Sinne der vorliegenden Beschreibung, d.h. in Form von Daten, die in dem Datenspeicher 10 abgelegt werden sollen, werden von den Block 84 in eine Warteschlange 88 eingestellt. Ein Ausgangs-Deskriptor-Pool 90 wird von einem Block 92 gemäß der Headerinformationen aus der Warteschlange 86 gemäß eines Pfeils 94 gefüllt. Dabei wird die vereinbarte Kennung chid aus dem empfangenen Header dem Deskriptor-Pool 90 zugeführt. Des Weiteren wird auf Basis des Headers aus der Warteschlange 86 eine Information, die die Position des Datensegments 52, 54 in dem Datenblock 56 bestimmt, in den zugehörigen Deskriptor des Deskriptorpools 90 geschrieben. Ein Block 96 erhält gemäß einem Pfeil 98 die Datensegmente aus der Warteschlange 88.
  • Ein Deskriptor wird von einer entsprechenden Applikation 20 bzw. von der Kommunikationseinheit 14 gemäß einem Pfeil 100 mit einer Speicherbereichadresse gefüllt, die auf einen zu beschreibenden Bereich in dem Datenspeicher 10 zeigt. Mittels des Deskriptors aus dem Ausgangs-Deskriptorpool 90 kann der Block 96 gemäß dem Pfeil 102 mittels eines Speicherdirektzugriffs auf dem Datenspeicher 10 zugreifen und das Datensegment 52, 54 an die durch den Deskriptor bereitgestellte Speicheradresse schreiben.
  • Der Block 92 pflegt den Ausgangs-Deskriptor-Pool 90 und signalisiert gemäß einem Pfeil 104 an die Eingabeeinheit 80, dass freie Deskriptoren, die auf freie Speicherbereiche in dem Datenspeicher 10 zeigen, vorhanden sind.
  • Die Schnittstelleneinheit 4 bzw. der Block 76 bzw. der Block 96 greift für den Schreibzugriff für ein Datensegment 52, 54 gemäß dem Pfeil 102 in Form eines Speicherdirektzugriffs auf den Datenspeicher 10 als Bus-Master auf das Bussystem 6 zu. Für Schreib- und Lesezugriffe auf den Ausgangs-Deskriptor-Pool 90 greift die Schnittstelleneinheit 4 bzw. der Block 76 gemäß dem Pfeil 100 als Bus-Slave auf das Bussystem 6 zu.
  • Der Block 96 prüft in dem Deskriptorpool 90, ob ein Deskriptor vorhanden ist, der auf einen freien Speicherbereich in dem Datenspeicher 10 zeigt. Ist ein solcher Deskriptor vorhanden, der auf einem freien Speicherbereich in dem Datenspeicher 10 zeigt, so signalisiert der Block 92 gemäß dem Pfeil 104 im Block 80 und/oder in nicht gezeigter Form der Datentransporteinheit 20, dass der Datenspeicher 10 empfangsbereit ist.
  • Gemäß dem Pfeil 28 wird ein Datentransporteinheit-Datensegment von der Datentransporteinheit 20 empfangen. Die Payload des Datentransporteinheit-Datensegment wird als Datensegment 52, 54 über die Warteschlange 88 und den Block 96 mit Hilfe eines passenden Deskriptors in den Datenspeicher 10 in den Datenspeicher 10 transferiert. Dieser Schreibzugriff wird in dem entsprechenden Deskriptor registriert. Die entsprechende Applikation 12 kann über den Deskriptor, für den ein Schreibzugriff auf den Datenspeicher 10 erfolgt ist, die Information enthalten, welcher Datenbereich bzw. Datenspeicherbereich in den Datenspeicher 10 gefüllt wurde, auf diesen zugreifen und das Datensegment 52, 54 auslesen. Darüber hinaus enthält der Deskriptor die entsprechende Länge des Datensegments 52, 54 sowie die vorab vereinbarte Kennung chid. Nachdem die Applikation 12 das Datensegment 52, 54 aus dem Datenspeicher 10 gelesen hat, kann die Applikation 12 in dem Deskriptor das Datensegment 52, 54 als frei markieren oder den entsprechenden Deskriptor löschen. Sobald der Block 96 das letzte Datensegment 54 eines Datenblocks 56 erkennt, wird eine Interrupt-Information generiert. Anhand dieser Interrupt-Information kann die entsprechende Applikation 12, die für das Datensegment 52, 54 zuständig ist, aktiviert werden. Selbstverständlich kann auch eine Anzahl dieser Interrupt-Informationen gesammelt werden und bei Erreichen einer bestimmten Anzahl ein Interrupt an die Applikation 12 bzw. an die Prozessoreinheit 8 geschickt werden. Der Deskriptorpool 34 wie auch der Deskriptorpool 90 können als Ringpuffer ausgeführt sein und können sowohl von der Schnittstelleneinheit 4 als auch von der Prozessoreinheit 8 gelesen und beschrieben werden.
  • 5 zeigt in schematischer, beispielhafter Form die Kommunikation zum Empfangen mindestens eines Datensegments 52, 54 von der Datentransporteinheit 20 in den Datenspeicher 10. Der Datenblock 56 umfasst das erste Datensegment 52, das letzte Datensegment 54 sowie weitere dazwischenliegende Datensegmente.
  • Die Kommunikationseinheit 14 schreibt zum Empfang von Datensegmenten gemäß einem Pfeil 106 Deskriptoren 108 bis 110 in den Deskriptorpool 90, wobei ein Deskriptor jeweils eine Speicheradresse für die zunächst noch leeren Speicherbereiche für die Datensegmente 5254 umfasst. Die Schnittstelleneinheit 4 überwacht den Deskriptorpool 90 und signalisiert der Einheit 80, wenn freie Speicherbereiche in dem Datenspeicher 10 vorhanden sind. Nach der Signalisierung freier Speicherbereiche kann mit dem Speicherdirektzugriff gemäß dem Pfeil 112 begonnen werden. Nach dem Schreiben eines Datensegments 5254 wird in dem entsprechenden Deskriptor 108110 von der Schnittstelleneinheit 4 der Schreibzugriff registriert. Entsprechend kann die Kommunikationseinheit 14 einem Deskriptor 108110 entnehmen, ob das entsprechende Datensegment 5254 bereits in den Datenspeicher 10 geschrieben wurde.
  • Der Eingangs-Deskriptorpool 34 der 2 und 3 wird bevorzugt von einer der Applikationen 12 in einer absteigenden Adressreihenfolge beschrieben, wobei mit einem letzten Deskriptor 64 für ein letztes Datensegment 54 begonnen wird und mit einem ersten Deskriptor 62 für ein erstes Datensegment 52 geendet wird. Die Schnittstelleneinheit 4 liest die Deskriptoren 6264 in aufsteigender Reihenfolge ausgehend von dem ersten Deskriptor 62 bis zu dem letzten Deskriptor 64 aus.
  • Der Block 92 dagegen befüllt bei ankommenden Datensegmenten gemäß dem Pfeil 28 aus 4 den Ausgangs-Daten-Pool 90 in aufsteigender Reihenfolge beginnend mit einem ersten Deskriptor 108 und endend mit einem letzten Deskriptor 110.

Claims (12)

  1. Schnittstelleneinheit (4) zur Anordnung zwischen einem Bussystem (6), an das eine Prozessoreinheit (8) und ein Datenspeicher (10) anschließbar sind, und einer Datentransporteinheit (20), insbesondere einem Netzwerkprozessor, dadurch gekennzeichnet, dass die Schnittstelleneinheit (4) einen Speicherdirektzugriff auf den Datenspeicher (10) in Abhängigkeit von einer vorab zwischen einer Applikation (12) und der Datentransporteinheit (20) vereinbarten Kennung (chid) durchführt.
  2. Schnittstelleneinheit (4) nach Anspruch 1, wobei zum Versenden eines Datensegments (52; 54) und/oder Datenblocks (56) aus dem Datenspeicher (10) an die Datentransporteinheit (20) die Schnittstelleneinheit (3) aus einem Deskriptor (62; 64) eines Eingangs-Deskriptor-Pools (34) die Speicherbereichadresse des Datensegments (52; 54) im Datenspeicher (10) und die vereinbarte Kennung (chid) ermittelt, und wobei die Schnittstelleneinheit (4) ein Datensegment (52; 54) mittels des Speicherdirektzugriffs aus dem Datenspeicher (10) liest, und wobei das Datensegment (52; 54) mit zugehörigem Header, der Header umfassend die vereinbarte Kennung (chid), der Datentransporteinheit (20) bereitgestellt wird.
  3. Schnittstelleneinheit (4) nach Anspruch 2, wobei das Datensegment (52; 54) Teil eines Datenblock (56) ist, und wobei der Deskriptor (62; 64) des Eingangs-Deskriptor-Pools (34) eine erste Information, die die Position des Datensegments (52; 54) in dem Datenblock (56) bestimmt, und eine zweite Information, die die Versandbereitschaft des Datensegments (52; 54) anzeigt, enthält.
  4. Schnittstelleneinheit (4) nach Anspruch 1, wobei zum Empfangen eines Datensegments (52; 54) und/oder eines Datenblocks (56) von der Datentransporteinheit (56) in den Datenspeicher (10) die Schnittstelleneinheit (4) in einen Deskriptor (108; 110) eines Ausgangs-Deskriptor-Pools (90) die vereinbarte Kennung (chid) und eine dritte Information, die die Position des Datensegments (52; 54) in einem Datenblock (56) bestimmt, schreibt.
  5. Schnittstelleneinheit (4) nach Anspruch 4, wobei die Schnittstelleneinheit (4) ein Datensegment (52; 54) mittels Speicherdirektzugriffs in den Datenspeicher (10) schreibt, und wobei die Schnittstelleneinheit (4) nach dem Schreiben des Datensegments (52; 54) in den Datenspeicher (10) im zugehörigen Deskriptor (108; 110) eine Information hinterlegt, die den erfolgten Schreibzugriff auf den Datenspeicher (10) anzeigt.
  6. Schnittstelleneinheit (4) nach einem der vorstehenden Ansprüche, wobei die Schnittstelleneinheit (4) für den Speicherdirektzugriff auf den Datenspeicher (10) als Bus-Master auf das Bussystem (6) zugreift, und wobei die Schnittstelleneinheit (4) für Schreib- und Lesezugriffe auf den Eingangs-Deskriptor-Pool (34) und/oder den Ausgangs-Deskriptor-Pool (90) als Bus-Slave auf das Bussystem (6) zugreift.
  7. Kommunikations-Einheit (14), insbesondere eine Gateway-Einheit oder ein Personal-Computer, umfassend die Schnittstelleneinheit (4) nach einem der vorstehenden Ansprüche und die Datentransporteinheit (20), wobei neben der Schnittstelleneinheit (4) weitere Kommunikations-Schnittstellen (22) an die Datentransport-Einheit (20) angeschlossen sind, und wobei die mehreren Kommunikations-Schnittstellen (22) unterschiedlichen Netzwerktypen, beispielsweise CAN, FlexRay oder Ethernet, und/oder unterschiedlichen Teilnetzwerken zugeordnet sind.
  8. Verfahren zum Betreiben einer Schnittstelleneinheit (4) nach einem der Ansprüche 1 bis 6, wobei zum Versenden eines Datensegments (52; 54) aus dem Datenspeicher (10) an die Datentransporteinheit (20) durch eine Applikation (12) in einen der Deskriptoren (62) des Eingangs-Deskriptor-Pools (34) die Speicherbereichadresse des Datensegments (52; 54) im Datenspeicher (10) sowie die vereinbarte Kennung (chid) geschrieben wird.
  9. Verfahren zum Betreiben einer Schnittstelleneinheit (4) nach einem der Ansprüche 1 bis 6, wobei zum Empfangen eines Datensegments (52; 54) von der Datentransporteinheit (20) in den Datenspeicher (10) durch eine Applikation (12) aus einem Deskriptor (108; 110) eines Ausgangs-Deskriptor-Pools (90) die vereinbarte Kennung (chid) und eine dritte Information, die die Position des Datensegments (52; 54) in einem Datenblock (56) bestimmt, gelesen wird.
  10. Verfahren nach einem der Ansprüche 8 oder 9, wobei die Applikation (12) über die Prozessoreinheit (8) für die Lese- und/oder Schreibzugriffe auf den Eingangs-Deskriptor-Pool (34) und/oder den Ausgangs-Deskriptor-Pool (90) als Bus-Master auf das Bussystem (6) zugreift.
  11. Computerprogrammprodukt, insbesondere ein Treiber, für die Schnittstelleneinheit (4), wobei das Computerprogrammprodukt dazu ausgebildet ist, ein Verfahren nach einem der Ansprüche 8 bis 10 auszuführen.
  12. Speichereinheit, auf der das Computerprogrammprodukt nach dem vorstehenden Anspruch abgespeichert ist.
DE102014207417.7A 2014-04-17 2014-04-17 Schnittstelleneinheit Pending DE102014207417A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102014207417.7A DE102014207417A1 (de) 2014-04-17 2014-04-17 Schnittstelleneinheit
US14/688,427 US9880955B2 (en) 2014-04-17 2015-04-16 Interface unit for direct memory access utilizing identifiers
JP2015084375A JP6534851B2 (ja) 2014-04-17 2015-04-16 インタフェースユニット
CN201510179517.6A CN105022707B (zh) 2014-04-17 2015-04-16 接口单元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014207417.7A DE102014207417A1 (de) 2014-04-17 2014-04-17 Schnittstelleneinheit

Publications (1)

Publication Number Publication Date
DE102014207417A1 true DE102014207417A1 (de) 2015-10-22

Family

ID=54249919

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014207417.7A Pending DE102014207417A1 (de) 2014-04-17 2014-04-17 Schnittstelleneinheit

Country Status (4)

Country Link
US (1) US9880955B2 (de)
JP (1) JP6534851B2 (de)
CN (1) CN105022707B (de)
DE (1) DE102014207417A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530153B (zh) * 2015-12-11 2019-02-05 上海新时达电气股份有限公司 网络内的从设备通信方法、通信网络、主设备及从设备
JP7363344B2 (ja) 2019-10-15 2023-10-18 オムロン株式会社 メモリ制御装置、および制御方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765023A (en) * 1995-09-29 1998-06-09 Cirrus Logic, Inc. DMA controller having multiple channels and buffer pool having plurality of buffers accessible to each channel for buffering data transferred to and from host computer
US5781799A (en) * 1995-09-29 1998-07-14 Cirrus Logic, Inc. DMA controller arrangement having plurality of DMA controllers and buffer pool having plurality of buffers accessible to each of the channels of the controllers
US5875352A (en) * 1995-11-03 1999-02-23 Sun Microsystems, Inc. Method and apparatus for multiple channel direct memory access control
KR0170500B1 (ko) * 1995-11-18 1999-03-30 양승택 멀티프로세서 시스템
US6188699B1 (en) * 1997-12-11 2001-02-13 Pmc-Sierra Ltd. Multi-channel encoder/decoder
US7000244B1 (en) * 1999-09-02 2006-02-14 Broadlogic Network Technologies, Inc. Multi-threaded direct memory access engine for broadcast data demultiplex operations
US6418489B1 (en) * 1999-10-25 2002-07-09 Motorola, Inc. Direct memory access controller and method therefor
US7003093B2 (en) * 2000-09-08 2006-02-21 Intel Corporation Tone detection for integrated telecommunications processing
US20020116186A1 (en) * 2000-09-09 2002-08-22 Adam Strauss Voice activity detector for integrated telecommunications processing
US6738358B2 (en) * 2000-09-09 2004-05-18 Intel Corporation Network echo canceller for integrated telecommunications processing
KR100403620B1 (ko) * 2001-02-28 2003-10-30 삼성전자주식회사 채널 활용율을 높이는 통신 시스템 및 그 방법
US20030172190A1 (en) * 2001-07-02 2003-09-11 Globespanvirata Incorporated Communications system using rings architecture
US6754732B1 (en) * 2001-08-03 2004-06-22 Intervoice Limited Partnership System and method for efficient data transfer management
US7043579B2 (en) * 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
US7085859B2 (en) * 2003-05-14 2006-08-01 International Business Machines Corporation Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected
US20050080945A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Transferring message packets from data continued in disparate areas of source memory via preloading
US7117308B1 (en) * 2004-04-06 2006-10-03 Cisco Technology, Inc. Hypertransport data path protocol
US9264384B1 (en) * 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
EP1647894A3 (de) * 2004-10-12 2007-11-21 NEC Electronics Corporation Informationsverarbeitungsgerät mit parallelen DMA-Prozessen
JP2006338538A (ja) * 2005-06-03 2006-12-14 Nec Electronics Corp ストリームプロセッサ
US7496699B2 (en) * 2005-06-17 2009-02-24 Level 5 Networks, Inc. DMA descriptor queue read and cache write pointer arrangement
JP4724494B2 (ja) * 2005-08-26 2011-07-13 キヤノン株式会社 Pciブリッジ及pciブリッジを搭載するシステム
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
JP4347350B2 (ja) * 2007-02-15 2009-10-21 富士通株式会社 データ暗号転送装置、データ復号転送装置、データ暗号転送方法およびデータ復号転送方法
US7694035B2 (en) * 2007-06-26 2010-04-06 International Business Machines Corporation DMA shared byte counters in a parallel computer
US7886084B2 (en) * 2007-06-26 2011-02-08 International Business Machines Corporation Optimized collectives using a DMA on a parallel computer
US20090083392A1 (en) * 2007-09-25 2009-03-26 Sun Microsystems, Inc. Simple, efficient rdma mechanism
US8103809B1 (en) * 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US20110153877A1 (en) * 2009-12-23 2011-06-23 King Steven R Method and apparatus to exchange data via an intermediary translation and queue manager
JP2011193242A (ja) * 2010-03-15 2011-09-29 Renesas Electronics Corp 通信制御装置および通信制御方法
US8615614B2 (en) * 2011-11-30 2013-12-24 Freescale Semiconductor, Inc. Message passing using direct memory access unit in a data processing system
US9251107B2 (en) * 2013-06-27 2016-02-02 Silicon Laboratories Inc. Immediate direct memory access descriptor-based write operation
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치

Also Published As

Publication number Publication date
CN105022707A (zh) 2015-11-04
US20150301965A1 (en) 2015-10-22
US9880955B2 (en) 2018-01-30
JP2015207288A (ja) 2015-11-19
CN105022707B (zh) 2020-03-17
JP6534851B2 (ja) 2019-06-26

Similar Documents

Publication Publication Date Title
DE102014226875A1 (de) Netzwerksystem für Fahrzeug und Datenübertragungsverfahren heterogener Kommunikationscontroller in dem gleichen System
EP1298849A2 (de) Verfahren und Vorrichtung zur Übertragung von Informationen auf einem Bussystem und Bussystem
DE102018124173A1 (de) Verfahren und Vorrichtungen zum Erweitern von USB-3.0-Konformer Kommunikation über ein Erweiterungsmedium
DE102009030047A1 (de) Verfahren und System zur Übertragung von Daten zwischen Datenspeichern durch entfernten direkten Speicherzugriff sowie Netzwerkstation die eingerichtet ist um in dem Verfahren als Sendestation bzw. als Empfangstation zu operieren
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
WO2015104105A1 (de) Verfahren, vorrichtung, computerprogramm und computerprogrammprodukt zum programmieren von mehreren steuergeräten
DE102015213680A1 (de) Zugriffsverfahren mit Zugriffsschlitzen und Prioritätsauflösung
DE102014207417A1 (de) Schnittstelleneinheit
DE102014105207A1 (de) Verfahren zum Betreiben eines Kommunikationsnetzwerks und Kommunikationsnetzwerk
DE102019106551A1 (de) Mehrfach-steuergerät für ein fahrzeug
WO2009135707A1 (de) Teilnehmerknoten eines kommunikationssytems mit funktional getrenntem sende-ereignisspeicher
DE112017004161T5 (de) Verfahren und Steuereinheit zur Bus-Verkehrsfluss-Steuerung
EP1642207B1 (de) Zuordnung von stationsadressen zu kommunikationsteilnehmern in einem bussystem
EP0175095A1 (de) Datenübertragungsverfahren über einen Multiprozessorbus
DE102016213610A1 (de) Elektronische Fahrzeugsteuereinrichtung und Überschreibsystem
EP4038502A1 (de) Datenstruktur, speichermittel und vorrichtung
EP4035314A1 (de) Slaveeinrichtung, bussystem und verfahren
WO2020126365A1 (de) Recheneinrichtung und verfahren zum betreiben einer recheneinrichtung
DE102015121088B4 (de) Verfahren und Vorrichtung zur Übertragung eines CAN-Rahmens
DE102008022839A1 (de) Verfahren und Vorrichtung zur Korrektur von digital übertragenen Informationen
DE102016209715A1 (de) Verfahren und eine Vorrichtung zum Senden von Daten
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
EP3257232B1 (de) Verfahren zur nutzung eines steuergerätes in unterschiedlichen datenübertragungssystemen, steuergerät und datenübertragungssystem zur durchführung eines derartigen verfahrens
DE102011052510A1 (de) Verfahren zur Verarbeitung von Daten eines Steuergeräts in einem Datenkommunikationsgerät
DE102007050642A1 (de) Elektronisches Netz

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0013000000

Ipc: G06F0013280000