DE102019211856A1 - Data structure, control system for reading in such a data structure and method - Google Patents

Data structure, control system for reading in such a data structure and method Download PDF

Info

Publication number
DE102019211856A1
DE102019211856A1 DE102019211856.9A DE102019211856A DE102019211856A1 DE 102019211856 A1 DE102019211856 A1 DE 102019211856A1 DE 102019211856 A DE102019211856 A DE 102019211856A DE 102019211856 A1 DE102019211856 A1 DE 102019211856A1
Authority
DE
Germany
Prior art keywords
data
data packets
identifier value
data structure
sink
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
DE102019211856.9A
Other languages
German (de)
Inventor
Andreas Weiss
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.)
Continental Automotive Technologies GmbH
Original Assignee
Continental Automotive 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 Continental Automotive GmbH filed Critical Continental Automotive GmbH
Priority to DE102019211856.9A priority Critical patent/DE102019211856A1/en
Publication of DE102019211856A1 publication Critical patent/DE102019211856A1/en
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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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

Abstract

Die Erfindung betrifft eine Datenstruktur (10) zur Übertragung von einer Datenquelle an eine Datensenke durch ein Übertragungsmodul, aufweisend:eine Datei, die in ein oder mehrere aufeinanderfolgende Datenpakete (11_1,..,11_N) unterteilt ist,einen oder mehrere voneinander verschiedene Kennzeichenwerte (12_1,..., 12_N),welche zur Kennzeichnung des jeweiligen Endes des eines oder mehreren Datenpaketes (11_1,..,11_N) am jeweiligen Ende des einen oder mehreren Datenpaketes (11_1,..,11_N) in der Datenstruktur (10) abgelegt sind,einen Dateikopf (13), welcher zum Aufzeigen der Position der einen oder mehreren voneinander verschiedenen Kennzeichenwerte (12_1,... ,12_N) in der Datei,konfiguriert ist, und welcher ferner zur Angabe zumindest der Größe und der Anzahl der ein oder mehreren Datenpakete (11_1,..,11_N) konfiguriert ist, wobei der Dateikopf (13) weiter so konfiguriert ist, dass vor dem Übertragen der ein odermehreren Datenpakete (11_1,..,11_N) an eine dafür vorgesehene Datensenke zunächst ein Einlesen eines von dem jeweiligen ein oder mehreren Kennzeichenwerten (12_1,...,12_N) unterschiedlichen Platzhalters in die Datensenke an derjenigen Adresse, an der später der jeweilige Kennzeichenwert (12_1,...,12_N) des ein oder mehreren jeweiligen Datenpaketes (11_1,..,11_N) eingelesen ist, bewirkt wird.Ferner betrifft die Erfindung ein Steuerungssystem zum Einlesen einer solchen Datenstruktur und Verfahren.The invention relates to a data structure (10) for transmission from a data source to a data sink by a transmission module, comprising: a file which is subdivided into one or more consecutive data packets (11_1, .., 11_N), one or more different identifier values ( 12_1, ..., 12_N), which is used to identify the respective end of the one or more data packets (11_1, .., 11_N) at the respective end of the one or more data packets (11_1, .., 11_N) in the data structure (10) are stored, a file header (13) which is configured to indicate the position of the one or more different identifier values (12_1, ..., 12_N) in the file, and which is also configured to indicate at least the size and the number of a or several data packets (11_1, .., 11_N) is configured, wherein the file header (13) is further configured in such a way that prior to the transmission of the one or more data packets (11_1, .., 11_N) to a data sink provided for this purpose, hst a reading of a placeholder different from the respective one or more identifier values (12_1, ..., 12_N) into the data sink at the address at which the respective identifier value (12_1, ..., 12_N) of the one or more respective data packet will later be read (11_1, .., 11_N) is read in. Furthermore, the invention relates to a control system for reading in such a data structure and method.

Description

Die Erfindung betrifft eine Datenstruktur zur Übertragung von einer Datenquelle an eine Datensenke durch ein Übertragungsmodul. Ferner betrifft die Erfindung ein Steuerungssystem zum Einlesen einer solchen Datenstruktur. Weiterhin betrifft die Erfindung noch ein Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei, welche auf einer Datenquelle zur Übertragung an eine Datensenke angelegt ist.The invention relates to a data structure for transmission from a data source to a data sink by a transmission module. The invention also relates to a control system for reading in such a data structure. The invention also relates to a method for improved loading and further processing of a file which is created on a data source for transmission to a data sink.

Komplexe Steuerungssysteme beispielsweise SOCs (System-on-a-Chip) weisen heutzutage mindestens einen direkten Speicherzugriff, auch DMA-Controller (Direct Memory Access) genannt, auf. Dabei sind solche SOC komplexe, heterogene Systeme, die eine Hardware-Plattform, mit z. B. Prozessoren, Busse, Speicher und Peripheriegeräte sowie eine Software wie z. B. Gerätetreiber, Firmware, Betriebssysteme umfassen. Die SoCs können in eingebetteten Systemen eingesetzt werden.Complex control systems, for example SOCs (System-on-a-Chip), nowadays have at least one direct memory access, also known as a DMA controller (Direct Memory Access). Such SOCs are complex, heterogeneous systems that use a hardware platform with z. B. processors, buses, memory and peripherals and software such as. B. device drivers, firmware, operating systems. The SoCs can be used in embedded systems.

Ein solcher DMA-Controller greift über ein Bussystem direkt auf üblicherweise einen Arbeitsspeicher zu. In SOCs werden solche DMA-Controller dazu eingesetzt, um Daten zwischen Peripheriegeräten und dem zentralen, wiederbeschreibbaren RAM- (Random Access Memory)-Arbeitsspeicher zu transportieren.Such a DMA controller usually accesses a main memory directly via a bus system. In SOCs, such DMA controllers are used to transport data between peripheral devices and the central, rewritable RAM (Random Access Memory) main memory.

Dies entlastet den zentralen Prozessor; die CPU. DMA-Controller benötigen für die Ausführung der Datenübertragung Steuer- und Parameterinformationen. Diese Informationen werden von der CPU bereitgestellt. Wenn der DMA-Controller eine Datenübertragungsanforderung von dem Peripheriegerät erhält, erhält er von der CPU ein Bussteuerrecht. Der DMA-Controller startet so das Einschreiben der Daten von dem Peripheriegerät in den Arbeitsspeicher. Wenn die Datenübertragung abgeschlossen und die Daten validiert/verifiziert sind, schickt der DMA-Controller ein Abschlusssignal an das Peripheriegerät und an die CPU. Anschließend können die nächsten Daten übertragen werden. Einfache DMA-Controller zeigen dabei lediglich einen Abschluss der übertragenen Daten an.This relieves the central processor; the CPU. DMA controllers require control and parameter information to carry out the data transfer. This information is provided by the CPU. When the DMA controller receives a data transfer request from the peripheral device, it receives bus control rights from the CPU. The DMA controller thus starts writing the data from the peripheral device to the main memory. When the data transfer is complete and the data has been validated / verified, the DMA controller sends a completion signal to the peripheral device and to the CPU. The next data can then be transferred. Simple DMA controllers only indicate the completion of the transferred data.

Bei einfachen DMA-Controllern ist es jedoch nicht möglich, auszulesen wieviel Daten in den Arbeitsspeicher gelesen wurden; es kann nur eine Information über den vollständigen Abschluss des Einlesens geliefert werden. Somit kann ein Weiterverarbeiten der übertragenen Daten erst nach dem vollständigen Ladevorgang gestartet werden.With simple DMA controllers, however, it is not possible to read out how much data has been read into the main memory; only information about the complete completion of the reading can be provided. This means that further processing of the transferred data can only be started after the loading process has been completed.

