DE69128565T2 - Mikrorechner ausgestattet mit einer DMA-Steuerung - Google Patents

Mikrorechner ausgestattet mit einer DMA-Steuerung

Info

Publication number
DE69128565T2
DE69128565T2 DE69128565T DE69128565T DE69128565T2 DE 69128565 T2 DE69128565 T2 DE 69128565T2 DE 69128565 T DE69128565 T DE 69128565T DE 69128565 T DE69128565 T DE 69128565T DE 69128565 T2 DE69128565 T2 DE 69128565T2
Authority
DE
Germany
Prior art keywords
information
data
transfer
data transfer
control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69128565T
Other languages
English (en)
Other versions
DE69128565D1 (de
Inventor
Yuko Mitsuhira
Katsumi Miura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE69128565D1 publication Critical patent/DE69128565D1/de
Application granted granted Critical
Publication of DE69128565T2 publication Critical patent/DE69128565T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft einen Mikroprozessor, und insbesondere einen Mikroprozessor, der mit einer Steuerung für einen direkten Speicherzugriff (DMA) ausgestattet ist.
  • Zum Erfüllen von Anforderungen bezüglich einer hohen Leistungsfähigkeit und einer hohen Geschwindigkeit sind neueste Mikrocomputer mit verschiedenen peripheren Einheiten ausgestattet worden, wie beispielsweise einer Unterbrechungssteuerung, einem Zeitgeber, einem Zähler und einer Einheit zur seriellen Datenkommunikation. In einem derartigen Mikrocomputer wird dann, wenn eine Datenübertragung zwischen einer peripheren Einheit und einem Speicher durch eine zentrale Verarbeitungseinheit (CPU) unter Beteiligung von Software (Programm) durchgeführt wird, die Datenverarbeitungseffizienz erniedrigt, wie es auf dem technischen Gebiet wohlbekannt ist. Daher wird die Datenübertragung zwischen der peripheren Einheit und dem Speicher allgemein durch eine DMA-Steuerung statt durch eine CPU durchgeführt.
  • Die DMA-Steuerung enthält ein Adressenregister zum Speichern von Adresseninformation eines Speichers, auf den zuzugreifen wird, ein Terminal-Zählerregister zum Speichern der Anzahl von zu übertragenden Daten und ein Steuerregister zum Speichern von Steuerinformation, wie beispielsweise einer Datenübertragungsrichtung und einer Adressenerneuerungsrichtung. Diese Register werden anfangs durch die CPU mit nötigen Daten oder Informationen eingestellt. Wenn die DMA-Steuerung eine Datenübertragungsanfrage von der peripheren Einheit empfängt, erhält sie ein Bussteuerrecht von der CPU, um dadurch die Datenübertragung zwischen der peripheren Einheit und dem Speicher durchzuführen. Nach einer Datenfibertragung gibt die DMA-Steuerung das Bussteuerrecht zur CPU zurück und begibt sich dann in einen Zustand eines Wartens auf eine nachfolgende Datenübertragungsanfrage. Wenn die Anzahl von Daten, die so übertragen werden, die im Terminal-Zählerregister eingestellte Anzahl erreicht, wird die DMA- Steuerung in einen Datenübertragungs-Sperrzustand gebracht, wobei eine Unterbrechungsanfrage zur CPU ausgegeben wird. In Antwort darauf führt die CPU ein Unterbrechungsverarbeitungsprogramm aus, um wieder nötige Information in den jeweiligen Registern einzustellen. Die DMA-Steuerung wird dadurch wieder in einen Zustand zum Zulassen einer Datenübertragung gebracht.
  • Während des Datenübertragungs-Sperrzustands der DMA-Steuerung erzeugt die periphere Einheit oft eine Datenübertragungsanfrage. In diesem Fall wird diese Anfrage natürlich nicht angenommen, sondern zurückgestellt. Während eine Zeitperiode, während welcher die DMA im Datenübertragungs-Sperrzustand ist, von der Prioritätsreihenfolge zu der Unterbrechungsanfrage von der DMA-Steuerung und/oder der Anzahl von durch die Steuerung unterstützten Übertragungskanälen abhängt, kann die periphere Einheit dann, wenn der Datenübertragungs- Sperrzustand verlängert wird, einen derartigen Zustand annehmen, daß sie eine nächste Datenübertragungsanfrage erzeugt, bevor die vorherige Datenübertragungsanfrage angenommen ist. Beispielsweise erzeugt eine Einheit zum Empfangen serieller Daten als periphere Einheit eine Datenübertragungsanfrage jedesmal dann, wenn sie eine vorbestimmte Anzahl von Bit-Daten empfängt, so daß der Empfang nächster Daten beendet sein kann, bevor die vorherigen Daten zum Speicher übertragen werden. In einem solchen Fall werden die vorherigen Daten zerstört, was im Auftreten eines Empfangs-Überlauffehlers resultiert. In einer Einheit zum Senden von seriellen Daten als weiteres Beispiel der peripheren Einheit werden ihr als nächstes zu sendende Daten nicht zugeführt, obwohl ein Senden der vorherigen Daten beendet ist, so daß ein Sende-Unterlauffehler auftritt. Solche Fehler treten leicht auf, je schneller die Übertragungsgeschwindigkeit an einer seriellen Schaltung wird. Selbst wenn eine Empfangs-/Sendedaten-Pufferstufe anzahlmäßig erhöht wird, tritt der Fehler dann auch auf, wenn die Datenübertragungsanfragen anzahlmäßig häufiger als für die erhöhte Anzahl zurückgestellt werden. Darüber hinaus vergrößert das Erhöhen der Anzahl der Datenpuffer zum Ausgleichen einer seriellen Schaltung mit hoher Geschwindigkeit die Hardware eines Mikrocomputers.
  • JP-A-6329868, Patent Abstracts of Japan, Bd. 12, Nr.238, offenbart einen Mikroprozessor, der die Information eines Speicherblocks, zu welchem Daten zu übertragen sind, in einem ersten Speicheradressenregister und einem ersten Übertragungsfrequenzregister setzt, und ein DMA-Anfragezulassungs-Flag einstellt, um den Speicherblock-DMA-Übertragungs-Freigabezustand herzustellen. Zur Zeit einer Eingabe eines DMA-Anfragesignals wird eine Zeitsteuerschaltung in Betrieb genommen, eine DMA-Übertragung wird gestartet, und eine Speicheradresse und ein Steuersignal werden nach außen ausgegeben. Zur Zeit eines Startens der DMA-Übertragung wird ein Schreibzulassungs-Fiag gesetzt, und ein Schreiben in ein zweites Speicheradressenregister und ein zweites Übertragungsfrequenzregister wird zugelassen. Folglich kann die DMA-Übertragung während der Eingabe des DMA-Signals kontinuierlich ausgeführt werden. Jedoch läßt diese Vorrichtung nicht zu, einen Datensatz von Statusinformationen über die DMA-Übertragung zu halten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Daher ist es eine Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der mit einer DMA-Steuerung ausgestattet ist, in welcher eine Zeitperiode eines Datenübertragungs-Sperrzustands merklich verkürzt werden kann. Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor mit einer DMA-Steuerung zu schaffen, die ein Auftreten eines Fehlers in einer peripheren Einheit aufgrund eines Zurückstellens von Datenübertragungsanfragen verhindem kann.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der mit einer DMA-Steuerung ausgestattet ist, um eine Einheit zur Kommunikation mit seriellen Daten für eine serielle Schaltung mit hoher Geschwindigkeit zu unterstützen.
  • Ein Mikroprozessor gemäß der vorliegenden Erfindung ist im Anspruch 1 offenbart. Die Ansprüche 2 und 3 offenbaren bestimmte Ausführungsbeispiele der vorliegenden Erfindung.
  • Somit wird dann, wenn die aktuelle Datenübertragungsoperation aufgrund dessen beendet wird, daß die Anzahl übertragener Daten eine vorbestimmte Zahl erreicht, die Ausführungseinrichtung unter Verwendung der zweiten Information sofort in einen Datenübertragungs-Zulassungszustand gebracht. Die Datenübertragung zwischen der peripheren Einheit und dem Speicher kann dadurch sequentiell durchgeführt werden, ohne daß die Datenübertragungsanfrage zurückgestellt wird.
  • Andererseits schiebt die CPU eine Programmausführung in Antwort auf die Unterbrechungsanfrage von der DMA-Steuerung auf und versorgt dann die DMA- Steuerung mit dritter Information, die für eine weitere nächste Datenübertragungsoperation nötig ist, die nach einem Beenden der nächsten Datenübertragungsoperation zu initiieren ist. Demgemäß wird die DMA-Steuerung dann, wenn die nächste Datenübertragungsoperation beendet ist, unter Verwendung der dritten Information auch sofort in den Datenübertragungs-Zulassungszustand gebracht.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weitere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung in Zusammenhang mit den beigefügten Zeichnungen klarer, wobei:
  • Fig. 1 ein Blockdiagramm ist, das ein System darstellt, das einen Mikrocomputer gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung verwendet;
  • Fig. 2 ein Flußdiagramm ist, das einen Betrieb einer in Fig. 1 gezeigten DMA-Steuerung darstellt;
  • Fig. 3 ein Flußdiagramm ist, das ein Beispiel eines Unterbrechungsverarbeitungsprogramms darstellt, das durch die in Fig. 1 gezeigte CPU ausgeführt wird;
  • Fig. 4 ein Systemblockdiagramm ist, das ein zweites Ausführungsbeispiel gemäß der vorliegenden Erfindung darstellt;
  • Fig. 5 ein Blockdiagramm ist, das die CPU eines Mikrocomputers gemäß einem dritten Ausführungsbeispiel der vorliegenden Erfindung darstellt; und
  • Fig. 6 ein Flußdiagramm ist, das ein Makrodienst-Mikroprogramm darstellt, das durch die in Fig. 5 gezeigte CPU ausgeführt wird.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Nimmt man nun Bezug auf Fig. 1, enthält ein Mikrocomputersystem einen Mikrocomputer 100 gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung, einen Programmspeicher 110 und einen Datenspeicher 120, die miteinander über einen Systembus 130 verbunden sind. Der Mikrocomputer 100 enthält eine CPU 10 und, als periphere Einheiten, eine DMA-Steuerung (DMAC) 20, eine Unterbrechungssteuerung (INTC) 30, eine Einheit zum Empfangen serieller Daten 40 und eine weitere Einheit 50, wie beispielsweise einen Zeitgeber und einen Zähler. Diese Einheiten sind auf einem einzelnen Halbleiterchip hergestellt und über einen internen Bus 60 miteinander verbunden. Der Programmspeicher 110 speichert eine Kette von Befehlen für ein Programm.
  • Die CPU 10 holt jeden Befehl vom Programmspeicher 110 und führt ihn aus, um Operandendaten zu verarbeiten. Die zu verarbeitenden Operandendaten und die verarbeiteten Daten werden im Datenspeicher 120 gespeichert.
  • Die INTC 30 empfängt eine Vielzahl von Unterbrechungsanfragesignalen, die ein Signal 23 von der DMAC 20 und ein Signal 51 von der peripheren Einheit 50 enthalten. Wenn zwei oder mehrere Unterbrechungsanfragen gleichzeitig erzeugt werden, wählt die INTC 30 eine von ihnen gemäß einer vorbestimmten Prioritätsreihenfolge aus und führt dann ein Unterbrechungsverarbeitungsanfragesignal 31 zusammen mit einer Unterbrechungsvektorzahl 32 zur CPU 10 zu. In Reaktion darauf schiebt die CPU 10 eine Programmausführung auf und schaltet dann, nach Speichern der Inhalte eines Programmzählers, eines Programmstatuswortes und einer Gruppe von allgemeinen Registern (die alle nicht gezeigt sind), zur Ausführung eines Unterbrechungsverarbeitungsprogramms um.
  • Die Einheit 40 zum Empfangen serieller Daten empfängt Daten, die durch eine serielle Schaltung 150 seriell zugeführt werden. Die seriellen Daten werden in einem Schieberegister 405 der Reihe nach geholt. Wenn vorbestimmte Bits von Daten, wie beispielsweise 8 Bits, empfangen werden, werden jene Daten vom Schieberegister 405 parallel zu einem Pufferregister 404 geführt. Das Schieberegister 405 empfängt dann nächste serielle Daten. Wenn die Daten zum Pufferregister 404 geführt werden, ändert eine Empfangssteuereinheit 401 ein DMA- Datenübertragungsanfragesignal 42 zu einem aktiven Pegel, um die DMAC 20 nach einer Datenübertragung zu fragen. In dem Fall, in dem die Daten im Pufferregister 404 ein EOF-(Ende eines Frames = End Of Frame)-Code sind, der ein Beenden einer Frame-Datenübertragung anzeigt, wird ein Blockschaltsignal 41 aktiv gemacht, um die DMAC 20 nach einer Änderung im Speicherblock zu fragen. Demgemäß wird eines der Signale 41 und 42 erzeugt und der DMAC 20 zugeführt, und zwar jedesmal dann, wenn vorbestimmte Bits serieller Daten empfangen werden. Der Empfang des EOF-Codes und des Auftretens eines Fehlers in den empfangenen Daten wird in einem Statusregister 402 aufgezeichnet. Die Ausgabe des Pufferregisters 404 wird auf den internen Bus 60 durch die Steuereinheit 401 synchron zu einem Datenausgabe-Befehlssignal 25 von der DMAC 20 ausgegeben. Weiterhin wird ein Statusspeicher-Befehlssignal 24 von der DMAC 20 zugeführt. In Antwort auf dieses Signal 24 wird der Inhalt des Statusregisters 402 in ein Statusspeicherregister 403 gespeichert.
  • Die DMAC 20 enthält eine Übertragungssteuereinheit 201, die eine Datenübertragung zwischen der Empfangseinheit 40 und dem Datenspeicher 120 basierend auf einer Steuerinformation durchführt, die in einem aktuellen Registerblock 202 gespeichert ist. Die im Registerblock 202 gespeicherte Information enthält Übertragungszeitinformation, die die Anzahl von Malen darstellt, für welche eine Datenübertragung durchzuführen ist, eine Speicheradresseninformation, die eine Zugriffsadresse zum Speicher 120 darstellt, und Steuer-/Statusinformation, wie es in der Zeichnung gezeigt ist. Die Steuer-/Statusinformation enthält Übertragungsrichtungsinformation, die eine Richtung einer Datenübertragung von einem Speicher zu einer peripheren Einheit oder von einer peripheren Einheit zu einem Speicher anzeigt (wobei beim vorliegenden Ausführungsbeispiel die Richtung von der Einheit 40 zum Speicher 120 gezeigt ist), Adressenerneuerungssteuerinformation, die eine Erneuerungsrichtung der Speicheradresse anzeigt, und Übertragungs- Freigabeinformation, die darstellt, ob die Datenübertragungsanfrage angenommen ist oder nicht. Weiterhin ist in der Steuer-/Statusinformation kontinuierliche Übertragungs-Freigabe-/-Sperrinformation enthalten, die darstellt, ob eine kontinuierliche Datenübertragung zu einem weiteren Speicherblock freigegeben oder gesperrt ist. Die DMAC 20 enthält gemäß der vorliegenden Erfindung weiterhin einen nächsten Registerblock 203 und einen Speicherregisterblock 204. Der nächste Registerblock 203 speichert Information, die für eine nächste Datenübertragungsoperation nötig ist, die nach einem Beenden einer aktuellen Datenübertragungsoperation durchzuführen ist, d.h. eine nächste Übertragungszeitinformation, eine nächste Speicheradresseninformation und eine nächste Steuer-/Statusinformation, wie es in der Zeichnung gezeigt ist. Der Speicherregisterblock 204 speichert die Übertragungszeitinformation und die Steuer-/Statusinformation des aktuellen Registerblocks 202. Die Übertragungssteuereinheit 201 führt ein Halteanfrage-(HLDRQ)- Signal 21 zur CPU 10 zu, um ein Benutzungsrecht für die Busse 60 und 130 von der CPU 10 zu bekommen. In Antwort darauf gibt die CPU 10 ein Haltebestätigungs-(HLDACK)-Signal 22 zurück, um das Busbenutzungsrecht zu geben. Dadurch wird die Datenübertragung von der Einheit 40 zum Speicher 120 durchgeführt. Jedesmal dann, wenn die Datenübertragung durchgeführt wird, wird die Anzahl von Übertragungen, die im aktuellen Registerblock 202 gespeichert ist, um Eins dekrementiert, und die Speicheradresse wird erneuert. Wenn die Anzahl von Übertragungen Null wird, d.h. wenn die Anzahl von übertragenen Daten die Anzahl von Daten erreicht, die bei der aktuellen Datenübertragungsoperation bestimmt ist, werden die Übertragungszeitinformation und die Steuer-/Statusinformation des aktuellen Registerblocks 202 zum Speicherregisterblock 204 gespeichert. Diese Speicheroperation wird auch ausgeführt, wenn das Blockumschaltsignal 41 durch die Einheit 40 erzeugt wird. Wenn die gespeicherte Steuer-/Statusinformation die kontinuierliche Übertragungs-Freigabeinformation enthält, werden die Inhalte des nächsten Registerblocks 203 in den aktuellen Registerblock 202 kopiert. Das Unterbrechungsanfragesignal 23 und das Statusspeicher-Befehlssignal 24 werden danach erzeugt. Andererseits, nämlich in dem Fall, daß die gespeicherte Steuer-/Statusinformation die kontinuierliche Übertragungssperrinformation enthält, werden die Signale 23 und 24 erzeugt, ohne daß die Inhalte des Registerblocks 23 in den Registerblock 24 kopiert werden.
  • Im Datenspeicher 120 werden 1-te bis N-te Blöcke 122,124,..., 126 als Speicherbereich vorbereitet, der mit Daten von der Einheit 40 zum Empfangen serieller Daten zu übertragen ist. Der Datenspeicher 120 enthält weiterhin 1-te bis N-te Blocksteuerdatenbereiche 123,125,..., 127, die entsprechend den Blöcken 122,124,..., 126 vorgesehen sind. Jeder der Blocksteuerdatenbereiche speichert Übertragungszeitdaten, die die Größe des entsprechenden Blocks anzeigen (d.h. die Anzahl von durchzuführenden Übertragungen), Speicheradressendaten, die die führende Adresse des entsprechenden Blocks anzeigen, DMA-Steuer-/Statusdaten für die Datenübertragung zwischen dem entsprechenden Block und der Einheit 40, Daten zum Speichern eines peripheren Status, die mit dem Inhalt des Statusspeicherregisters 403 beschrieben sind, und nächste Adressendaten, die die führende Adresse eines weiteren Blocksteuerdatenbereichs anzeigen, wie es in der Zeichnung gezeigt ist. Weiterhin ist im Datenspeicher 120 ein Bereich 121 zum Speichern einer Steuerdatenbereichsadresse vorgesehen.
  • Als nächstes wird ein Betrieb unter Bezugnahme auf die Fig. 1 bis 3 detailliert beschrieben.
  • Die CPU 10 führt vor einem Aktivieren der DMAC 20 eine Initialisierungsoperation durch. Genauer gesagt werden 1-te bis N-te Blöcke 122,124, ..., 126 zugeordnet, und die oben angegebenen Daten werden in die jeweiligen Blocksteuerdatenbereiche 123,125,..., 127 geschrieben. In dieser Beschreibung enthalten alle DMA- Steuer-/Statusdaten des 1-ten bis (N-1)-ten Blocksteuerdatenbereichs die kontinuierliche Übertragungs-Freigabeinformation, wohingegen jene des N-ten Blocksteuerdatenbereichs die kontinuierliche Übertragungssperrinformation enthalten. Darüber hinaus zeigen die nächsten Adressendaten des 1-ten (1 = 1, 2,..., N-1) Blocksteuerdatenbereichs die führende Adresse des (1+1)-ten Blocksteuerdatenbereichs an. Der Steuerdatenbereich 121 wird auf die führende Adresse des 1-ten Blocksteuerdatenbereichs 123 gesetzt. Die CPU 40 setzt die Einheit 40 zum Empfangen serieller Daten weiterhin auf eine Empfangssteuerinformation, wie beispielsweise eine Geschwindigkeitsinformation der seriellen Schaltung 150, um eine serielle Empfangsoperation zu initiieren. Weiterhin werden die Übertragungsanzahlinformation, die Speicheradresseninformation und die DMA-Steuer/Status-Information, die im 2-ten Blocksteuerdatenbereich 125 gespeichert sind, in den nächsten Registerblock 203 der DMAC 20 geladen, und die Übertragungsanzahlinformation, die Speicheradresseninformation und die DMA-Steuer-/Statusinformation, die im 1-ten Blocksteuerdatenbereich 123 gespeichert ist, werden in den aktuellen Registerblock 202 geladen. Somit wird die DMAC 20 aktiviert. Die CPU 10 macht damit weiter, nachfolgende Befehle vom Programmspeicher 110 zu holen und auszuführen.
  • Andererseits arbeitet die so aktivierte DMAC 20 gemäß einem Ablaufdiagramm, das in Fig. 2 gezeigt ist. Genauer gesagt wird beurteilt, ob das Blockumschaltanfragesignal 41 aktiv ist oder nicht (251), und ob das Datenübertragungsanfragesignal 42 aktiv ist oder nicht (252).
  • Die Einheit 40 zum Empfangen serieller Daten ist auch im aktivierten Zustand und empfängt somit die seriellen Daten von der seriellen Schaltung 150. Wenn die vorbestimmten Bits der seriellen Daten empfangen werden, wird beurteilt, ob jene Daten einen EOF-Code bilden oder normale Daten sind, um das Signal 41 oder 42 zu erzeugen.
  • Unter der Annahme, daß die Empfangseinheit 40 das Datenübertragungsanfrage- Signal 42 erzeugt, ändert die Übertragungssteuereinheit 201 das HLDRQ-Signal 21 zum aktiven Pegel, um das Bussteuerrecht von der CPU 10 anzufragen (253). In Antwort darauf schiebt die CPU 10 die Programmausführung auf und sendet dann das HLDACK-Signal 22 zurück, wobei die interne Schaltung davon in einen Haltezustand gebracht wird. Wenn die Übertragungssteuereinheit 201 den aktiven Pegel des HLDACK-Signals 22 erfaßt (254), führt sie die im aktuellen Registerblock 202 gespeicherte Speicheradresse über die Busse 60 und 130 zum Datenspeicher 120 und erzeugt weiterhin das Datenausgabe-Befehlssignal 25, um die Einheit 40 zu veranlassen, die empfangenen Daten auf die Busse 60 und 130 auszugeben. Somit werden die empfangenen Daten zur Stelle der führenden Adresse des 1-ten Blocks 122 im Speicher 120 übertragen (255). Nach der Datenübertragung wird das HLDRQ-Signal 21 zurückgezogen, um das Bussteuerrecht zur CPU 10 zurückzubringen (256). Somit nimmt die CPU 10 die aufgeschobene Programmausführung wieder auf. Danach erneuert die Übertragungssteuereinheit 201 die Speicheradresse und speichert dann die erneuerte Speicheradresse zurück in den aktuellen Registerblock 202. Weiterhin wird die Anzahl von Übertragungszeiten, die durch die Übertragungsanzahlinformation angezeigt wird, um Eins dekrementiert, wobei die dekrementierte Zahl wiederum in den aktuellen Registerblock 202 zurückgespeichert wird (257). Wenn es erwünscht ist, kann die Speicheradresse vor der Datenübertragung erneuert werden, und die erneuerte Speicheradresse kann für die Datenübertragung verwendet werden. Die Übertragungssteuereinheit 201 beurteilt, ob die dekrementierte Zahl Null ist oder nicht (258), und wenn sie es nicht ist, springt sie zurück zum Schritt 251. Die obige Operation wird jedesmal ausgeführt, wenn das Datenübertragungsanfragesignal 42 aktiv wird.
  • Wenn das Blockumschaltanfragesignal 41 erzeugt wird, oder wenn der Inhalt der Übertragungsanzahlinformation Null wird, um anzuzeigen, daß der 1-te Block 122 mit den übertragenen Daten gefüllt ist, schaltet die Operation der DMAC 20 in den Schritt 259 um, in welchem die Übertragungsanzahlinformation und die Steuer4statusinformation im aktuellen Registerblock 202 in den Speicherregisterblock 204 gespeichert werden. Die Übertragungssteuereinheit 201 beurteilt dann, ob die gespeicherte Steuer-/Statusinformation die Information zum Freigeben einer kontinuierlichen Übertragung enthält (260). In der vorliegenden Beschreibung wird der Schritt 261, da die Information zum Freigeben einer kontinuierlichen Übertragung enthalten ist, derart durchgeführt, daß die Inhalte des nächsten Registerblocks 203 in den aktuellen Registerblock 202 kopiert werden. Somit wird die DMAC 20 sofort in einen Übertragungszulassungszustand zum Durchführen einer Datenübertragung zwischen der Einheit 40 zum Empfangen serieller Daten und einem 2-ten Block 124 des Speichers 120 gebracht, ohne auf die Dateneinstelloperation durch die CPU 10 zu warten. Die Übertragungssteuereinheit 201 erzeugt danach das periphere Speicherbefehlssignal 24 und das Unterbrechungsanfragesignal 23 und schaltet dann die Operation davon zum Schritt 251 um. Demgemäß werden dann, wenn die Einheit 40 zum Empfangen serieller Daten danach die Datenübertragungsanfrage 24 erzeugt, die empfangenen Daten zum 2-ten Block 124 übertragen.
  • Andererseits speichert die Empfangssteuereinheit 401 in Antwort auf das periphere Speicherbefehlssignal 24 den Inhalt des Statusregisters 402 in das Statusspeicherregister 403.
  • Die INTC 30 antwortet auf das Unterbrechungsanfragesignal 23 von der DMAC 20, um eine Unterbrechungsverarbeitungsanfrage zur CPU 10 zu erzeugen. In Antwort darauf schient die CPU 10 die Programmausführung auf, speichert danach Information, die zum Wiederaufnehmen der aufgeschobenen Programmausführung nötig ist, in einen Stapelbereich (nicht gezeigt) im Datenspeicher 120, und führt dann ein in Fig. 3 gezeigtes Unterbrechungsverarbeitungsprogramm aus.
  • In diesem Unterbrechungsverarbeitungsprogramm liest die CPU 10 zuerst die gespeicherte Statusinformation aus dem Statusspeicherregister 132 der Empfangseinheit 40 aus, um zu prüfen, ob ein Fehler in den empfangenen Daten und/oder dem Empfangszustand aufgetreten ist oder nicht (302). Wenn ein Fehler erfaßt wird, führt die CPU 10 eine Fehlerverarbeitungsoperation 303 aus, um die Operationen der DMAC 20 und der Empfangseinheit 40 anzuhalten und eine Vorrichtung zum Senden serieller Daten (nicht gezeigt) anzufragen, wiederum serielle Daten zu senden, und zwar mit einer Neuinitialisierung der DMAC 20 und der Einheit 40. Wenn kein Fehler erfaßt wird, lädt die CPU 10 den Inhalt des Statusspeicherregisters 403 in einen 1-ten Blocksteuer-Datenbereich 123 als periphere Statusspeicherdaten und die Inhalte des Speicherregisterblocks 204 in denselben Bereich 123 als die Übertragungsanzahldaten und DMA-Steuer-/Statusdaten (304). Für diese Verarbeitungsoperation werden die jeweiligen Adressen des 1-ten Blocksteuer-Datenbereichs 123 aus der führenden Adresse des Bereichs 123 erhalten, die im Steuerdatenadressenbereich 121 gespeichert ist, und vorbestimmte Versatzwerte, die den jeweiligen Stellen im Blocksteuer-Datenbereich zugeordnet sind. Die Adressen der jeweiligen Register im DMAC 20 und der Empfangseinheit 40 werden zuvor als 110-Adressen bestimmt. Danach wird der Inhalt der nächsten Adressendaten im 1-ten Blocksteuer-Datenbereich 123, d.h. die führende Adresse des 2-ten Blocksteuer-Datenbereichs 125, in den Steuerdatenadressenbereich 121 geladen. Dann beurteilt die CPU 10, ob die gespeicherte DMA- Steuer-/Statusinformation im Bereich 123 die Information zum Freigeben einer kontinuierlichen Übertragung enthält oder nicht (305). In der vorliegenden Beschreibung werden, da jene Information enthalten ist, die Übertragungsanzahlinformation, die Speicheradresseninformation und die DMA-Steuer-/Statusdaten im 3-ten Blocksteuer-Datenbereich (nicht gezeigt) unter Verwendung des Inhalts der Steuerdaten-Bereichsadresse 121 und der nächsten Adressendaten im 2-ten Blocksteuer-Datenbereich 125 in den nächsten Registerblock 203 der DMAC 20 geladen (306).
  • Wendet man sich wieder der Fig. 2 zu, erzeugt dann, wenn die gespeicherte Steuer4statusinformation im Schritt 260 die Information zum Sperren einer kontinuierlichen Übertragung enthält, die Übertragungssteuereinheit 201 die Signale 23 und 24, ohne die Inhalte des nächsten Registerblocks 203 in den aktuellen Registerblock 202 zu kopieren. Die DMAC 20 wird dadurch in einen Datenübertragungs- Sperrzustand gebracht und wartet auf die Dateneinstelloperation durch die CPU 10. Im Unterbrechungsverarbeitungsprogramm der CPU 10, das in Fig. 3 gezeigt ist, wird daher der Schritt 307 nach dem Schritt 305 zu den gewünschten Daten ausgeführt, die im 2-ten und 3-ten Blocksteuer-Datenbereich gespeichert werden und jeweils in den aktuellen und den nächsten Registerblock 202 und 203 geladen werden. Die DMAC 20 wird dadurch wieder aktiviert.
  • Nach dem Schritt 306 oder 307 führt die CPU 10 eine Verarbeitungsoperation an den Daten durch, die im 1-ten Block 122 gespeichert sind. Danach wird die Information, die im Datenspeicher 120 gespeichert ist, zur CPU 10 zurückgebracht, so daß die aufgeschobene Programmausführung wieder aufgenommen wird.
  • Da die gespeicherte Übertragungsanzahlinformation im Speicherregisterblock 204 selbst dann zum entsprechenden Blocksteuer-Datenbereich geladen ist, wenn die oben angegebene Blockumschaltoperation in Antwort auf das Anfragesignal 41 ausgeführt wird, das aufgrund des Empfangs eines EOF-Codes erzeugt wird, kann es erfaßt werden, wie viele gültigen Daten im entsprechenden Block gespeichert sind.
  • Wie es oben beschrieben ist, wird durch Einstellen der Information zum Freigeben einer kontinuierlichen Übertragung in der DMA-Steuer-/Statusinformation die DMAC 20 für einen nächsten Block sofort in den Datenübertragungs- Zulassungszustand gebracht, so daß die Einheit 40 zum Empfangen serieller Daten frei vom Empfangs-Überlauffehler ist.
  • Der Mikrocomputer 100 kann mit einer Einheit zum Senden serieller Daten ausgestattet sein. In diesem Fall ist weiterhin eine Gruppe aus einem aktuellen Registerblock, einem nächsten Registerblock und einem Speicherregisterblock in der DMAC 20 vorgesehen, und die Datenübertragungsoperationen für die Empfangsund die Sendeeinheit werden auf eine Zeitmultiplex-Art durchgeführt. Sowohl der Empfangs-Überlauffehler als auch der Sende-Unterlauffehler werden vom Auftreten abgehalten.
  • Wendet man sich nun der Fig. 4 zu, ist dort ein Mikrocomputer 101 gemäß einem zweiten Ausführungsbeispiel der vorliegenden Erfindung gezeigt, wobei dieselben Bestandteile wie jene, die in Fig. 1 gezeigt sind, mit denselben Bezugszeichen bezeichnet sind, um eine weitere Beschreibung davon wegzulassen. Dieser Mikrocomputer 101 enthält die DMAC 20 zum Durchführen einer Datenübertragung zwischen der Einheit 40 zum Empfangen serieller Daten und einem lokalen Speicher 400. Die DMAC 20, die Empfangseinheit 40 und der lokale Speicher 400 sind über einen lokalen Bus 450 miteinander verbunden. Wenn die Empfangseinheit 40 eine Datenübertragungsanfrage ausgibt, erhält die Übertragungssteuereinheit 201 das Bussteuerrecht des lokalen Busses 450 von einem Prozessor (nicht gezeigt), der den Bus 450 durch Verwenden des HLDRQ-Signals 21 und des HLDACK-Signals 22 managt. Die Daten werden dadurch von der Empfangseinheit 40 zum lokalen Speicher 400 übertragen.
  • Gemäß diesem Ausführungsbeispiel wird die Haupt- und die Unterbrechungsprogrammroutine, die durch die CPU 10 ausgeführt werden, nicht aufgeschoben, und daher wird die Programmausführungseffizienz erhöht. Der lokale Bus 450 kann nur als ein DMA-Übertragungsbus verwendet werden, und in jenem Fall können die Signale 21 und 22 weggelassen werden.
  • Bei den obigen Ausführungsbeispielen wird die Unterbrechungsprogrammroutine, die in Fig. 3 gezeigt ist, durch einen Anwender hergestellt und kann somit geändert werden. Beispielsweise können der Fehlerprüfschritt 302 und/oder die Datenverarbeitungsoperation 308 ausgeführt werden, nachdem alle Blöcke 123,124,..., 126 mit empfangenen Daten übertragen sind.
  • Wie es hierin zuvor beschrieben ist, muß die CPU 10 die internen Ausführungszustände davon in den Datenspeicher 120 speichern, um die Unterbrechungsprogrammroutine zu initiieren, die in Fig. 3 gezeigt ist, und sie muß nach einer Ausführung der Unterbrechungsprogrammroutine die gespeicherten Zustände zurücksenden, um die aufgeschobene Programmausführung wiederaufzunehmen. Dieses Speichern und Zurückbringen einer Operation wird "Zusatz" genannt. Wenn ein solcher Zusatz entfernt werden könnte und wenn die CPU hardwaremäßig reguläre Operationen durchführen könnte, die auf die Unterbrechungsanfrage von der DMAC 20 antworten, ohne Befehle zu verwenden, die im Programmspeicher 10 gespeichert sind, würde die Programmausführungseffizienz der CPU weiter erhöht werden, und der Aufwand zum Herstellen eines Programms durch einen Anwender würde reduziert werden.
  • Ein Aufbau dafür ist in Fig. 5 als drittes Ausführungsbeispiel der vorliegenden Erfindung gezeigt. Es ist zu beachten, daß nur die CPU 15 und die INTC 30 in der Zeichnung gezeigt sind, da der andere Aufbau derselbe wie jener ist, der in Fig. 1 gezeigt ist. Diese CPU 15 arbeitet auf eine Mikroprogrammsteuerweise. Das bedeutet, daß die durch jeden Befehl bestimmte Funktion, der im Programmspeicher 10 gespeichert ist, durch Ausführen einer Kette von Mikrobefehlen (d.h. eines Mikroprogramms) erreicht wird, die ihm entsprechen. Da das Mikroprogramm maskiert ist und ein Anwender somit nicht darauf zugreifen kann, wird es als Teil der Hardware des Mikrocomputers angesehen.
  • Der Inhalt eines Programmzählers (PC) 151 wird auf die Busse 60 und 130 über einen Adressenbus 601 und einen Adressentreiber 153 übertragen, um auf den Programmspeicher 110 zuzugreifen. Der aus dem Programmspeicher 110 ausgelesene Befehl wird durch einen Datenpuffer 154 und einen Datenbus 602 temporär in einem Befehlsregister (IR) 155 gespeichert. Der Befehl vom IR 155 wird durch einen Befehlsdecodierer 156 decodiert, um decodierte Information zu erzeugen, die wiederum zu einer Ausführungseinheit 158 zugeführt wird. Die Ausführungseinheit 158 enthält einen Mikroprogrammspeicher 1585 und einen Mikroprogrammzeiger 1584 zum Zugreifen auf den Speicher 1585. Der Mikroprogrammzeiger 1584 wird mit einer Mikroadresse gesetzt, die im decodierten Befehl enthalten ist, so daß eine Kette von Mikrobefehlen entsprechend dem Befehl im IR 155 aus dem Mikroprogrammspeicher 1585 ausgelesen und dann ausgeführt wird. Die Ausführungseinheit 158 enthält weiterhin eine Arithmetik- und Logikeinheit (ALU) 1581, ein Programmstatuswort (PSW) 1582 zum temporären Speichern eines Ausführungszustandes der ALU 1581 und eine Gruppe von Temporärregistern 1583. Die Kette von Mikrobefehlen wird mittels der ALU 1581, des PSW 1582, der Register 1583 und einer Gruppe allgemeiner Register 157 ausgeführt, um die Funktion zu erreichen, die durch den Befehl im IR 155 bestimmt ist. Im Laufe der Ausführung der Mikrobefehle erzeugt die Ausführungseinheit 158 eine Gruppe von Ablauffolgesteuersignalen 159.
  • Der Mikroprogrammspeicher 1585 speichert ein Makrodienst-Mikroprogramm 1586 gemäß dem vorliegenden Ausführungsbeispiel, das später detailliert beschrieben wird. Das Makrodienst-Mikroprogramm 1586 wird initiiert, wenn die Unterbrechungsverarbeitungsanfrage von der INTC 30 eine Makrodienstanfrage bestimmt.
  • Insbesondere enthält die INTC 30 ein Flag 33 zum Bestimmen der Unterbrechungsanfrage von der DMAC 20, die als Makrodienst oder als normale Vektorunterbrechung zu behandeln ist. Der gesetzte Zustand des Flags 33 bestimmt den Makrodienst, wohingegen der rückgesetzte Zustand davon die Vektorunterbrechung bestimmt. Wenn die INTC 30 die Unterbrechungsanfrage empfängt, erzeugt sie die Unterbrechungsverarbeitungsanfrage 31 zur Ausführungseinheit 158-1 zusammen mit einem Einstellen einer Unterbrechungsmodeninformation 32-1 in das IR 55. Der Inhalt der Information 32-1 hängt vom Zustand des Flags 33 ab. Die INTC 30 führt weiterhin eine Vektoranzahlinformation 32-2 zur Ausführungseinheit 158 zu. Die Unterbrechungsmodeninformation 32-1 wird decodiert, um zu erfassen, welcher Mode bestimmt ist. Wenn die Information 32-1 die Vektorunterbrechung bestimmt, speichert die Ausführungseinheit 158 die Inhalte des PC 151, des PSW 1582 und des allgemeinen Registers 157 und erhält dann die führende Adresse einer Unterbrechungsprogrammroutine von der Vektoranzahlinformation 32-2, wobei die führende Adresse wiederum zum PC 151 geladen wird. Die Unterbrechungsprogrammroutine wird dadurch initiiert. Andererseits wird dann, wenn die Unterbrechungsmodeninformation 32-1 den Makrodienst bestimmt, die führende Adresse des Makrodienst-Mikroprogramms 1582 von der Vektoranzahlinformation 32-2 abgeleitet und dann in den Zeiger 1584 eingestellt. Das Makrodienst- Mikroprogramm wird dadurch initiiert. Zu dieser Zeit werden die Inhalte des PC 151, des PSW 1582 und der Register 157 nicht gespeichert, sondern darin gehalten wie sie sind. Darüber hinaus wird verhindert, daß jene Inhalte erneuert oder geändert werden.
  • Bei einer Operation führt eine CPU 15 ähnlich wie die CPU 10, die in Fig. 1 gezeigt ist, ein im Programmspeicher 110 gespeichertes Initialisierungsprogramm aus, um nötige Daten und Informationen in den Datenspeicher 120, die Einheit 40 zum Empfangen serieller Daten und die DMAC 20 zu setzen. Bei diesem Ausführungsbeispiel enthält die DMA-Steuer-/Statusinformation jedoch weiterhin eine Vektorunterbrechungs-Freigabe4-Sperrinformation, die anzeigt, ob die CPU 15 direkt nach einem Beenden der Makrodienstoperation in die Vektorunterbrechungs- Verarbeitungsoperation umgeschaltet ist oder nicht. Bei der vorliegenden Beschreibung enthält jede der DMA-Steuer-/Statusinformationen im 1-ten bis (N-1)- ten Blocksteuer-Datenbereich die Information zum Freigeben einer kontinuierlichen Übertragung und die Vektorunterbrechungs-Sperrinformation, wohingegen jene im N-ten Blocksteuer-Datenbereich die Information zum Sperren einer kontinuierlichen Übertragung und die Vektorunterbrechungs-Freigabeinformation enthält. Zusätzlich wird das Flag 33 in der INTC 30 im Initialisierungsprogramm in den gesetzten Zustand gebracht. Danach fährt die CPU 15 damit fort, ein im Programmspeicher 110 gespeichertes Programm auszuführen.
  • Andererseits arbeitet die DMAC 20 gemäß dem in Fig. 2 gezeigten Flußdiagramm, so daß alle empfangenen Daten, die aus vorbestimmten Bits von Daten bestehen, von der Einheit 40 zum 1-ten Block 122 des Speichers 120 übertragen werden. Wenn der Inhalt der Übertragungszeitinformation im aktuellen Registerblock 202 Null wird, oder wenn der EOF-Code empfangen wird, werden die Übertragungszeitinformation und die Steuer-/Statusinformation im aktuellen Registerblock 202 in den Speicherregisterblock 204 gespeichert, und die Inhalte des nächsten Registerblocks 203 werden dann in den aktuellen Registerblock 202 kopiert (siehe Schritte 259 bis 261 in Fig. 2). Das periphere Speicherbefehlssignal 24 und das Unterbrechungsanfragesignal 23 werden danach erzeugt.
  • Da das Flag 33 im gesetzten Zustand ist, führt die INTC 30 die Makrodienst- Modeninformation 32-1 zum IR 55. Somit wird das in Fig. 6 gezeigte Makrodienst- Mikroprogramm initiiert, ohne die Inhalte von PC 151, PSW 1582 und der Register 157 zu speichern, und mit einem Halten von ihnen wie sie sind. Bei der Makrodienstoperation werden die Inhalte des Statusspeicherregisters 403 und des Speicherregisterblocks 204 in die entsprechenden Stellen des 1-ten Blocksteuer- Datenbereichs 123 durch Verwenden der Adresse geladen, die im Steuerdaten- Adressenbereich 121 gespeichert ist (601). Danach wird beurteilt, ob die gespeicherten DMA-Steuer-/Statusdaten die Information zum Freigeben einer kontinuierlichen Übertragung enthalten oder nicht (602). In der vorliegenden Beschreibung werden, da die Information zum Freigeben einer kontinuierlichen Übertragung enthalten ist, die nächsten Adressendaten im 1-ten Blocksteuer-Datenbereich 123 als Bereichsadresse 121 gesetzt (603), und die Übertragungszeitinformation, die Speicheradresseninformation und die DMA-Steuer-/Statusinformation, die im 3-ten Blocksteuer-Datenbereich gespeichert sind, werden in den nächsten Registerblock 203 der DMAC 20 durch Verwenden der neuen Bereichsadresse 121 und der nächsten Adressendaten im 2-ten Blocksteuer-Datenbereich 125 geladen (604). Nachfolgend wird beurteilt, ob die gespeicherte DMA-Steuer-/Statusinformation, die im 1-ten Bereich 123 geladen ist, die Vektorunterbrechungs-Freigabeinformation enthält oder nicht (604). In dieser Beschreibung wird deshalb, weil die Vektorunterbrechungs-Sperrinformation enthalten ist, die Makrodienstoperation beendet.
  • In Antwort auf ein Beenden der Makrodienstoperation wird zugelassen, daß der PC 151, das PSW 1582 und die Register 157 ihre Inhalte ändern, so daß die aufgeschobene Programmausführung wieder aufgenommen wird. Da die CPU 15 keine Zusatzoperation benötigt, wird die Ausführungseffizienz der CPU 15 erhöht.
  • Bei der Makrodienstoperation, die auf die Unterbrechungsanfrage antwortet, die durch das Beenden einer Datenübertragung zwischen der Empfangseinheit 40 und dem N-ten Block 126 des Speichers 120 erzeugt wird, schaltet die Operation der CPU 15 vom Schritt 602 zum Schritt 604 um, weil die Information zum Sperren einer kontinuierlichen fibertragung enthalten ist. Im Schritt 605 wird deshalb, weil die Vektorunterbrechungs-Freigabeinformation enthalten ist, das Flag 33 in den rückgesetzten Zustand gelöscht (606). Die Makrodienstoperation wird dann beendet.
  • In Antwort auf das Löschen des Flags 33 setzt die INTC 30 die Vektorunterbrechungsmodeninformation 32-1 in das IR 155, so daß eine Unterbrechungsprogrammroutine, die im Programmspeicher 110 gespeichert und durch einen Anwender geschrieben ist, initiiert wird. In dieser Unterbrechungsroutine werden die Fehlerprüfoperation und die Verarbeitungsoperation an den empfangenen Daten durchgeführt.
  • Wie es oben beschrieben ist, wird deshalb, weil die Operation zum Laden der erwünschten Daten zwischen dem Datenspeicher 120 und der DMAC 20 durch das Makrodienst-Mikroprogramm als Teil der Hardware des Mikrocomputers durchgeführt wird, die Datenverarbeitungseffizienz weiter erhöht, und ein Aufwand für den Anwender für ein Herstellen eines Programms wird reduziert.
  • Ebenso kann die DMAC 20 beim vorliegenden Ausführungsbeispiel eine Datenübertragung zwischen der Einheit 40 und einem lokalen Speicher durchführen, und zwar auf ähnliche Weise wie in Fig. 4.
  • Es ist klar, daß die vorliegende Erfindung nicht auf die obigen Ausführungsbeispiele beschränkt ist, sondern abgeändert und modifiziert werden kann, ohne vom Schutzumfang der Erfindung abzuweichen. Beispielsweise kann die Übertragungssteuereinheit 201 statt einem Kopieren der Inhalte des nächsten Registerblocks 203 in den aktuellen Registerblock 202 einen Registerblock, auf den zwischen den Registerblöcken 202 und 203 Bezug zu nehmen ist, mittels eines Multiplexers ändern.

Claims (3)

1. Mikroprozessor mit einer CPU (10) und einer DMA-Steuerung (20) zum Durchführen einer Datenübertragung zwischen einer peripheren Einheit (40) und einem Speicher (120) in Antwort auf eine Übertragungsanfrage (42) von der peripheren Einheit, wobei die DMA-Steuerung eine erste Speichereinrichtung enthält, um eine erste Information zu speichern, die zum Durchführen einer aktuellen DMA-Datenübertragungsoperation nötig ist, eine zweite Speichereinrichtung, um eine zweite Information zu speichern, die zum Durchführen einer nächsten DMA-Datenübertragungsoperation nötig ist, die nach einem Beenden der aktuellen DMA-Datenübertragungsoperation zu initiieren ist, eine Ausführungseinrichtung, die auf die Übertragungsanfrage antwortet, zum Durchführen der Datenübertragung unter Verwendung der ersten Information, die in der ersten Speichereinrichtung gespeichert ist, und eine Steuereinrichtung, die auf ein Beenden der aktuellen DMA- Datenübertragungsoperation antwortet, zum Veranlassen, daß die Ausführungseinrichtung eine nachfolgende Datenübertragung unter Verwendung der zweiten Information durchführt, und zum Erzeugen einer Unterbrechungsanfrage (23) zur CPU,
dadurch gekennzeichnet, daß die erste Speichereinrichtung einen Speicherbereich enthält, in den die Ausführungseinrichtung Statusinformation speichert, die einen Endstatus der aktuellen DMA-Datenübertragung anzeigt, und daß die Ausführungseinrichtung auf das Beenden der aktuellen DMA- Datenübertragung derart antwortet, daß sie die Statusinformation sichert, die in dem Speicherbereich der ersten Speichereinrichtung gespeichert ist, daß sie die zweite Information in die erste Speichereinrichtung von der zweiten Speichereinrichtung kopiert, und daß sie zuläßt, daß die Ausführungseinrichtung auf die erste Speichereinrichtung zugreift, so daß die Ausführungseinrichtung die nachfolgende Datenübertragung unter Verwendung der zweiten Information durchführt.
2. Mikroprozessor nach Anspruch 1, wobei die erste Information kontinuierliche Übertragungs-Freigabe-/-Sperr- und Übertragungszeitinformation enthält, wobei die DMA-Steuerung die zweite Information in die erste Speichereinrichtung kopiert, wenn die Übertragungszeit Null wird, und die Übertragungs- Freigabe-/-Sperrinformation eine kontinuierliche Übertragung bestimmt.
3. Mikroprozessor nach Anspruch 1, wobei der Speicherbereich der ersten Speichereinrichtung einen Speicherregisterblock aufweist, wobei die erste Information eine erste Übertragungszeit- und eine erste Steuer-/Statusinformation mit Freigabe-/-Sperrinformation darin enthält, die DMA-Steuerung die erste Übertragungszeit- und Steuer-/Statusinformation in dem Speicherregister speichert, wenn die Übertragungszeit einmal zu Null dekrementiert ist, und die DMA-Steuerung die zweite Information in die erste Speichereinrichtung kopiert, wenn das Register die Freigabeinformation enthält.
DE69128565T 1990-06-25 1991-06-25 Mikrorechner ausgestattet mit einer DMA-Steuerung Expired - Fee Related DE69128565T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP16591590 1990-06-25
JP23741690 1990-09-07

Publications (2)

Publication Number Publication Date
DE69128565D1 DE69128565D1 (de) 1998-02-12
DE69128565T2 true DE69128565T2 (de) 1998-06-04

Family

ID=26490465

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69128565T Expired - Fee Related DE69128565T2 (de) 1990-06-25 1991-06-25 Mikrorechner ausgestattet mit einer DMA-Steuerung

Country Status (3)

Country Link
US (1) US5696989A (de)
EP (1) EP0464615B1 (de)
DE (1) DE69128565T2 (de)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69610450T2 (de) * 1995-03-13 2001-04-26 Sun Microsystems, Inc. Virtueller Ein/Ausgabeprozessor
US5961614A (en) 1995-05-08 1999-10-05 Apple Computer, Inc. System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal
JPH08307617A (ja) * 1995-05-10 1996-11-22 Canon Inc 通信装置
US6098121A (en) * 1996-12-03 2000-08-01 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus with improved throughput due to reduced processing overhead in interrupt process
US6154793A (en) * 1997-04-30 2000-11-28 Zilog, Inc. DMA with dynamically assigned channels, flexible block boundary notification and recording, type code checking and updating, commands, and status reporting
US6282548B1 (en) * 1997-06-21 2001-08-28 Alexa Internet Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
GB9821766D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821768D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821763D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821789D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Jitter handling
GB9821770D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821792D0 (en) 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
GB9821800D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
US6314567B1 (en) * 1998-11-13 2001-11-06 Hewlett-Packard Company Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
MY124066A (en) * 1998-12-25 2006-06-30 Sony Corp Information processing device and method, and program storage medium.
JP3614714B2 (ja) * 1999-06-16 2005-01-26 Necマイクロシステム株式会社 Dma制御装置
US6449665B1 (en) 1999-10-14 2002-09-10 Lexmark International, Inc. Means for reducing direct memory access
KR100403620B1 (ko) * 2001-02-28 2003-10-30 삼성전자주식회사 채널 활용율을 높이는 통신 시스템 및 그 방법
US6813652B2 (en) * 2001-04-11 2004-11-02 Chelsio Communications, Inc. Reduced-overhead DMA
JP2003050774A (ja) * 2001-08-08 2003-02-21 Matsushita Electric Ind Co Ltd データ処理装置およびデータ転送方法
JP2003281078A (ja) * 2002-03-22 2003-10-03 Ricoh Co Ltd Dmaコントローラ
US8296555B2 (en) 2008-09-18 2012-10-23 Marvell World Trade Ltd. Preloader
JP2010134858A (ja) * 2008-12-08 2010-06-17 Renesas Electronics Corp データ処理回路
WO2012014400A1 (ja) * 2010-07-27 2012-02-02 パナソニック株式会社 データ転送制御装置及びデータ転送制御方法
US20120054379A1 (en) * 2010-08-30 2012-03-01 Kafai Leung Low power multi-touch scan control system
US8719463B2 (en) 2010-11-16 2014-05-06 Taiwan Semiconductor Manufacturing Company, Ltd. Processor with tightly coupled smart memory unit
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US9436629B2 (en) * 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US9311228B2 (en) * 2012-04-04 2016-04-12 International Business Machines Corporation Power reduction in server memory system
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
EP3028145A1 (de) 2013-07-31 2016-06-08 Marvell World Trade Ltd. Parallelisierung von startoperationen
WO2017168228A1 (en) 2016-03-08 2017-10-05 Marvell World Trade Ltd. Methods and apparatus for secure device authentication

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5660933A (en) * 1979-10-22 1981-05-26 Nec Corp Information processor
JPS5789128A (en) * 1980-11-25 1982-06-03 Hitachi Ltd Controlling system for information interchange
EP0153764B1 (de) * 1984-03-02 1993-11-03 Nec Corporation Informationsverarbeitungseinheit mit Unterbrechungsfunktion
US4847750A (en) * 1986-02-13 1989-07-11 Intelligent Instrumentation, Inc. Peripheral DMA controller for data acquisition system
JPS6329868A (ja) * 1986-07-23 1988-02-08 Nec Corp Dmaコントロ−ラ
JP2504512B2 (ja) * 1988-03-09 1996-06-05 富士通株式会社 Dmaコントロ―ラ
JPH01237864A (ja) * 1988-03-18 1989-09-22 Fujitsu Ltd Dma転送制御装置
JPH1050154A (ja) * 1996-08-01 1998-02-20 Sumitomo Wiring Syst Ltd ワイヤーハーネス組立用の電線支持具

Also Published As

Publication number Publication date
DE69128565D1 (de) 1998-02-12
US5696989A (en) 1997-12-09
EP0464615B1 (de) 1998-01-07
EP0464615A3 (en) 1992-12-30
EP0464615A2 (de) 1992-01-08

Similar Documents

Publication Publication Date Title
DE69128565T2 (de) Mikrorechner ausgestattet mit einer DMA-Steuerung
DE69319763T2 (de) Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
DE69130554T2 (de) Registerschaltung zum Kopieren des Inhalts eines Registers in ein anderes Register
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3751426T2 (de) Busschnittstellenschaltung für digitalen Datenprozessor.
DE69331448T2 (de) Dataprozessor mit einem Cachespeicher
DE69031183T2 (de) Verfahren und Anordnung zur Kontrolle der Umwandlung virtueller Adressen in physikalische Adressen in einem Computersystem
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE3854369T2 (de) Zentralprozessoreinheit für digitale datenverarbeitungsanordnung mit cache-speicherverwaltungsvorrichtung.
DE68928360T2 (de) Hochleistungsrechnersystem mit fehlertoleranter Fähigkeit; Verfahren zum Betrieb desselben
DE69227664T2 (de) Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE69031433T2 (de) Speicherzugriffsausnahmebehandlung bei vorausgelesenen Befehlswörtern in dem Befehlsfliessband eines Rechners mit virtuellem Speicher
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE3687947T2 (de) Schnittstelle und Verfahren für Buszugriff in einem Rechner.
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE69812685T2 (de) System und verfahren zur spekulativen arbitrierung bei datenübertragung
DE3851746T2 (de) Sprungvorhersage.
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE69425580T2 (de) Gerät und verfahren zur schnittstellenbildung zwischen einem datenprozessor einerseits und einer e-a-steuerung und einem haupspeicher andererseits
DE3735828C2 (de) Verfahren zur Wiederaufnahme der Ausführung von Anweisungen nach einer Unterbrechung in einer mikroprogrammgesteuerten Datenverarbeitungsvorrichtung
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
DE69130342T2 (de) Mikroprozessor mit Funktion von Verzweigungsvorhersage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP

8339 Ceased/non-payment of the annual fee