-
Hintergrund der Erfindung
-
Feld der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf einen DMA-Übertragungscontroller,
der zu einer Zeitkontrolle einer DMA-Übertragung fähig ist.
-
Beschreibung des verwandten
Standes der Technik
-
In
den vergangenen Jahren wurden mit dem Voranschreiten der Multimedialität von Geräten Audiodaten
oder bewegte Bilder (AV) gewöhnlich
auf einem Prozessor kodiert oder dekodiert. Wenn die AV-Daten dekodiert
werden, muss generell ein vorgeschriebener Umfang des Prozesses
innerhalb einer vorgeschriebenen Zeit abgeschlossen sein. Es ist nämlich ein
Echtzeitprozess notwendig. Des Weiteren erfordert ein Kodierungsprozess
in der interaktiven Kommunikation der Audiodaten und der bewegten
Bilder auch in einer Echtzeit ausgeführt zu werden.
-
Wenn
eine Vielzahl von Prozessen, die solche Echtzeitprozesse beinhalten,
auf einem einzigen Prozessor ausgeführt werden, ist ein Mechanismus zum
Sicherstellen der Echtzeitcharakteristiken des Prozesses notwendig.
Als eines der Verfahren zum Realisieren dieses Mechanismus gibt
es ein System, dass die Zeitunterteilung bzw. Einteilung der Ressourcen
auf dem Prozessor ausgeführt
wird und die Inhalte der Prozesse für jede vorgeschriebene Zeit verändert bzw.
gewechselt werden. Dieses System ist generell äquivalent zu einem System,
dass eine Vielzahl von virtuellen logischen Prozessoren jeweils verschiedene
Prozesse parallel ausführen.
Dieses System wird im Folgenden als virtuelles vielfach verarbeiten
(virtual multi-processing – VMP)
bezeichnet.
-
In
dem AV-Prozess ist es nötig,
große
Datenmengen über
einen inneren Datenbus zwischen einem Ein- und einem Ausgabegerät, einem
Pufferspeicher (ein Daten temporär
speichernder Speicher) und ein Arbeitsspeicher (ein Datenverarbeitungsspeicher)
zu übertragen. Üblicherweise
werden die Ressourcen des Prozessors für die Übertragung der Daten nicht
auf wünschenswerte
Weise gebraucht. Folglich werden die Daten üblicherweise durch die Verwendung
einer Steuereinrichtung für
den direkten Speicherzugriff (direct memory access – DMA-controller) übertragen.
-
Mit
dem jüngsten
Anstieg des Durchsatzes von Informationen in einer System-LSI steigt
die Menge der Daten, die in einer inneren Datenübertragungseinrichtung (bus)
der LSI übertragen
werden, auch kontinuierlich an. Um die Daten effizient zu übertragen,
ist ebenso ein hochfunktioneller DMA-Controller erforderlich. Verschiedene
Arten von DMA-Controllern wurden vorgeschlagen. Zum Beispiel wurden
ein DMA-Controller, in dem einer Vielzahl von DMA-Übertragungen
eine Priorität
zugewiesen wird, um die Übertragungseffizienz
zu verbessern (siehe Patentdokument 1:
JP-A-9-223102 ), oder ein
DMA-Controller, in dem eine Vielzahl von DMA-Übertragungen reserviert bzw.
zurückgehalten und
ausgeführt
werden (siehe Patentdokument 2:
JP-A-2002-41445 ), entwickelt.
-
2 ist
ein Blockdiagramm, das ein strukturelles Beispiel eines Systems
zeigt, mit dem ein üblicher
DMA-Controller geladen bzw. beschickt wird. In 2 beinhaltet
eine Mikroprozessoreinheit (microprocessor unit – MPU) 1 einen Prozessor 11,
einen inneren DMA-Controller 12, eine externe DMA-Datenübertragungsschnittstelle
(external DMA bus interface) 13 und innere Speicher 14 und 15 und 16. Die
Teile 11 bis 16 sind jeweils mit einem inneren
Prozessorbus und einem inneren DMA-Bus verbunden, die auf der MPU
angebracht sind. Des Weiteren sind die MPU 1 ein externer
DMA-Controller 2, ein peripherer Schaltkreis 3,
ein externer Speicher 4 und ein peripherer Schaltkreis 5 mit
einem externen DMA-Bus der MPU verbunden.
-
Nun
wird ein Fall betrachtet, in dem komprimierte Audiodaten von einem
Speichergerät
(zum Beispiel eine Halbleiterspeicherkarte) durch die Verwendung
des in 2 gezeigten Systems gelesen und dekodiert werden
und dann die dekodierten Daten von einem Audioschnittstellenschaltkreis
ausgegeben werden. In diesem Fall dient der periphere Schaltkreis 3 als
ein Schnittstellenschaltkreis zu der Halbleiterspeicherkarte (semiconductor
memory card) und der periphere Schaltkreis 5 dient als
der Audioschnittstellenschaltkreis.
-
Um
die Audiodaten ununterbrochen wiederzugeben, benötigt ein Programm (auf das
sich als ein Programm C bezogen wird) Echtzeitcharakteristiken, um
einen Dekodierungsprozess für
die Audiodaten durchzuführen.
Des Weiteren werden zwei Programme A und B parallel zu dem Audiodekodierungsprogramm
C ausgeführt,
die nicht Echtzeitcharakteristiken ha ben. Die Betriebsschritte des
Prozessors 11 und des inneren DMA-Controllers 12 sind
in einem Zeitdiagramm in 3 gezeigt.
-
Der
Fluss der Daten und der Prozesse in dem Audiodekodierungsprozess
werden unten beschrieben.
-
(Prozess
1) Der externe DMA-Controller 2 überträgt immer die komprimierten
Audiodaten von dem peripheren Schaltkreis 3 zu dem externen
Speicher 4. Dieser Prozess benötigt nicht, dass ihm Aufmerksamkeit
geschenkt wird, wenn der Betrieb des inneren DMA-Controllers 12 betrachtet wird.
-
(Prozess
2) Der innere DMA-Controller 12 überträgt die Ergebnisse eines vergangenen
Dekodierungsprozesses an den peripheren Schaltkreis 5 von
dem inneren Speicher 14. Diese DMA-Übertragung wird durch das Programm
C gestartet.
-
(Prozess
3) Wenn die DMA-Übertragung
des Prozesses 2 abgeschlossen ist, informiert der innere DMA-Controller 12 den
Prozessor 11 über
eine Unterbrechung (interrupt). Somit startet das Programm C eine
nächste
DMA-Übertragung
und der innere DMA-Controller 12 überträgt neu komprimierte Daten zu
dem inneren Speicher 14 von dem externen Speicher 4 anschließend bzw.
in der Folge zu dem Prozess 2. In den Prozessen 2 und 3 wird der
innere Speicher 14 als ein Pufferspeicher bzw. Zwischenspeicher
verwendet.
-
(Prozess
4) In dem Prozessor 11 wird ein Dekodierungsprozess der
in dem inneren Speicher 15 gehaltenen Daten parallel zu
den oben beschriebenen Prozessen 2 und 3 ausgeführt. In diesem Prozess wird
der innere Speicher 15 als ein Arbeitsspeicher verwendet.
-
Die
Prozesse 2 bis 4 werden für
jede vorgeschriebene Zeiteinheit zum Verarbeiten wiederholt und
die Verwendungen der inneren Speicher 14 und 15 werden
abwechselnd für
jede Zeiteinheit bzw. Einheitszeit ausgetauscht. Das heißt, der
innere Speicher 14 wird als der Pufferspeicher für eine vorgeschriebene
Zeit verwendet und wird als der Arbeitsspeicher für eine andere
Zeit verwendet. Dies kann auch auf den inneren Speicher 15 angewendet
werden.
-
Um
in diesem System die Echtzeitcharakteristiken des Programmes C sicherzustellen,
werden die Programme A, B und C in einer Zeiteinteilung durchgeführt, wie
in 3 gezeigt. Dieser Zustand kann als ein Zustand
betrachtet werden, in dem die Programme A, B und C jeweils von individuellen
virtuellen logischen Prozessoren ausgeführt werden. In dem Fall des
Audiodaten-Dekodierungsprozesses wird die „Einheitszeit zur Verarbeitung" („unit time
for processing"),
die in 3 gezeigt ist, üblicherweise aus einem Kodierungssystem,
einer Datenausgaberate (eine Menge ausgegebener Daten pro Einheitszeit)
des peripheren Schaltkreises, der Kapazität eines Zwischenspeichers usw.
bestimmt.
-
Des
Weiteren brauchen in diesem System, da das virtuelle Vielfachverarbeiten
(virtual multiprocessing) eingeführt
wird, wenn die Programme (A, B, C) jeweils entwickelt werden, die
Inhalte der Prozesse oder die Ausführungszeit von anderen Programmen
nicht in die Betrachtungen mit einbezogen werden. Auf Basis der
Annahme, dass die vorgeschriebenen Ressourcen des Prozessors jeweils
für die Programme
zugesichert sind, kann die Entwicklung der Programme unabhängig vorangetrieben
werden. Das virtuelle Vielfachverarbeiten kann nämlich nicht nur einen Echtzeitprozess
sicherstellen, sondern hat auch den Vorteil, dass die Programme
einfach entwickelt werden können.
Des Weiteren können
aus den gleichen Gründen
die Programme A und B einfach zu einem anderen System übertragen
werden, das eine unterschiedliche Einheitszeit bzw. Systemzeit für die Verarbeitung
hat.
-
Um
nun die Probleme dieses Systems aufzuzeigen, wird nun ein Fall betrachtet,
dass ein spezifisches Programm einen DMA-Bus für eine lange Zeit belegt. In
einem Betriebsbeispiel, das in einem Zeitdiagramm von 4 gezeigt
ist, führt
das Programm B die DMA-Übertragung
durch, die eine große Übertragungsmenge
hat und den DMA-Bus für
eine lange Zeit belegt. Wenn diese DMA-Übertragung abgeschlossen ist
und der DMA-Bus geöffnet
wird, führt das
Programm C die DMA-Übertragung
an den peripheren Schaltkreis 5 von dem inneren Speicher 15 durch.
Nachdem die Übertragung
abgeschlossen ist, informiert das Programm C den Prozessor 11 über eine
Unterbrechung.
-
Allerdings
ist in dem in 4 gezeigten Zeitdiagramm der
Prozess des Programms C bereits abgeschlossen, wenn der Prozessor 11 über die
Unterbrechung informiert wird, so dass eine nächste DMA-Übertragung nicht anschließend aktiviert
werden kann. Wenn das Programm C den Datenprozess des inneren Speichers 15 startet,
scheitert ein Echtzeitprozess, da die zu verarbeitenden Daten nicht übertragen
wurden.
-
Einige
Verfahren zum Vermeiden einer solchen Situation können in
Betracht gezogen werden. Eines dieser Verfahren ist, dass eine Vielzahl
von DMA-Übertragungen
eingeschrieben bzw. angemeldet und ausgeführt werden. Das heißt, dass,
wie in einem Zeitdiagramm von 5 gezeigt,
eine DMA-Übertragungsanfrage
für den
inneren Speicher 15 zuvor von dem externern Speicher vorbestellt bzw.
angemeldet werden kann. Nachdem die DMA-Übertragung
von dem inneren Speicher 15 zu dem peripheren Schaltkreis 5 abgeschlossen
ist, kann die angemeldete DMA-Übertragung
automatisch ausgeführt
werden. Dieser Prozess kann insbesondere durch die Verwendung des
in dem Patentdokument 2 offenbarten DMA-Controllers realisiert werden.
-
Allerdings
können,
sogar wenn die Vielzahl von DMA-Übertragungen
angemeldet und durchgeführt
werden können,
die Echtzeitcharakteristiken des Programms C möglicherweise nicht sichergestellt
werden. Zum Beispiel in dem in einem Zeitdiagramm von 6 gezeigten
Betriebsbeispiel wird die Fertigstellung der DMA-Übertragung
nicht beendet, bis der Prozess des inneren Speichers 15 gestartet wird,
da die DMA-Übertragungszeit
des Programms B zu lang ist. Somit scheitert der Echtzeitprozess.
-
Um
schließlich
einen DMA-Buszugriff für eine
vorgeschriebene Zeit für
die DMA-Übertragung des
Programms C sicherzustellen, gibt es kein anders sicheres Verfahren,
als ein Verfahren, das eine Beschränkung auf die zeitliche Abstimmung
des Startes und der Übertragungszeit
(die Anzahl der übertragenen
Worte) der DMA-Übertragungen,
die durch die Programme A und B aktiviert werden, angewendet wird.
Aus den oben beschriebenen Betrachtungen ist offensichtlich, dass
nur die Zeiteinteilung (eine Einführung von VMP) der Ressourcen
des Prozessors unzureichend ist und eine Zeitkontrolle (Zeitplanung – scheduling)
der DMA-Übertragung
zusammen betrachtet werden muss, wenn ein Echtzeitprozess ausgeführt wird.
-
Wie
oben beschrieben, muss bei der Entwicklung der Programme A und B,
wenn diese Programme eine DMA-Übertragungsanfrage
ausführen, der
Echtzeitprozess des Programms C so betrachtet werden, als würde er nicht
fehlschlagen. Allerdings wird somit bei der Entwicklung der Programme
A, B und C eine abhängige
Beziehung zwischen ihnen erzeugt, so dass die Programme nicht unabhängig fortschreitend
entwickelt werden können.
-
Auf
solche eine Weise wird der Vorteil des VMP, dass die Programme einfach
entwickelt werden, ernsthaft wegen der Zeiteinteilung bzw. -planung
der DMA-Übertragungen
verdorben.
-
Des
Weiteren kann die Einheitszeit zum Verarbeiten verschiedene Werte
haben, da die für
den Prozess benötigte
Zeit abhängig
von dem Kodierungssystem oder der Ein- und Ausga bedatenrate verschieden
ist. Folglich ist es in allen Fällen
erforderlich, sicherzustellen, dass das System nicht fehlschlägt bzw.
ausfällt.
-
Des
Weiteren steigt die Entwicklung des Systems und die Anzahl von Inspektionsprozessen enorm
an, wenn eine Vielzahl von Echtzeitprozessen zusammengedrängt werden.
Zusätzlich
dazu kann die Zeitplanung selber, wenn kein Fehler des Systems vorhanden
ist, manchmal nur schwer ausgeführt
werden.
-
Die
EP-A-1 156 422 beschreibt
einen high-performance DMA-Controller zum Steuern der Datenübertragung
zwischen einem Hauptspeichermittel, das verschiedene Arten von Daten
hält, und
einer Vielzahl von lokalen Speichermitteln, der umfasst: eine Schnittstelle
zum Generieren eines Steuersignals für das Hauptspeichermittel;
eine Daten-Ein- und -Ausgabeeinheit (data I/O unit) zum Steuern
der Ein- und Ausgabe von Daten; eine Parameterhalteeinheit zum Halten
bzw. Fassen verschiedener Arten von Parametern, die für die Ausführung von
Datenübertragung
benötigt
werden; einen Datenübertragungsanfragenempfänger zum
Empfangen von Anfragen für
Datenübertragung;
und ein Startkommandoempfänger
zum Empfangen eines Start-/Stoppkommandos des Datenübertragungscontrollers.
Der Datenübertragungsanfragenempfänger empfängt von
einer Datenübertragungsanfragenquelle
Reservierungen von einer Vielzahl von Datenübertragungsanfragen, welche
die Ausführung
von Prioritätsinformationen
und Informationen über
den Speichermitteltyp beinhalten, wobei jede Information arbiträr durch
die Übertragungsanfragenquelle
gesetzt wird, und hält
Informationen bezüglich
des Speichermitteltyps in Verbindung mit jeder Ausführungsprioritätsinformation.
Der Datenübertragungscontroller
empfängt
nur die Reservierungen von Datenübertragungsanfragen,
bis ein Startbefehl von einem Systemcontroller ausgegeben wird,
und, wenn der Startbefehl ausgegeben wird, dekodiert der Datenübertragungscontroller
sequenziell die Informationen zum lokalen Speichermitteltyp der
reservierten Datenübertragungsanfragen,
die relativ hohe Ausführungsprioritäten haben,
in chronologischer Reihenfolge der Datenübertragungsanfragen und nimmt
dann sequenziell Parameter für
die Datenübertragung
von der Parameterhalteeinheit gemäß den Kodierungsergebnissen,
um die Datenübertragung
auszuführen.
-
Die
US-B1-6 542 940 spezifiziert
ein Verfahren zum Aufrechterhalten eines Ausführungsintervalls für einen
Aufgabenanfrager an einer DMA. Ein Zeitgeber ist mit zwei Zählern ausgerüstet, einem, um
das Ausführungsintervall
zu pflegen bzw. aufrechtzuerhalten, und der zweite, um die Ausführungszeit
einer Aufgabe in dem DMA zu verfolgen. Jede Aufgabe hat eine vorbestimmte
Ausführungszeiterlaubnis.
Ein Aufgabenbestätigungssignal
(task acknowledge – TACK – signal)
befähigt
zu der Verfolgung. Ein Aufgabenanfragesignal (task request signal – TREQ)
wird während
jedes Ausführungsintervalls
erzeugt, bis die Ausführungszeiterlaubnis
beendet ist. Die Länge
des zweiten Zählers
ist weniger als die des ersten Zählers.
In einer Ausführungsform wird
ein Aufgabenfehlersignal (task error signal – TERR) dargestellt, wenn der
erste Zähler
abläuft,
bevor die Ausführungszeiterlaubnis
beendet ist.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung wird vorgeschlagen, indem die oben beschriebenen üblichen
Probleme in Betracht gezogen werden. Es ist ein Ziel der vorliegenden
Erfindung, einen DMA-Übertragungscontroller
(ein DMA-Controller bzw. eine DMA-Steuereinrichtung) zur Verfügung zu
stellen, in dem die Zeitplanung der DMA-Übertragungen nicht erdacht werden
muss, in dem der Zeitablauf der DMA-Übertragungen in Echtzeitprozessen
festgelegt wird, die Entwicklung oder der Transport der Programme
einfach ist und ein System in den Echtzeitprozessen nicht scheitert.
-
Ein
DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung umfasst: eine Übertragungsparameter-Speichereinheit
zum Speichern eines Busbelegungs-Zeitwertes und von Übertragunsparametern
eines Satzes oder einer Vielzahl von Sätzen von den DMA-Übertragungen für eine Vielzahl
von logischen Prozessoren, die von einem Hauptprozessor durchgeführt werden;
eine Datenübertragungs-Durchführeinheit
zum Durchführen
der DMA-Übertragungen
auf der Basis der Übertragungsparameter;
eine Steuereinheit zum Steuern des Empfangs und des Sendens der Übertragungsparameter
sowie des Starts und der Unterbrechung der DMA-Datenübertragung;
und eine Zeitmesseinheit, um damit zu beginnen, eine Busbelegungsablaufzeit
zu messen, wenn eine erste DMA-Übertragung
für jeden
der logischen Prozessoren gestartet wird. Wenn die Busbelegungs-Ablaufzeit
den Busbelegungs-Zeitwert erreicht, unterbricht die Steuereinheit
die DMA-Übertragung,
die ausgeführt
wird, um die DMA-Übertragungen
basierend auf den Übertragungsparametern
zu starten, die auf die logischen Prozessoren einer vorgeschriebenen
Sequenz bezogen sind.
-
Gemäß der oben
beschriebenen Struktur kann, da die Busbelegungsablaufzeit für jeden
der logischen Prozessoren auf den Busbelegungszeitwert begrenzt
werden kann, die Abfolge der DMA-Übertragungen in Echtzeitprozessen
ausgeführt
werden, ein System kann davon abgehalten werden, außer Betrieb
gesetzt zu werden, und die Echtzeitcharakteristiken der Prozesse
können
auf jeden Fall sichergestellt werden.
-
Des
Weiteren müssen,
wenn die Busbelegungs-Ablaufzeit den Busbelegungs-Ablaufzeitwert erreicht,
um die derzeit ausgeführte
DMA-Übertragung
zu unterbrechen, da eine DMA-Übertragung, die
anschließend
bzw. in der Folge ausgeführt
wird, automatisch ohne die Verwendung eines Programms gestartet
wird, individuelle Programme sich nicht über die Abfolge der DMA-Übertragungen
sorgen. Folglich kann die Entwicklung und die Wartung der Programme
einfach durchgeführt
werden.
-
Des
Weiteren startet in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die Steuereinheit die DMA-Übertragung basierend auf den
Transferparametern, die auf die logischen Prozessoren der vorgeschriebenen
Sequenz bezogen sind, wenn alle DMA-Übertragungen, die auf einen
bestimmten logischen Prozessor bezogen sind, abgeschlossen sind,
bevor die Busbelegungs-Ablaufzeit den Busbelegungs-Ablaufzeitwert
erreicht.
-
Gemäß der oben
beschriebenen Struktur wird, sogar wenn es Raum in der Busbelegungszeit auf
den Abschluss von allen DMA-Übertragungen
hin gibt, die auf den bestimmten logischen Prozessor bezogen sind,
eine Busbelegung abgeschlossen, um eine anschließend auszuführende DMA-Übertragung auszuführen. Somit
kann eine verschwenderische Zeit für die Busbelegung eliminiert
werden, um die Effizienz einer DMA-Übertragung zu verbessern.
-
Ein
DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung umfasst: eine Übertragungsparameter-Speichereinheit
zum Speichern der Anzahl von Übertragungsdaten,
die dazu fähig
sind, einen Bus zu belegen, und Übertragunsgparameter
eines Satzes oder einer Vielzahl von Sätzen von den DMA-Übertragungen
für eine
Vielzahl von logischen Prozessoren, die durch einen Hauptprozessor
ausgeführt
werden; eine Datenübertragungs-Durchführeinheit,
um die DMA-Übertragungen
auf Basis der Transferparameter durchzuführen; eine Steuereinheit zum
Steuern des Empfangens und Sendens der Übertragungsparameter und des
Starts und der Unterbrechung der DMA-Übertragungen; und eine Anzahl
Messeinheit zum Starten, so dass die Anzahl der Übertragungsdaten gemessen wird,
wenn eine erste DMA-Übertragung
für jeden
der logischen Prozessoren gestartet wird. Wenn die Anzahl der Busübertragungsdaten
die Anzahl der Übertragungsdaten erreicht,
die dazu fähig
sind, den Bus zu belegen, unterbricht die Steuereinheit die DMA-Übertragung,
die der zeit ausgeführt
wird, um die DMA-Übertragungen basierend
auf den Transferparametern zu starten, die auf die logischen Prozessoren
einer vorgeschriebene Sequenz bezogen sind.
-
Gemäß der oben
beschriebenen Struktur kann, sogar wenn die Anzahl der Übertragungsdaten,
die dazu fähig
sind, den Bus zu belegen, anstatt des Busbelegungs-Zeitwertes verwendet
wird, um die Anzahl der Busübertragungsdaten
anstelle der Busbelegungs-Ablaufzeit zu messen, der Ablauf der DMA-Übertragungen äquivalent
zu dem des DMA-Übertragungscontrollers
zum Messen der Busbelegungs-Ablaufzeit ausgeführt werden. Dementsprechend
können
die gleichen Effekte, wie bei dem oben beschriebenen DMA-Übertragunscontroller, in Echtzeitprozessen
erreicht werden.
-
Des
Weiteren startet in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die Steuereinheit, die DMA-Übertragungen, basierend auf
den Übertragungsparametern,
die auf die logischen Prozessoren der vorgeschriebenen Sequenz bezogen
sind, wenn alle DMA-Übertragungen,
die auf einen bestimmten logischen Prozessor bezogen sind, abgeschlossen
sind, bevor die Anzahl der Busübertragungsdaten
die Anzahl der Übertragungsdaten
erreicht, die dazu fähig
sind, den Bus zu belegen.
-
Gemäß der oben
beschriebenen Struktur können,
sogar wenn die Anzahl der Übertragungsdaten,
die dazu fähig
sind, den Bus zu belegen, anstelle des Busbelegungs-Zeitwertes verwendet
wird, um die Anzahl von Busübertragungsdaten
anstelle der Busbelegungs-Ablaufzeit zu verwenden, Prozesse ausgeführt werden,
die äquivalent
zu denen des DMA-Übertragungscontrollers
zum Messen der Busbelegungs-Ablaufzeit sind. Dementsprechend kann eine
verschwenderische Zeit für
eine Busbelegung eliminiert werden und eine Effizienz der DMA-Übertragung
kann verbessert werden.
-
Des
Weiteren ist in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die vorgeschriebenen Sequenz zyklisch und alle DMA-Übertragungsprozesse,
die auf die logischen Prozessoren bezogen sind, für die eine Übertragungsanfrage
nicht vorliegt, werden übersprungen.
-
Gemäß der oben
beschriebenen Struktur kann, da nur die DMA-Übertragungen, die auf die logische
Prozessoren bezogen sind, für
welche DMA-Übertragungsanfragen
vorliegen, zyklisch verarbeitet werden, eine verschwenderische Zeit
für eine
Busbelegung eliminiert werden und die Effizienz der DMA-Übertragung
kann bis zu einem Maximum verbessert werden.
-
Des
Weiteren reihen sich in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die Vielzahl von Sätzen
von Übertragungsparametern
für jeden
aus der Vielzahl von Prozessoren zu einer FIFO-Struktur durch die Übertragunsparameter-Speichereinheit
aneinander.
-
Gemäß der oben
beschriebenen Struktur reihen sich die Übertragungsparameter zu der FIFO-Struktur
aneinander, um die DMA-Übertragung zu
steuern. Folglich ist ein Überschuss
bzw. overhead, der für
die Unterbrechung des Abschlusses der DMA-Übertragung bis zum Start der
nächsten DMA-Übertragung
notwendig ist, nicht erforderlich, so dass die Effizienz der DMA-Übertragung
verbessert werden kann.
-
Des
Weiteren informiert die Steuereinheit den Hauptprozessor über die
Erzeugung eines Fehlers, wenn in dem DMA-Übertragungscontroller gemäß der vorliegenden
Erfindung die Übertragungsparameter
sich aneinanderreihen bzw. in einer Warteschlange befinden, indem
sie die vorgeschriebenen maximale Anzahl der Übertragungsparameter übersteigen.
-
Gemäß der oben
beschriebenen Struktur kann ein unerwarteter Betrieb, so wie die
Beschädigung
der sich schon aneinanderreihenden Übertragungsparameter, vermieden
werden, da die Übertragungsparameter
davon abgehalten werden, sich aneinanderzureihen, indem die vorgeschriebenen
maximale Anzahl der Übertragungsparameter überschritten
wird.
-
In
dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung kann sich ein Satz von Übertragungsparametern vor der
ersten Aneinanderreihung von Übertragungsparametern
als eine neu gebildete Aneinanderreihung bzw. Warteschlange aneinanderreihen.
-
Gemäß der oben
beschriebenen Struktur wird, da die Warteschlange von neuen Warteschlangen
mit einer höheren
Priorität
ausgeführt
wird als die der üblichen Übertragungsparameter,
die DMA-Übertragung,
die auf die Erzeugung eines Phänomens
bezogen ist, das eine unverzügliche
Beantwortung erfordert, als die neue Warteschlange behandelt und als
allem anderen vorzuziehen ausgeführt.
-
In
dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung informiert die Steuereinheit den Hauptprozessor über die
Erzeugung eines Fehlers, während
sich eine neu gebildete Warteschlange aneinanderreiht, wenn die
Aneinanderreihungsfunktion der neu gebildeten Warteschlange weiter
auszuführen
ist.
-
Gemäß der oben
beschriebenen Struktur kann, da die neu gebildete Warteschlange
davon abgehalten werden kann, sich zweifach aneinanderzureihen,
eine unerwartete Funktion, so wie die Beschädigung der schon aneinanderreihenden Übertragungsparameter,
vermieden werden.
-
Der
DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung umfasst des Weiteren einen Mechanismus zum Unterdrücken der Übertragungsparameter
für jeden
der logischen Prozessoren.
-
Gemäß der oben
beschriebenen Struktur kann, da die Übertragungsparameter für jeden
der logischen Prozessoren unterdrückt werden können, einem
Fall entsprochen werden, in dem eine Anwendung während der Ausführung des
Betriebs annulliert bzw. ungültig
gemacht wird. Des Weiteren kann eine spekulative Durchführung einer
DMA-Anfrage ausgeführt
werden, um den Freiheitsgrad in der Vorbereitung der Anwendung zu
erhöhen.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegendne
Erfindung einen Mechanismus zum individuellen Annullieren bzw. Aufheben
oder Ungültigmachen
der Übertragungsparameter.
-
Gemäß der oben
beschriebenen Struktur kann, da die Übertragungsparameter individuell
unterdrückt
werden können,
einem Fall entsprochen werden, in dem die Anzahl der Übertragungsdaten teilweise
bzw. halbwegs oder auf halbem Wege verändert werden. Des Weiteren kann eine spekulative Ausführung einer
DMA-Anfrage durchgeführt
werden, um den Freiheitsgrad bei der Vorbereitung der Anwendung
zu erhöhen.
-
Des
Weiteren wird in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung Aneinanderreihungssteuerungsinformation, die sich auf
die sich aneinanderreihenden Übertragungsparameter
bzw. Warteschlangen-Übertragungsparameter bezieht,
in der Übertragungsparameter-Speichereinheit
für jeden
der logischen Prozessoren gespeichert, und die Aneinanderreihungs-
bzw. Warteschlangen-Steuerungsinformation beinhaltet wenigstens die
gültig/ungültig-Information
der individuellen Übertragungsparameter.
-
Gemäß der oben
beschriebenen Struktur kann, da die Übertragungsparameter individuell
während
der Ausführung
der DMA-Übertragungen
gelöscht
werden können
oder die Löschung
von Warteschlangen durchgeführt
werden kann, nur indem die Warteschlangen-Steuerungsinformation aktualisiert wird,
die DMA-Übertragungsanfrage,
die auf dem Weg der Warteschlangen angeordnet ist, gelöscht werden,
ohne die Übertragungsparameter
neu zu schreiben. Des Weiteren können
eine Vielzahl von DMA-Übertragungsparametern
einfach gelöscht
werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung ferner einen Mechanismus zum Anhalten der Ausführung der
DMA-Übertragungen,
basierend auf den Übertragungsparametern
für jeden
der logischen Prozessoren.
-
Gemäß der oben
beschriebenen Struktur werden, da die Ausführung der DMA-Übertragungen für jeden
der logischen Prozessoren angehalten werden kann, wenn die Anwendung
unterbrochen und dann wieder aufgenommen wird, Prozesse zum Zurückziehen,
Löschen
und Zurücksetzen
der Übertragungsparameter
während
der DMA-Übertragungen jeweils
nicht benötigt.
Folglich können
eine Haltefunktion und eine Zurücksetzungsfunktion
auf hoher Geschwindigkeit umgeschaltet werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung ferner einen Mechanismus zum individuellen Anhalten der
Ausführung
der DMA-Übertragungen,
basierend auf den Übertragungsparametern.
-
Gemäß der oben
beschriebenen Struktur werden, da die Ausführung der DMA-Übertragungen individuell angehalten
werden kann, wenn die Anwendung unterbrochen und dann wieder aufgenommen
wird, Prozesse zum Zurückziehen,
Löschen
und Zurücksetzen
der individuellen Übertragungsparameter
während
der DMA-Übertragungen
jeweils nicht benötigt.
Folglich können
eine Haltefunktion und eine Zurücksetzungsfunktion
bei hoher Geschwindigkeit umgeschaltet werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung einen Mechanismus zum Anhalten der Ausführung von
allen DMA-Übertragungen,
basierend auf den Übertragungsparametern.
-
Gemäß der oben
beschriebenen Struktur kann, wenn die DMA-Übertragungen auf eine Fehlerbereinigung
(debugging) oder Ähnliches
unzufriedenstellend ausgeführt
werden, diese Funktion dazu verwendet werden, die eigentliche Ausführung der DMA-Übertragungen
zu überspringen.
-
Des
Weiteren werden in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung alle Prozesse übersprungen,
die mit den DMA-Übertragungen
in Verbindung stehen, deren Ausführung angehalten
ist.
-
Gemäß der oben
beschriebenen Struktur braucht die DMA-Übertragung, die mit den logischen Prozessoren
in Verbindung steht, deren DMA-Übertragungsanfragen
angehalten sind, nicht auf die Beendigung einer Busbelegungs-Zeit
zu warten. Folglich kann die Effizienz der Verwendung des Busses verbessert
werden.
-
Des
Weiteren wird in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung Warteschlangen-Steuerungsinformation, die auf die sich
aneinanderreihenden Übertragungsparameter bezogen
ist, in der Übertragungsparameter-Speichereinheit
für jeden
der logischen Prozessoren gespeichert und die Warteschlangen-Steuerungsinformation
beinhaltet wenigstens die Anhalteinformation der individuellen Übertragungsparameter.
-
Gemäß der oben
beschriebenen Struktur kann, da die Anhalteinformation der individuellen Übertragungsparameter
in der Warteschlangen-Steuerungsinformation enthalten ist, die Ausführung der
DMA-Übertragungen
individuell einfach angehalten werden und eine Vielzahl von DMA-Übertragungsanfragen
kann einfach angehalten werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung außerdem
einen Mechanismus zum Wiederherstellen der Übertragungsparameter zu Werten
auf das Starten der Ausführung
der DMA-Übertragungen
hin, wenn die Ausführung
an einer Reihe von DMA-Übertragungen,
die auf die logischen Prozessoren bezogen sind, abgeschlossen sind,
und des Wiederholens der Ausführung
der DMA-Übertragungen,
basierend auf der Reihe von Übertragungsparametern.
-
Gemäß der oben
beschriebenen Struktur werden die DMA-Übertragungen für jeden
der logischen Prozessoren automatisch wiederholt ausgeführt, so
dass ein Überschuss
(overhead), der für
die Unterbrechung des Abschlusses der DMA-Übertragung bis zum Start einer
nächsten
DMA-Übertragung erforderlich
ist, eliminiert werden kann, und eine Übertragungseffizienz kann in
der Reihe der wiederholt in der Anwendung ausgeführten DMA-Übertragungen
verbessert werden.
-
Der
DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung umfasst des Weiteren einen Mechanismus zum Wiederherstellen
der Übertragungsparameter
der DMA- Übertragungen
zu Werten auf ein Starten der Ausführung der DMA-Übertragungen
hin, wenn die Ausführung
der individuellen DMA-Übertragungen
abgeschlossen ist, und ein Wiederholen der Ausführung der DMA-Übertragungen,
basierend auf den Übertragungsparametern.
-
Gemäß der oben
beschriebenen Struktur werden die DMA-Übertragungen für jede der
individuellen Übertragungsanfragen
automatisch wiederholt ausgeführt,
so dass ein Überschuss,
der für
die Unterbrechung des Abschlusses von der DMA-Übertragung bis zu dem Start
einer nächsten
DMA-Übertragung
notwendig ist, eliminiert werden kann, und eine Effizienz der DMA-Übertragung
kann für
die individuellen DMA-Übertragungen
verbessert werden, die wiederholt in der Anwendung ausgeführt werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung außerdem
einen Mechanismus zum Unterdrücken der
Unterbrechung der DMA-Übertragungen
für jeden
der logischen Prozessoren, ungeachtet des Busbelegungs-Zeitwertes oder der
Anzahl von Übertragungsdaten,
die dazu fähig
sind, den Bus zu belegen.
-
Gemäß der oben
beschriebenen Struktur kann, wenn eine hoch aufstrebende Anwendung
unzufriedenstellend aktiviert wird, so dass die ihr zugeordneten
DMA-Übertragungsanfragen
einem Zeitunterteilungsprozess ausgesetzt werden, der Zeitunterteilungsprozess
der DMA-Übertragungen
temporär für jeden
der logischen Prozessoren unterdrückt werden. Die hoch aufstrebenden
DMA-Übertragungen können vorzugsweise
verarbeitet und dann zu einer üblichen
Funktion bzw. in einen üblichen
Betrieb zurückgegeben
werden.
-
Des
Weiteren umfasst der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung außerdem
einen Mechanismus zum individuellen Unterdrücken der Unterbrechung der
DMA-Übertragungen,
ungeachtet des Busbelegungs-Zeitwertes oder der Anzahl von Übertragungsdaten,
die dazu fähig sind,
den Bus zu belegen.
-
Gemäß der oben
beschriebenen Struktur wird, wenn eine hoch aufstrebende Anwendung
unzufriedenstellend aktiviert ist, so dass die ihr zugeordneten
DMA-Übertragungsanfragen
einem Zeitunterteilungsprozess unterworfen werden, der Zeitunterteilungsprozess
der DMA-Übertragungen
temporär
individuell unterdrückt.
Folglich können
die höchstaufstrebenden
bzw. dringlichen DMA-Übertragungen
vorzugsweise verarbeitet werden und dann an eine übliche Funktion
bzw. in einen üblichen
Betrieb zurückgegeben
werden.
-
Des
Weiteren beinhaltet in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die Datenübertragungs-Durchführeinheit
eine Übertragungsparameter-Temporärspeichereinheit zum
Halten eines Satzes von Übertragungsparametern
und die Datenübertragungs-Durchführeinheit verwendet
durch die Übertragungsparameter-Temporärspeichereinheit
gehaltene Daten, um die DMA-Übertragung
auszuführen.
-
Gemäß der oben
beschriebenen Struktur kann, da auf die Übertragungsparameter-Speichereinheit während der
Ausführung
der DMA-Übertragung
nicht zugegriffen zu werden braucht, die verbrauchte Leistung bzw.
der verbrauchte Strom bezüglich
eines Speicherzugriffes gespart werden. Des Weiteren wird, da die
Aneinanderreihung der Übertragungsparameter
von dem Prozessor nicht mit dem Zugriff wetteifert, eine Wartezeit
auf der Seite des Prozessors verringert, um die Effizienz der CPU
zu verbessern.
-
Des
Weiteren beinhaltet der DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung eine Übertragungsparameter-Temporärladeeinheit, die
als ein Puffer- bzw. Zwischenspeicher von einem Satz von Übertragungsparametern
verwendet wird, wenn sich die Übertragungsparameter
aneinanderreihen, und die Steuerungseinheit verwendet die in der Übertragungsparameter-Temporärladeeinheit gespeicherten Übertragungsparameter,
um die Warteschlangen-Steuerungsinformation zu bilden, die auf die
sich aneinanderreihenden Übertragungsparameter
für jeden
der logischen Prozessoren bezogen sind, und speichert die Übertragungsparameter
und die Warteschlangen-Steuerungsinformation in der Übertragungsparameter-Speichereinheit.
-
Gemäß der oben
beschriebenen Struktur braucht, da der Zwischenspeicher zum temporären Speichern
eines Satzes von Übertragungsparametern
zur Verfügung
gestellt wird, wenn sich die Übertragungsparameter
aneinanderreihen, auf die Übertragungsparameter-Speichereinheit nicht
jedes Mal zugegriffen zu werden, wenn jeder Parameterwert gespeichert
wird.
-
Des
Weiteren wartet der Hauptprozessor auf einen Zugriff auf die Warteschlangen
bzw. das Aneinanderreihen, wenn sich die Übertragungsparameter aneinanderreihen,
während
die Übertragungsparameter
von der Übertragungsparameter-Temporärladeeinheit
zu der Übertragungsparameter-Speichereinheit übertragen
werden.
-
Gemäß der oben
beschriebenen Struktur können
die Werte der in der Übertragungsparameter-Temporärladeeinheit
gespeicherten Übertragungsparameter
davon abgehalten werden, sich zu ändern und somit eine unerwartete
Funktion hervorzurufen, während
die Übertragungsparameter
in der Übertragungsparameter-Speichereinheit
gespeichert sind.
-
Des
Weiteren wird in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung eine „Warteschlangen-Aktiv"-Markierung bzw.
-Flag (queue active flag) für
jeden der logischen Prozessoren zur Verfügung gestellt, die anzeigt,
ob sich die Übertragungsparameter
aneinanderreihen oder nicht, und die Steuerungseinheit überprüft zyklisch die „Warteschlange-Aktiv"-Flag, um zu entscheiden, ob
es eine DMA-Übertragungsanfrage
für jedem
der logischen Prozessoren gibt oder nicht.
-
Gemäß der oben
beschriebenen Struktur kann, nachdem die DMA-Übertragung, die auf jeden der
Logischen Prozessoren bezogen ist, abgeschlossen wurde, entschieden
werden, ob die auf einen nächsten
logischen Prozessor bezogene DMA-Übertragungsanfrage existiert
oder nicht. Wenn es keine DMA-Übertragungsanfrage
gibt, muss auf die Übertragungsparameter-Speichereinheit
nicht zugegriffen werden und ein Prozess kann bei hoher Geschwindigkeit
durchgeführt
und die verbrauchte Leistung bzw. der verbrauchte Strom können reduziert
werden.
-
Des
Weiteren wird in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung, wenn einer der Übertragungsparameter,
die auf die logischen Prozessoren bezogen sind, validiert wird, die „Warteschlange-Aktiv"-Flag für jeden
der logischen Prozessoren gesetzt, und wenn all die DMA-Übertragungen
betreffend den logischen Prozessor abgeschlossen sind, wird die „Warteschlangen-Aktiv-Flag" zurückgesetzt.
-
Gemäß der oben
beschriebenen Struktur kann, da jede „Warteschlange-Aktiv"-Flag gesetzt wird,
während
all die DMA-Übertragungen
von der ersten Erzeugung von DMA-Übertragungsanfragen, die
auf jeden der logischen Prozessoren bezogen sind, abgeschlossen
sind, fortwährend
ordnungsgemäß angezeigt
werden, ob die DMA-Übertragungsanfragen
existieren oder nicht.
-
Des
Weiteren wird in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung die Setzungsanfrage für
Zurücksetzen
der „Warteschlange-Aktiv"-Flag gewartet, wenn
eine der „Warteschlange-Aktiv"-Flags zurückgesetzt
wird.
-
Gemäß der oben
beschriebenen Struktur wird mit einer neuen Setzungsanfrage gewartet, wenn
die „Warteschlange-Aktiv"-Flag gesetzt wird. Folglich
kann das Auftreten einer uner warteten Funktion aufgrund eines unangemessenen
Wechsels der „Warteschlange-Aktiv"-Flag vermieden werden.
-
Des
Weiteren gibt es in dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung eine Pfad bzw. Weg, der dazu fähig ist, von außerhalb
des DMA-Übertragungscontrollers
direkt auf die „Warteschlange-Aktiv"-Flag zuzugreifen.
-
Gemäß der oben
beschriebenen Struktur kann, wenn der Prozessor in eine Fehlerbeseitigungsbetriebsart
(debug mode) eintritt, auf die „Warteschlange-Aktiv"-Flag direkt von
außen
zugegriffen werden. Folglich kann ein effektives Analysemittel bereitgestellt
werden.
-
In
dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung wird, wenn eine Inkonsistenz zwischen dem Zustand der „Warteschlange-Aktiv"-Flag und der Aneinanderreihungs-Steuerungsinformation
erzeugt wird, der Zustand der „Warteschlange-Aktiv"-Flag in Übereinstimmung
mit der Warteschlangen-Steuerungsinformation korrigiert.
-
Gemäß der oben
beschriebenen Struktur wird, wenn die Inkonsistenz zwischen dem
Zustand der „Warteschlange-Aktiv"-Flag und der Warteschlangen-Steuerungsinformation
durch einen Betrieb in einer Fehlerbeseitigungsbetriebsart erzeugt wird,
der Zustand der „Warteschlange-Aktiv"-Flag in Übereinstimmung
mit der Warteschlangen-Steuerungsinformation korrigiert. Dementsprechend
kann ein Prozessor davon abgehalten werden, in einen unangemessenen
bzw. unvorschriftsmäßigen oder
unzutreffenden Zustand gebracht zu werden.
-
Gemäß der vorliegenden
Erfindung kann, da die Busbelegungs-Ablaufzeit für jeden der logischen Prozessoren
auf den Busbelegungs-Zeitwert begrenzt ist, die Abfolge der DMA-Übertragungen in Echtzeitprozessen
ausgeführt
werden, ein System kann davon abgehalten werden, zusammenzubrechen,
und die Echtzeitcharakteristiken der Prozesse können auf jeden Falls sichergestellt
werden.
-
Des
Weiteren brauchen, wenn die Busbelegungs-Ablaufzeit den Busbelegungs-Zeitwert
erreicht, um die derzeit durchgeführte DMA-Übertragung zu unterbrechen,
da eine anschließend
auszuführende
DMA-Übertragung
automatisch ohne die Verwendung eines Programms gestartet wird,
individuelle Programme sich nicht mit der Abfolge der DMA-Übertragungen zu befassen. Folglich
kann die Entwicklung oder Wartung der Programme einfach durchgeführt werden.
-
Des
Weiteren reihen sich gemäß der vorliegenden
Erfindung die Übertragungsparameter
der FIFO-Struktur an, um die DMA-Übertragung zu steuern. Somit
ist ein Überschuss,
der für
die Unterbrechung des Abschlusses einer DMA-Übertragung bis zum Start einer
nächsten
DMA-Übertragung
notwendig ist, nicht erforderlich, so dass die Effizienz der DMA-Übertragung verbessert werden
kann.
-
Des
Weiteren wird gemäß der vorliegenden Erfindung,
da die Übertragungsparameter
individuell oder für
jeden der logischen Prozessoren annulliert werden können, einem
Fall entsprochen, in welchem eine Anwendung auf halbem Wege ungültig gemacht wird.
Des Weiteren kann eine spekulative Ausführung einer DMA-Anfrage ausgeführt werden,
um den Freiheitsgrad in der Vorbereitung der Anwendung zu erhöhen.
-
Des
Weiteren werden gemäß der vorliegenden
Erfindung, da die Ausführung
der DMA-Übertragungen
individuell für
jeden der logischen Prozessoren angehalten werden kann, wenn die
Anwendung unterbrochen und wieder aufgenommen wird, Prozesse zum
Zurückziehen,
Löschen
und Zurücksetzen
der individuellen Übertragungsparameter
während
der DMA-Übertragungen
jeweils nicht benötigt. Folglich
können
eine Haltefunktion und eine Zurücksetzungsfunktion
auf hoher Geschwindigkeit umgeschaltet werden.
-
Des
Weiteren werden gemäß der vorliegenden
Erfindung die DMA-Übertragungen
wiederholt für
jeden der logischen Prozessoren oder individuell ausgeführt, so
dass ein Überschuss,
der für
die Unterbrechung des Abschlusses der DMA-Übertragung bis zum Start einer
nächsten
DMA-Übertragung
erforderlich ist, eliminiert werden kann und die Effizienz der DMA-Übertragung
in der Reihe der DMA-Übertragungen,
die in der Anwendung ausgeführt
werden, verbessert werden kann.
-
Des
Weiteren kann gemäß der vorliegenden Erfindung,
wenn eine hoch aufstrebende Anwendung unzufriedenstellend aktiviert
wird, so dass die sie begleitenden DMA-Übertragungsanfragen
einem Zeitunterteilungsprozess ausgesetzt werden, der Zeitunterteilungsprozess
der DMA-Übertragungen
temporär
individuell oder für
jeden der logischen Prozessoren unterdrückt werden. Die hoch aufstrebenden DMA-Übertragungen
können
vorzugsweise verarbeitet und dann an eine übliche Funktion bzw. in den üblichen
Betrieb zurückgegeben
werden.
-
Kurze Beschreibung der Zeichnungen
-
1 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer ersten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
2 ist
ein Blockdiagramm, das ein strukturelles Beispiel eines Systems
zeigt, auf dem ein üblicher
DMA-Controller angebracht ist;
-
3 ist
ein Zeitdiagramm, das einen Betrieb des üblichen DMA-Übertragungscontrollers
in einem Programm zeigt, das unter einer Zeitunterteilung ausgeführt wird;
-
4 ist
ein Zeitdiagramm, das einen Betrieb des üblichen DMA-Übertragungscontrollers zeigt,
wenn ein spezifisches Programm einen DMA-Bus für eine lange Zeit belegt;
-
5 ist
ein Zeitdiagramm, das eine Betrieb des üblichen DMA-Übertragungscontrollers
zeigt, der eine Funktion zum Anmelden und Ausführen einer Vielzahl von DMA-Übertragungen hat;
-
6 ist
ein Zeitdiagramm, das einen Betrieb des üblichen DMA-Übertragungscontrollers zeigt,
wenn ein Echtzeitprozess abgebrochen wird, sogar wenn die Funktion
zum Anmelden und Ausführen
der Vielzahl von DMA-Übertragungen
zur Verfügung
gestellt wird;
-
7 ist
eine Speicherabbildung, die ein Beispiel einer Datenreihe von Übertragungsparametern
zeigt, die in einer Übertragungsparameter-Speichereinheit
in der ersten Ausführungsform
der vorliegenden Erfindung gespeichert sind;
-
8 ist
ein Zeitdiagramm, das ein Funktionsbeispiel des DMA-Übertragungscontrollers
gemäß der ersten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
9 ist
ein Zeitdiagramm, das ein Funktionsbeispiel zeigt, in dem die DMA-Übertragungen
in dem DMA-Übertragungscontroller
gemäß der ersten Ausführungsform
der vorliegenden Erfindung wiederholt unterbrochen und wiederaufgenommen
werden;
-
10 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, die in einer Übertragungsparameter-Speichereinheit
in einer zweiten Ausführungsform der
vorliegenden Erfindung gespeichert sind;
-
11 ist
ein Zeitdiagramm, das ein Funktionsbeispiel des DMA-Übertragungscontrollers
gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung zeigt.
-
12 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, in dem eine aufstrebende Warteschlange sich in der zweiten
Ausführungsform
der vorliegenden Erfindung aneinanderreihen kann;
-
13 ist
ein Blockdiagramm, das die Struktur des DMA-Übertragungscontrollers gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
14 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, die in einer Übertragungsparameter-Speichereinheit
in einer dritten Ausführungsform der
vorliegenden Erfindung gespeichert sind;
-
15 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, wenn aufstrebende Warteschlangen sich in einer dritten Ausführungsform
der vorliegenden Erfindung aneinanderreihen;
-
16 ist
ein Diagramm, das ein strukturelles Beispiel einer Warteschlangen-Steuerungsinformation
zeigt, die Haltemarkierungen für
jede der DMA-Übertragungsanfragen
in einer vierten Ausführungsform
der vorliegenden Erfindung hat;
-
17 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, die in einer Übertragungsparameter-Speichereinheit
in einer fünften
Ausführungsform der
vorliegenden Erfindung gespeichert sind;
-
18 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer siebten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
19 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer achten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
20 ist
ein Diagramm, das das strukturelle Beispiel einer Übertragungsparameter-Temporärladeeinheit 124 in
der achten Ausführungsform
der vorliegenden Erfindung zeigt,
-
21 ist
ein Blockdiagramm, das die Struktur des DMA-Übertragungscontrollers gemäß einer neunten
Ausführungsform
der vorliegenden Erfindung zeigt;
-
22 ist
ein Blockdiagramm, das ein strukturelles Beispiel zeigt, das einen
Pfad hat, durch den auf eine „Warteschlange-Aktiv"-Flag in der neunten Ausführungsform
der vorliegenden Erfindung von außerhalb direkt zugegriffen
werden kann;
-
23 ist
ein Diagramm, das die Zustände der Übertragungsparameter
in der dritten Ausführungsform
der vorliegenden Erfindung zeigt; und
-
24 ist
ein Diagramm, das die Zustände der Übertragungsparameter
in der dritten Ausführungsform
der vorliegenden Erfindung zeigt.
-
In
den Zeichnungen bezieht sich ein Bezugszeichen 1 auf eine
Mikroprozessoreinheit; 2 auf einen externen DMA-Controller; 3 auf
einen peripheren Schaltkreis; 4 auf einen externen Speicher; 5 auf
einen peripheren Schaltkreis; 11 auf einen Prozessor; 12, 12a, 12b, 12c, 12e auf
einen DMA-Übertragungscontroller; 13 auf
eine externe DMA-Bus-Schnittstelle; 14, 15, 16 auf
einen inneren Speicher; 121 auf eine Übertragungsparameter-Speichereinheit; 122 auf
eine Datenübertragungs-Durchführeinheit; 123, 123a, 123b, 123c, 123e auf
eine Steuereinheit; 124 auf eine Übertragungsparameter-Temporärladeeinheit; 125 auf
eine Speicherunterstützungseinheit; 1221 auf
eine Übertragungsparameter-Temporärspeichereinheit;
und 1231 auf eine Zeitmesseinheit.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsformen
-
Nun
werden unter Bezug auf die Zeichnungen Ausführungsformen der vorliegenden
Erfindung beschrieben. Der folgenden Beschreibung der Zeichnungen
werden gleiche oder ähnliche
Teile mit den gleichen oder ähnlichen
Bezugszeichen bezeichnet und die duplizierte Beschreibung der gleichen
Teile wird weggelassen.
-
In
jeder der Ausführungsformen
der vorliegenden Erfindung wird 2 als eine
Struktur eines Systems unterstellt. Es wird nämlich als ein Funktionsbeispiel
in jeder der Ausführungsformen
ein Fall angenommen, in dem komprimierten Audiodaten von einem Speichergerät (zum Beispiel
einer Halbleiterspeicherkarte) durch die Verwendung des in 2 gezeigten
Systems gelesen, dekodiert und dann die dekodierten Daten an einen
Audioschnittstellenschaltkreis ausgegeben werden. Ein peripherer Schaltkreis 3 dient
als ein Schnittstellenschaltkreis zu der Halbleiterspeicherkarte
und ein peripherer Schaltkreis 5 dient als der Audioschnittstellenschaltkreis.
-
(Erste Ausführungsform)
-
1 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer ersten
Ausführungsform
zeigt. In 1 sind ein Prozessor 11 und
ein DMA-Übertragungscontroller (DMA-Controller) 12 mit
einem inneren Prozessorbus und einem DMA-Bus verbunden. Diese Teile
sind verkörpert
als ein Teil einer Mikroprozessoreinheit (microprocessor unit – MPU) 1,
die in 2 gezeigt ist und durch die gleichen Bezugszeichen
wie die in 2 bezeichnet ist.
-
Der
DMA-Übertragungscontroller 12 beinhaltet
eine Übertragungsparameter-Speichereinheit 121,
eine Datenübertragungs-Durchführeinheit 122 und
eine Steuereinheit 123. Des Weiteren ist die Steuereinheit 123 so
gebildet, dass sie eine Zeitmesseinheit 1231 beinhaltet.
Der innere Prozessorbus, die Datenübertragungs-Ausführeinheit 122 und die
Zeitmesseinheit 1231 sind mit der Übertragungsparameter-Speichereinheit 121 in
dem DMA-Übertragungscontroller 12 verbunden.
-
Die Übertragungsparameter-Speichereinheit 121 speichert
die Übertragungsparameter
der DMA-Übertragungen
und Busbelegungszeit, die von dem Prozessor 11 für jeden
der logischen Prozessoren übertragen
werden. 7 ist eine Speicherabbildung
bzw. Speicherkartierung, die das Beispiel eines Datenfeldes (array)
der Übertragungsparameter zeigt,
die in der Übertragungsparameter-Speichereinheit
gespeichert sind.
-
Die
Datenübertragungs-Durchführungseinheit 122 bildet
Adressen oder Steuersignale, die zum Durchführen der DMA-Übertragungen
in Übereinstimmung
mit einer Steuerung von der Steuerungseinheit 123 notwendig
sind. Die Steuereinheit 123 steuert die Ein- und Ausgabe
von Daten, die in der Übertragungsparameter-Speichereinheit 121 gespeichert
sind, sowie den Start und die Unterbrechung der DMA-Übertragungen,
die von der Datenübertragungs-Durchführeinheit 122 ausgeführt werden.
Des Weiteren hat der DMA-Übertragungscontroller
gemäß dieser
Ausführungsform
eine Funktion zum Anmelden und Durchführen von dem DMA-Übertragungen,
wie es in dem Patentdokument 2 offenbart ist.
-
8 ist
ein Zeitdiagramm, das ein Funktionsbeispiel des DMA-Übertragungscontrollers
gemäß dieser
Ausführungsform
zeigt. In diesem Beispiel sind jeweils drei verschiedene Programme
A, B und C zu den logischen Prozessoren 0, 1 und 2 zugeteilt. Die
DMA-Busbelegungszeiten
der Programme werden jeweils so festgelegt, dass sie eine Beziehung
von A:B:C = 1:1:3 haben. Die Werte der Busbelegungszeit werden in
der Übertra gungsparameter-Speichereinheit 121 durch
den Prozessor 11 gespeichert, wie in 7 gezeigt
ist.
-
Die
Busbelegungszeit des logischen Prozessors 3 bis 15, dem keine Programme
zugeteilt sind, ist 0. Die Zeitmesseinheit 1231 liest die
Busbelegungszeit zyklisch in der Reihenfolge der Anzahl der logischen
Prozessoren, um ununterbrochen die Busbelegungszeit für jeden
der logischen Prozessoren zu messen. Die Belegungsrechte des DMA-Bus
sind jeweils den Programmen zugeteilt, wie in dem alleruntersten
Abschnitt von 8 gezeigt.
-
Zuerst
fragt das Programm C beim DMA-Übertragungscontroller 12 nach,
eine DMA-Übertragung
von einem inneren Speicher 14 zu einem peripheren Schaltkreis 5 durchzuführen. Zu diesem
Zeitpunkt überträgt der Prozessor 11 einen Satz
von Übertragungsparametern,
die dazu notwendig sind, die DMA-Übertragungen an dem DMA-Übertragungscontroller 12 durchzuführen, und diese Übertragungsparameter
werden in der Übertragungsparameter-Speichereinheit 121 gespeichert. Der
eine Satz von Übertragungsparametern
beinhaltet solche Gegenstände,
wie unten beschrieben.
- (1) Startadresse einer
tragenden Seite (ein innerer Speicher 14)
- (2) Startadresse des Übertragungsziels
(ein peripherer Schaltkreis 5)
- (3) Übertragungssystem
- (4) Die Anzahl der Übertragungsworte.
-
Wenn
die Zuteilung des DMA-Busses zum Programm C umgeschaltet wird, liest
die Steuereinheit 123, das die Anzahl der Übertragungsworte
nicht 0 ist, um der Datenübertragungs-Durchführeinheit 122 zu
erlauben, die DMA-Übertragung
zu starten. Während
die DMA-Übertragung
fortschreitet, aktualisiert die Datenübertragungs-Durchführeinheit 122 die
Adresse der übertragenen
Seiten, die Adresse des Übertragungszieles
und die Anzahl von Übertragungsworten,
die in der Übertragungsparameter-Speichereinheit 122 gespeichert
sind, zu jedem bzw. irgendeinem Zeitpunkt. Wenn die Anzahl der Übertragungsworte
gleich 0 ist, informiert die Datenübertragungs-Durchführeinheit
die Steuereinheit 123 über
den Abschluss der DMA-Übertragung.
Des Weiteren informiert die Steuereinheit 123 den Prozessor 11 über eine
Unterbrechung (interrupt).
-
Das
Programm C empfängt
die Information über
die Unterbrechung und verlangt dann nach einer DMA-Übertragung
als eine nächste
DMA-Übertragung
von einem externen Speicher zu dem inneren Speicher 14.
Die Prozedur dieser Anfrage ist die gleiche, wie die einer ersten
DMA-Übertragung.
Wenn der DMA-Bus wieder dem Programm C zugeteilt wird, wird die
DMA-Übertragung
durchgeführt.
-
Des
Weiteren verlangt das Programm B, während die Zeit fortschreitet,
nach der DMA-Übertragung
und die DMA-Übertragung
wird durchgeführt.
Allerdings wird die DMA-Übertragung
nicht zu einer Zeit abgeschlossen, da die Busbelegungszeit des Programms
B relativ kurz ist. Wenn die Busbelegungsablaufzeit der DMA-Übertragung
die Busbelegungszeit erreicht, steuert die Steuereinheit 123 die Datenübertragungs-Durchführeinheit 122 so,
dass die DMA-Übertragung
unterbrochen wird. Zu diesem Zeitpunkt verbleiben die Übertragungsworte
wegen des zwischenzeitlichen Fortschrittes der Adresse der übertragenen
Seite in der Übertragungsparameter-Speichereinheit 121,
wenn der DMA-Bus wieder dem Programm B zugeteilt wird, kann die
DMA-Übertragung
ununterbrochen bzw. fortgesetzt durchgeführt werden.
-
Hier
in dem in 8 gezeigten Zeitdiagramm wird,
wie in dem untersten Abschnitt der Figur gezeigt, die Busbelegungszeit
erzwungenermaßen
als eine Zeitnische zum Durchführen
der DMA-Übertragungen
für jeden
der logischen Prozessoren gegeben. Allerdings wird in diesem Verfahren,
wenn all die DMA-Übertragungen,
die auf einen bestimmten logischen Prozessor bezogen sind, abgeschlossen
werden, bevor die Busbelegungs-Ablaufzeit einen Busbelegungs-Zeitwert
erreicht, Zeitlücken
in der für
die DMA-Übertragung
gegebenen Zeitnische erzeugt. Deswegen kann in dem System zum mechanischen Vergeben
der Zeitnische für
die DMA-Übertragungen an
jeden der logischen Prozessoren die maximale Betriebs- bzw. Durchsatzrate
des DMA-Busses nicht erreicht werden. Somit kann eine erreichbare
Echtzeitleistung möglicherweise
gemindert werden.
-
Folglich
wird gemäß der vorliegenden
Erfindung, wenn all die DMA-Übertragungen,
die auf einen bestimmten logischen Prozessor bezogen sind, abgeschlossen
werden, bevor die Busbelegungs-Ablaufzeit den Busbelegungs-Zeitwert
erreicht, eine DMA-Übertragung,
die auf einen nächsten
logischen Prozessor bezogen ist, so gesteuert, dass sie unverzüglich startet.
Die Sequenz der logischen Prozessoren ist in der Reihenfolge von
Nummern und ist zyklisch. Des Weiteren werden alle DMA-Übertragungsprozesse,
die auf den logischen Prozessor bezogen sind, in dem die DMA-Übertragungsparameter nicht
gespeichert sind, so gesteuert, dass sie übersprungen werden. Auf solch
eine Art und Weise kann die Betriebs- bzw. Funktionsrate des DMA-Busses bis
zu einem Limit bzw. einer Höchstgrenze
angehoben werden.
-
Wenn
die DMA-Übertragungen
des Programms B in Übereinstimmung
mit den Steuerungsfunktionen unterbrochen oder abgeschlossen werden,
falls erkannt wird, dass die Übertragungsparameter
des Programms C in der Übertragungsparameter-Speichereinheit 121 gespeichert
sind, steuert die Steuereinheit 123 die Datenübertragungs-Durchführeinheit 122 so,
dass sie mit den DMA-Übertragungen
des Programms C beginnt.
-
Wenn
allerdings die DMA-Übertragungen des
Programms B unterbrochen werden, falls die Übertragungsparameter des Programms
C noch nicht in der Übertragungsparameter-Speichereinheit gespeichert
sind, steuert die Steuereinheit 123 derart, dass die DMA-Übertragung auf Basis eines nächsten Übertragungsparameters
gestartet wird. Allerdings steuert die Steuereinheit normal so,
dass die DMA-Übertragungen
des Programms B gestartet werden, weil andere Übertragungsparameter noch nicht
gesetzt sind. 9 ist ein Zeitdiagramm, das ein
Funktionsbeispiel zeigt, in welchem die DMA-Übertragungen in diesem Fall
wiederholt unterbrochen und wieder aufgenommen werden.
-
Wie
oben beschrieben, überprüft die Steuereinheit 123 zyklisch
die Übertragungsparameter,
die in der Übertragungsparameter-Speichereinheit 121 angemeldet
und gespeichert sind. Dann steuert die Steuereinheit die Datenübertragungs-Durchführeinheit 122 so,
dass sie mit einer nächsten
DMA-Übertragung
startet, in der die Anzahl der Übertragungsworte
nicht 0 ist. Dementsprechend kann, wenn die Busbelegungs-Ablaufzeit
die Busbelegungszeit erreicht, um die DMA-Übertragung zu unterbrechen, eine
nächste
DMA-Übertragung
unverzüglich
gestartet werden, ohne das Programm zu verwenden.
-
Des
Weiteren kann in dem DMA-Übertragungscontroller
gemäß dieser
Ausführungsform
als ein Zeitüberwachungsverfahren,
das zu einem Verfahren zum Messen der Busbelegungs-Ablaufzeit durch
die Verwendung der Zeitmesseinheit 1231 äquivalent
ist, ein Verfahren zum Messen der Anzahl von Busübertragungsdaten eingesetzt
werden. In diesem Fall wird die Anzahl von Übertragungsdaten, die dazu
fähig sind,
den Bus zu belegen, in der Übertragungsparameter-Speichereinheit 121 anstelle
des Busbelegungs-Zeitwertes gespeichert. Die Zeitmesseinheit 1231 misst
die Anzahl der Busübertragungsdaten
in den DMA-Übertragungen.
Wenn die Anzahl der Busübertragungsdaten
die Anzahl von Übertragungs daten
erreicht, die dazu fähig
sind, den Bus zu belegen, wird eine derzeit durchgeführte DMA-Übertragung
unterbrochen, um mit einer nächsten DMA-Übertragung
zu beginnen.
-
In
der obigen Beschreibung werden in den Übertragungsparametern, die
in der Übertragungsparameter-Speichereinheit 121 angemeldet
und gespeichert sind, die Anzahl der Worte überprüft, um zu entscheiden, ob es
eine eigentliche DMA-Übertragungsanfrage
bzw. -anforderung gibt oder nicht. Allerdings kann anstelle des
oben beschriebenen Verfahrens ein Teil der Übertragungsparameter, zum Beispiel
eine DMA-Übertragungsanfragen-Gültigkeitsmarkierung in dem Übertragungssystem
zur Verfügung
gestellt werden. Dies kann auf andere Ausführungsformen, wie unten beschrieben,
angewendet werden.
-
Wie
oben beschrieben, wird in dem DMA-Übertragungscontroller gemäß dieser
Ausführungsform
die DMA-Belegungszeit oder die Anzahl von Übertragungsdaten, die dazu
fähig sind,
den Bus äquivalent
dazu zu belegen, jedem Programm zugeteilt und so gesteuert, dass
eine Zeitplanung simultan ausgeführt
wird. Folglich braucht in den individuellen Programmen (A, B, C)
eine Zeitplanung der DMA-Übertragungen
nicht in Betracht gezogen zu werden. Des Weiteren wird eine ausreichende
Busbelegungszeit dem Programm (C) zugewiesen, das einen Echtzeitprozess
erfordert, so dass eine Fehlfunktion des Systems in dem Echtzeitprozess
vermieden werden kann.
-
(Zweite Ausführungsform)
-
In
der oben beschriebenen ersten Ausführungsform kann der DMA-Übertragungscontroller
zyklisch die DMA-Übertragungen
auf Basis von Übertragungsparametern
starten, die in der Übertragungsparameter-Speichereinheit
angemeldet und gespeichert sind, ohne ein Programm zu benutzen. Allerdings
verlieren die Übertragungsparameter,
in denen die DMA-Übertragungen
abgeschlossen werden und die Anzahl der Übertragungsworte gleich 0 ist
ihre Effekte bzw. Auswirkungen. Folglich müssen durch ein Unterbrechen
des Prozessors neue Übertragungsparameter
empfangen werden.
-
Zum
Beispiel in dem Zeitdiagramm, das in 8 gezeigt
ist, benötigt
der Prozessor, nachdem die DMA-Übertragung
von einem inneren Speicher 15 an den peripheren Schaltkreis 5 abgeschlossen ist,
dass er unterbrochen wird, um eine DMA-Übertragungsanfrage von dem
inneren Speicher an den äußeren Speicher 15 anzumelden.
In dieser Ausführungsform
in dem in 1 gezeigten DMA-Übertragungscontroller
meldet ein logischer Prozessor eine Vielzahl von DMA-Übertragungsanforderungen
an. Folglich kann eine Reihe von darauf bezogenen DMA-Übertragungen
durchgeführt
werden, ohne den Prozessor zu unterbrechen.
-
10 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes (array)
von Übertragungsparametern
zeigt, die in einer Übertragungsparameter-Speichereinheit
in einem DMA-Übertragungscontroller
gemäß einer
zweiten Ausführungsform
der vorliegenden Erfindung gespeichert sind. In diesem Beispiel
können
sich sechs Sätze
von Übertragungsparametern
bei einem logischen Prozessor 1 aneinanderreihen bzw. in einer Warteschlange
aufreihen. Da eine DMA-Übertragung
basierend auf der Warteschlange von Übertragungsparametern kontinuierlich als
eine Reihe von DMA-Übertragungen
ausgeführt wird,
wird eine Busbelegungszeit den sechs Sätzen von Übertragungsparametern gegeben.
-
Die
Warteschlange der Übertragungsparameter
hat eine FIFO-Struktur. Zum Beispiel hat eine Steuereinheit 123 Zeiger
von einer Warteschlangenoberseite bzw. einem Warteschlangenende
und einer Warteschlangenunterseite bzw. einem Warteschlangenanfang
für jeden
der logischen Prozessoren und steuert derart, dass die Warteschlangenoberseite
auf ein Laden der Übertragungsparameter
hin aktualisiert wird und die Warteschlangenunterseite auf einen
Abschuss der DMA-Übertragung
hin aktualisiert wird.
-
11 ist
ein Zeitdiagramm, das ein Funktionsbeispiel des DMA-Übertragungscontrollers
gemäß dieser
Ausführungsform
zeigt. In diesem Beispiel in dem System von einem in 2 gezeigten strukturellen
Beispiel werden die drei verschiedenen Programme A, B und C jeweils
den logischen Prozessoren 0, 1 und 2 zugewiesen und die Übertragungsparameter
davon werden jeweils in der Übertragungsparameter-Speichereinheit 121 gespeichert.
-
Das
Programm A führt
nicht die DMA-Übertragungen
aus. Eine relativ kurze Busbelegungszeit wird dem Programm B gegeben.
In dem Programm C, das Echtzeitcharakteristiken erfordert, werden zwei
Sätze von Übertragungsparametern
zu dem logischen Prozessor 2 gesetzt, so dass die DMA-Übertragungen
an den peripheren Schaltkreis 5 von den inneren Speichern 14 und 15 und
die DMA-Übertragungen
von dem externen Speicher an die inneren Speicher 14 und 15 kontinuierlich
durchgeführt
werden können
und eine Busbelegungszeit, die für
die beiden DMA-Übertragungen
notwendig ist, gegeben wird.
-
Die Übertragungsparameter
des logischen Prozessors 2 reihen sich in solch einer Art und Weise aneinander.
Folglich wird ein Überschuss
(overhead), der für
eine Unterbrechung des Abschlusses der DMA-Übertragungen und den Start
der DMA-Übertragungen
notwendig ist, zwischen den DMA-Übertragungen
von den inneren Speichern 14 und 15 zu dem peripheren
Schaltkreis 5 und den DMA-Übertragungen von dem externen
Speicher an die inneren Speicher 14 und 15 eliminiert.
Dementsprechend kann die Effizienz der DMA-Übertragung verbessert werden.
-
Das
oben beschriebene Programm C erfordert die Echtzeitcharakteristiken.
Allerdings kann abhängig
von der Anwendung eine unverzügliche
Reaktion auf das Auftreten eines Phänomens vonnöten sein. In diesem Fall müssen die
DMA-Übertragungen per Übertragungsparameter
so vorbereitet werden, dass sie den Bedürfnissen des auftretenden Phänomens genügen, um
auf eine bevorzugte Art und Weise ausgeführt zu werden. Dafür muss ein
Mechanismus zur Verfügung
gestellt werden, in dem die Übertragungsparameter,
die eine höhere
Priorität
als die Warteschlange der üblichen Übertragungsparameter haben,
sich in einer neuen Warteschlange als eine neu gebildete bzw. aufstrebende
Warteschlange des logischen Prozessors aneinanderreihen können.
-
12 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes von Übertragungsparametern
zeigt, durch welche die oben beschriebene neu gebildete bzw. aufstrebende
Warteschlange sich aneinanderreihen kann.
-
In 12 können sich
die Übertragungsparameter
der neu gebildeten Warteschlangen vor den ersten Übertragungsparametern
der üblichen
bzw. normalen Aneinanderreihung des logischen Prozessors aneinanderreihen.
Auf solch eine Weise wird der Aneinanderreihungs- bzw. Warteschlangen-Mechanismus der
neu gebildeten bzw. aufstrebenden Warteschlangen zur Verfügung gestellt,
so dass die DMA-Übertragung,
die zu dem auftretenden Phänomen
gehört,
auf die meist zu bevorzugende Art und Weise durchgeführt werden
kann.
-
Auf
der anderen Seite gibt es, wenn die Warteschlange bzw. Aneinanderreihung
der Übertragungsparameter
gemäß dieser
Ausführungsform
unbeschränkt
durchgeführt
wird, die Möglichkeit,
dass die Anzahl der Übertragungsparameter
die maximale Anzahl von Übertragungsparametern übersteigt. Wenn
es festgestellt wird, dass die Warteschlange der Übertragungsparameter
durch ein Übersteigen der
maximalen Anzahl der Übertragungsparameter auszuführen ist,
wird der Prozessor davon als ein Fehler informiert. Des Weiteren
wird, während
die neu gebildete Warteschlange sich aneinanderreiht, wenn eine
neu gebildete bzw. aufstrebende Warteschlange aneinanderzureihen
ist, dies festgestellt, um den Prozessor darüber als ein Fehler zu informieren.
-
13 ist
ein Blockdiagramm, das die Struktur des DMA-Übertragungscontrollers gemäß der zweiten
Ausführungsform
der vorliegenden Erfindung zeigt und eine Funktion zum Detektieren
einer Abnormalität
in der Warteschlange der Übertragungsparameter,
wie oben beschrieben, und des Informierens des Prozessors darüber durch
eine Unterbrechung hat.
-
In
dem in 13 gezeigten DMA-Übertragungscontroller 12a werden
während
der Unterbrechung eines Prozessors 11 die oben beschriebene Information über die
Abnormalität
einer üblichen Warteschlange
und die Information über
die Abnormalität
der neu gebildeten Warteschlange zugefügt und eine darauf bezogene
Steuerungsfunktion wird einer Steuereinheit 123a hinzugefügt. Diese
Funktionen werden zur Verfügung
gestellt, um eine unerwartete Funktion, so wie die Beschädigung von
schon aneinandergereihten Übertragungsparametern,
zu verhindern.
-
(Dritte Ausführungsform)
-
In
dieser Ausführungsform
kann eine DMA-Übertragungsanfrage
gelöscht
werden. Folglich kann einem Fall entsprochen werden, in dem eine
Anwendung auf halbem Wege ungültig
gemacht wird oder ein Fall, in dem die Anzahl der Übertragungsparameter
auf halbem Wege verändert
wird. Des Weiteren kann eine spekulative Ausführung einer DMA-Anfrage durchgeführt werden,
um einen Freiheitsgrad in der Vorbereitung bzw. Bearbeitung der
Anwendung zu erhöhen.
Nun wird diese Ausführungsform
durch ein Bezugs auf den in 1 oder 13 gezeigten
DMA-Übertragungscontroller
beschrieben.
-
Wenn
die Anwendung auf halbem Wege ungültig gemacht wird, kann ein
Verfahren zum Löschen
der DMA-Übertragungsanfrage
für jeden
der logischen Prozessoren eingesetzt werden. In diesem Fall schreibt
ein Prozessor erneut, um Übertragungsparameter,
die zu dem relevanten logischen Prozessor gehören, ungültig zu machen. Dies kann durch ein
Setzen der Anzahl von Übertragungsworten
zu 0 oder ein Setzen einer Gültigkeitsmarkierung
(valid flag) zu einer Ungültigkeit
erreicht werden, wenn eine Gültigkeitsmarkierung
zur Verfügung
gestellt ist.
-
Des
Weiteren kann dies, wenn eine Vielzahl von DMA-Übertragungsanfragen sich an
einen logischen Prozessor wie in der zweiten Ausführungsform aneinanderreihen
komplett gelöscht
werden, dadurch erreicht werden, indem die Zeiger auf den Warteschlangenanfang
und das Warteschlangenende des relevanten Prozessors auf Anfangszustände in der
Steuereinheit 123a zurückgesetzt
werden. Allerdings ist, wenn alle aus der Vielzahl von DMA- Übertragungsanfragen nicht gelöscht und
individuell gelöscht
werden, ein Prozess zum Aufrechterhalten einer Warteschlangenstruktur
notwendig.
-
14 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes der Übertragungsparameter
zeigt, die in einer Übertragungsparameter-Speichereinheit
in dem DMA-Übertragungscontroller
gemäß der dritten
Ausführungsform
der vorliegenden Erfindung gespeichert sind. In diesem Beispiel
können
sich sechs Sätze
von Übertragungsparametern
an einem logischen Prozessor 1 aneinanderreihen. Eine Busbelegungszeit
und eine Warteschlangen-Steuerungsinformation werden allen sechs
Sätzen
von Übertragungsparametern
gegeben.
-
Die
Warteschlangen-Steuerungsinformation beinhaltet eine Speicherposition
bzw. einen Speicherort von jedem Übertragungsparameter, der in
einer Warteschlange ist, sowie eine Gültigkeitsmarkierung, die seine
Gültigkeit
zeigt. Die Warteschlangenstruktur wird durch die Warteschlangen-Steuerungsinformation
gesteuert. Die Warteschlangen-Steuerungsinformation
wird in sechs Teile unterteilt. Einem rechten Ende angeordneter
Teile dient als der Warteschlangenanfang bzw. die Aneinanderreihungsoberseite.
Die Speicherpositionen der Übertragungsparameter
werden durch sequenzielle Nummern in einem Warteschlangenbereich
bezeichnet. Die Übertragungsparameter
können
in arbiträren
Positionen bzw. Orten gespeichert werden. Die Speicherpositionen
bzw. -orte werden bestimmt, wenn die Übertragungsparameter registriert
werden und die Gültigkeitsmarkierung
zu einer Gültigkeit
aktualisiert wird auf das Laden zum Validieren der Übertragungsparameter
hin.
-
Wenn
die DMA-Übertragungen
abgeschlossen werden und wenn die DMA-Übertragungsanfragen
individuell gelöscht
werden, wird relevante Warteschlangeninformation aus der Warteschlangen-Steuerungsinformation
entfernt und Warteschlangeninformation, die der Unterseite näher ist
als die relevante Warteschlange, wird verschoben, um der oberen
Seite der Warteschlange näher
zu kommen. Folglich wird ein Raum bzw. Abstand in den Speicherpositionen
der Übertragungsparameter
gebildet. Ein neuer Übertragungsparameter
kann sich individuell in diese Speicherposition bzw. den Speicherort
von dem Prozessor einreihen. Das heißt, dass neue Übertragungsparameter
registriert werden können,
um die Gültigkeitsmarkierung
der Warteschlangen-Steuerungsinformation zu einer Gültigkeit zu
aktualisieren (laden).
-
Beispiele
von der Warteschlangen-Steuerungsinformation und den Zuständen der Übertragungsparameter
in dem Warteschiangenbereich auf eine DMA-Übertragung und einen Abschluss
der DMA-Übertragungen
hin sind in 23 gezeigt. Des Weiteren sind
Beispiele der Warteschlangen-Steuerungsinformation und den Zuständen der Übertragungsparameter
in dem Warteschlangenbereich vor und nach dem Löschen, wenn die DMA-Übertragungsanfragen individuell
gelöscht
werden, in 24 gezeigt.
-
Wie
oben beschrieben ist die Warteschlangen-Steuerungsinformation jeweils
zum Steuern bzw. Kontrollieren in Bezug auf die Übertragungsparameter zur Verfügung gestellt.
Folglich wird die Warteschlangen-Steuerungsinformation lediglich
aktualisiert, so dass die Übertragungsparameter
individuell auf einen Abschluss der DMA-Übertragungen oder auf eine
Löschung
der Warteschlange hin ungültig gemacht
werden können.
Als ein Ergebnis können die
DMA-Übertragungsanfragen,
die auf dem Weg der Warteschlange angeordnet sind, ohne ein Neuschreiben
der Übertragungsparameter
selber gelöscht
werden. Des Weiteren kann eine Vielzahl von DMA-Übertragungsanfragen einfach
gelöscht
werden.
-
15 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes zeigt,
wenn eine neu gebildete Warteschlange sich an die in einer Übertragungsparameter-Speichereinheit 121 in
dieser Ausführungsform
gespeicherten Übertragungsparameter anreiht.
In diesem Fall beinhaltet die Warteschlangen-Steuerungsinformation
genauso die Steuerungsinformation der neu gebildeten Warteschlange. Folglich
können
die gleichen Prozesse, wie die des oben beschriebenen Verfahrens,
durchgeführt
werden.
-
(Vierte Ausführungsform)
-
In
dieser Ausführungsform
können
die DMA-Übertragungsanfragen
gehalten bzw. angehalten werden. Dementsprechend sind, wenn eine
Anwendung unterbrochen und dann wieder aufgenommen wird, Prozesse
zum Zurückziehen,
Löschen
und Zurücksetzen
der Übertragungsparameter
während der
DMA-Übertragungen
nicht in Bezug darauf notwendig. Folglich können eine Festhalte- bzw. Anhaltefunktion
und eine Zurücksetzungsfunktion
bei hoher Geschwindigkeit umgeschaltet werden. Nun wird diese Ausführungsform
unten unter Bezug auf den in 1 oder 13 gezeigten
DMA-Übertragungscontroller
beschrieben.
-
Wenn
die Anwendung auf halbem Wege unterbrochen wird, wird ein Verfahren
zum Halten bzw. Anhalten der DMA-Übertragungsanfragen für jeden der
logischen Prozessoren eingesetzt. In diesem Fall setzt der logische
Prozessor eine Halteinformation für jeden der logi schen Prozessoren
zu der Steuereinheit 123 von dem Prozessor. Die Steuereinheit 123 steuert
derart, dass die DMA-Übertragungsanfragen,
die zu dem logischen Prozessor gehören, zu dem die Halteinformation
gesetzt ist, nicht durchgeführt
werden.
-
Wenn
die Vielzahl von den DMA-Übertragungsanfragen,
die sich an einen logischen Prozessor wie in der zweiten Ausführungsform
aneinanderreihen, individuell angehalten werden, wird ein Verfahren
zum Zurverfügungstellen
einer Haltemarkierung (holding flag) für jede der DMA-Übertragungsanfragen
in der Warteschlangen-Steuerungsinformation eingesetzt. 16 ist
ein Diagramm, das ein strukturelles Beispiel der Warteschlangen-Steuerungsinformation
zeigt, wenn eine Haltemarkierung für jede der DMA-Übertragungsanfragen in der
Warteschlangen-Steuerungsinformation zur Verfügung gestellt wird.
-
Wenn
die DMA-Übertragungsanfrage
für jeden
der logischen Prozessoren angehalten bzw. gehalten wird oder wenn
all die DMA-Übertragungsanfragen
des logischen Prozessors gehalten bzw. angehalten werden, wird eine
Busbelegung ohne von der Busbelegungszeit abhängig zu sein, die dem relevanten
Prozessor gegeben ist, übersprungen.
Folglich muss auf den Abschluss bzw. die Vervollständigung
der Busbelegungszeit der DMA-Übertragung, die
auf den logischen Prozessor bezogen ist, für den die DMA-Übertragungsanfrage
angehalten ist, nicht gewartet werden, so dass die Effizienz der
Verwendung des Busses verbessert werden kann.
-
Des
Weiteren kann eine Funktion zum Halten der Ausführung von all den sich aneinanderreihenden
DMA-Übertragungsanfragen
zur Verfügung gestellt
werden. Der Prozessor steuert die Steuereinheit 123, so
dass sie einen Befehl zum vollständigen Halt
ausführt,
um die DMA-Übertragungsanfragen
in einen komplett angehaltenen bzw. vollständigen Haltezustand zu versetzen
sowie um einen Abbruchbefehl auszuführen, um die DMA-Übertragungsanfragen von dem
vollständigen
Haltezustand abzuhalten. Wenn die DMA-Übertragungen
auf eine Fehlerermittlung oder Ähnliches
hin unzufriedenstellend ausgeführt
werden, kann diese Funktion eingesetzt werden, um die Ausführung von
allen DMA-Übertragungen
anzuhalten.
-
(Fünfte
Ausführungsform)
-
In
dieser Ausführungsform
wird eine Funktion zum wiederholten Durchführen spezifischer DMA-Übertragungen
realisiert. Folglich kann ein Überschuss
(overhead), der für
die Unter brechung von dem Abschluss der DMA-Übertragung zu dem Start einer
nächsten
DMA-Übertragung
notwendig ist, eliminiert werden und eine Effizienz der DMA-Übertragung
kann für
die wiederholt in der Anwendung ausgeführten DMA-Übertragungen verbessert werden.
Nun wird diese Ausführungsform
unten unter Bezug auf den in 1 oder 13 gezeigten DMA-Übertragungscontroller
beschrieben.
-
Um
diese Funktion zu realisieren, hält
die Übertragungsparameter-Speichereinheit 121 die
gesetzten Werte bzw. die Werte des Satzes der aneinandergereihten Übertragungsparameter,
wenn die Übertragungsparameter
für die
wiederholt ausgeführten
DMA-Übertragungen
registriert werden. Die Steuereinheit 123 steuert die Übertragungsparameter
so, dass sie wiederholt wiederhergestellt (aneinandergereiht) werden.
-
17 ist
eine Speicherabbildung, die ein Beispiel eines Datenfeldes der Übertragungsparameter
zeigt, die in der Übertragungsparameter-Speichereinheit
in dem DMA-Übertragungscontroller
gemäß der fünften Ausführungsform
der vorliegenden Erfindung gespeichert sind. In dieser Ausführungsform
können
sechs Sätze
von Übertragungsparametern
sich an einen logischen Prozessor 1 wie in der zweiten Ausführungsform
aneinanderreihen. Die Busbelegungszeit wird all den sechs Sätzen von Übertragungsparametern
gegeben.
-
Des
Weiteren werden in jedem der Übertragungsparameter
nicht nur die aktuellen Werte der Startadresse von einer übertragenen
Seite, die Startadresse eines Übertragungsziels
und die Anzahl der Übertragungsworte,
die zu jeder oder irgendeiner Zeit während der Ausführung der
DMA-Übertragungen
aktualisiert werden, sondern auch die gesetzten Werte der Übertragungsparameter,
wenn sie für
ein Wiederherstellen der Übertragungsparameter
zu Anfangswerten zurückgesetzt
werden, angehalten. Des Weiteren wird als eine Steuerungsmarkierung
(control flag) eine wiederholte Ausführungsmarkierung (repetitive
execution flag) zur Verfügung
gestellt.
-
Wenn
die DMA-Übertragungen
wiederholt für
jeden der logischen Prozessoren durchgeführt werden, nachdem die aus
einer Reihe von gesetzten Übertragungsparametern
zusammengesetzten DMA-Übertragungen
abgeschlossen sind, die Reihe von Übertragungsparametern wieder
zu den ursprünglichen
Werten zurückgesetzt.
Des Weiteren werden die DMA-Übertragungsanfragen
individuell wiederholt durchgeführt,
nachdem die DMA-Übertragungen
der Übertragungsparameter,
zu welchen die wiederholte Ausführungsmar kierung
gesetzt ist, abgeschlossen und die Übertragungsparameter werden
zu den ursprünglichen
Werten zurückgesetzt,
um die DMA-Übertragungen
erneut zu starten.
-
Wie
oben beschrieben, werden die DMA-Übertragungen automatisch wiederholt
für jeden
der logischen Prozessoren oder jede der individuellen DMA-Übertragungsanfragen
durchgeführt, so
dass ein Überschuss,
der von dem Unterbrechungsabschluss der DMA-Übertragungen
zu dem Start einer nächsten
DMA-Übertragung
notwendig ist, eliminiert werden kann und eine Effizienz der DMA-Übertragung
verbessert werden kann.
-
(Sechste Ausführungsform)
-
In
dieser Ausführungsform
wird ein Mechanismus realisiert, durch den der Zeitunterteilungsprozess
der DMA-Übertragungen
temporär
unterdrückt werden
kann. Folglich kann, wenn eine hoch aufstrebende Anwendung aktiviert
wird, um die DMA-Übertragungsanfragen
durchzuführen,
DMA-Übertragungsanfragen
auszuführen,
der Zeitunterteilungsprozess der DMA-Übertragungen temporär unterdrückt werden.
Die hoch aufstrebenden DMA-Übertragungen
können
bevorzugt durchgeführt
werden und dann kann der Prozess in einen üblichen Betrieb bzw. eine ordentliche
Funktion zurückgeführt werden.
Nun wird diese Ausführungsform
unten unter Bezug auf den in 1 oder 13 gezeigten DMA-Übertragungscontroller beschrieben.
-
Die
Unterdrückung
und ein Abbruch des Zeitunterteilungsprozesses der DMA-Übertragungen kann verarbeitet
bzw. durchgeführt
werden, indem ein vorgeschriebener Befehl an die Steuereinheit 123 von
dem Prozessor ausgeführt
wird. Als Verfahren zum Unterdrücken
der Zeitunterteilung der DMA-Übertragungen
für jeden
der logischen Prozessoren gibt es ein Verfahren, das in einem Fall,
in dem die Busbelegungszeit zu einem spezifischen Wert gesetzt ist,
zum Beispiel einen Maximalwert oder 0, so betrachtet, dass es die
Unterdrückung
der Zeitunterteilung ist, oder ein Verfahren, das eine Zeitunterteilungsunterdrückungsmarkierung
(time division inhibiting flag), welche die von der Busbelegungszeit begleitet
ist, zur Verfügung
stellt. Des Weiteren wird die Unterdrückung der Zeitunterteilung
für jede
der individuellen DMA-Übertragungsanfragen
realisiert, indem in einem Teil der Übertragungsparameter, wie in 17 gezeigt,
eine Zeitunterteilungsunterdrückungsmarkierung
zur Verfügung
gestellt wird.
-
In
den DMA-Übertragungen,
in welchen der Zeitunterteilungsprozess unterdrückt wird, wird eine Busbelegungszeitüberwachungsfunktion
durch die Zeitmesseinheit 1231 unterdrückt, ungeachtet von einem Busbelegungs-Zeitwert
oder der Anzahl von Übertragungsdaten,
die dazu fähig
sind, den Bus zu belegen, und die DMA-Übertragung, die derzeit ausgeführt wird,
wird nicht unterbrochen und durchgeführt, bis sie abgeschlossen
ist.
-
Wie
oben beschrieben, wird der Mechanismus zum Unterdrücken und
Abbrechen des Zeitunterteilungsprozesses der DMA-Übertragungen
zur Verfügung
gestellt. Folglich können,
wenn die DMA-Übertragungsanfragen,
die von der hoch aufstrebenden Anwendung begleitet werden, unzufriedenstellend
dem Zeitunterteilungsprozess unterworfen werden, die DMA-Übertragungsanfragen
bevorzugt zu einer Zeit verarbeitet werden.
-
(Siebente Ausführungsform)
-
18 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer siebten
Ausführungsform
der vorliegenden Erfindung zeigt. In dem DMA-Übertragungscontroller 12c,
der in 18 gezeigt ist, wird eine Übertragungsparameter-Temporärspeichereinheit 1221 in
der Datenübertragungs-Durchführeinheit 122 des
in 1 gezeigten DMA-Übertragungscontrollers zur
Verfügung
gestellt und eine dazugehörende
Steuerungsfunktion wird einer Steuerungseinheit 123c hinzugefügt.
-
In
der Übertragungsparameter-Temporärspeichereinheit 1221 werden
die Übertragungsparameter
von der Übertragungsparameter-Speichereinheit 121 auf
einen Start der Ausführung
der DMA-Übertragungen
hin durch die Steuereinheit 123c kopiert und zum Berechnen
von Adressen auf eine Ausführung
der DMA-Übertragungen
in der Datenübertragungs-Durchführeinheit 122 verwendet. Folglich
greift die Datenübertragungs-Durchführeinheit 122 nicht
auf die Übertragungsparameter-Speichereinheit 121 zu,
während
die DMA-Übertragungen
unterbrochen oder abgeschlossen bzw. vervollständigt werden.
-
Gemäß der oben
beschriebenen Struktur benötigen
die Übertragungsparameter,
die in der Übertragungsparameter-Speichereinheit 121 gespeichert sind,
es nicht, dass jedes Mal auf sie Bezug genommen wird, wenn die Adressen
während
der Ausführung
der DMA-Übertragungen
berechnet werden. Dementsprechend kann verbrauchte Leistung bzw. Strom,
der für
den Zugriff auf einen Speicher notwendig ist, gespart werden. Des
Weiteren wetteifert die Aneinanderreihung der Übertragungsparameter von dem
Prozessor nicht mit dem Zugriff. Insbesondere wenn die Übertragungsparameter-Speichereinheit 121 aus
einem Speicher mit einem Anschluss (one-port memory) zusammengesetzt
ist, wird eine Wartezeit auf Seiten des Prozessors verringert, um die
effektive Effizienz des Prozessors zu verbessern.
-
(Achte Ausführungsform)
-
19 ist
ein Blockdiagramm, das die Struktur eines DMA-Übertragungscontrollers gemäß einer achten
Ausführungsform
der vorliegenden Erfindung zeigt. In dem DMA-Übertragungscontroller 12b,
der in 19 gezeigt ist, wird eine Übertragungsparameter-Temporärladeeinheit 124 auf
eine Warteschlange hin als ein Puffer- bzw. Zwischenspeicher verwendet und
eine Steuerungsfunktion, die dazu gehört, wird einer Steuereinheit 123b hinzugefügt.
-
20 ist
ein Blockdiagramm, das ein strukturelles Beispiel der Übertragungsparameter-Temporärladeeinheit 124 zeigt.
Die Übertragungsparameter-Temporärladeeinheit 124 kann
temporär
einen Satz von Übertragungsparametern
speichern. Wenn sich die Übertragungsparameter
aneinanderreihen, nachdem Parameterwerte, die jeweils die Übertragungsparameter
bilden, zu der Übertragungsparameter-Temporärspeichereinheit 124 gesetzt
werden, wird eine Startmarkierung (start flag) gesetzt, um die Warteschlangen-Steuerungsinformation
zu aktualisieren und den einen Satz von Übertragungsparametern an die Übertragungsparameter-Speichereinheit 121 zu übertragen.
-
Während die Übertragungsparameter
von der Übertragungsparameter-Temporärspeicherladeeinheit
zu der Übertragungsparameter-Speichereinheit 121 übertragen
werden, steuert der Prozessor den Zugriff der Warteschlange auf
die Steuerungseinheit 123b, auf die gewartet wird. Auf
solch einem Weg werden die in der Übertragungsparameter-Temporärspeichereinheit 124 zwischengespeicherten Parameterwerte
davon abgehalten, sich zu verändern
und somit eine unerwartete Funktion zu bewirken, während die Übertragungsparameter
in der Übertragungsparameter-Speichereinheit 121 gespeichert
sind.
-
(Neunte Ausführungsform)
-
21 ist
ein Blockdiagramm, das die Struktur des DMA-Übertragungscontrollers gemäß einer neunten
Ausführungsform
der vorliegenden Erfindung zeigt. In dem in 21 gezeigten
DMA-Übertragungscontroller 12e werden
die Übertragungsparameter-Temporärspeichereinheit 1221 in
der siebten Ausführungsform
und die Übertragungsparameter-Temporärladeeinheit 124 in
der achten Ausführungsform
in dem in 1 gezeigten DMA-Übertragungscontroller 12 zur
Verfügung
gestellt. Eine Speicherunterstützungseinheit 125 wird
neu zur Verfügung
gestellt und eine dazu gehörende
Steuerungsfunktion wird einer Steuerungseinheit 123e hinzugefügt.
-
In
der Speicherunterstützungseinheit
bzw. Speicherhilfseinheit 125 ist eine „Warteschlange-Aktiv"-Flag gespeichert,
die zeigt, ob sich die Übertragungsparameter
für jeden
der logischen Prozessoren aneinanderreihen oder nicht. Die Steuereinheit 123e überprüft zyklisch
die „Warteschlange-Aktiv"-Flag, die zu jedem
der logischen Prozessoren der Speicherunterstützungseinheit 125 gehört, um zu
entscheiden, ob es die DMA-Übertragungsanfrage
für jeden der
logischen Prozessoren gibt oder nicht.
-
Die „Warteschlange-Aktiv"-Flag wird gesetzt, wenn
einer der Warteschlangenübertragungsparameter
für den
relevanten logischen Prozessor validiert bzw. gültig gemacht wird, und wird
zurückgesetzt,
wenn all die DMA-Übertragungen
abgeschlossen sind. Während
die „Warteschlange-Aktiv"-Flag aktualisiert
wird, steuert der Prozessor den Zugriff der Aneinanderreihung auf
die Steuereinheit 123e, auf die gewartet werden muss.
-
Folglich
kann, nachdem die DMA-Übertragungen
für jeden
der logischen Prozessoren abgeschlossen sind, entschieden werden,
ob es eine DMA-Übertragungsanfrage
in einem nächsten
logischen Prozessor gibt oder nicht. Wenn es keine DMA-Übertragungsanfrage
gibt, braucht auf die Übertragungsparameter-Speichereinheit 121 nicht zugegriffen
zu werden und ein Prozess kann bei hoher Geschwindigkeit ausgeführt werden
und die verbrauchte Leistung bzw. der verbrauchte Strom kann zur
gleichen Zeit reduziert werden. Des Weiteren wird eine „Warteschlange-Aktiv"-Flag (queue active flag)
zur Verfügung
gestellt und wie oben beschrieben verwendet. Folglich braucht die
Warteschlangen-Steuerungsinformation nicht initialisiert zu werden,
wenn der DMA-Übertragungscontroller
aktiviert ist. Deswegen ist die „Warteschlange-Aktiv"-Flag insbesondere
nützlich,
wenn die Übertragungsparameter-Speichereinheit aus
einem Speicher zusammengesetzt ist.
-
22 ist
ein Blockdiagramm, das ein strukturelles Beispiel zeigt, das einen
Pfad bzw. einen Weg zum Verbinden der Speicherunterstützungseinheit 125 mit
einem inneren Prozessorbus hat. Somit kann auf die „Warteschlange-Aktiv"-Flag direkt von außerhalb
des DMA-Übertragungscontrollers
zugegriffen werden.
-
Zum
Beispiel wenn ein Prozessor in einen unzulässigen bzw. unvorschriftsmäßigen Zustand gebracht
wird, kann der Betrieb des Prozessors angehalten werden, um in eine
Fehlerbesei tigungsbetriebsart (debugging mode) zu wechseln. In solch
einem Fall kann auf die „Warteschlange-Aktiv"-Flag direkt von
außerhalb
zugegriffen werden. Folglich kann ein effektives Analysemittel zur
Verfügung
gestellt werden. Des Weiteren kann in Fehlerbeseitigungsbetriebsart,
wenn die „Warteschlange-Aktiv"-Flag oder die Warteschlangen-Steuerungsinformation
unzulässig
ausgeführt
werden und dann aus der Fehlerbeseitigungsbetriebsart wieder in
eine übliche
Betriebsart übergegangen
wird, eine Inkonsistenz zwischen dem Zustand der „Warteschlange-Aktiv"-Flag und der Warteschlangen-Steuerungsinformation
erzeugt werden, um den Prozessor in einen unzulässigen Zustand zu versetzen.
Um für
solch einen Fall Vorkehrungen zu treffen, wenn die Inkonsistenz
zwischen der „Warteschlange-Aktiv"-Flag und der Warteschlangen-Steuerungsinformation
erzeugt wird, wird eine Funktion zum Korrigieren des Zustandes der „Warteschlange-Aktiv"-Flag in Übereinstimmung mit der Warteschlangen-Steuerungsinformation
effektiv zur Verfügung
gestellt.
-
In
dem DMA-Übertragungscontroller
gemäß der vorliegenden
Erfindung kann, da die Busbelegungs-Ablaufzeit für jeden der logischen Prozessoren
auf den Busbelegungs-Zeitwert begrenzt ist, die Abfolge bzw. Zeitplanung
der DMA-Übertragungen effektiv
in einem Echtzeitprozess durchgeführt werden, ein System kann
davon abgehalten werden, zusammenzubrechen, und die Echtzeitcharakteristiken der
Prozesse können
bestimmt sichergestellt werden. Folglich ist der DMA-Übertragungscontroller
der vorliegenden Erfindung nützlich
als ein DMA-Übertragungscontroller,
der zu einer Zeitplanung von DMA-Übertragungen fähig ist.