Die DE 10 2004 006 767 B4 offenbart ein Verfahren zum Transport von Datenabschnitten zwischen einem Speicher und mindestens einem Peripheriegerät, mit den in der angegebenen Reihenfolge auszuführenden Schritten: Erzeugen eines auf ein Peripheriegerät zeigenden Referenzzeigers zum Abschluss eines DMA-Datentransports aus vorausgehenden Konfigurationsdaten; Übermitteln eines Steuersignals an einen DMA-Controller (DMA), mit welchem der DMA-Controller (DMA) zum Laden von Konfigurationsdaten über einen durchzuführenden Transport eines Datenabschnitts aufgefordert wird; Laden von Konfigurationsdaten über den durchzuführenden Datentransport durch den DMA-Controller (DMA) basierend auf dem Referenzzeiger; und Durchführen des Datentransports mittels des DMA-Controllers (DMA).The DE 10 2004 006 767 B4 discloses a method for transporting data sections between a memory and at least one peripheral device, comprising the steps to be carried out in the specified order: generating a reference pointer pointing to a peripheral device to complete a DMA data transport from previous configuration data; Transmission of a control signal to a DMA controller (DMA), with which the DMA controller (DMA) is requested to load configuration data via a transport of a data section to be carried out; Loading of configuration data via the data transport to be carried out by the DMA controller (DMA) based on the reference pointer; and performing the data transport by means of the DMA controller (DMA).

Aufgabe der Erfindung ist daher, Mittel anzugeben, welche eine verbesserte Datenübertragung zwischen einer Datensenke und einer Datenquelle ermöglichen.The object of the invention is therefore to provide means which enable an improved data transmission between a data sink and a data source.

Diese Aufgabe wird durch eine Datenstruktur mit den Merkmalen des Anspruchs 1 und ein Steuerungssystem mit den Merkmalen des Anspruchs 6 gelöst.This object is achieved by a data structure with the features of claim 1 and a control system with the features of claim 6.

Ferner wird die Aufgabe gelöst durch ein Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei mit den Merkmalen des Anspruchs 10.The object is also achieved by a method for improved loading and further processing of a file having the features of claim 10.

In den Unteransprüchen sind weitere vorteilhafte Maßnahmen aufgelistet, die beliebig geeignet miteinander kombiniert werden können, um weitere Vorteile zu erzielen.The subclaims list further advantageous measures that can be combined with one another in any suitable manner in order to achieve further advantages.

Die Aufgabe wird gelöst durch die Angabe einer Datenstruktur zur Übertragung von einer Datenquelle an eine Datensenke durch ein Übertragungsmodul, aufweisend:

  • - eine Datei, die in ein oder mehrere aufeinanderfolgende Datenpakete unterteilt ist,
  • - einen oder mehrere voneinander verschiedene Kennzeichenwerte, welche zur Kennzeichnung des jeweiligen Endes des eines oder mehreren Datenpaketes am jeweiligen Ende des einen oder mehreren Datenpaketes in der Datenstruktur abgelegt sind,
  • - einen Dateikopf, welcher zum Aufzeigen der Position der einen oder mehreren voneinander verschiedenen Kennzeichenwerte in der Datei konfiguriert ist, und welcher ferner zur Angabe zumindest der Größe und der Anzahl der ein oder mehreren Datenpakete konfiguriert ist, wobei der Dateikopf so konfiguriert ist, dass vor dem Übertragen der ein oder mehreren Datenpakete an eine dafür vorgesehene Datensenke zunächst ein Einlesen eines von dem jeweiligen ein oder mehreren Kennzeichenwerten unterschiedlichen Platzhalters in die Datensenke an derjenigen Adresse, an der später der jeweilige Kennzeichenwert des ein oder mehreren jeweiligen Datenpaketes eingelesen ist, bewirkt wird.
The object is achieved by specifying a data structure for transmission from a data source to a data sink by a transmission module, having:
  • - a file that is divided into one or more consecutive data packets,
  • - one or more different identifier values which are stored in the data structure to identify the respective end of the one or more data packet at the respective end of the one or more data packet,
  • a file header which is configured to indicate the position of the one or more mutually different identifier values in the file, and which is further configured to indicate at least the size and the number of the one or more data packets, the file header being configured in such a way that before before transmitting the one or more data packets to a data sink provided for this purpose, initially one of the respective one or more identifier values is read in different placeholders in the data sink at the address at which the respective identifier value of the one or more respective data packet is later read in.

Das bedeutet, dass jedes der Datenpakete an seinem Ende einen Kennzeichenwert, beispielsweise 4 Byte, aufweist. Diese Kennzeichenwerte werden jedem Datenpaket bei Aufteilung der Datei in die vorzugsweise mehreren einzelnen Datenpakete beigefügt.This means that each of the data packets has an identifier value, for example 4 bytes, at its end. These identifier values are added to each data packet when the file is divided into the preferably several individual data packets.

Im Dateikopf, welcher vor dem Laden der einzelnen Datenpakete ausgeführt wird, ist gespeichert, an welcher Stelle diese Kennzeichenwerte stehen. Zunächst bewirkt das Ausführen des Dateikopfs ein Einlesen von Platzhaltern, welche an diejenigen Adressen in der Datensenke eingelesen werden, an der später die Kennzeichenwerte der einzelnen Datenpakete geschrieben werden. Das heißt, es stehen vor dem Einlesen der Datei bzw. den einzelnen Datenpaketen andere Werte, nämlich die Platzhalter, als die original Kennzeichenwerte an den dafür vorgesehenen Stellen/Adressen in der Datensenke. Werden die einzelnen Datenpakete dann sukzessive eingelesen, so werden die Platzhalter sukzessive von den „richtigen“ Kennzeichenwerten überschrieben.The file header, which is executed before the individual data packets are loaded, stores the position of these identifier values. Initially, the execution of the file header causes placeholders to be read in, which are read in at those addresses in the data sink to which the identifier values of the individual data packets are later written. This means that before the file or the individual data packets are read in, there are other values, namely the placeholders, than the original identifier values at the locations / addresses provided for this in the data sink. If the individual data packets are then read in successively, the placeholders are successively overwritten by the "correct" identifier values.

Je nach Fortschritt der Datenübertragung kann nun abgefragt werden, welche der Platzhalter bereits mit dem richtigen Kennzeichenwerten überschrieben worden ist. Das heißt, während ein Übertragungsmodul, beispielsweise ein DMA-Controller im Hintergrund arbeitet, kann festgestellt werden, wieviel Datenpakete bereits in die Datensenke geschrieben worden sind. Die bereits vollständig geladenen Datenpakete können, zeitgleich während dem Laden nachfolgender Datenpakete bereits weiterverarbeitet werden.Depending on the progress of the data transfer, you can now query which of the placeholders has already been overwritten with the correct indicator values. This means that while a transmission module, for example a DMA controller, is working in the background, it can be determined how many data packets have already been written into the data sink. The data packages that have already been fully loaded can be processed further at the same time as the subsequent data packages are being loaded.

Es kann mit dem Weiterverarbeiten eines Datenpaketes begonnen werden, sobald der zu dem Datenpaket zugehörige Kennzeichenwert in der Datensenke den korrespondierenden Platzhalter überschrieben hat. Steht der zu dem Datenpaket zugehörige Kennzeichenwert noch nicht in der Datensenke, so kann mit dem Weiterverarbeiten noch nicht begonnen werden, da dieses Datenpaket noch nicht vollständig in der Datensenke angekommen ist.Further processing of a data packet can begin as soon as the identifier value associated with the data packet has overwritten the corresponding placeholder in the data sink. If the identifier value associated with the data packet is not yet in the data sink, further processing cannot yet be started, since this data packet has not yet fully arrived in the data sink.

Der Dateikopf ist so konfiguriert, dass er als erstes von dem Übertragungsmodul, beispielsweise dem DMA-Controller ausgeführt wird. Die Position des Dateikopfes kann dabei in den zu übertragenden Daten unterschiedlich sein, beispielsweise als Header am Anfang oder am Ende oder in der Mitte.The file header is configured in such a way that it is executed first by the transmission module, for example the DMA controller. The position of the file header can be different in the data to be transmitted, for example as a header at the beginning or at the end or in the middle.

Durch die Datenstruktur ist eine Parallelisierung von Laden und Weiterverarbeiten einer in vorzugsweise mehrere Datenpakete unterteilte Datei unabhängig von dem verwendeten Übertragungsmodul, welches zur Übertragung der Datenstruktur von der Datenquelle zu der Datensenke verwendet wird, möglich.The data structure enables parallel loading and further processing of a file, which is preferably divided into several data packets, independently of the transmission module used, which is used to transmit the data structure from the data source to the data sink.

Vorzugsweise ist der Dateikopf derart konfiguriert, dass die ein oder mehreren Datenpakete in einer vorgegebenen Reihenfolge ausgelesen werden. Vorzugsweise werden die Datenpakete als Datenfluss, also einfach hintereinander, ausgelesen.The file header is preferably configured in such a way that the one or more data packets are read out in a predetermined sequence. The data packets are preferably read out as a data flow, i.e. simply one after the other.

