-
Bestimmte Ausführungsbeispiele der vorliegenden Erfindung betreffen ein System und ein Verfahren für Speicherdirektzugriff-Transfers. Insbesondere betreffen bestimmte Ausführungsbeispiele der Erfindung ein System und ein Verfahren zum Übertragen von Daten zwischen einem Speicher und einer Peripherie-Einheit über eine Vielzahl von Speicherdirektzugriffs-Transaktionen.
-
Speicherdirektzugriff (DMA, Direct Memory Access) ist ein Merkmal moderner Computer, das es bestimmten Hardware-Teilsystemen innerhalb des Computers erlaubt, unabhängig von einer zentralen Verarbeitungseinheit (CPU) zum Lesen und/oder Schreiben auf den Systemspeicher zuzugreifen. Viele Hardware-Systeme, einschließlich Festplattenlaufwerks-Controller, Grafikkarten, Netzwerkkarten und Sound-Karten, nutzen DMA. Mit DMA-Kanälen versehene Computer können typischerweise Daten mit viel weniger CPU-Aufwand zu und von Vorrichtungen übertragen als Computer ohne DMA-Kanal.
-
DMA wird allgemein verwendet, um es Vorrichtungen zu erlauben, Daten zu übertragen, ohne die CPU einer starken Beanspruchung auszusetzen. Wenn die CPU jedes einzelne Datenelement von der Quelle zu dem Ziel kopieren müsste, würde dies typischerweise langsamer erfolgen als das Kopieren von normalen Speicherblöcken, da der Zugriff auf E/A-Vorrichtungen über einen Peripheriebus im Allgemeinen langsamer erfolgt als bei normalem System-RAM. Während dieser Zeit wäre die CPU für andere Aufgaben nicht verfügbar, bei denen ein CPU-Buszugriff beteiligt ist, obwohl sie mit anderen Vorgängen fortfahren könnte, für die kein Buszugriff erforderlich ist.
-
Bei einem DMA-Transfer wird im Wesentlichen ein Speicherblock von einer Vorrichtung zu einer anderen übertragen. Die CPU leitet diesen Transfer zwar ein, führt ihn aber nicht durch. Der Transfer wird üblicherweise mittels eines DMA-Controllers durchgeführt, der typischerweise Teil eines Chipsatzes auf der Hauptplatine ist. Eine typische Verwendung von DMA besteht darin, einen Speicherblock von dem System-RAM in einen Puffer auf der Vorrichtung oder anders herum zu kopieren, wobei die Operation nicht viel Kapazität des Prozessors erfordert, welcher dadurch zum Durchführen anderer Aufgaben eingeplant werden kann. DMA ist daher ein wesentliches Element von eingebetteten Hochleistungssystemen.
-
Der DMA-Controller überträgt im Allgemeinen Daten von einer Daten-Quellposition zu einer Daten-Zielposition. Bei einigen Anwendungen werden DMA-Transfers in sicherheitskritischen Systemen verwendet, wobei es wichtig ist, dass die DMA-Transfers die richtige Transferoperation durchführen. DMA-Operationen können besonders schwierig zu überprüfen sein, weil die autonome Natur des Prozesses eine umfangreiche Überwachung erfordert.
-
Insbesondere wenn ein DMA verwendet wird, um Daten auf periodische Weise automatisch von einer autonomen Peripherie-Einheit, wie beispielsweise einer seriellen Schnittstelle, einem Analog-Digital-Wandler (ADW) oder einem Eingabeerfassungssystem, zu entladen, wird der DMA oft so konfiguriert, dass er Daten von der Peripherie-Einheit in einen oder mehrere Speicherpuffer verschiebt. Die in dem Speicherpuffer erscheinenden Daten werden typischerweise mittels des Steuersystems für die Echtzeitsteuerung der Systemstellglieder und Kommunikationsschnittstellen verwendet. Die Daten haben daher einen zeitlichen Aspekt, da das System anstatt historischer Daten nur aktuelle, gerade übertragene Daten verwenden sollte. Es ist wichtig zu wissen, dass der Datenpuffer seit der letztmaligen Verwendung der Daten aktualisiert wurde. Daher muss die CPU den Betrieb der DMA-Transfers in Echtzeit überprüfen, wozu ein Dienst mit geringer Latenzzeit erforderlich ist, der die CPU stark beansprucht.
-
Typischerweise führt eine bekannte DMA-Peripherievorrichtung Datentransaktionen innerhalb eines eingebetteten Systems durch, das auch eine Host-CPU aufweist. Die CPU ist für das Überwachen des ordnungsgemäßen Betriebs des DMA zuständig. Eine Folge von verknüpften DMA-Transaktionen wird in die korrekte Reihenfolge gebracht, indem der DMA und der Interrupt-Router so konfiguriert werden, dass sie bei Abschluss der vorhergehenden Transaktion in der Reihenfolge den Start einer neuen DMA-Transaktion auslösen. Eine Folge von verknüpften DMA-Transaktionen wird üblicherweise mittels eines der folgenden Verfahren in die richtige Reihenfolge gebracht:
- • Konfigurieren des DMA-Controllers und des Interrupt-Routers, sodass der Abschluss einer laufenden DMA-Transaktion über einen Hardware-Trigger den Start der nächsten DMA-Transaktion auslöst.
- • Die CPU greift zwischen den einzelnen DMA-Transaktionen ein und leitet den Start der nächsten DMA-Transaktion über einen Software-Trigger ein, wenn sie ein Semaphor der DMA-Datenverkehrsverwaltung empfängt, dass die vorherige DMA-Transaktion abgeschlossen ist.
-
Diese bekannten Ansätze sind mit den folgenden Nachteilen verbunden:
- • Die Überprüfung der zeitlichen Abfolge von DMA-Datenverschiebungen erfordert ein Eingreifen durch die CPU, um die Ablaufplanung von Ereignissen zu bestätigen, während eine Folge von DMA-Transaktionen gerade läuft.
- • Die Nachverarbeitung des DMA-Zustands garantiert keinen ordnungsgemäßen Betrieb.
- • Die Nachverarbeitung der verschobenen Zieldaten beansprucht die CPU stark.
-
Die US 2006 / 0 184 949 A1 offenbart I/O-Adapter, welche Arbeitsanforderungen verwenden, um Informationen an ein Warteschlangenpaar und Arbeitsabschlüsse zu übergeben, um festzustellen, wann eine Arbeitsanforderung abgeschlossen ist. Timing-Informationen in verschiedenen Phasen der Verarbeitung dieser Arbeitsanforderungen ermöglichen es einem Workload-Manager, Verzögerungsquellen zu identifizieren, die sich auf die Transaktionsverarbeitung auswirken. Arbeitsanfragen fordern eine Bearbeitung, die mit einem Zeitstempel gekennzeichnet werden kann. Zu den Verarbeitungsstufen gehören: (1) der Zeitpunkt, zu dem die Arbeitsanforderung in die Sendewarteschlange gestellt wird, (2) der Zeitpunkt, zu dem das erste Paket für diese Arbeitsanforderung auf die Verbindung gesendet wird, (3) der Zeitpunkt, zu dem die Arbeitsanforderung vorliegt seine Verarbeitung abgeschlossen hat, und (4) die Zeit, zu der der Arbeitsabschluss von der Software abgerufen wird. Durch den Vergleich der Zeitstempel ermittelt der Workload Manager die Verarbeitungs- und Transaktionszeiten.
-
Die
US 2008/0 126 612 A1 offenbart einen DMA-Controller, der eine Zählung der in jeder DMA-Operation übertragenen Daten ausführt und die Zählung der übertragenen Daten am Ende der DMA-Operation sichert.
-
Die US 2010 / 0 333 099 A1 offenbart ein Verfahren und eine Schaltungsanordnung, welche eine Arbeitslast in einem Multithread-Prozessor, der mehrere Hardware-Threads enthält, verarbeiten, wobei jeder Thread mindestens eine Nachricht empfängt, die Daten trägt, um die Arbeitslast durch einen jeweiligen Posteingang aus einer Vielzahl von Posteingängen zu verarbeiten.
-
Die
EP 1 098 523 A1 offenbart eine Informationsverarbeitungsvorrichtung, die einen empfangenen Transportstrom aufzeichnet, so dass der empfangene Transportstrom in verschiedenen Wiedergabemodi abgespielt werden kann. Aus dem empfangenen Transportstrom wird ein aufzuzeichnendes Paket extrahiert. An das extrahierte Paket wird ein Zeitstempel angehängt. Das Paket wird zwischengespeichert. Das gespeicherte Paket wird in Einheiten von einem Block einer vorbestimmten Datenmenge gelesen, und ein Index wird angehängt. Der Index enthält Daten, die eine Blockfolgebeziehung angeben, und Benutzerinformationen. Der indizierte Block wird an ein Speichergerät ausgegeben und aufgezeichnet.
-
Die vorliegende Erfindung stellt sich dieser Herausforderung, um Lösungen für die oben erwähnten Nachteile vorzusehen.
-
Ein Verfahren zum Übertragen von Daten zwischen einem Speicher und einer Peripherie-Einheit über eine Vielzahl von Speicherdirektzugriffs-Transaktionen gemäß Anspruch 1, ein System zum Übertragen von Daten mittels einer Vielzahl von Speicherdirektzugriffs-Transaktionen und ein Speicherdirektzugriffs-Controller gemäß Anspruch 10 werden bereitgestellt. Weitere Ausführungsbeispiele sind in den Unteransprüchen beschrieben.
-
Gemäß einer Erscheinungsform sieht die vorliegende Erfindung ein System und ein Verfahren zum Übertragen von Daten zwischen einem Speicher und einer Peripherie-Einheit über eine Speicherdirektzugriffs-Transaktion (DMA-Transaktion), eine DMA-Operation oder ein DMA-Ereignis vor. Das System und das Verfahren umfassen die Zuweisung eines jeweiligen Zeitstempels zu einer DMA-Transaktion bzw. das Anhängen eines jeweiligen Zeitstempels an eine DMA-Transaktion, sodass die relative zeitliche Steuerung verschiedener DMA-Transaktionen verglichen werden kann. Dieser Mechanismus und ein zugewiesener oder angehängter Zeitstempel können verwendet werden, um die Verfolgung verschiedener DMA-Ereignisse oder-Transaktionen zu unterstützen.
-
Gemäß einer weiteren Erscheinungsform sieht die vorliegende Erfindung ein System und einen Mechanismus zum Zuweisen eines jeweiligen Zeitstempels zu den Zieldaten bzw. zum Anhängen eines jeweiligen Zeitstempels an die Zieldaten am Ende einer DMA-Transaktion vor. Die den Zieldaten der DMA-Transaktion, der DMA-Operation bzw. des DMA-Ereignisses zugewiesenen bzw. an diese angehängten Zeitstempel sehen ein Mittel zum Vergleichen des relativen zeitlichen Abschlusses der jeweiligen DMA-Transaktionen vor.
-
Gemäß noch einer weiteren Erscheinungsform sieht die vorliegende Erfindung ein System und einen Mechanismus zum Melden von DMA-Zeitstempeln an eine Host-CPU vor. Dieses Melden von DMA-Zeitstempeln an die Host-CPU erlaubt es der CPU, die interne Verarbeitung der DMA-Ereignisse oder - Transaktionen zu überprüfen. Dadurch kann die ordnungsgemäße Ablaufplanung von DMA-Transaktionen bestätigt werden. Die CPU kann auch eine fehlerhafte Rate der DMA-Operationen, wie beispielsweise Latenzzeit, Ankunftsrate sowie fehlende und/oder wiederholte Folgen erkennen.
-
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird ein jeweiliger Zeitstempel an die endgültigen Zieldaten angehängt, die während der letzten DMA-Schreibverschiebung einer DMA-Transaktion geschrieben werden.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung wird aus einer Binärfolge mit Inkrementierung, zum Beispiel einem frei laufenden Binärzähler, ein Zeitstempel generiert, der Vergleichs- und Rechenoperationen unterstützen kann.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung wird, wenn ein endgültiger DMA-Transfer einer Folge abgeschlossen ist, ein zusätzlicher Transfer automatisch durchgeführt, um den aktuellen Wert eines frei laufenden Zeitgeberzählers zu erfassen und den aktuellen Wert in die nächste Adresse der Ziel-Speicherstruktur zu verschieben.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung können die Zeitstempel nachverarbeitet werden, um die zeitliche Abfolge der DMA-Transaktionen zu überprüfen. Diese Nachverarbeitung von Zeitstempeln kann das zeitliche Überprüfen der Folge von DMA-Transaktionen ermöglichen.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann die Zieladresse des Zeitstempels aus dem DMA-Transaktionssteuerungssatz berechnet werden. Der Zeitstempel kann abgefragt werden, um die Folge einer Reihe von DMA-Transaktionen zu bestätigen.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann die Zieladresse des Zeitstempels aus dem DMA-Transaktions-Controller oder - Steuerungssatz berechnet werden. Bei dieser Anwendung kann der Zeitstempel abgefragt werden, um die Abfolge einer Reihe von DMA-Transaktionen zu bestätigen.
-
Gemäß einem weiteren Ausführungsbeispiel kann die vorliegende Erfindung in Anwendungen zur Motorsteuerung eines Fahrzeugs verwendet werden. Wenn ein ADW verwendet wird, um den effektiven Motorstrom abzutasten, zum Beispiel über einen Shunt-Widerstand oder einen Hall-Effekt-Sensor, korreliert der Strom mit dem unmittelbaren Motordrehmoment. Da es sich bei dem Motordrehmoment um einen wesentlichen Sicherheitsaspekt handelt, zeigt der Zeitstempel, dass der ADW erfolgreich ausgelöst wurde und zum richtigen Zeitpunkt gewandelt hat.
-
Gemäß einer weiteren Erscheinungsform der vorliegenden Erfindung wird den zwischen einem Speicher und einer oder mehreren Peripherie-Einheiten zu übertragenden Daten ein Zeitstempel zugewiesen, wobei die Daten zusammen mit dem jeder DMA-Transaktion, jeder DMA-Operation oder jedem DMA-Ereignis zugewiesenen und/oder an jede DMA-Transaktion, jede DMA-Operation oder jedes DMA-Ereignis angehängten Zeitstempel mittels einer Speicherdirektzugriffs-Steuerung (DMA-Steuerung) zwischen dem Speicher und der einen oder den mehreren Peripherie-Einheiten übertragen werden.
-
Bei dieser Anwendung muss der ADW zu einem Zeitpunkt ausgelöst werden, der mit dem Phasenabgleich der Pulsbreitenmodulation (PBM) des Motors synchronisiert ist, da, wenn der Motor zum falschen Zeitpunkt abgetastet wird, die Regelung instabil sein kann und das gemeldete Drehmoment möglicherweise nicht korrekt ist. Daher wird der ADW von einem Zeitgeber ausgelöst, der auch für den Phasenabgleich des Motors zuständig ist, aber wenn der Vergleich oder der Zeitgeber gestört ist oder nicht mit der richtigen Rate arbeitet, kann daraus eine Störung resultieren.
-
Die vorliegende Erfindung sieht einen DMA-Controller vor, der eine Zeitstempel-Funktionalität vorsieht. Die vorliegende Erfindung sieht ein neues Leistungsmerkmal vor, das ein einzigartiges Verfahren für Folgendes ermöglicht:
- • Nachweis, dass der Betrieb des DMA durch das richtige Ereignis ausgelöst wurde.
- • Nachweis, dass die Zieldaten mittels eines neuen Datenblocks aktualisiert wurden.
-
Somit sieht die vorliegende Erfindung einen vorteilhaften Betrag zu aktuellen Umsetzungen nach dem Stand der Technik vor, wobei es bislang schwierig war, die Plausibilität des ADW zu bestimmen, es sei denn, es wird eine echte Interrupt-Service-Routine verwendet. Bei bekannten Anwendungen kann die CPU lediglich Daten aus dem ADW entladen und außerdem einen unabhängigen Zeitgeber lesen, um zu überprüfen, ob das Trigger-Ereignis zu dem richtigen Zeitpunkt eintritt. Typischerweise erfolgt der Phasenabgleich des Motors bei einer Rate von 50 µs, und dies erzeugt ein umfangreiches Interrupt-Laden, insbesondere da 2 oder 3 ADW-Messungen pro Motorschaltzyklus erforderlich sind und eine Anwendung mehrere Motoren über einen Kern steuern lassen kann.
-
Gemäß einer Erscheinungsform wird ein Verfahren zum Übertragen von Daten zwischen einem Speicher und einer Peripherie-Einheit über eine Vielzahl von Speicherdirektzugriffs-Transaktionen (DMA-Transaktionen) vorgesehen, wobei das Verfahren Folgendes umfasst:
- Zuweisen eines jeweiligen Zeitstempels zu und/oder Anhängen eines jeweiligen Zeitstempels an jede DMA-Transaktion von wenigstens zwei von der Vielzahl von DMA-Transaktionen.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Verwenden des jeder DMA-Transaktion zugewiesenen bzw. an jede DMA-Transaktion angehängten Zeitstempels, um eine relative Zeitsteuerung der verschiedenen DMA-Transaktionen zu vergleichen.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Verwenden des jeder DMA-Transaktion zugewiesenen bzw. an jede DMA-Transaktion angehängten Zeitstempels, um eine Verfolgung der verschiedenen DMA-Transaktionen zu unterstützen.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Zuweisen eines Zeitstempel zu und/oder Anhängen eines Zeitstempels an Zieldaten einer DMA-Transaktion.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Verwenden des den Zieldaten verschiedener DMA-Transaktionen zugewiesenen bzw. an die Zieldaten verschiedener DMA-Transaktion angehängten Zeitstempels, um einen relativen zeitlichen Abschluss der jeweiligen DMA-Transaktionen zu vergleichen.
-
Zweckmäßigerweise wird der Zeitstempel an die endgültigen Zieldaten angehängt, die während der letzten DMA-Schreiboperation der DMA-Transaktion geschrieben werden.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Verarbeiten der den DMA-Transaktionen zugewiesenen bzw. an die DMA-Transaktionen angehängten Zeitstempel, um zu überprüfen, ob die Zieldaten durch einen neuen Datenblock aktualisiert wurden.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Melden der den DMA-Transaktion zugewiesenen bzw. an die DMA-Transaktionen angehängten Zeitstempel an eine Host-CPU (zentrale Verarbeitungseinheit).
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Generieren des Zeitstempels aus einer Binärfolge mit Inkrementierung oder einem frei laufenden Zeitgeberzähler, um Vergleichs- und Rechenoperationen zu unterstützen.
-
Das Verfahren umfasst ferner Folgendes:
- Durchführen eines zusätzlichen Transfers, um den aktuellen Wert eines Zeitgeberzählers zwischenzuspeichern und den aktuellen Wert in die nächste Adresse einer Ziel-Speicherstruktur zu verschieben, wenn ein endgültiger DMA-Transfer einer Folge von DMA-Transfers abgeschlossen ist.
-
Zweckmäßigerweise umfasst das Verfahren ferner Folgendes:
- Verarbeiten der den DMA-Transaktionen zugewiesenen bzw. an die DMA-Transaktion angehängten Zeitstempel, um eine zeitliche Abfolge von DMA-Transaktionen zu überprüfen.
-
Gemäß einer Erscheinungsform wird ein System zum Übertragen von Daten mittels einer Vielzahl von Speicherdirektzugriffs-Transaktionen (DMA-Transaktionen) vorgesehen, wobei das System zu Folgendem geeignet ist:
- Zuweisen eines jeweiligen Zeitstempels zu und/oder Anhängen eines jeweiliges Zeitstempels an die zu übertragenden Daten; und
- Übertragen der Daten zusammen mit dem jeder DMA-Transaktion zugewiesenen und/oder an jede DMA-Transaktion angehängten Zeitstempel mittels einer DMA-Steuerung.
-
Zweckmäßigerweise weist das System ferner Folgendes auf:
- eine Host-CPU (zentrale Verarbeitungseinheit), die geeignet ist, die den DMA-Transaktionen zugewiesenen und/oder an die DMA-Transaktionen angehängten Zeitstempel zu verwenden, um die interne Verarbeitung der DMA-Transaktionen zu überprüfen, um die korrekte Ablaufplanung von DMA-Transaktionen zu überprüfen und/oder um eine fehlerhafte Rate, Latenzzeit, Ankunftsrate, fehlende und/oder wiederholte Folgen von DMA-Transaktionen zu erkennen.
-
Zweckmäßigerweise weist das System ferner Folgendes auf:
- einen Analog-Digital-Wandler (ADW), der geeignet ist, einen oder mehrere Betriebsparameter über die Vielzahl von Speicherdirektzugriffs-DMA-Transaktionen abzutasten und zu übertragen, wobei die CPU geeignet ist, die den DMA-Transaktionen zugewiesenen oder an die DMA-Transaktionen angehängten Zeitstempel zu verwenden, um zu überprüfen, ob der ADW zu einem vorbestimmten Zeitpunkt ausgelöst wurde und/oder gewandelt hat.
-
Gemäß einer Erscheinungsform weist ein Speicherdirektzugriffs-Controller (DMA-Controller) Folgendes auf:
- einen Transferabschnitt, der so konfiguriert ist, dass er Daten über eine Vielzahl von Speicherdirektzugriffs-DMA-Transaktionen überträgt, wobei der DMA-Controller geeignet ist, einen jeweiligen Zeitstempel jeder DMA-Transaktion von wenigstens zwei von der Vielzahl der DMA-Transaktionen zuzuweisen und/oder an jede DMA-Transaktion von wenigstens zwei von der Vielzahl der DMA-Transaktionen anzuhängen.
-
Diese und weitere Vorteile, Aspekte und neuartige Merkmale der vorliegenden Erfindung sowie Einzelheiten eines veranschaulichten Ausführungsbeispiels davon sind anhand der folgenden Beschreibung und der Zeichnungen besser verständlich.
-
Figurenliste
-
Die begleitenden Zeichnungen sind beigefügt, um ein tieferes Verständnis der vorliegenden Erfindung zu ermöglichen, und sind in diese Schrift aufgenommen und bilden einen Teil davon. Die Zeichnungen veranschaulichen die Ausführungsbeispiele der vorliegenden Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erklären. Andere Ausführungsbeispiele der vorliegenden Erfindung und viele der angestrebten Vorteile der vorliegenden Erfindung können ohne Weiteres gewürdigt werden, da sie durch Bezugnahme auf die folgende ausführliche Beschreibung besser verstanden werden. Die Elemente der Zeichnungen sind in Bezug zueinander nicht unbedingt maßstabsgetreu. Gleiche Bezugszeichen bezeichnen sich entsprechende, ähnliche Teile.
- 1 ist ein Schemadiagramm, welches das Generieren eines Zeitstempels gemäß einem Ausführungsbeispiel gemäß der vorliegenden Erfindung veranschaulicht; und
- 2 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an 16-Bit-Quelldaten, die in 32-Bit-Zieldaten umgepackt wurden, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
- 3 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an 16-Bit-Quelldaten, die in 16-Bit-Zieldaten verschoben wurden, gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
- 4 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an eine Zieladresse mit Dekrementierung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Ausführungsbeispiele dargestellt sind, mit denen die Erfindung in die Praxis umgesetzt werden kann. Es versteht sich, dass weitere Ausführungsbeispiele verwendet werden können und strukturelle oder logische Änderungen vorgenommen werden können, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Die folgende ausführliche Beschreibung soll daher nicht in beschränkendem Sinne aufgefasst werden, und der Schutzumfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche definiert.
-
Die vorliegende Erfindung betrifft das Übertragen von Daten zwischen einem Speicher und einer Peripherie-Einheit, wie zum Beispiel einer seriellen Schnittstelle, einem Switch oder Router, usw., die eine Speicherdirektzugriffs-Steuerung (DMA-Steuerung) verwendet.
-
1 zeigt ein Schemadiagramm, das ein Ausführungsbeispiel gemäß der vorliegenden Erfindung veranschaulicht. In diesem Ausführungsbeispiel der vorliegenden Erfindung kann das Generieren des Zeitstempels wie folgt durchgeführt werden:
-
Ein Systemtakt wird durch 8 geteilt, um einen langsameren Zeitstempel-Basistakt zu generieren, um einen 32-Bit-Synchron-Aufwärtszähler zu takten. Der Zähler startet automatisch nach dem Zurücksetzen, und der 32-Bit-Binärzeitstempel wird bei jeder steigenden Flanke des Zeitstempel-Basistakts inkrementiert. Der 32-Bit-Binärzeitstempel wird kontinuierlich inkrementiert, während der Systemtakt läuft, was die Eindeutigkeit jedes Zeitstempelwertes sicherstellt.
-
Der Zeitstempel kann nur durch die Zusicherung einer Rücksetzung geändert werden, wodurch der Zeitstempel zu seinem Anfangswert zurückkehrt. Beim Freigeben der Rücksetzung beginnt der Zeitstempel wieder eine Aufwärtszählfolge. Falls der Zeitstempel einen vorbestimmten Schwellenwert übersteigt, wird der Zeitstempel auf den Anfangswert zurückgesetzt, und er beginnt dann wieder eine Aufwärtszählfolge. Der Zeitstempelwert kann zum Beispiel durch eine geeignete Software gelesen werden.
-
Unter Bezugnahme auf 1 kann, vorausgesetzt, die Frequenz des Systemtakts fSYS beträgt 100 MHz, der Teiler für das Teilen durch 8 einen Zeitstempel-Eingangstakt mit 12,5 MHz generieren. Daher wird der 32-Bit-Binär-Zeitstempelzähler alle 80 ns inkrementiert. Der Zeitstempel wird mit einer Rate inkrementiert, die der Rate der DMA-Transaktionen entspricht. Wenn der Zeitstempel mit einer schnelleren Rate als der Rate der DMA-Transaktionen inkrementiert wird, kann er zu oft überlaufen, was übermäßig viel Strom verbraucht. Wenn der Zeitstempel mit einer langsameren Rate als der Rate der DMA-Transaktionen inkrementiert wird, kann es sein, dass eine DMA-Transaktion nicht mit einem eindeutigen Zeitstempel versehen wird.
-
2 zeigt ein Schemadiagramm, das ein DMA-Ereignis oder einen DMA-Transfer gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht. In 2 sind ein Quellspeicher und ein Zielspeicher mit einer Quelladresse mit Inkrementierung 1CH, 18H, 14H, 10H, 0CH, 08H, 04H bzw. 00H, gezeigt. Bei dem veranschaulichten Beispiel werden während des DMA-Transfers, der DMA-Operation oder der DMA-Transaktion zwei je 16 Bit lange Halbwörter, die mittels der Bitnummern 0-15 und 16-31 veranschaulicht sind, über einen DMA-Transfer, eine DMA-Operation oder eine DMA-Transaktion von einem Quellspeicher mit Quelladressen mit Inkrementierung 1CH, 18H, 14H, 10H, OCH, 08H, 04H, 00H in einen Zielspeicher mit Zieladressen mit Inkrementierung 1CH, 18H, 14H, 10H, 0CH, 08H, 04H, 00H übertragen. Bei diesem DMA-Transfer wird ein jeweiliger Zeitstempel an der unmittelbar nächsthöheren, ausgerichteten 32-Bit-Zieladresse am Ende der Zieldaten der DMA-Transaktion angehängt. Bei dem veranschaulichten Beispiel wird der Zeitstempel an der Zieladresse 08H gespeichert.
-
Alternativ können ein Quellspeicher und ein Zielspeicher mit einer Quelladresse mit Inkrementierung SADR + 00H, SADR + 08H, SADR + 10H bzw. SADR + 18H verwendet werden. In diesem Beispiel werden während des DMA-Transfers, der DMA-Operation oder der DMA-Transaktion zwei 16 Bit lange Halbwörter, die mittels der Bitnummern 0-15 und 16-31 veranschaulicht sind, über einen DMA-Transfer, eine DMA-Operation oder eine DMA-Transaktion von einem Quellspeicher mit Quelladressen mit Inkrementierung SADR + 00H, SADR + 08H, SADR + 10H, SADR + 18H an einen Zielspeicher mit Zieladressen mit Inkrementierung DADR + 00H, DADR + 02H, DADR + 04H, DADR + 06H übertragen. Bei diesem DMA-Transfer wird ein jeweiliger Zeitstempel an der unmittelbar nächsthöheren, ausgerichteten 32-Bit-Zieladresse am Ende der Zieldaten der DMA-Transaktion angehängt. In dem veranschaulichten Beispiel wird der Zeitstempel an der Zieladresse 08H gespeichert.
-
2 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an 16-Bit-Quelldaten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht. Das Anhängen eines Zeitstempels ist im Folgenden mittels eines Beispiels unter Bezugnahme auf 2 beschrieben.
-
Ein DMA-Kanal ist so konfiguriert, dass er eine aus vier DMA-Verschiebungen bestehende DMA-Transaktion durchführt. Bei jeder DMA-Verschiebung wird ein 16 Bit langes Datenmuster von einer Quelladresse an eine Zieladresse übertragen. Die vier 16 Bit langen Datenmuster an den Quelladressen werden als zwei 32 Bit lange Wörter an aufeinander folgenden Zieladressen umgepackt. Das Übertragen der vier Datenmuster mittels des DMA-Controllers ist eine wiederholt durchgeführte Aufgabe. Der DMA-Transaktionssteuerungssatz ist als Ringpuffer konfiguriert. Der DMA-Kanal ist so konfiguriert, dass er einen jeweiligen Zeitstempel an das Ende einer DMA-Transaktion anhängt, wie in dem Beispiel gezeigt. Der an das Ende der aktuellen DMA-Transaktion angehängte Zeitstempel unterscheidet sich von dem an das Ende der nächsten DMA-Transaktion angehängten Zeitstempel. Der DMA verschiebt die vier Datenmuster, wie in der folgenden beispielhaften Tabelle gezeigt:
Datenmuster | Quelle | Ziel |
Datenmuster Dn0 | SADR + 00H | DADR + 00H |
Datenmuster Dn1 | SADR + 08H | DADR + 02H |
Datenmuster Dn2 | SADR + 10H | DADR + 04H |
Datenmuster Dn3 | SADR + 18H | DADR + 08H |
-
Jede Wiederholung der DMA-Transaktion ergibt vier DMA-Verschiebungen, welche die an den Zieladressen gespeicherten Datenmuster überschreiben. Bei jeder DMA-Verschiebung wird ein Datenmuster an einer Quelladresse überschrieben.
-
Wenn davon ausgegangen wird, dass die vier Datenmuster während jeder Analyse von der CPU analysiert werden, kann die CPU den Zeitstempel an eine andere Adresse kopieren. Wenn die CPU die nächste Analyse durchführt, kann sie die Zeitstempel vergleichen, um zu überprüfen, ob ein Differenzwert vorliegt. Wenn sich die Zeitstempel nicht voneinander unterscheiden, überprüft die CPU, ob neue Datenmuster geladen worden sind. Wenn sich die Zeitstempel voneinander unterscheiden, überprüft die CPU, ob der aktuelle Zeitstempel größer ist als der vorherige Zeitstempel. Typischerweise ist der aktuelle Zeitstempel größer als der vorherige Zeitstempel, es sei denn, der Binär-Zeitstempelzähler ist übergelaufen. Dies führt dazu, dass das Analysieren der generierten Zeitstempel gemäß der vorliegenden Erfindung es dem Benutzer erlaubt zu bestimmen, ob eine DMA-Transaktion stattgefunden hat.
-
3 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an 16-Bit-Quelldaten gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht. Bei diesem Ausführungsbeispiel wird der Zeitstempel an der unmittelbar nächsthöheren, ausgerichteten 32-Bit-Zieladresse am Ende der Zieldaten der DMA-Transaktion angehängt.
-
Bei der DMA-Transaktion werden die vier 16-Bit-Muster an ausgerichteten 32-Bit-Zieladressen gespeichert, und der Zeitstempel wird an der jeweils unmittelbar nächsthöheren, ausgerichteten 32-Bit-Zieladresse geschrieben.
-
4 ist ein Schemadiagramm, das einen DMA-Transfer mit Anhängen eines Zeitstempels an eine Zieladresse mit Dekrementierung gemäß noch einem weiteren Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht. Bei diesem Ausführungsbeispiel wird der Zeitstempel an die unmittelbar nächstniedrigere, ausgerichtete 32-Bit-Adresse an der Zieladresse DADR + 0C
H angehängt, wie in
4 veranschaulicht. In diesem Beispiel der vorliegenden Erfindung werden die Quell- und Zieladresse dekrementiert, und der DMA verschiebt die vier Datenmuster, wie in der folgenden beispielhaften Tabelle gezeigt:
Datenmuster | Quelle | Ziel |
Datenmuster Dn0 | SADR + 1CH | DADR + 1CH |
Datenmuster Dn1 | SADR + 14H | DADR + 18H |
Datenmuster Dn2 | SADR + 0CH | DADR + 14H |
Datenmuster Dn3 | SADR + 04H | DADR + 10H |
-
Die von der vorliegenden Erfindung vorgesehene Zeitstempel-Funktionalität ermöglicht ein neues Leistungsmerkmal, um zu beweisen, dass der Betrieb des DMA mittels des richtigen Ereignisses ausgelöst wurde, und um zu beweisen, dass die Zieldaten durch einen neuen Datenblock aktualisiert wurden.
-
Das Anhängen von Zeitstempeln an die Zieldaten der DMA-Transaktion, der DMA-Operation oder des DMA-Ereignisses gemäß der vorliegenden Erfindung kann ferner ein Verfahren zum Verfolgen des Abschlusses von DMA-Transaktionen vorsehen. Hierbei können Zeitstempel durch Vergleichen von zwei Zeitstempelwerten überprüft werden. Des Weiteren kann der Zeitraum zwischen dem Abschluss von zwei DMA-Transaktionen berechnet werden. Dadurch können wiederholte und fehlende Transfers sowie Transfers mit fehlerhafter Ankunftsrate und/oder Latenzzeit bestimmt werden. Durch den relativen Abschluss von ablaufgeplanten DMA-Transfers können Umkehrungen der Buspriorität und andere Probleme mit der Zeitsteuerung von Datenübertragungen erkannt werden.
-
Während die Erfindung unter Bezugnahme auf bestimmte Ausführungsbeispiele beschrieben wurde, werden die Fachleute auf diesem Gebiet verstehen, dass verschiedene Änderungen daran vorgenommen werden können und Äquivalente als Ersatz verwendet werden können, ohne dass von dem Schutzumfang der vorliegenden Erfindung abgewichen wird. Zusätzlich können zahlreiche Modifizierungen vorgenommen werden, um eine bestimmte Situation oder ein bestimmtes Material an die Lehren der vorliegenden Erfindung anzupassen, ohne dass dabei von ihrem Schutzumfang abgewichen wird. Daher ist beabsichtigt, dass die vorliegende Erfindung nicht auf das bestimmte, offenbarte Ausführungsbeispiel beschränkt ist, sondern dass die vorliegende Erfindung alle Ausführungsbeispiele umfasst, die unter den Schutzumfang der angehängten Ansprüche fallen.