-
VERWANDTE PATENTANMELDUNG
-
Diese Anmeldung beansprucht die Priorität vor der im gemeinsamen Besitz befindlichen vorläufigen US-Patentanmeldung Seriennummer
62/811,400 ; eingereicht am 27. Februar 2019; mit dem Titel „Programmable Arbitrary Sequence Direct Memory Access Controller for Configuring Multiple Core Independent Peripherals“ von Keith Edwin Curtis; und wird hiermit für alle Zwecke durch Bezugnahme hierin aufgenommen.
-
TECHNISCHES GEBIET DER ERFINDUNG
-
Die vorliegende Offenbarung bezieht sich auf eine Steuerung des direkten Speicherzugriffs (DMA) und insbesondere auf einen programmierbaren reihenfolgebeliebiger DMA-Controller zum Konfigurieren mehrerer kernunabhängiger Peripheriegeräte (CIPs).
-
HINTERGRUND DER ERFINDUNG
-
Ein kernunabhängiges Peripheriegerät wird als ein Peripheriegerät angesehen, das nicht von der CPU gesteuert werden muss, um seine Funktion auszuführen. Beispielsweise muss ein herkömmlicher Analog-Digital-Wandler von der CPU gesteuert werden, um jeden Wert abzutasten, und die CPU muss das Ergebnis speichern, sobald es erhalten wurde. Eine kernunabhängige Version eines solchen Analog-Digital-Wandlers kann immer noch von der CPU konfiguriert werden, aber sobald sie konfiguriert wurde, kann sie unabhängig von der CPU arbeiten und kann beispielsweise unabhängig ausgelöst werden und Ergebnisse an bestimmten Orten speichern. Andere kernunabhängige Peripheriegeräte können implementiert werden, was es ermöglicht, die CPU von Steuerungsaufgaben zu befreien und somit die Verarbeitungsleistung eines Mikrocontrollers zu erhöhen. Einer der Hauptvorteile von kernunabhängigen Peripheriegeräten (CIPs) besteht darin, dass sie im laufenden Betrieb rekonfiguriert werden können, um die Leistung oder den Betrieb des CIP, eines Pseudo-Peripheriegeräts, zu ändern. Leider können die CIP-Konfigurationsregister über mehrere speicherabgebildete Spezialfunktionsregister-(SFR)-Adressenbänke verstreut sein. Die Verwendung von Programmfirmware zum Durchführen einer CIP-Rekonfiguration ist ebenfalls relativ langsam und verursacht eine Latenzzeit als Reaktion auf ein externes Signal.
-
Ein Verfahren, das verwendet werden kann, besteht darin, zwei DMA-Peripheriegeräte zusammen zu konfigurieren, von denen eines auf die SFR-Adressliste aus dem Speicher zugreift und dann das zweite DMA-Peripheriegerät mit diesen SFR-Adressen programmiert, das dann die tatsächlichen CIP-Rekonfigurationsdatenübertragungen an die CIP-SFRs durchführt. Dies ist sehr ineffizient, da mehrere Register dupliziert werden und die Schreibgeschwindigkeit langsamer ist. Es erfordert auch, dass die beiden DMA-Peripheriegeräte so querverbunden sind, dass sie sich gegenseitig triggern. Wenn eines der DMA-Peripheriegeräte einen Fehler oder einen Fehlerzustand trifft, schlägt die DMA-Operation fehl.
-
ZUSAMMENFASSUNG
-
Was daher benötigt wird, ist ein programmierbarer reihenfolgebeliebiger Direktspeicherzugriffs- (DMA-) Controller, der extern getriggert werden kann und in einer programmierbaren Reihenfolge auch zu verschiedenen nicht-sequentiellen Speicherplätzen springen kann.
-
Gemäß einer Ausführungsform kann ein programmierbarer reihenfolgebeliebiger Direktspeicherzugriffs- (DMA-) Controller aufweisen: ein erstes Adresszeigerregister; ein zweites Adresszeigerregister; einen Datenzwischenspeicher, der mit einem ersten Datenbus gekoppelt ist; einen Adresszwischenspeicher, der mit einem zweiten Datenbus gekoppelt ist; einen Multiplexer mit einem ersten Eingang, der mit dem ersten Adresszeigerregister gekoppelt ist, einem zweiten Eingang, der mit dem Adresszwischenspeicher gekoppelt ist, einem dritten Eingang, der mit dem zweiten Adresszeigerregister gekoppelt ist, und einem Ausgang, der mit einem Adressbus gekoppelt ist; und eine Steuerlogik, die mit den ersten und zweiten Adresszeigerregistern, dem Adresszwischenspeicher, dem Multiplexer und dem Datenzwischenspeicher gekoppelt ist und diese steuert.
-
Gemäß einer weiteren Ausführungsform kann die Steuerlogik mit einer Buszuteilungslogik kommunizieren. Gemäß einer weiteren Ausführungsform kann der Datenzwischenspeicher in den ersten Datenbus schreiben und von diesem lesen. Gemäß einer weiteren Ausführungsform kann der erste Datenbus mit einem Datenspeicher gekoppelt sein. Gemäß einer weiteren Ausführungsform kann der zweite Datenbus mit einem Programmspeicher gekoppelt sein. Gemäß einer weiteren Ausführungsform kann der Programmspeicher ein nichtflüchtiger Speicher sein. Gemäß einer weiteren Ausführungsform kann der nichtflüchtige Speicher ein programmierbarer Flash-Speicher sein. Gemäß einer weiteren Ausführungsform kann der Datenspeicher ein Direktzugriffsspeicher (RAM) sein. Gemäß einer weiteren Ausführungsform können der erste und der zweite Datenbus mit einem Speicher gekoppelt sein. Gemäß einer weiteren Ausführungsform können erste und zweite Bytezähler mit der Steuerlogik kommunizieren und können eine Anzahl übertragener Datenbytes zählen.
-
Gemäß einer anderen Ausführungsform kann ein Verfahren zur indirekten Speicheradressierung mit einem programmierbaren reihenfolgebeliebigen Direktspeicherzugriffs- (DMA-) Controller die Schritte aufweisen: Lesen einer Registeradresse, die an einer durch ein erstes Adresszeigerregister spezifizierten Speicheradresse gespeichert ist; Speichern der Registeradresse in einem Adresszwischenspeicher; Lesen von Konfigurationsdaten, die an einer anderen Speicheradresse gespeichert sind, die durch ein zweites Adresszeigerregister spezifiziert ist; Speichern der Konfigurationsdaten in einem Datenzwischenspeicher; und Schreiben der im Datenzwischenspeicher gespeicherten Konfigurationsdaten in ein Register an der im Adresszwischenspeicher gespeicherten Registeradresse.
-
Gemäß einer weiteren Ausführungsform kann das Verfahren den Schritt des Koppelns des Datenzwischenspeichers mit einem ersten Datenbus und Datenspeicher aufweisen. Gemäß einer weiteren Ausführungsform kann das Verfahren den Schritt des Koppelns des Adresszwischenspeicher mit einem zweiten Datenbus und Programmspeicher aufweisen. Gemäß einer weiteren Ausgestaltung des Verfahrens kann das Register ein peripheres Register sein. Gemäß einer weiteren Ausgestaltung des Verfahrens kann das periphere Register ein Sonderfunktionsregister sein. Gemäß einer weiteren Ausführungsform des Verfahrens kann das Spezialfunktionsregister einem kernunabhängigen Peripheriegerät (CIP) zugeordnet sein. Gemäß noch einer weiteren Ausführungsform weist ein Verfahren zur indirekten Speicheradressierung mit einem programmierbaren reihenfolgebeliebigen Direktspeicherzugriffs- (DMA-) Controller die Schritte auf: Lesen einer Registeradresse, die an einer durch ein erstes Adresszeigerregister spezifizierten Speicheradresse gespeichert ist; Speichern der Registeradresse in einem Adresszwischenspeicher; Lesen von Konfigurationsdaten, die in einem peripheren Register gespeichert sind, das eine Speicheradresse aufweist, die durch die Registeradresse im Adresszwischenspeicher spezifiziert ist; Speichern der Konfigurationsdaten in einem Datenzwischenspeicher; und Schreiben der Konfigurationsdaten in einen Speicher an einer durch ein zweites Adresszeigerregister spezifizierten Adresse.
-
Gemäß einer weiteren Ausführungsform kann das Verfahren den Schritt des Koppelns des Datenzwischenspeichers mit einem ersten Datenbus und Datenspeicher aufweisen. Gemäß einer weiteren Ausführungsform kann das Verfahren den Schritt des Koppelns des Adresszwischenspeicher mit einem zweiten Datenbus und Programmspeicher aufweisen. Gemäß einer weiteren Ausgestaltung des Verfahrens kann das Register ein peripheres Register sein. Gemäß einer weiteren Ausgestaltung des Verfahrens kann das periphere Register ein Sonderfunktionsregister sein. Gemäß einer weiteren Ausführungsform des Verfahrens kann das Spezialfunktionsregister einem kernunabhängigen Peripheriegerät (CIP) zugeordnet sein.
-
Figurenliste
-
Ein vollständigeres Verständnis der vorliegenden Offenbarung kann durch Bezugnahme auf die folgende Beschreibung in Verbindung mit den begleitenden Zeichnungen erlangt werden, wobei:
- 1 ein schematisches Blockschaltbild eines Direktspeicherzugriffs-(DMA)-Controllers gemäß Stand der Technik veranschaulicht;
- 2 ein schematisches Blockdiagramm eines programmierbaren reihenfolgebeliebigen DMA-Controllers gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung veranschaulicht;
- 3 ein schematisches Flussdiagramm des Betriebs des programmierbaren reihenfolgebeliebigen DMA-Controllers nach 2 veranschaulicht, der neue Konfigurationsdaten gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung in einen Speicherort für beliebige Reihenfolge lädt;
- 4 ein schematisches Flussdiagramm des Betriebs des programmierbaren reihenfolgebeliebigen DMA-Controllers von 2 veranschaulicht, der vorhandene Konfigurationsdaten gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung aus einem Speicherort für beliebige Reihenfolge liest; und
- 5 ein schematisches Blockschaltbild von sequentiellen und nicht-sequentiellen Speicherplätzen veranschaulicht.
-
Während die vorliegende Offenbarung verschiedenen Modifikationen und alternativen Formen zugänglich ist, wurden spezifische beispielhafte Ausführungsformen davon in den Zeichnungen gezeigt und hierin im Detail beschrieben. Es versteht sich jedoch, dass die hierin beschriebene Beschreibung spezifischer beispielhafter Ausführungsformen die Offenbarung nicht auf die hierin offenbarten Formen beschränken soll.
-
DETAILLIERTE BESCHREIBUNG
-
Ausführungsformen der vorliegenden Offenbarung können einen programmierbaren reihenfolgebeliebigen DMA-Controller aufweisen. Auf eine Seite einer Speichersystemadresse (Quelle oder Ziel) wird normal (sequentiell) unter Verwendung von Quellen-/Zieladressenregistern und einem Zähler zugegriffen. Auf die zweite Seite des Speichersystems (Ziel oder Quelle) wird indirekt zugegriffen. Ein Adressregister hält eine Adresse eines Speicherplatzes. Der Speicherplatz enthält den tatsächlichen Speicherplatz, auf den zugegriffen werden soll. Unter Verwendung dieser Methode, kann zum Beispiel, jedoch ohne Einschränkung, eine Liste von Sonderfunktionsregisteradressen (SFR) in den Speicher programmiert werden, und wenn der DMA ausgelöst wird, werden die Daten in der von einer Liste im Programm vorgegebenen Reihenfolge an die SFR-Adressen übertragen. SFRs sind im Allgemeinen Register zum Konfigurieren und Steuern der Funktionalität verschiedener Peripheriegeräte. Für einen einfachen Zugriff auf diese Register sind sie auf den Datenspeicherplatz speicherabgebildet.
-
Gemäß bestimmten beispielhaften Ausführungsformen dieser Offenbarung kann der programmierbare reihenfolgebeliebige DMA-Controller die Inhalte mehrerer Peripheriegeräte in den Speicher oder vom Speicher in die Peripherie-SFRs kopieren, ohne dass die Adressen der SFRs in sequentieller Reihenfolge vorliegen müssen. Es ermöglicht dem DMA auch, die Peripheriegeräte möglicherweise auf eine von mehreren voreingestellten Konfigurationen umzukonfigurieren, indem einfach auf verschiedene Listen Bezug genommen wird. Der DMA kann auch durch ein externes Signal getriggert werden, das ein dynamisches System erzeugt, das die SFRs rekonfigurieren kann, z. B. von den CIPs als Reaktion auf externe Stimuli.
-
Die vorgeschlagene Lösung ist einfacher, als zwei DMA-Controller zu benötigen, da sie eine Modifikation eines bestehenden DMA-Controller-Designs ist. Außerdem entfällt die Notwendigkeit, zwei verschiedene DMA-Controller über Kreuz zu verbinden. Es sollte kleiner und schneller sein und einen kleineren SFR-Footprint haben als ein Paar von DMA-Controllern. In einer anderen Ausführungsform kann der DMA-Controller weiter verbessert werden, indem er ein Betriebsmodusregister aufweist, das es ermöglicht, den DMA-Controller so zu steuern, dass er entweder im herkömmlichen Betriebsmodus oder im indirekten Betriebsmodus arbeitet, wie unten ausführlicher erläutert wird.
-
Nun auf die Zeichnungen Bezug nehmend, werden die Details von beispielhaften Ausführungsformen schematisch dargestellt. Gleiche Elemente in den Zeichnungen werden durch gleiche Zahlen dargestellt, und ähnliche Elemente werden durch gleiche Zahlen mit einem anderen Kleinbuchstaben-Suffix dargestellt.
-
In 1 ist ein schematisches Blockschaltbild eines Direktspeicherzugriffs-(DMA)-Controllers nach dem Stand der Technik dargestellt. Der DMA-Controller kann ein erstes Adresszeigerregister 102, ein zweites Adresszeigerregister 104, einen ersten Bytezähler 106, eine Steuerlogik 108, einen zweiten Bytezähler 110, einen Multiplexer 112 mit zwei Eingängen und einen Datenzwischenspeicher 118 aufweisen. Der Multiplexer 112 kann mit einem Speicheradressbus 114 gekoppelt sein und der Datenzwischenspeicher 118 kann mit einem Speicherdatenbus 116 gekoppelt sein. Die Steuerlogik 108 kann mit einer Buszuteilungslogik (nicht gezeigt) kommunizieren. Die ersten und zweiten Adresszeigerregister 102 und 104 inkrementieren sequentiell mit einem Zähler (nicht gezeigt) und zeigen auf sequentielle Speicherorte. Das erste Adresszeigerregister 102 enthält eine Adresse eines Speicherorts, von dem Daten abgerufen werden sollen. Das zweite Adresszeigerregister 104 enthält eine Adresse eines anderen Speicherorts, in den Daten geschrieben werden sollen. Der Speicher (nicht gezeigt) kann unter anderem ein Flash-Programmspeicher, Firmware-Speicher, Direktzugriffsspeicher (RAM) sein, ist aber nicht darauf beschränkt.
-
Die Daten werden zuerst aus dem durch das erste Adresszeigerregister 102 spezifizierten Speicherort gelesen, wobei der Multiplexer 112 eine Quelladresse aus dem ersten Adresszeigerregister 102 an den Adressbus 114 koppelt, der mit dem Speicherbus (nicht gezeigt) gekoppelt ist. Die Inhalte (Daten) dieser Speicher- (Quellen-) Ort werden über den Datenbus 116 gelesen und im Datenzwischenspeicher 118 gespeichert. Dann koppelt der Multiplexer 112 eine Zieladresse aus dem zweiten Adresszeigerregister 104 an den Adressbus 114 und ein Speicher- (Ziel-) Ort an dieser Adresse wird mit den Inhalten (Daten), die im Datenzwischenspeicher 118 gespeichert sind, über den Datenbus 116 beschrieben. Der Adressbus 114 und der Datenbus 116 können mit einem Speicher (nicht gezeigt) gekoppelt sein.
-
Die oben erwähnte Speicherdatenübertragungsoperation funktioniert gut, wenn die Speicheradressenplätze sequentiell angeordnet sind, aber nicht so gut, wenn dies nicht der Fall ist, da nicht sequentielle Speicheradressenplätze möglicherweise nicht zwischengespeichert werden können und/oder die Latenzzeiten der Speicheradressierung erhöhen. Eine Möglichkeit, nicht-sequentielle DMA-Übertragungen durchzuführen, erfordert zwei der in 1 gezeigten DMA-Controller. Dies ist sehr ineffizient, da mehrere Register dupliziert werden und die Schreibgeschwindigkeit langsamer ist. Es erfordert auch, dass die beiden DMA-Controller so querverbunden sind, dass sie sich gegenseitig triggern. Wenn entweder ein Fehler oder ein Fehlerzustand auftritt, schlagen die Datenübertragung(en) fehl.
-
Unter Bezugnahme auf 2 ist ein schematisches Blockdiagramm eines programmierbaren reihenfolgebeliebigen DMA-Controllers gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung dargestellt. Ein programmierbarer reihenfolgebeliebiger DMA-Controller, allgemein mit der Nummer 200 bezeichnet, der einen besseren und effizienteren Weg bietet, DMA-Transfers in beliebiger Reihenfolge zu handhaben, ist in 2 gezeigt. Der programmierbare reihenfolgebeliebige DMA-Controller 200 kann ein erstes Adresszeigerregister 202 aufweisen, ein zweites Adresszeigerregister 204, einen ersten Bytezähler 206, eine Steuerlogik 208, einen zweiten Bytezähler 210, einen Multiplexer 212 mit Ausgängen, die mit einem Adressbus 214 gekoppelt sind, ein Datenzwischenspeicher 218 mit Ausgängen und Eingängen, die mit einem ersten Datenbus 216 gekoppelt sind, einen Adresszwischenspeicher 220 mit Eingängen, die an einen zweiten Datenbus 222 gekoppelt sind, und eine Buszuteilungslogik 228 in Kommunikation mit der Steuerlogik 208.
-
Der erste Datenbus 216 kann mit einem Datenspeicher 226 gekoppelt sein und der zweite Datenbus 222 kann mit einem Programmspeicher 224 gekoppelt sein. Der Datenspeicher 226 kann beispielsweise ein Acht-Bit-Speicher sein, ist aber nicht darauf beschränkt, und der Programmspeicher 224 kann beispielsweise ein 14-Bit-Speicher sein, ist aber nicht darauf beschränkt. Die Adressierung jedes Speichers kann über den Adressbus 214 erfolgen. Der Programmspeicher 224 kann indirekte Zieladressen beinhalten, an die die Daten übertragen oder von denen diese gelesen werden sollen. Der mit dem zweiten Datenbus 222 gekoppelte Programmspeicher 224 kann beispielsweise ein nichtflüchtiger Direktzugriffsspeicher (RAM) wie beispielsweise ein programmierbarer Flash-Speicher sein, ist aber nicht darauf beschränkt. Der Datenspeicher 226 kann ein flüchtiger oder ein nichtflüchtiger RAM sein. Der Datenspeicher 226 und der Programmspeicher 224 können die gleiche Bitbreite aufweisen und aus einem einzigen Speicher bestehen.
-
Der Betrieb des in 2 gezeigten programmierbaren reihenfolgebeliebigen DMA-Controllers wird nachstehend unter Bezugnahme auf 3 und 4 und deren Beschreibungen ausführlicher offenbart. Der zweite Datenbus 222 kann mit demselben oder einem anderen Speicher wie der erste Datenbus 216 gekoppelt sein. Der Adresszwischenspeicher 220 ist über den zweiten Datenbus 222 mit dem Programmspeicher 224 gekoppelt und liest und speichert indirekte Zieladressen aus bzw. in dem Programmspeicher 224. Zwischenspeicher 218 kann über den ersten Datenbus 216 Daten in seinen zugeordneten Speicher lesen und in diesen schreiben. Die Steuerlogik 208 kann mit der Buszuteilungslogik 228 kommunizieren. Die Bytezähler 206 und 210 können verwendet werden, um die Anzahl der übertragenen Speicherbytes zu zählen.
-
Damit der DMA-Controller in einem herkömmlichen Modus arbeiten kann, wie in 1 gezeigt, ist ein Betriebsmodusregister 250 vorgesehen. Das Betriebsmodusregister kann den Betrieb entweder im konventionellen Modus oder im indirekten Modus ermöglichen, beispielsweise durch Löschen oder Setzen eines Bits 255 in Register 250. Andere Konfigurationen sind möglich und es können mehr als ein Bit im Register 250 verwendet werden, um den tatsächlichen Betriebsmodus zu definieren. Beim Betrieb im herkömmlichen Betriebsmodus wird der Adresszwischenspeicher 220 nicht verwendet und der DMA-Controller funktioniert, wie oben gemäß 1 beschrieben. Das Betriebsmodusregister kann ein speicherabgebildetes Spezialfunktionsregister 250 oder es können unbenutzte Bits eines bereits vorhandenen Konfigurationsregisters zum Einstellen des indirekten oder herkömmlichen DMA-Betriebsmodus verwendet werden.
-
Verweise auf kernunabhängige Peripherie-(CIP)- und Spezialfunktionsregister-(SFR)-Adressen und -Daten werden hier zu Veranschaulichungszwecken verwendet, wie in 3 und 4 und deren Beschreibungen hiernach gezeigt. Ein Fachmann mit gewöhnlichen Kenntnissen auf dem Gebiet der Digitalelektronik und dem Nutzen dieser Offenbarung wird die Lehren dieser Offenbarung leicht verstehen und in der Lage sein, die Lehren dieser Offenbarung auf andere Anwendungen und das Schreiben und Lesen von peripheren Registerkonfigurationen, die eine indirekte DMA-Adressierung erfordern, anzuwenden.
-
Unter Bezugnahme auf 3 ist ein schematisches Flussdiagramm des Betriebs des programmierbaren reihenfolgebeliebigen DMA-Controllers nach 2 dargestellt, der gemäß bestimmten beispielhaften Ausführungsformen dieser Offenbarung neue Konfigurationsdaten in einen reihenfolgebeliebigen Speicherort lädt. Der reihenfolgebeliebige Speicherort wird durch eine Speicheradresse bestimmt, die an einem anderen Speicherort gespeichert ist. In Schritt 302 beginnen DMA-Übertragungen. A) In Schritt 304 wird eine CIP-SFR-Adresse, die im Speicher an einer durch ein erstes Adresszeigerregister 202 spezifizierten Speicheradresse gespeichert ist, gelesen und dann in Schritt 306 in einem Adresszwischenspeicher 220 gespeichert, z. B. aus dem Programmspeicher 224 über den zweiten Datenbus 222. B) In Schritt 308 werden CIP-Konfigurationsdaten, die im Datenspeicher 226 an einer durch ein zweites Adresszeigerregister 204 spezifizierten Speicheradresse gespeichert sind, unter Verwendung des Adressbusses 214 und des zweiten Datenbusses 222 gelesen und in Schritt 310 im Datenzwischenspeicher 218 gespeichert. C) In Schritt 312 werden die im Datenzwischenspeicher 218 von Schritt 310 gespeicherten CIP-Konfigurationsdaten unter Verwendung des Adressbusses 214 und des ersten Datenbus 216 in die CIP-SFR- (Speicher-) Adresse geschrieben, die eine bestimmte Adresse im Datenspeicher 226 ist, die im Adresszwischenspeicher 220 gespeichert ist. Somit sind nur drei DMA-Transfers erforderlich, um eine indirekte Adressierung durchzuführen, um einen CIP-SFR zu konfigurieren oder zu aktualisieren. Diese DMA-Transfers können für jeden CIP-SFR, der geladen oder aktualisiert werden muss, wiederholt werden, z. B. für eine Vielzahl von CIP-SFRs.
-
Unter Bezugnahme auf 4 ist ein schematisches Flussdiagramm des Betriebs des programmierbaren reihenfolgebeliebigen DMA-Controllers nach 2 dargestellt, der gemäß spezifischen beispielhaften Ausführungsformen dieser Offenbarung vorhandene Konfigurationsdaten aus einem reihenfolgebeliebigen Speicherort liest. Der reihenfolgebeliebige Speicherort wird durch eine Speicheradresse bestimmt, die an einem anderen Speicherort gespeichert ist, die durch in einem Adresszeigerregister spezifiziert ist. In Schritt 402 beginnen DMA-Übertragungen. A) In Schritt 404 wird eine CIP-SFR-Adresse, die im Speicher, z. B. Programmspeicher 224, unter Verwendung des Adressbusses 214 und des zweiten Datenbusses 222 an einer durch ein erstes Adresszeigerregister 202 spezifizierten Speicheradresse gespeichert, und dann in Schritt 406 durch Koppeln des Adresszwischenspeichers 220 mit dem zweiten Datenbus 222 und dem Programmspeicher 224 in einem Adresszwischenspeicher 220 gespeichert. B) In Schritt 408 werden CIP-Konfigurationsdaten, die in dem CIP-SFR gespeichert sind, der eine bestimmte Adresse im Datenspeicher 226 ist, an einer durch den Adresszwischenspeicher 220 spezifizierten Speicheradresse gelesen, indem der Adresszwischenspeicher 220 mit dem Adressbus 214 und dem ersten Datenbus 216 gekoppelt und diese verwendet werden, und dann in Schritt 410 in dem Datenzwischenspeicher 218 gespeichert. C) In Schritt 412 werden die in dem Datenzwischenspeicher 218 gespeicherten CIP-Konfigurationsdaten unter Verwendung des Adressbusses 214 und des Datenbusses 216 in eine Speicheradresse des Datenspeichers 226 geschrieben, die durch ein zweites Adresszeigerregister 204 spezifiziert ist. Somit sind nur drei DMA-Transfers erforderlich, um eine indirekte Adressierung durchzuführen, um den Inhalt von einem CIP SFR zu lesen und diesen an einem Speicherort zu speichern, der durch das erste Adresszeigerregister 202 definiert ist. Diese DMA-Übertragungen können für jeden CIP-SFR wiederholt werden, der gelesen werden muss, z. B. für eine Vielzahl von CIP-SFRs.
-
In 5 ist ein schematisches Blockschaltbild von sequentiellen und nicht sequentiellen Speicherplätzen dargestellt. Sequentielle Speicherplätze 520, die einen Teil des Programmspeichers 224 darstellen können, können verwendet werden, um die Adressen von nicht-sequentiellen Speicherplätzen 530-544 zu speichern, die einen Teil des Datenspeichers 226 darstellen können. Die nicht-sequentiellen Speicherplätze 530-544 können auf spezielle Funktionsregister verschiedener Peripheriegeräte zum Speichern von Daten, z. B. Konfigurationsdaten, speicherabgebildet sein. Die Register können mindestens ein Spezialfunktionsregister (SFR) 560 eines kernunabhängigen Peripheriegeräts (CIP) 562 aufweisen, das einen nicht sequentiellen Speicherort 544 aufweist. Alternativ kann das SFR 560 ein peripheres Register sein. Adressen für die nicht sequentiellen Speicherplätze 530-544 können in den sequentiellen Speicherplätzen 520a-n gespeichert werden und auf diese kann wie oben beschrieben zugegriffen werden. Die nicht-sequentiellen Speicherplätze 530-544 können hauptsächlich für SFR-560-Adressen verwendet werden.
-
Die vorliegende Offenbarung wurde in Bezug auf eine oder mehrere Ausführungsformen beschrieben, und es sollte verstanden werden, dass viele Äquivalente, Alternativen, Variationen und Modifikationen, abgesehen von den ausdrücklich genannten, möglich sind und im Schutzumfang der Offenbarung liegen. Während die vorliegende Offenbarung verschiedenen Modifikationen und alternativen Formen zugänglich ist, wurden spezifische beispielhafte Ausführungsformen davon in den Zeichnungen gezeigt und hierin im Detail beschrieben. Es versteht sich jedoch, dass die hierin beschriebene Beschreibung spezifischer beispielhafter Ausführungsformen die Offenbarung nicht auf die hierin offenbarten besonderen Formen beschränken soll.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Patentliteratur
-