In bevorzugter Ausgestaltung umfasst der Dateikopf die Größe der Datenstruktur und die Anzahl der Datenpakete. Dabei kann die Anzahl auch eins sein.In a preferred embodiment, the file header includes the size of the data structure and the number of data packets. The number can also be one.

Weiterhin ist der Dateikopf derart konfiguriert, dass ein der Größe der Datenstruktur entsprechender Platzbedarf in der Datensenke reserviert wird.Furthermore, the file header is configured in such a way that a space requirement corresponding to the size of the data structure is reserved in the data sink.

Bevorzugt ist die Datenstruktur zur Speicherung auf einer Datenquelle ausgebildet. Dabei ist die Datenquelle vorzugsweise eine Peripherie-Speichereinheit, beispielsweise ein USB-Speicher etc.The data structure is preferably designed for storage on a data source. The data source is preferably a peripheral storage unit, for example a USB storage device, etc.

Ferner wird die Aufgabe gelöst durch ein Steuerungssystem zum Einlesen einer wie oben beschriebenen Datenstruktur, das Steuerungssystem umfassend:

  • eine Datensenke mit einem Arbeitsspeicher,
  • eine direkte Speicherzugriffseinheit zum direkten Einlesen der Datenstruktur von einer Datenquelle in den Arbeitsspeicher der Datensenke, wobei die direkte Speicherzugriffseinheit dazu ausgebildet ist, zunächst den Dateikopf auszuführen, wobei die Speicherzugriffseinheit ferner dazu konfiguriert ist, durch Ausführen des Dateikopfes den für das Einlesen der ein oder mehreren Datenpakete benötigten Arbeitsspeicher mit einer ersten zu beschreibenden Adresse und einer letzten zu beschreibenden Adresse zur Verfügung zu stellen und wobei die direkte Speicherzugriffseinheit dazu konfiguriert ist, in die letzte zu beschreibende Adresse des jeweiligen Datenpaketes einen jeweils von dem Kennzeichenwert unterschiedlichen Platzhalter zu speichern,
  • so dass beim Speichern des ein oder mehreren Datenpaketes der jeweilige Platzhalter erst dann mit dem Kennzeichenwert des ein oder mehreren Datenpaketes überschrieben ist, wenn das zu dem jeweiligen Kennzeichenwert gehörende jeweilige Datenpaket vollständig in der Datensenke gespeichert ist.
The object is also achieved by a control system for reading in a data structure as described above, the control system comprising:
  • a data sink with a working memory,
  • a direct memory access unit for reading the data structure directly from a data source into the main memory of the data sink, the direct memory access unit being designed to initially execute the file header, the memory access unit also being configured to execute the file header for reading in the one or more To provide data packets required main memory with a first address to be written and a last address to be written, and wherein the direct memory access unit is configured to store a placeholder different from the identifier value in the last address of the respective data package,
  • so that when the one or more data packets are saved, the respective placeholder is only overwritten with the identifier value of the one or more data packet when the respective data packet belonging to the respective identifier value is completely stored in the data sink.

Dabei kann das Steuerungssystem in allen Bereichen eingesetzt werden, bei denen große Datenmengen geladen und weiterverarbeitet werden müssen. Durch das erfindungsgemäße Steuerungssystem ist es möglich, den aktuellen Übertragungsstand abzufragen, in dem geprüft wird, ob einer der Platzhalter mit dem dafür vorgesehenen Kennzeichenwert überschrieben worden ist. Ist dies der Fall, so ist das zu dem Kennzeichenwert gehörende Datenpaket bereits vollständig geladen und kann bereits weiterverarbeitet werden, während das anschließend zu ladende Datenpaket zeitgleich gerade in die Datensenke eingelesen wird.The control system can be used in all areas where large amounts of data have to be loaded and processed. By the invention Control system, it is possible to query the current transfer status by checking whether one of the placeholders has been overwritten with the intended code value. If this is the case, the data packet belonging to the identifier value has already been fully loaded and can already be processed further while the data packet to be subsequently loaded is being read into the data sink at the same time.

Durch ein solches Steuerungssystem kann das Laden und Weiterverarbeiten von Datenpaketen parallel erfolgen, obwohl die direkte Speicherzugriffseinheit keine Information darüber bereitstellt, wie viele Daten bzw. Datenpakete schon gelesen wurden. Da die gesamte Datenmenge bei der Datenquelle, vorzugsweise der Peripherie-Speichereinheit angefordert wird, erfolgt die Übertragung selber ohne jegliche Verzögerung durch neues Adressieren des nächsten Datenpaketes. Somit wird eine erhebliche Zeitersparnis ermöglicht.With such a control system, the loading and further processing of data packets can take place in parallel, although the direct memory access unit does not provide any information about how many data or data packets have already been read. Since the entire amount of data is requested from the data source, preferably the peripheral storage unit, the transmission itself takes place without any delay by re-addressing the next data packet. This enables considerable time savings.

Vorzugsweise ist die Datensenke selber als Arbeitsspeicher ausgebildet. Dieser wird von der direkten Speicherzugriffseinheit vorzugsweise über einen Bus angesteuert.The data sink itself is preferably designed as a working memory. This is controlled by the direct memory access unit, preferably via a bus.

Weiterhin vorzugsweise ist die direkte Speicherzugriffseinheit als DMA-Controller ausgebildet. Dabei ist als DMA-Controller jede Hardware zu verstehen, die einen direkten Speicherzugriff entweder auf den Arbeitsspeicher selbst oder auf eine Peripherie-Speichereinheit durchführen kann, ohne dabei die CPU in Anspruch zu nehmen.The direct memory access unit is also preferably designed as a DMA controller. A DMA controller is to be understood as any hardware that can perform direct memory access either to the main memory itself or to a peripheral memory unit without using the CPU.

Vorzugsweise ist das Steuerungssystem auf einem SOC (System-on-a-Chip) angeordnet. Ein solcher SOC wird vorzugsweise in eingebetteten Systemen eingesetzt.The control system is preferably arranged on an SOC (System-on-a-Chip). Such a SOC is preferably used in embedded systems.

Ferner wird die Aufgabe gelöst durch ein Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei, welche auf einer Datenquelle zur Übertragung an eine Datensenke angelegt ist, umfassend der Schritte:

  • - Laden und Auslesen eines Dateikopfes einer Datenstruktur durch einen DMA-Controller, wobei die Datenstruktur ein oder mehrere Datenpakete mit jeweils einem unterschiedlichen Kennzeichenwert umfasst, wobei der jeweilige Kennzeichenwert am einzulesenden Ende des einen oder mehreren Datenpaketes angeordnet ist,
  • - Bereitstellen des benötigten Speicherplatzes für die ein oder mehreren Datenpakete mit den jeweils einem unterschiedlichen Kennzeichenwert in einem Speicher der Datensenke durch den DMA-Controller,
  • - Einlesen eines jeweiligen zu den jeweils einem unterschiedlichen Kennzeichenwert korrespondierenden Platzhalters an diejenige Adresse, welche für den jeweils einen unterschiedlichen Kennzeichenwert in der Datensenke vorgesehen ist, wobei sich der jeweilige Platzhalter von dem jeweiligen Kennzeichenwert unterscheidet, so dass beim Speichern des einen oder mehreren Datenpaketes der jeweilige Platzhalter erst dann mit dem jeweiligen Kennzeichenwert des einen oder mehreren Datenpaketes überschrieben ist, wenn das zu dem jeweiligen Kennzeichenwert gehörende Datenpaket vollständig in dem vom DMA-Controller zur Verfügung gestellten Speicher der Datensenke gespeichert ist,
  • - Sukzessives Laden und Auslesen der ein oder mehreren Datenpakete mit den unterschiedlichen Kennzeichenwerten.
Furthermore, the object is achieved by a method for improved loading and further processing of a file which is created on a data source for transmission to a data sink, comprising the steps:
  • - Loading and reading out a file header of a data structure by a DMA controller, the data structure comprising one or more data packets each with a different identifier value, the respective identifier value being arranged at the end of the one or more data packets to be read,
  • - Provision of the required storage space for the one or more data packets, each with a different identifier value in a memory of the data sink by the DMA controller,
  • - Reading in a respective placeholder corresponding to a different identifier value to the address which is provided for each different identifier value in the data sink, the respective placeholder differing from the respective identifier value, so that when the one or more data packets are saved the the respective placeholder is only overwritten with the respective identifier value of the one or more data packets when the data packet belonging to the respective identifier value is completely stored in the data sink memory provided by the DMA controller,
  • - Successive loading and reading of the one or more data packets with the different identification values.

Vorzugsweise umfasst das Verfahren den weiteren Schritt:

  • - Abfragen, ob der jeweilige Platzhalter für den jeweiligen Kennzeichenwert schon mit dem jeweiligen Kennzeichenwert überschrieben worden ist.
The method preferably comprises the further step:
  • - Query whether the respective placeholder for the respective license plate value has already been overwritten with the respective license plate value.

In weiterer vorzugsweiser Ausgestaltung wird bei einem Bereitstellen von mehreren Datenpaketen bei einem überschriebenen ersten Platzhalter durch den entsprechenden ersten Kennzeichenwert eines ersten Datenpaketes, das zu dem ersten Kennzeichenwert darauffolgende zweite Datenpaket mit einem zweiten Kennzeichenwert geladen, während das erste, gerade geladene Datenpaket weiterverarbeitet wird. So wird für alle vorhandenen Datenpakete verfahren. Dabei bedeutet erstes und zweites Datenpaket eine Reihenfolge und ist nicht auf die Stellung eines Datenpaketes in der Datei bezogen.In a further preferred embodiment, when several data packets are provided with an overwritten first placeholder, the second data packet following the first identifier value is loaded with a second identifier value through the corresponding first identifier value of a first data packet, while the first, just loaded data packet is further processed. This is the procedure for all existing data packets. The first and second data packet mean a sequence and are not related to the position of a data packet in the file.

Werden die Datenpakete durch den DMA-Controller gelesen, wird zunächst der Dateikopf gelesen, welcher die Kennzeichenwerte und deren Position in der Datei enthält. An die für die Kennzeichenwerte vorgesehenen Adressen im Arbeitsspeicher werden vom DMA-Controller zu den Kennzeichenwerten unterschiedliche Platzhalter geschrieben. Dadurch kann durch Auslesen des Arbeitsspeichers, während der DMA-Controller im Hintergrund arbeitet, festgestellt werden, ob ein erstes Datenpaket im Arbeitsspeicher angekommen ist. Steht im Arbeitsspeicher an der angegebenen Adresse der erste Kennzeichenwert, so sind alle Daten des ersten Datenpaketes gelesen und das Weiterverarbeiten des ersten Datenpaketes kann gestartet werden. Steht der erste Kennzeichenwert noch nicht im Arbeitsspeicher, kann noch nicht mit dem Weiterverarbeiten des ersten Datenpaketes begonnen werden, da er noch nicht vollständig gelesen wurde.If the data packets are read by the DMA controller, the file header is first read, which contains the identifier values and their position in the file. The DMA controller writes different placeholders for the identifier values to the addresses in the main memory provided for the identifier values. As a result, by reading out the main memory while the DMA controller is working in the background, it can be determined whether a first data packet has arrived in the main memory. If the first identifier value is in the main memory at the specified address, then all the data of the first data packet have been read and the further processing of the first data packet can be started. If the first identifier value is not yet in the main memory, further processing of the first data packet cannot yet be started because it has not yet been completely read.

Dies wird solange fortgeführt, bis alle Datenpakete gelesen wurden.This continues until all data packets have been read.

Durch dieses Verfahren ist die Parallelisierung von Laden und Weiterverarbeiten einer Datei möglich, obwohl der DMA-Controller keine Information darüber bereit zu stellen braucht, wie viele Daten schon gelesen wurden. Da die gesamte Datenmenge beim externen Speicher angefordert wird, erfolgt die Übertragung selber ohne jegliche Verzögerung durch neues Adressieren des nächsten Datenpaketes. Somit wird eine erhebliche Zeitersparnis ermöglicht.This method enables the parallelization of loading and further processing of a file, although the DMA controller does not need to provide any information about how much data has already been read. Since the entire amount of data is requested from the external memory, the transmission itself takes place without any delay by re-addressing the next data packet. This enables considerable time savings.

Das erfindungsgemäße Verfahren, sowie die erfindungsgemäße Datenstruktur kann in allen Bereichen, in denen große Datenmengen an den Arbeitsspeicher beispielsweise eines SOCs eines eingebetteten Systems übertragen, und dann innerhalb des eingebetteten Systems weiterverarbeitet werden müssen, Verwendung finden.The method according to the invention and the data structure according to the invention can be used in all areas in which large amounts of data are transmitted to the main memory, for example of an SOC of an embedded system, and then have to be further processed within the embedded system.

Somit kann auch bei beispielsweise einfachen DMA-Controllern der aktuelle Stand der übertragenen Daten abgefragt werden. Dadurch kann ein Weiterverarbeiten der Daten stattfinden, auch wenn die Daten noch nicht vollständig geladen worden sind.This means that the current status of the transmitted data can be queried even with simple DMA controllers, for example. This enables the data to be processed further, even if the data has not yet been fully loaded.

Weitere Merkmale, Eigenschaften und Vorteile der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung unter Bezugnahme auf die beiliegenden Figuren. Darin zeigen schematisch:

  • 1: einen erfindungsgemäßen DMA-Controller,
  • 2: ein erfindungsgemäßes System-on-Chip (SOC),
  • 3: eine Peripherie-Speichereinheit mit einer erfindungsgemäßen Datenstruktur,
  • 4: eine Ausgestaltung eines erfindungsgemäßen Verfahrens.
Further features, properties and advantages of the present invention emerge from the following description with reference to the accompanying figures. They show schematically:
  • 1 : a DMA controller according to the invention,
  • 2 : a system-on-chip (SOC) according to the invention,
  • 3 : a peripheral storage unit with a data structure according to the invention,
  • 4th : an embodiment of a method according to the invention.

Obwohl die Erfindung im Detail durch die bevorzugten Ausführungsbeispiele näher illustriert und beschrieben wurde, ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt. Variationen hiervon können vom Fachmann abgeleitet werden, ohne den Schutzumfang der Erfindung, wie er durch die nachfolgenden Patentansprüche definiert wird, zu verlassen.Although the invention has been illustrated and described in detail by the preferred exemplary embodiments, the invention is not restricted by the examples disclosed. Variations on this can be derived by the person skilled in the art without departing from the scope of protection of the invention as defined by the following patent claims.

1 zeigt beispielhaft einen DMA-Controller 1 gemäß der Erfindung. 1 shows an example of a DMA controller 1 according to the invention.

Ein solcher DMA (Direct Memory Access, Speicherdirektzugriff) Controller 1 greift direkt über vorzugsweise einen Bus 6 (2) auf eine Datensenke mit einen Arbeitsspeicher 5 (2) zu, um Daten zu lesen und / oder zu schreiben. Rechner mit DMA-Controller 1 können Daten zu und von beispielsweise einer Peripherie-Speichereinheit 7 mit geringer CPU-Auslastung übertragen.Such a DMA (direct memory access) controller 1 accesses directly via preferably a bus 6th ( 2 ) to a data sink with a working memory 5 ( 2 ) to read and / or write data. Computer with DMA controller 1 can transfer data to and from a peripheral storage unit, for example 7th transferred with low CPU usage.

Der DMA-Controller 1 dient zum Datentransport zwischen Arbeitsspeicher 5 (2) und vorzugsweise der Peripherie-Speichereinheit 7. Auf der Peripherie-Speichereinheit 4 ist eine erfindungsgemäße Datenstruktur 10 (3) mit den Datenpaketen 11_1,..11_N (3) und dem Dateikopf 13 (3) gespeichert.The DMA controller 1 is used to transport data between the main memory 5 ( 2 ) and preferably the peripheral storage unit 7th . On the peripheral storage unit 4th is a data structure according to the invention 10 ( 3 ) with the data packets 11_1 , .. 11_N ( 3 ) and the file header 13 ( 3 ) saved.

Ferner existieren Systeme mit einem zentralen DMA-Controller 1, aber auch Systeme, in denen jeder Baustein über einen eigenen DMA-Controller 1 verfügt. Als DMA-Controller 1 kann jeder Baustein verstanden werden, der einen Speicherzugriff entweder auf den Arbeitsspeicher 5 (2) selbst oder auf einer Peripherie-Speichereinheit 7 durchführen kann, ohne dabei eine externe CPU 8 (2) in Anspruch zu nehmen.There are also systems with a central DMA controller 1 , but also systems in which each component has its own DMA controller 1 disposes. As a DMA controller 1 Any block can be understood that has a memory access either to the main memory 5 ( 2 ) itself or on a peripheral storage unit 7th can perform without using an external CPU 8th ( 2 ) to claim something.

Der DMA-Controller 1 liest die Datenpakete 11_1 ,..11_N (3) von der Peripherie-Speichereinheit 7 in eine Datensenke, welche hier als Arbeitsspeicher 5 (2) ausgestaltet ist, ein.The DMA controller 1 reads the data packets 11_1 , .. 11_N ( 3 ) from the peripheral storage unit 7th into a data sink, which is used here as working memory 5 ( 2 ) is designed, a.

Ein einfacher DMA -Controller 1 verfügt über vorzugsweise zumindest eine DMA -Steuerungseinheit 2 und zumindest einen Datenpuffer 3 und zumindest ein Register 4. Dabei existieren mehrere Adressierungsverfahren. Bei einem ersten Adressierungsverfahren holt der DMA-Controller 1 zunächst ein Datenbyte ab und speichert dieses in einem internen Register 4. Danach adressiert er den Arbeitsspeicher 5 (2) und überträgt ihm die Daten. Bei dem zweiten Adressierungsverfahren adressiert der DMA-Controller 1 die zu holenden Daten und stellt diese sofort zum Arbeitsspeicher 5 (2) durch.A simple DMA controller 1 preferably has at least one DMA control unit 2 and at least one data buffer 3 and at least one register 4th . There are several addressing methods. In a first addressing process, the DMA controller fetches 1 first of all a data byte and saves it in an internal register 4th . Then it addresses the main memory 5 ( 2 ) and transfers the data to him. In the second addressing method, the DMA controller addresses 1 the data to be fetched and puts them immediately in the working memory 5 ( 2 ) by.

Ein solcher DMA-Controller 1 ist bei beispielsweise System-on-Chips (SOC) 14 (2) zu finden, um die CPU 8 (2) von Speicherzugriffen zu entlasten.Such a DMA controller 1 is for example system-on-chips (SOC) 14th ( 2 ) to find the CPU 8th ( 2 ) to relieve memory access.

2 zeigt sehr schematisch ein solches System-on-Chip (SOC) 14 mit einem Steuerungssystem 15, welches einen DMA-Controller 1 als Übertragungsmodul aufweist. Der DMA-Controller 1 ist mit einem Arbeitsspeicher 5 und eine CPU 5 auf dem System-on-Chip (SOC) 14 angeordnet. Alternativ kann der Arbeitsspeicher 5 nicht auf dem System-on-Chip (SOC) 14 angeordnet, jedoch zur Datenübertragung mit der CPU 8 bzw. dem DMA-Controller 1 verbunden sein. 2 shows such a system-on-chip (SOC) very schematically 14th with a control system 15th , which is a DMA controller 1 has as a transmission module. The DMA controller 1 is with a memory 5 and a CPU 5 on the system-on-chip (SOC) 14th arranged. Alternatively, the RAM 5 not on the system-on-chip (SOC) 14th arranged, but for data transfer with the CPU 8th or the DMA controller 1 be connected.

Das System-on-Chip 14 weist ferner eine Input-Output Einheit 9 auf. Die einzelnen Bausteine als auch die Input-Output Einheit 9 können über ein oder mehrere Busse 6 miteinander verbunden sein. Der DMA-Controller 1 liest die Datenpakete 11_1,..11_N (3) beispielsweise über den Bus 6 direkt in den Arbeitsspeicher 5 ein.The system-on-chip 14 also has an input-output unit 9 on. The individual components as well as the input-output unit 9 can have one or more buses 6th be connected to each other. The DMA controller 1 reads the data packets 11_1 , .. 11_N ( 3 ) for example via the bus 6th directly into the main memory 5 on.

3 zeigt eine Datenquelle, welche hier als Peripherie-Speichereinheit 7 ausgebildet ist. Auf der Peripherie-Speichereinheit 7 ist eine erfindungsgemäße Datenstruktur 10 abgelegt. 3 shows a data source, which is used here as a peripheral storage unit 7th is trained. On the peripheral storage unit 7th is a data structure according to the invention 10 filed.

Die Datenstruktur 10 umfasst eine Datei, die in ein oder mehrere aufeinanderfolgende Datenpakete 11_1, ..11_N, unterteilt ist. Am jeweiligen Ende eines jeweiligen Datenpaketes 11_1,..,11_N sind Kennzeichenwerte 12_1,...,12_N abgelegt, welche das Ende eines Datenpaketes 11_1,..,11_N kennzeichnen.The data structure 10 includes a file that is in one or more consecutive data packets 11_1 , .. 11_N , is divided. At the respective end of a respective data packet 11_1 , .., 11_N are characteristic values 12_1 , ..., 12_N which is the end of a data packet 11_1 , .., 11_N mark.

Ferner ist ein Dateikopf 13, welcher die Größe der Datenstruktur 10, die Anzahl der jeweiligen Datenpakete 11_1,..,11_N sowie die Adresse/Position des jeweiligen Kennzeichenwerts 12_1,...,12_N in der Datei aufzeigt, umfasst. Der Dateikopf 13 kann dabei als Header oder Kopf der Datenstruktur 10 ausgebildet sein, welcher zuerst ausgelesen wird.There is also a file header 13 which is the size of the data structure 10 , the number of the respective data packets 11_1 , .., 11_N as well as the address / position of the respective license plate value 12_1 , ..., 12_N in the file includes. The file header 13 can be used as a header or head of the data structure 10 be designed which is read out first.

Ferner ist der Dateikopf 13 zum Auslesen der Reihenfolge der ein oder mehreren Datenpakete 11_1, ..11_N konfiguriert. Dabei ist die Reihenfolge bevorzugt nacheinander, das heißt, die Datenpakete 11_1, ..11_N werden nacheinander als ein Datenstrom abgerufen.The file header is also 13 for reading out the order of the one or more data packets 11_1 , .. 11_N configured. The order is preferably one after the other, that is, the data packets 11_1 , .. 11_N are retrieved sequentially as a data stream.

Ferner ist der Dateikopf 13 zum Einlesen eines von dem jeweiligen Kennzeichenwertes 12_1,...,12_N unterschiedlichen Platzhalters in die Datensenke, hier dem Arbeitsspeicher 5 (1), an derjenigen Adresse, an der später der jeweilige Kennzeichenwert 12_1,...,12_N eines jeweiligen Datenpaketes 11_1,..,11_N eingelesen ist, ausgestaltet.The file header is also 13 for reading in one of the respective license plate value 12_1 , ..., 12_N different placeholders in the data sink, here the main memory 5 ( 1 ), at the address at which the respective license plate value will later 12_1 , ..., 12_N of a respective data package 11_1 , .., 11_N is read, designed.

Auch kann der Dateikopf 13 Anweisungen zum Reservieren eines der Größe der Datenpakete 11_1, ..11_N entsprechenden Platzbedarfes in dem Arbeitsspeicher 5 (1) oder einer anderen Datensenke aufweisen.The file header 13 Instructions for reserving one of the size of the data packets 11_1 , .. 11_N corresponding space requirements in the main memory 5 ( 1 ) or another data sink.

4 zeigt ein erfindungsgemäßes Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei von einer Datenquelle zu einer Datensenke. 4th shows a method according to the invention for improved loading and further processing of a file from a data source to a data sink.

Als erster Verfahrensschritt S1 wird das Laden und das Auslesen des Dateikopfes 13 (3) einer erfindungsgemäßen Datenstruktur 10 (3) aus einer Peripherie-Speichereinheit 7 (3) durch den DMA-Controller 1 (1) bewerkstelligt.As the first process step S1 is the loading and reading of the file header 13 ( 3 ) a data structure according to the invention 10 ( 3 ) from a peripheral storage unit 7th ( 3 ) through the DMA controller 1 ( 1 ) accomplished.

Durch das Auslesen werden die Datenstruktur 10 (3), die Größe und die Anzahl der Datenpakete 11_1, ..11_N (3) als auch die Position der Kennzeichenwerte 12_1,..,12_N (3) an den DMA-Controller 1 übertragen.The data structure 10 ( 3 ), the size and the number of data packets 11_1 , .. 11_N ( 3 ) as well as the position of the license plate values 12_1 , .., 12_N ( 3 ) to the DMA controller 1 transfer.

In einem zweiten Verfahrensschritt S2 stellt der DMA-Controller 1 (1) den benötigten Speicherplatz für die Datenpakete 11_1,..,11_N (3) auf dem Arbeitsspeicher 5 (1) bereit und schreibt an die Adressen, welche für die Kennzeichenwerte 12_1,..,12_N (3) vorgesehen sind, jeweils einen Platzhalter, welcher sich von den Kennzeichenwerten 12_1,..,12_N (3) unterscheidet.In a second process step S2 provides the DMA controller 1 ( 1 ) the required storage space for the data packages 11_1 , .., 11_N ( 3 ) on the RAM 5 ( 1 ) ready and writes to the addresses which are for the license plate values 12_1 , .., 12_N ( 3 ) are provided, each with a placeholder that differs from the identifier values 12_1 , .., 12_N ( 3 ) differs.

In einem dritten Verfahrensschritt S3 werden gemäß der Datenstruktur 10 (3) die einzelnen Datenpakete 11_1,..,11_N (3) in den Arbeitsspeicher 5 (1) eingelesen, beginnend mit dem ersten Datenpaket 11_1 (3).In a third process step S3 are according to the data structure 10 ( 3 ) the individual data packages 11_1 , .., 11_N ( 3 ) into memory 5 ( 1 ), starting with the first data packet 11_1 ( 3 ).

In einem vierten Verfahrensschritt S4 wird überprüft, ob der erste Platzhalter für das erste Datenpaket 11_1 (3) schon mit dem ersten Kennzeichenwert 12_1 ( 3), welcher das Ende des ersten Datenpaketes 11_1 (3) kennzeichnet, überschrieben worden ist.In a fourth process step S4 it is checked whether the first placeholder for the first data packet 11_1 ( 3 ) with the first license plate value 12_1 ( 3 ), which is the end of the first data packet 11_1 ( 3 ) has been overwritten.

In einem fünften Verfahrensschritt S5 sind die ersten Platzhalter für das erste Datenpaket 11_1 (3) mit den ersten Kennzeichenwert 12_1 (3) noch nicht überschrieben worden und der DMA-Controller 1 (1) führt das Einlesen des ersten Datenpaketes 11_1 (3) in den Arbeitsspeicher 5 (1) fort.In a fifth process step S5 are the first placeholders for the first data packet 11_1 ( 3 ) with the first license plate value 12_1 ( 3 ) has not yet been overwritten and the DMA controller 1 ( 1 ) reads in the first data packet 11_1 ( 3 ) into memory 5 ( 1 ) continued.

In einem alternativen sechsten Verfahrensschritt S6 sind die ersten Platzhalter für das erste Datenpaket 11_1 (3) mit den ersten Kennzeichenwert 12_1 (3) bereits überschrieben worden. Die Überschreibung kann abgefragt werden, indem der Arbeitsspeicher 5 (1) während der DMA-Controller 1 (1) im Hintergrund weiterarbeitet, ausgelesen wird. Durch die Überschreibung ist bekannt, dass das erste Datenpaket 11_1 (3) bereits vollständig in den Arbeitsspeicher 5 (1) eingelesen wurde und es kann ein Weiterverarbeiten des ersten Datenpaketes 11_1 (3) vorgenommen werden, während der DMA-Controller 1 im Hintergrund mit dem Einlesen des zweiten Datenpaketes 11_2 (3) beginnt.In an alternative sixth process step S6 are the first placeholders for the first data packet 11_1 ( 3 ) with the first license plate value 12_1 ( 3 ) has already been overwritten. The overwrite can be queried by the memory 5 ( 1 ) while the DMA controller 1 ( 1 ) continues to work in the background, is read out. As a result of the overwrite, it is known that the first data packet 11_1 ( 3 ) already completely in the main memory 5 ( 1 ) has been read in and the first data packet can be processed further 11_1 ( 3 ) can be made while the DMA controller 1 in the background with the reading of the second data packet 11_2 ( 3 ) begins.

In einem siebten Verfahrensschritt S7 sind die zweiten Platzhalter für das zweite Datenpaket 11_2 (3) mit den zweiten Kennzeichenwert 12_2 (3) noch nicht überschrieben worden und der DMA-Controller 1 (1) führt das Einlesen des zweiten Datenpaketes 11_2 (3) in den Arbeitsspeicher 5 (1) fort.In a seventh process step S7 are the second placeholders for the second data packet 11_2 ( 3 ) with the second number plate value 12_2 ( 3 ) has not yet been overwritten and the DMA controller 1 ( 1 ) reads in the second data packet 11_2 ( 3 ) into memory 5 ( 1 ) continued.

In einem alternativen achten Verfahrensschritt S8 sind die zweiten Platzhalter für das zweite Datenpaket 11_2 (3) mit den zweiten Kennzeichenwert 12_2 (3) bereits überschrieben worden. Die Überschreibung kann abgefragt werden, indem der Arbeitsspeicher 5 (1), während der DMA-Controller 1 (1) im Hintergrund weiterarbeitet, ausgelesen wird. Durch die Überschreibung ist bekannt, dass das zweite Datenpaket 11_2 (3) bereits vollständig in den Arbeitsspeicher 5 (1) eingelesen wurde und es kann ein Weiterverarbeiten des zweiten Datenpaketes 11_2 (3) vorgenommen werden, während der DMA-Controller 1 im Hintergrund mit dem Einlesen des dritten Datenpaketes 11_3 beginnt.In an alternative eighth process step S8 are the second placeholders for the second data packet 11_2 ( 3 ) with the second number plate value 12_2 ( 3 ) has already been overwritten. The overwrite can be queried by the memory 5 ( 1 ), while the DMA controller 1 ( 1 ) continues to work in the background, is read out. As a result of the overwrite, it is known that the second data packet 11_2 ( 3 ) already completely in the main memory 5 ( 1 ) has been read in and the second data packet can be processed further 11_2 ( 3 ) can be made while the DMA controller 1 begins in the background with the reading of the third data packet 11_3.

Dies wird durchgeführt, bis alle vorhandenen Datenpakete 11_1 ,..,11_N (3) eingelesen sind und alle Platzhalter zu den jeweiligen Datenpaketen 11_1,..,11_N (3) mit den korrekten Kennzeichenwerten 12_1,..,12_N (3) überschrieben worden sind.This is done until all the existing data packets 11_1 , .., 11_N ( 3 ) are read and all placeholders for the respective data packets 11_1 , .., 11_N ( 3 ) with the correct license plate values 12_1 , .., 12_N ( 3 ) have been overwritten.

Durch das erfindungsgemäße Verfahren kann eine Parallelisierung von Laden und Weiterverarbeiten von Daten beispielsweise Datenpaketen erzielt werden, obwohl die Hardware, hier der DMA-Controller 1 (1), keine automatisierte Information zurückliefert oder bereitstellt, wieviel Datenpakete 11_1,..,11_N (3) bzw. Daten schon gelesen wurden.The method according to the invention enables the loading and further processing of data, for example data packets, to be parallelized, although the hardware, here the DMA controller 1 ( 1 ), does not return automated information or provides how many data packets 11_1 , .., 11_N ( 3 ) or data has already been read.

Die Vorteile der Erfindung können besonders auch bei Steuerungssystemen in Fahrzeugen, die große Daten zur Verfügung stellen, austauschen bzw. abrufen, eingesetzt werden. Dies ist insbesondere in Fahrzeugen der Fall, die beim hochautomatisierten Fahren eingesetzt werden sollen.The advantages of the invention can also be used in particular in control systems in vehicles that make large data available, exchange or retrieve. This is particularly the case in vehicles that are to be used in highly automated driving.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • DE 102004006767 B4 [0006]DE 102004006767 B4 [0006]

Claims (12)

Datenstruktur (10) zur Übertragung von einer Datenquelle an eine Datensenke durch ein Übertragungsmodul aufweisend: - eine Datei, die in ein oder mehrere aufeinanderfolgende Datenpakete (11_1,..,11_N) unterteilt ist, - einen oder mehrere voneinander verschiedene Kennzeichenwerte (12_1,...,12_N), welche zur Kennzeichnung des jeweiligen Endes des eines oder mehreren Datenpaketes (11_1,.., 11_N) am jeweiligen Ende des einen oder mehreren Datenpaketes (11_1 ,..,11_N) in der Datenstruktur (10) abgelegt sind, - einen Dateikopf (13), welcher zum Aufzeigen der Position der einen oder mehreren voneinander verschiedenen Kennzeichenwerte (12_1,... ,12_N) in der Datei, konfiguriert ist, und welcher ferner zur Angabe zumindest der Größe und der Anzahl der ein oder mehreren Datenpakete (11_1,..,11_N) konfiguriert ist, wobei der Dateikopf (13) weiter so konfiguriert ist, dass vor dem Übertragen der ein oder mehreren Datenpakete (11_1,..,11_N) an eine dafür vorgesehene Datensenke zunächst ein Einlesen eines von dem jeweiligen ein oder mehreren Kennzeichenwerten (12_1,...,12_N) unterschiedlichen Platzhalters in die Datensenke an derjenigen Adresse, an der später der jeweilige Kennzeichenwert (12_1,...,12_N) des ein oder mehreren jeweiligen Datenpaketes (11_1,..,11_N) eingelesen ist, bewirkt wird.A data structure (10) for transmission from a data source to a data sink by a transmission module comprising: - a file which is divided into one or more consecutive data packets (11_1, .., 11_N), - one or more different identifier values (12_1, ..., 12_N), which are used to identify the respective end of the one or more data packets (11_1, .., 11_N) at the respective end of the one or more data packets (11_1, .., 11_N) are stored in the data structure (10), - A file header (13) which is configured to indicate the position of the one or more different identifier values (12_1, ..., 12_N) in the file, and which is also configured to indicate at least the size and the number of the one or more Data packets (11_1, .., 11_N) is configured, the file header (13) further configured so that before the one or more data packets (11_1, .., 11_N) are transmitted to a data sink provided for this purpose, one of the respective one or more identifier values (12_1, ..., 12_N) of different placeholders in the data sink at the address at which the respective identifier value (12_1, ..., 12_N) of the one or more respective data packets (11_1, .. , 11_N) is read in, is effected. Datenstruktur (10) nach Anspruch 1, dadurch gekennzeichnet, dass der Dateikopf (13) derart konfiguriert ist, dass die ein oder mehreren Datenpakete (11_1,..,11_N) in einer vorgegebenen Reihenfolge ausgelesen werden.Data structure (10) Claim 1 , characterized in that the file header (13) is configured in such a way that the one or more data packets (11_1, .., 11_N) are read out in a predetermined order. Datenstruktur (10) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Dateikopf (13) die Größe der Datenstruktur (10) und die Anzahl der Datenpakete (11_1,..,11_N) umfasst.Data structure (10) Claim 1 or 2 , characterized in that the file header (13) includes the size of the data structure (10) and the number of data packets (11_1, .., 11_N). Datenstruktur (10) nach Anspruch 3, dadurch gekennzeichnet, dass der Dateikopf (13) derart konfiguriert ist, dass ein der Größe der Datenstruktur (10) entsprechender Platzbedarf in der Datensenke reserviert wird.Data structure (10) Claim 3 , characterized in that the file header (13) is configured in such a way that a space requirement corresponding to the size of the data structure (10) is reserved in the data sink. Datenstruktur (10) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Datenstruktur (10) zur Speicherung auf einer Datenquelle ausgestaltet ist.Data structure (10) according to one of the preceding claims, characterized in that the data structure (10) is designed for storage on a data source. Steuerungssystem (15) zum Einlesen einer Datenstruktur (10) nach einem der vorhergehenden Ansprüche, das Steuerungssystem (15) umfassend: eine Datensenke mit einem Arbeitsspeicher (5), eine direkte Speicherzugriffseinheit zum direkten Einlesen der Datenstruktur (10) von einer Datenquelle in den Arbeitsspeicher (5) der Datensenke, wobei die direkte Speicherzugriffseinheit dazu ausgebildet ist, zunächst den Dateikopf (13) auszuführen, wobei die Speicherzugriffseinheit ferner dazu konfiguriert ist, durch Ausführen des Dateikopfes (13) den für das Einlesen der ein oder mehreren Datenpakete (11_1,..,11_N) benötigten Arbeitsspeicher (5) mit einer ersten zu beschreibenden Adresse und einer letzten zu beschreibenden Adresse zur Verfügung zu stellen und wobei die direkte Speicherzugriffseinheit dazu konfiguriert ist, in die letzte zu beschreibende Adresse des jeweiligen Datenpaketes (11_1,.., 11_N) einen jeweils von dem Kennzeichenwert (12_1,...,12_N) unterschiedlichen Platzhalter zu speichern, so dass beim Speichern des ein oder mehreren Datenpaketes (11_1,..,11_N) der jeweilige Platzhalter erst dann mit dem Kennzeichenwert (12_1,...,12_N) des ein oder mehreren Datenpaketes (11_1,..,11_N) überschrieben ist, wenn das zu dem jeweiligen Kennzeichenwert (12_1,... ,12_N) gehörende jeweilige Datenpaket (11_1,..,11_N) vollständig in der Datensenke gespeichert ist.Control system (15) for reading in a data structure (10) according to one of the preceding claims, the control system (15) comprising: a data sink with a main memory (5), a direct memory access unit for reading the data structure (10) directly from a data source into the main memory (5) of the data sink, the direct memory access unit being designed to first execute the file header (13), the memory access unit also being configured to perform the File header (13) to provide the main memory (5) required for reading in the one or more data packets (11_1, .., 11_N) with a first address to be written and a last address to be written, and the direct memory access unit being configured for this purpose to store a placeholder different from the identifier value (12_1, ..., 12_N) in the last address of the respective data packet (11_1, .., 11_N) to be written, so that when the one or more data packets (11_1, .., 11_N) are saved, the respective placeholder is only overwritten with the identifier value (12_1, ..., 12_N) of the one or more data packets (11_1, .., 11_N), when the respective data packet (11_1, .., 11_N) belonging to the respective identifier value (12_1, ..., 12_N) is completely stored in the data sink. Steuerungssystem (15) nach Anspruch 6, dadurch gekennzeichnet, dass die Datensenke selber als ein Arbeitsspeicher (5) ausgebildet ist.Control system (15) Claim 6 , characterized in that the data sink itself is designed as a working memory (5). Steuerungssystem (15) nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass die direkte Speicherzugriffseinheit als DMA-Controller (1) ausgebildet ist.Control system (15) Claim 6 or 7th , characterized in that the direct memory access unit is designed as a DMA controller (1). Steuerungssystem (15) nach einem der vorhergehenden Ansprüche 6 bis 8, dadurch gekennzeichnet, dass das Steuerungssystem (15) auf einem SOC (System-on-a-Chip) (14) angeordnet ist.Control system (15) according to one of the preceding Claims 6 to 8th , characterized in that the control system (15) is arranged on an SOC (System-on-a-Chip) (14). Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei, welche auf einer Datenquelle zur Übertragung an eine Datensenke angelegt ist, gekennzeichnet durch die Schritte: - Laden und Auslesen eines Dateikopfes (13) einer Datenstruktur (10) durch einen DMA-Controller (1), wobei die Datenstruktur (10) ein oder mehrere Datenpakete (11_1,..,11_N) mit jeweils einem unterschiedlichen Kennzeichenwert (12_1,... ,12_N) umfasst, wobei der jeweilige Kennzeichenwert (12_1,...,12_N) am einzulesenden Ende des einen oder mehreren Datenpaketes (11_1,..,11_N) angeordnet ist, - Bereitstellen des benötigten Speicherplatzes für die ein oder mehreren Datenpakete (11_1,..,11_N) mit den jeweils einem unterschiedlichen Kennzeichenwert (12_1,...,12_N) in einem Arbeitsspeicher (5) der Datensenke durch den DMA-Controller (1), - Einlesen eines jeweiligen zu den jeweils einem unterschiedlichen Kennzeichenwert (12_1,...,12_N) korrespondierenden Platzhalters an diejenige Adresse, welche für den jeweils einen unterschiedlichen Kennzeichenwert (12_1,...,12_N) in der Datensenke vorgesehen ist, wobei sich der jeweilige Platzhalter von dem jeweiligen Kennzeichenwert (12_1,...,12_N) unterscheidet, so dass beim Speichern des einen oder mehreren Datenpaketes (11_1,.., 11_N) der jeweilige Platzhalter erst dann mit dem jeweiligen Kennzeichenwert (12_1,..., 12_N) des einen oder mehreren Datenpaketes (11_1,..,11_N) überschrieben ist, wenn das zu dem jeweiligen Kennzeichenwert (12_1,...,12_N) gehörende Datenpaket (11_1,..,11_N) vollständig in dem vom DMA-Controller (1) zur Verfügung gestellten Arbeitsspeicher (5) der Datensenke gespeichert ist, - sukzessives Laden und Auslesen der ein oder mehreren Datenpakete (11_1,..,11_N) mit den unterschiedlichen Kennzeichenwerten (12_1,...,12_N).Method for improved loading and further processing of a file which is created on a data source for transmission to a data sink, characterized by the following steps: loading and reading out a file header (13) of a data structure (10) by a DMA controller (1), wherein the data structure (10) comprises one or more data packets (11_1, .., 11_N) each with a different identifier value (12_1, ..., 12_N), the respective identifier value (12_1, ..., 12_N) at the end of the one or several data packets (11_1, .., 11_N) is arranged, - provision of the required storage space for the one or more data packets (11_1, .., 11_N) each with a different identifier value (12_1, ..., 12_N) in a working memory (5) the data sink by the DMA controller (1), - reading in of a respective placeholder corresponding to each of the different identifier values (12_1, ..., 12_N) to the address which is used for the respective different identifier value (12_1 ,. .., 12_N) is provided in the data sink, whereby the respective placeholder differs from the respective identifier value (12_1, ..., 12_N) so that when the one or more data packets (11_1, .., 11_N) are saved, the respective Placeholder is only overwritten with the respective identifier value (12_1, ..., 12_N) of the one or more data packets (11_1, .., 11_N) when the data packet belonging to the respective identifier value (12_1, ..., 12_N) ( 11_1, .., 11_N) vo is permanently stored in the main memory (5) of the data sink made available by the DMA controller (1), - successive loading and reading of the one or more data packets (11_1, .., 11_N) with the different identifier values (12_1, ... , 12_N). Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei nach Anspruch 10, gekennzeichnet durch den weiteren Schritt: - Abfragen, ob der jeweilige Platzhalter für den jeweiligen Kennzeichenwert (12_1,...,12_N) schon mit dem jeweiligen Kennzeichenwert (12_1,...,12_N) überschrieben worden ist.Method for improved loading and further processing of a file Claim 10 , characterized by the further step: - Query whether the respective placeholder for the respective identifier value (12_1, ..., 12_N) has already been overwritten with the respective identifier value (12_1, ..., 12_N). Verfahren zum verbesserten Laden und Weiterverarbeiten einer Datei nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass bei einem Bereitstellen von mehreren Datenpaketen (11_1,..,11_N) bei einem überschriebenen ersten Platzhalter durch den entsprechenden ersten Kennzeichenwert (12_1,...,12_N) eines ersten Datenpaketes (11_1,..,11_N), das zu dem ersten Kennzeichenwert (12_1,... ,12_N) darauffolgende zweite Datenpaket (11_2,..,11_N) mit einem zweiten Kennzeichenwert (12_2,...,12_N) geladen, während das erste, gerade geladene Datenpaket (11_1,..,11_N) weiterverarbeitet wird.Method for improved loading and further processing of a file Claim 10 or 11 , characterized in that when a plurality of data packets (11_1, .., 11_N) are provided, with an overwritten first placeholder by the corresponding first identifier value (12_1, ..., 12_N) of a first data packet (11_1, .., 11_N), the second data packet (11_2, .., 11_N) following the first identifier value (12_1, ..., 12_N) is loaded with a second identifier value (12_2, ..., 12_N), while the first, just loaded data packet (11_1, .., 11_N) is further processed.
DE102019211856.9A 2019-08-07 2019-08-07 Data structure, control system for reading in such a data structure and method Pending DE102019211856A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019211856.9A DE102019211856A1 (en) 2019-08-07 2019-08-07 Data structure, control system for reading in such a data structure and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019211856.9A DE102019211856A1 (en) 2019-08-07 2019-08-07 Data structure, control system for reading in such a data structure and method

Publications (1)

Publication Number Publication Date
DE102019211856A1 true DE102019211856A1 (en) 2021-02-11

Family

ID=74188494

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019211856.9A Pending DE102019211856A1 (en) 2019-08-07 2019-08-07 Data structure, control system for reading in such a data structure and method

Country Status (1)

Country Link
DE (1) DE102019211856A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283883A (en) * 1991-10-17 1994-02-01 Sun Microsystems, Inc. Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
DE102004006767B4 (en) * 2004-02-11 2011-06-30 Infineon Technologies AG, 81669 Method and device for transporting data sections by means of a DMA controller
US8941674B2 (en) * 2012-11-30 2015-01-27 Analog Devices, Inc. System and method for efficient resource management of a signal flow programmed digital signal processor code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283883A (en) * 1991-10-17 1994-02-01 Sun Microsystems, Inc. Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
DE102004006767B4 (en) * 2004-02-11 2011-06-30 Infineon Technologies AG, 81669 Method and device for transporting data sections by means of a DMA controller
US8941674B2 (en) * 2012-11-30 2015-01-27 Analog Devices, Inc. System and method for efficient resource management of a signal flow programmed digital signal processor code

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Dateisystem In: Wikipedia, Die freie Enzyklopädie Bearbeitungsstand: 04.05.2019 um 14:17 Uhr URL: https://de.wikipedia.org/w/index.php?title=Dateisystem&oldid=188211769 [abgerufen am 15.07.2020] *
Direct memory access In: Wikipedia, Die freie Enzyklopädie Bearbeitungsstand: 27.07.2019 um 12:08 Uhr URL: https://en.wikipedia.org/w/index.php?title=Direct_memory_access&oldid=908097646 [abgerufen am 15.07.2020] *

Similar Documents

Publication Publication Date Title
DE602005003987T2 (en) Method of programming a system on chip DMA control, as well as a system on chip for it.
DE4237417C2 (en) Data processing system
DE602005002691T2 (en) Method of programming a system on chip DMA control, as well as a system on chip for it.
DE102009061252B3 (en) Apparatus, method and system for processing a transaction on a PCI bus using a root complex
DE2227882A1 (en) Virtual memory array
DE10048072A1 (en) Direct memory access (DMA) descriptor architecture for access to computer storage devices has increased access speed by enabling one DMA descriptor to contain more that one data pointer
DE112010005609T5 (en) Storing data in one of a plurality of buffers in a memory controller
DE10056827A1 (en) Method of using a data link between a source and a cache, esp. for computer multi-level cache memory, involves transmitting data from source to target along data link while the memory array is bypassed
DE112014000340T5 (en) Prefetching data for a chip with a parent core and a scout core
DE112005002355T5 (en) Device for retrieving data in a processor cache
DE112020003004T5 (en) DMA SCATTER AND GATHER OPERATIONS FOR NONCONTINUOUS MEMORY
DE602004008060T2 (en) USB HOST CONTROLLER WITH MEMORY FOR TRANSFER DESCRIBERS
DE19729618A1 (en) Microprocessor for multiprocessor system
DE2539929C2 (en) Data processing system with a central unit and peripheral device control arrangements connected to the central unit via a bus
EP1079307A1 (en) Method for operating a memory system as well as memory system
EP0347970B1 (en) Read-only memory test method, and device for carrying out the method
DE102006009034B3 (en) Bus system method for operating a bus system has transmission channels for linking masters and slaves to each other and linking each master to an arbiter
DE102019211856A1 (en) Data structure, control system for reading in such a data structure and method
DE112004001248T5 (en) Memory-to-load forwarding buffer using an indexed management
DE10306285A1 (en) Microcomputer system
EP1428105A2 (en) Programme-controlled unit
DE69729598T2 (en) A method and apparatus for address parity checking for multiple overlapping address areas on a common bus
EP1316891B1 (en) Data communication system
DE19580638B4 (en) A computer system and method for controlling a peripheral device in a computer system
DE102021115365A1 (en) OVERHEAD REDUCTION IN DATA TRANSFER PROTOCOL FOR NAND STORAGE

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE

R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, 30165 HANNOVER, DE