DE69227061T2 - Empfangspuffersteuerungssystem - Google Patents

Empfangspuffersteuerungssystem

Info

Publication number
DE69227061T2
DE69227061T2 DE69227061T DE69227061T DE69227061T2 DE 69227061 T2 DE69227061 T2 DE 69227061T2 DE 69227061 T DE69227061 T DE 69227061T DE 69227061 T DE69227061 T DE 69227061T DE 69227061 T2 DE69227061 T2 DE 69227061T2
Authority
DE
Germany
Prior art keywords
address
data
read
buffer
write
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 - Lifetime
Application number
DE69227061T
Other languages
English (en)
Other versions
DE69227061D1 (de
Inventor
Takeshi Horie
Hiroaki Ishihata
Toshiyuki Shimizu
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69227061D1 publication Critical patent/DE69227061D1/de
Publication of DE69227061T2 publication Critical patent/DE69227061T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

    Hintergrund der Erfindung (1) Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein einen Empfangspuffer, der Daten in einer Nachrichtenkommunikation empfängt, und insbesondere ein System zur Steuerung eines solchen Empfangspuffers.
  • In einem Parallelcomputersystem, in dem mehrere Prozessoren miteinander über ein Netzwerk verbunden sind, hält jeder der Prozessoren separat Daten. Wenn ein Prozessor Daten verwenden muß, die in einem anderen Prozessor gehalten werden, werden Daten in einer Nachrichtenkommunikation übertragen. Bei der Nachrichtenkommunikation wird es erwünscht, daß Daten mit einer möglichst hohen Geschwindigkeit übertragen werden. Um die Nachrichtenkommunikation zu beschleunigen, ist es notwendig, eine Datenpufferung effizient durchzuführen. Die vorliegende Erfindung ist dazu bestimmt, ein Hochgeschwindigkeitspuffersystem zu realisieren.
  • (2) Beschreibung des Stands der Technik
  • Fig. 1 zeigt ein herkömmliches Parallelcomputersystem, das mehrere Prozessoren 1 und 1' und ein Netzwerk 2 aufweist. Jeder der Prozessoren 1 und 1' weist eine CPU (Zentraleinheit) 3, einen Hauptspeicher 4, einen DMA- (Direktspeicherzugriffs-) Kontroller 5, eine Kommunikationsvorrichtung 6, einen gemeinsamen Buskontroller 6a und einen Empfangspuffer 7 auf. Diese Bauteile sind miteinander über einen gemeinsamen Bus BUS verbunden. Das Netzwerk 2 macht es für beliebige Prozessoren möglich, wie die Prozessoren 1 und 1', miteinander zu kommunizieren. Die Kommunikationsvorrichtung 6 führt einen an Schnittstellensteuerprozeß für die Nachrichtenkommunikation aus. Vom Netzwerk 2 empfangene Daten werden in den im Hauptspeicher 4 ausgebildeten Empfangspuffer 7 geschrieben. An das Netzwerk 2 übertragene Daten werden aus einem Sendepuffer ausgelesen, der im Hauptspeicher 4 ausgebildet ist. Um die unten gegebene Erläuterung der Datenempfangsoperation zu vereinfachen, wird nur der im Hauptspeicher 4 ausgebildete Empfangspuffer 7 in Fig. 1 dargestellt. Der DMA-Kontroller 5 führt anstelle der CPU 3 einen Pufferzugriffssteuerungsprozeß für die Datenschreib- und Leseoperationen durch. Parameter, die für den Pufferzugriffssteuerungsprozeß notwendig sind, werden durch einen Befehl gesetzt, der durch die CPU 3 ausgeführt wird.
  • Die Datenempfangsoperation bei der herkömmlichen Nachrichtenkommunikation weist die folgenden ersten bis fünften Schritte auf. Im ersten Schritt der Datenempfangsoperation erzeugt ein sendender Prozessor (Prozessor 1' zum Beispiel) eine Nachricht, die über das Netzwerk 2 übertragen und durch einen empfangenden Prozessor (Prozessor 1 zum Beispiel) empfangen wird. Im zweiten Schritt sendet die Kommunikationsvorrichtung 6 des empfangenden Prozessors 1 eine Unterbrechungsanforderung an die CPU 3, und informiert dadurch die CPU 3 von der Ankunft der Nachricht. Im dritten Schritt eignet sich die CPU 3 den Empfangspuffer 7 im Hauptspeicher 4 an. Im vierten Schritt setzt die CPU 3 Parameter, wie eine Adresse des Empfangspuffers 7 und eine Empfangsdatenlänge im DMA-Kontroller 5. Im fünften Schritt wird die Datenempfangsoperation gestartet, während die CPU 3 und der DMA miteinander zusammenarbeiten.
  • Um die Geschwindigkeit der obigen Nachrichtenkommunikation zu erhöhen, ist es notwendig, die Zeit zu betrachten, die notwenig ist, die zweiten bis vierten Schritte auszuführen, als auch die Zeit, die notwendig ist, die Operation der CPU 3 zu unterbrechen und einen entsprechenden Prozeß auszuführen, wenn der Empfangspuffer 7 überläuft. Da die Zeiten direkt mit der Operation der CPU 3 zusammenhängen, können sie nicht beträchtlich vermindert werden, wenn die Kommunikationsvorrichtung 6 ausgelegt wird, mit einer höheren Geschwindigkeit zu arbeiten.
  • Um den obigen Nachteil zu vermindern, ist ein Empfangspuffer eines Ringpuffertyps, wie in Fig. 2 gezeigt vorgeschlagen worden. Auf einen festen Bereich im Ringpuffer kann kontinuierlich und zirkular mittels eines Lesezeigers (RDP) und eines Schreibzeigers (WTP) zugegriffen werden. Auf diese Weise kann die Toleranz der Speicherkapazität des Empfangspuffers erhöht werden, und der Einstellprozeß des Empfangspuffers kann vereinfacht werden, so daß dessen Zusatz vermindert werden kann. Wenn die Schreiboperation oder die Leseoperation des Ringpuffers übermäßig zunimmt, wird der Empfangspuffer überlaufen oder unterschritten.
  • Die Japanische Offenlegungspatentveröffentlichung Nr. 59- 112327 schlägt ein Ringpuffersteuersystem vor, in dem die höchstwertige Adresse eines Pufferbereichs ausgedehnt wird, und ein Überlauf des Ringpuffers vernachlässigt wird, so daß die Adresse umherkreist. Gemäß diesem Vorschlag ist es möglich, die Pufferkapazität zu erhöhen. Jedoch weist das Ringpuffersteuersystem keine Einrichtungen zur Ermittlung eines Überlaufs und Unterschreitung des Ringpuffers auf. Ferner ist es sehr schwierig, einen Bereich des Ringpuffers zu identifizieren, in dem sich empfangene Daten befinden, die noch nicht verarbeitet worden sind.
  • Die Japanische Offenlegungspatentveröffentlichung Nr. 60- 178570 offenbart einen Ringpuffer, der durch die Kombination der CPU und des DMA realisiert wird. Es ist keine besondere Verbesserung des Ringpuffers vorgeschlagen worden, und die CPU wird jedesmal unterbrochen, wenn Daten empfangen werden. Das obige wird durch Software durchgeführt, die nicht dafür entworfen ist, den Ringpuffer im wesentlichen am Überlaufen zu hindern. Ferner ist die Leistung (Effektivität der Verarbeitung) des vorgeschlagenen Ringpuffers geringfügig kleiner als 1/2, da die CPU, die eine Gemeinschaftsbusstruktur aufweist, Daten verwaltet und jedesmal unterbrochen wird, wenn Daten empfangen werden. Diese Unterbrechungsprozedur wird durch Software durchgeführt.
  • Wie oben beschrieben, weisen die herkömmlichen Ringpuffersteuersysteme keine besonderen Einrichtungen auf, um den Ringpuffer am Überlaufen und Unterschreiten zu hindern.
  • US 4 175 287 offenbart eine elastische Speichergleitvorrichtung und -Verfahren; die zweiteilige Form des Anspruchs 1 beruht auf diesem Dokument. Es wird ein Mehrabschnittsspeicher verwendet, der durch Schreib- und Lesezähler adressiert wird, und eine Vergleichsschaltung ist vorgesehen, die Schreiben und Lesen in denselben Abschnitt verhindert.
  • Zusammenfassung der Erfindung
  • Es ist eine allgemeine Aufgabe der vorliegenden Erfindung, ein Ringpuffersteuersystem bereitzustellen, in dem die obigen Nachteile verringert werden.
  • Eine spezifischere Aufgabe der vorliegenden Erfindung ist es, ein Ringpuffersteuersystem bereitzustellen, das Hardware- Einrichtungen aufweist, um einen Ringpuffer wirksam am Überlaufen und Unterschreiten zu hindern.
  • Die obigen Aufgaben der vorliegende Erfindung werden durch ein Empfangspuffersteuersystem für ein System gelöst, das einen Speicher aufweist, der aufweist: einen Pufferbereich, der als ein Empfangspuffer dient, wobei Daten an den Speicher über einen Bus angelegt werden, Schreibzeiger-Einrichtungen, die an den Speicher gekoppelt sind, zum Halten einer Schreibadresse des Pufferbereichs; und Lesezeiger-Einrichtungen, die an den Speicher gekoppelt sind, zum Halten einer Leseadresse des Pufferbereichs, Überlauf/Unterschreitungs-Ermittlungseinrichtungen, die an die Schreibzeiger-Einrichtungen und die Lesezeiger-Einrichtungen gekoppelt sind, zur Ermittlung einer Situation, in der ein Überlauf oder eine Unterschreitung im Pufferbereich auftreten wird, wobei die Ermittlung als Reaktion auf die Schreibadresse, die durch die Schreibzeiger-Einrichtungen gehalten wird, und die Leseadresse, die durch die Lesezeiger-Einrichtungen gehalten werden, stattfindet; und Steuer-Einrichtungen, die an den Speicher und die Überlauf/Unterschreitungs-Ermittlungseinrichtungen gekoppelt sind, um Schreiben oder Lesen der Daten in oder aus dem Pufferbereich zu sperren, wenn die Überlauf- oder Unterschreitungs-Ermittlungseinrichtungen die Situation ermitteln, in der ein Überlauf bzw. eine Unterschreitung auftreten werden, dadurch gekennzeichnet, daß es Aktualisierungseinrichtungen zum Halten einer fortgeschrittenen Leseadresse aufweist, die um einen vorherbestimmten Adreßwert der Leseadresse vorausgeht, die in den Lesezeiger-Einrichtungen gehalten wird, und zum Aktualisieren der Leseadresse, die in den Lesezeiger-Einrichtungen gehalten wird, durch die fortgeschrittene Leseadresse, worin Daten über den Bus aus dem Speicher ausgelesen werden, und die Überlauf/Unterschreitungs-Ermittlung so angeordnet ist, daß sie einen Überlauf und eine Unterschreitung durch Vergleichen der Schreibadresse mit der jeweiligen fortgeschrittenen Leseadresse und der Leseadresse ermitteln, und um ein Signal auszugeben, wenn entweder die Leseadresse oder die fortgeschrittene Leseadresse dieselbe wie die Schreibadresse ist.
  • Kurze Beschreibung der Zeichnungen
  • Andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung deutlicher werden, wenn sie in Verbindung mit den begleitenden Zeichnungen gelesen wird, in denen:
  • Fig. 1 ein Blockschaltbild eines herkömmlichen Parallelprozessorsystems ist;
  • Fig. 2 ein Blockschaltbild ist, das einen herkömmlichen. Ringpuffer darstellt;
  • Fig. 3 ein Blockschaltbild ist, das eine Skizze einer Ausführungsform der vorliegenden Erfindung darstellt;
  • Fig. 4 ein Blockschaltbild eines in Fig. 3 gezeigten DMA- Kontrollers ist;
  • Fig. 5 ein Blockschaltbild eines in Fig. 3 gezeigten Ausgabeadreßgenerators ist;
  • Fig. 6 ein Blockschaltbild eines Datengrößenmultiplexers in dem in Fig. 5 gezeigten Ausgabeadreßgenerator ist;
  • Fig. 7 ein Schaltplan einer in Fig. 3 gezeigten Überlauf/ Unterschreitungs-Ermittlungsschaltung ist;
  • Fig. 8 ein Diagramm ist, das den Zustandsübergang einer in Fig. 3 gezeigten Ablaufsteuerung zeigt;
  • Fig. 9 ein Diagramm ist, das einen initialisierten Zustand eines Empfangspuffers zeigt;
  • Fig. 10 ein Diagramm ist, das einen Prozeß des kontinuierlich Zugreifens auf aufgeteilte Daten zeigt;
  • Fig. 11A ein Blockschaltbild einer herkömmlichen Cache-Datenannullierungsschaltung ist;
  • Fig. 11B ein Blockschaltbild einer in der Ausführungsform verwendeten Cache-Datenannullierungsschaltung ist;
  • Fig. 12 ein Blockschaltbild ist, das einen Prozeß des Annullierens von Cache-Daten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • Fig. 13A ein Diagramm ist, das zeigt, wie Adressen verarbeitet werden, um kontinuierlich aufgeteilte Daten zu lesen;
  • Fig. 13B ein Blockschaltbild einer Struktur zum Ausführen der in Fig. 13A gezeigten Adreßverarbeitung ist; und
  • Fig. 14 ein Diagramm einer Struktur ist, die verwendet wird, wenn mehrere Empfangspuffer eingesetzt werden.
  • Beschreibung der bevorzugten Ausführungsformen
  • Fig. 3 zeigt die Skizze einer Ausführungsform der vorliegenden Erfindung. Der in Fig. 1 gezeigte DMA-Kontroller 5 wird durch einen DMA-Kontroller 50 ersetzt. Der DMA-Kontroller 50 ist wie folgt konfiguriert. Eine Ablaufsteuerung 9 steuert die Operationen der Bauteile des DMA-Kontrollers 50 entsprechend vorherbestimmten Abläufen. Ein Ausgabeadreßgenerator 10 erzeugt eine Speicherzugriffsadresse. Ein Schreibzeiger (WTP) 11 gibt die nächste Schreibadresse an. Ein Lesezeiger (RDP) 12 gibt die nächste Leseadresse an. Ein Register (RDPP) 12' hält eine fortgeschrittene Leseadresse (RDP+1), die der durch den Lesezeiger 12 angegebenen Leseadresse um eins vorausgeht. Ein Addierer 13 erhöht die durch den Lesezeiger 12 angegebene Leseadresse um eins. Ein Addierer 14 erhöht die durch den Schreibzeiger 11 angegebene Schreibadresse um eins. Eine logisches Adreßbasisregister (LAR) 15 hält die Startadresse eines Pufferbereichs 8, der im Hauptspeicher 4 in der Form einer logischen (virtuellen) Adresse gebildet wird. Ein reales Adreßbasisregister (PAR) 16 hält die Startadresse des Pufferbereichs 8 in der Form einer realen (physikalischen) Adresse.
  • Eine Überlauf/Unterschreitungs-Ermittlungsschaltung 17 vergleicht die durch den Schreibzeiger 11 angegebene Schreibadresse mit der durch Lesezeiger 12 angegebenen Leseadresse als auch mit der im Register 12' registrierten Adresse. Wenn die Schreibadresse entweder mit der durch den Lesezeiger 12 angegebenen Adresse oder der Adresse im Register 12' übereinstimmt, schließt die Überlauf/Unterschreitungs-Ermittlungsschaltung 17, daß der Pufferbereich 8 überlaufen oder unterschritten werden wird. Die Ermittlung des Überlaufs wird durch den Schreibzeiger 11 und den Lesezeiger 12 durchgeführt. Der Ermittlung der Unterschreitung wird durch den Schreibzeiger 11 und das Register 12' durchgeführt.
  • Eine Adreßeingabepuffer 18 hält eine durch die CPU 3 (Fig. 3) geschriebene Adresse. Die Adresse im Adreßeingabepuffer 18 wird unter der Steuerung der CPU 3 selektiv in die Zeiger 11 und 12 und die Basisregister 15 und 16 geschrieben.
  • Der Empfangspuffer des Ringpuffertyps wird im Pufferbereich 8 im Hauptspeicher 4, und eine Zugriffseinrichtung, die die Zeiger 11 und 12 und die Basisregister 15 und 16 einschließt, im DMA-Kontroller 50 gebildet.
  • Die logische Adresse der Startposition des Pufferbereichs 8 wird im Basisregister 15 gehalten, und die Leseadresse nach der Adreßumsetzung wird im Basisregister 16 gehalten. Wenn die Zugriffsquelle ein Benutzerprogramm ist, wird die logische Adresse als die Basisadresse verwendet. Wenn die Zugriffsquelle ein Systemprogramm ist, wird die reale Adresse als die Basisadresse verwendet. Die Basisadresse wird mit der Adresse entweder im Schreibzeiger 11 oder im Lesezeiger 12 kombiniert, was als eine relative Adresse fungiert.
  • Es wird auf den Schreibzeiger 11 bezug genommen, wenn empfangene Daten in den Pufferbereich 8 geschrieben werden. Die Adresse im Schreibzeiger 11 wird um 1 erhöht, wenn die Schreiboperation endet. Die Adresse im Lesezeiger 12 wird durch den Inhalt des Registers 12' aktualisiert, wenn der Inhalt des Registers 12' gelesen wird. Der Inhalt des Registers 12' ist gleich einer Adresse, die durch eine Erhöhung um eins der Adresse im Lesezeiger 12 erhalten wird, die im unmittelbar vorhergehenden Zugriff zum Datenlesen verwendet wird.
  • Der Ausgabeadreßgenerator 10 wählt, auf der Grundlage, ob der Zugriffsmodus ein logischer Adreßmodus oder ein realer Adreßmodus ist oder ob der Zugriff für das Datenschreiben oder Datenlesen stattfindet, eine Ausgabeadresse aus den Adressen der Zeiger 11 und 12 und der Register 12', 15 und 16 aus. Während dieser Auswahl wird die Puffergröße berücksichtigt, so daß das Aktualisieren der Adresse, das durch Erhöhen der Adresse im Zeiger 11 oder 12 durchgeführt wird, mit einer umlaufenden Adreßänderung innerhalb eines vorherbestimmten Bereichs übereinstimmt. Der Ausgabeadreßgenerator 10 sendet an die CPU 2 anstelle einer Adresse eine Information (NULL), die zeigt, daß es keine aus dem Pufferbereich 8 als Reaktion auf eine Datenanforderung vom Register 12' auszulesenden Daten gibt.
  • Die Ablaufsteuerung 9 sendet und empfängt Steuersignale an und von der Kommunikationsvorrichtung 6 (Fig. 1) und den gemeinsamen Buskontroller 6a. Die Ablaufsteuerung 9 nimmt sich das Recht, den gemeinsamen Bus BUS zu benutzen, und führt die Zugriffssteuerung entsprechend einer Datenübertragungsanforderung und einem Übertragungsvollendungsmitteilungssignal aus. Wenn der Pufferbereich 8 überläuft oder unterschritten wird oder wenn ein Fehler aufgetreten ist, stoppt die Ablaufsteuerung 9 die Zugriffssteuerung.
  • Anfänglich wird die Adresse der Startposition des Puffer bereichs 8 in den Schreibzeiger 11 geschrieben, und die Adresse der Endposition des Pufferbereichs 8 wird in den Lesezeiger 12 geschrieben. Wenn die Kommunikationsvorrichtung 6 (Fig. 1) anfordert, Daten zu übertragen, schreibt der DMA-Kontroller 50 sequentiell die empfangenen Daten in den Pufferbereich 8, der von der Adresse aus startet, die durch den Schreibzeiger 11 angegeben wird. Mit dieser Operation ist es für den Prozessor möglich, kontinuierlich eine Operation auszuführen, ohne durch eine Nachrichtenübertragung unterbrochen zu werden, die nichtperiodisch durch einen anderen Prozessor erzeugt wird. Wenn eine Nachricht gebraucht wird, kann der Prozessor sofort die Startadresse des Bereichs erhalten, in dem die benötigten Daten gespeichert sind, oder kann sofort bestätigen, daß es keine Daten gibt, die gelesen werden sollen. Eine Entscheidung darüber, ob der Puffer überläuft oder unterschritten wird, wird durch Hardwareeinrichtungen getroffen. Wenn der Puffer überläuft, wird der Prozessor vom Überlauf durch eine Unterbrechungsprozedur benachrichtigt oder die Datenübertragung wird gestoppt, bis ein Empfangsbereich im Pufferbereich 8 durch Ausführen der Datenleseoperation verfügbar wird. Es ist für den Benutzer möglich, eine der obigen Prozeduren auszuwählen.
  • Es ist möglich, notwendige Informationen über den Status des Puffers durch Lesen der Inhalte der Zeiger 11 und 12 und des Registers 12' zu erhalten, das den Puffer verwaltet. Die Startposition von Daten, die noch nicht gelesen worden sind, kann aus der Leseadresse identifiziert werden, die durch den Zeiger 12 angegeben wird. Es ist möglich, durch Lesen der Schreibadresse, die durch den Schreibzeiger 11 angegeben wird, zu bestimmen, bis zu welcher Position des Puffers zu lesende Daten existieren. Durch Lesen der Adresse im Register 12' kann der Bereich, auf den unmittelbar zugegriffen wird, bevor er durch den Lesezeiger 12 angegeben wird, freigegeben werden, und die durch den Lesezeiger 12 angegebene Adresse wird durch die Adresse (RDP+1) im Register 12' ersetzt.
  • Fig. 4 zeigt den in Fig. 3 gezeigten DMA-Kontroller 50 detaillierter. Der Ausgabeadreßgenerator 10 weist Multiplexer (MPX) 19-21 auf. Die Überlauf/Unterschreitungs-Ermittlungsschaltung 17 weist Komparatoren 22 und 23 auf. Während eines kontinuierlichen Zugriffs, erzeugt die Ablaufsteuerung 9 ein. Lesezeiger- (RDP-) Aktualisierungssignal inordp und ein Schreibzeiger- (WTP-) Aktualisierungssignal dmai. Ferner stoppt die Ablaufsteuerung 9 die Zugriffssteuerung als Reaktion auf ein Überlaufermittlungssignal wmatch. Der Schreibzeiger 11 und der Lesezeiger 12 werden jeweils als Reaktion auf das WTP-Aktualisierungssignal dmai und das RDP-Aktualisierungssignal inordp um 1 erhöht.
  • Der Komparator 22 in der Überlauf/Unterschreitungs-Ermittlungsschaltung 17 vergleicht die gegenwärtige Adresse, die durch den Schreibzeiger 11 angegeben wird, mit der gegenwärtigen Adresse, die durch den Lesezeiger 12 angegeben wird. Wenn diese Adressen miteinander übereinstimmen, erzeugt der Komparator 22 das Überlaufermittlungssignal wmatch, und informiert dadurch die Ablaufsteuerung 9, daß ein Überlauf des Empfangspuffers während der nächsten Schreiboperation auftreten wird.
  • Der Komparator 23 vergleicht die Adresse, die durch Erhöhen der Adresse um eins erhalten wird, die durch den Lesezeiger 12· angegeben wird, mit der gegenwärtigen Adresse, die durch den Schreibzeiger 11 angegeben wird. Wenn diese Adressen miteinander übereinstimmen, erzeugt der Komparator 23 ein Unterschreitungsermittlungssignal rmatch.
  • Der Mutiplexer 19 wählt entweder das Register 15 oder das Register 16 entsprechend einem Steuersignal aus (das um der Einfachheit willen nicht gezeigt wird), das zeigt, ob die Zugriffsquelle ein Benutzerprogramm oder eine Systemprogramm ist. Auf diese Art werden eine vorherbestimmte Anzahl von höchstwertigen Bits der Ausgabeadresse bestimmt. Der Multiplexer 20 wählt einen des Lesezeigers 12, des Registers 12', des Schreibzeigers 11 und 0 entsprechend Steuersignalen, wie dem RDP-Aktualisierungssignal inordp, dem WTP-Aktualisierungssignal dmai und dem Unterschreitungsermittlungssignal rmatch aus. Auf diese Art werden eine vorherbestimmte Anzahl von tiefstwertigen Bits der Ausgabeadresse bestimmt.
  • Der Multiplexer 21 weist ein Decoderfunktion des Definieren der Empfangspuffergröße auf. Gemäß einem angegebenen Größensignal SIZE, wählt der Multiplexer 21 eine vorherbestimmt Anzahl mittelwertiger Bits aus den Adreßbits vom Multiplexer 19 oder eine vorherbestimmt Anzahl mittelwertiger Bits aus den Adreßbits vom Multiplexer 20. Mit der durch die mittelwertigen Bits definierten Puffergröße ändert sich die Ausgabeadresse endlos in der Puffergrößeneinheit, selbst wenn die Adressen der Zeiger 11 und 12 in eine Richtung um 1 erhöht werden.
  • Fig. 5 zeigt den Ausgabeadreßgenerator 10 detaillierter. Es wird nun angenommen werden, daß die Bitbreite von Daten aus jedem der Register (LAR) 15 und (PAR) 16 gleich 20 Bit ist, und die Bitbreite von Daten aus jeweils dem Lesezeiger (RDP) 12, dem Register (RDPP) 12' und dem Schreibzeiger (WTP) 11 gleich 15 Bit ist. Die Symbole Srdp, Srdpp und Swtp sind Auswahlsteuersignale, die durch die Ablaufsteuerung 9 erzeugt werden und jeweils an RDP, RDPP und WTP angelegt werden. Ein Symbol "dma" bezeichnet einen DMA-Zugriff, "system" bezeichnet einen Zugriff aus dem Systemprogramm, und "lar" bezeichnet einen Zugriff aus dem Benutzerprogramm, das die logisches Adresse verwendet.
  • Wenn beide Signal Srdpp und rmatch 'H (Hochpegel)' sind, erzeugt der Multiplexer 19 0. Wenn in anderen Fällen, als dem Fall, wo sowohl das Signal Srdpp als auch rmatch 'H' sind, entweder das Signal dma oder system 'H' ist, erzeugt der Multiplexer 19 die reale Adresse PAR. Wenn in anderen Fällen, als dem Fall, wo sowohl das Signal Srdpp als auch rmatch 'H' sind, das Signal lar 'H' ist, erzeugt der Multiplexer 19 die logische Adresse LAR.
  • Der Multiplexer 20 wählt die Leseadresse RDP, die durch den Lesezeiger 12 angegeben wird, wenn das Signal Srdp 'H' ist, und wählt die Adresse RDPP im Register 12', wenn beide Signale Srdpp und rmatch 'H' sind. Ferner wählt der Multiplexer 20 die Schreibadresse, die durch den Schreibzeiger WTP angegeben wird, wenn entweder das Signal Swtp oder dma 'H' ist, und wählt 0, wenn beide Signale Srdpp und rmatch 'H' sind.
  • Der Multiplexer 21 definiert die Puffergröße. Wie in Fig. 6 gezeigt, weist der Multiplexer 21 einen Decoder (DEC) 25 und Multiplexer (MPX) 26-0-26-6 auf. Der Decoder 25 setzt Drei- Bit-Daten, die die Puffergröße zeigen, in sieben Signale SIZE0, SIZE1-0, SIZE2-0, ..., SIZE6-0 um, die jeweils an die Multiplexer 26-1-26-6 angelegt werden. Das durch den Decoder 25 ausgegebene Signal SIZE0 ist nur dann 'H', wenn die Puffergrößendaten SIZE 0 anzeigen. Das Signal SIZE1-0 ist 'H', wenn die Puffergrößendaten SIZE entweder 1 oder 0 anzeigen. Das Signal SIZE2-0 ist 'H', wenn die Puffergrößendaten SIZE eine von 2, 1 und 0 sind. Allgemein ist ein Signal SIZEi-0 (wobei i = 0, 1, 2, ..., 6) 'H', wenn die Puffergrößedaten SIZE einen Wert anzeigen, der kleiner oder gleich dem Wert i ist. Die Multiplexer 26-0-26-6 erhalten jeweils sieben niedrigstwertige Bits AR(6) - AR(0) aus dem Multiplexer 19 und sieben höchstwertige Bits PTR(6) - PTR(0). Jeder Multiplexer 26-i wählt das Bit auf der AR-Seite, wenn das Signal SIZEi-0 'H' ist.
  • Nun zu Fig. 5 zurückkehrend, werden die höchstwertigen, mittelwertigen und niedrigwertigen Adreßbits, die jeweils von den Multiplexern 19, 20 und 21 ausgegeben werden, miteinander im Puffer 24 kombiniert und als eine Adresse AD ausgegeben.
  • Die Fig. 7A, 7B und 7C zeigen die Überlauf/Unterschreitungs-Ermittlungsschaltung 17 im Detail. Fig. 7A zeigt die Konfiguration jedes der Komparatoren 22 und 23. Jeder Komparator weist 15 ENOR- (Exklusiv-NOR-)Glieder auf, die jeweils die 15 Bit der Schreibadresse WTP mit den 15 Bit der Leseadresse RDP vergleichen. Ausgangssignale der 15 ENOR-Glieder werden durch eq(0) - eq(14) bezeichnet.
  • Fig. 7B zeigt einen Decoder, der das Puffergrößensignal SIZE decodiert. Der in Fig. 7B gezeigte Decoder setzt die drei Bit des Signals SIZE in sieben Signale SIZE0 - SIZE6 um.
  • Fig. 7C zeigt einen Ermittlungssignalgenerator, der das Überlaufermittlungssignal wmatch oder das Unterschreitungsermittlungssignal rmatch erzeugt. In Fig. 7C bezeichnet ein Signal "match" entweder das Signal wmatch oder rmatch. Ein UND- Glied AND1 ermittelt einen Status, wo alle niedrigstwertigen Bits eq(7) - eq(0) 'H' sind. Mehrere UND-Glieder AND2 erhalten eine vorherbestimmt Anzahl von höchstwertigen Bits aus den höchstwertigen Bits eq(14) - eq(8) und ein entsprechendes der Signale SIZEi. Dies ist dazu bestimmt, den Vergleichsbereich auf der Grundlage der angegebenen Puffergröße SIZEi zu ändern. Ausgangssignale der UND-Glieder AND2 werden an ein ODER-Glied angelegt, von der ein Ausgangssignal an ein UND-Glied AND3 an gelegt wird. Ein Ausgangssignal des UND-Glieds AND1 wird an das UND-Glied AND3 angelegt. Ein Ausgangssignal des UND-Glieds AND3 ist das Ermittlungssignal wmatch oder rmatch.
  • Fig. 8 ist ein Diagramm, das einen Zustandsübergang zeigt, der durch die in Fig. 3 gezeigte Ablaufsteuerung 9 gesteuert wird. In Fig. 8 bezeichnet "IDLE" einen Operationshaltezustand, und "BWAIT", "BADDR" und "BWAIT" bezeichnen Operationszustände. Wenn ein Fehler in den Zuständen "BWAIT", "BADDR" und "BWAIT" aufgetreten ist, kehrt der Zustand in den Zustand IDLE zurück. Im Zustand BWAIT wird die Kommunikationsvorrichtung 6 (Fig. 1) bereit, Daten zu übertragen, erzeugt die Datenübertragungsanforderung, wenn der Empfangspuffer einen ausreichenden leeren Bereich aufweist, und wartet auf die Aneignung des Busses.
  • Wenn der Bus im Zustand BWAIT angeeignet worden ist, so daß es erlaubt ist, Daten zu übertragen, schaltet die Ablaufsteuerung 9 auf den Zustand BADDR. In diesem Zustand wird eine Adresse auf den Adreßbus ausgegeben. Nach einem Takt nach dieser Adreßausgabeoperation, schaltet die Ablaufsteuerung 9 auf den Zustand BDATA, in dem die Ablaufsteuerung 9 auf die Vollendung der Datenübertragung wartet. Wenn eine anschließende Datenübertragungsanforderung erzeugt worden ist und das Recht, den Bus zu benutzen, erworden worden ist, nachdem die Vollendung der Datenübertragung bestätigt wird, kehrt die Ablaufsteuerung 9 in den Zustand BADDR zurück, in dem Daten kontinuierlich übertragen werden. Wenn es keine Datenübertragungsanforderung gibt, kehrt die Ablaufsteuerung 9 in den Zustand BWAIT zurück und wartet auf eine weitere Datenübertragungsanforderung.
  • Es wird nun eine Beschreibung der Arbeitsweise der Ausführungsform der vorliegenden Erfindung gegeben werden.
  • Wie in Fig. 9 gezeigt, wird, wenn die CPU 3 (Fig. 1) die Adresse im Register (RDPP) 12' in dem Zustand liest, wo der Schreibzeiger (WTP) 11 den obersten Teil des Empfangspuffers anzeigt und der Lesezeiger (RDI) 12 dessen untersten Teil anzeigt, 0 (NULL) an die CPU 3 zurückgeschickt, da es keine Daten im Empfangspuffer gibt. In Fig. 5 wird das folgende erhalten:
  • Srdpp = 1,
  • rmatch = CMP(RDP+1, WTP) = 1.
  • Folglich ist die Ausgabeadresse Null (AD = 0). Auf diese Art ist es für die CPU 3 leicht, festzustellen, ob es Daten im Empfangspuffer gibt oder nicht.
  • Es wird nun ein Beispiel der Verwendung des Empfangspuffers beschrieben werden. Es wird nun eine Beschreibung eines Falls gegeben werden, wo ein Bereich of 8 KBytes von einer realen Adresse 0X' 5A000 bis zu einer realen Adresse 0X' 5BFFF verwendet wird. In diesem Zustand wird nun angenommen werden, daß der Speicherplatz von einer Adresse 0X' 82000 abgebildet wird. Um den Systemmodus und den Benutzermodus voneinander zu unterscheiden, wird "sys" oder "usr" vor RDP und WTP angeordnet.
  • Die LAR, PAR, RDP und WTP werden wie folgt gesetzt:
  • LAR ← 0X' 82000
  • PAR ← 0X' 5A000
  • RDP ← 0X' 01FF0
  • WTP ← 0X' 00000.
  • Die RDP und WTP werden initialisiert, wenn sie rückgesetzt werden.
  • Ein Kommandoregister BCMD, das ein immer für den DMA-Kontroller vorgesehenes Steuerregister ist, wird gesetzt. Gleichartig wird ein Statusregister BRST vorgesehen.
  • Für SIZE = 110, WC = 0 und ST = 1,
  • BCMID ← 0X' 86000000.
  • Wenn die Leseadresse (RDP) des Lesezeigers 12 und die Schreibadresse (WTP) des Schreibzeigers 11 gelesen werden, wird das folgende erhalten:
  • sys RDP = 0X' 5BFF0
  • usr RDP = 0X' 83FF0
  • sys WTP = 0X' 5A000
  • usr WTP = 0X' 82000.
  • Jedoch wird, da der Empfangspuffer keine Daten aufweist, wenn das Register (RDPP) 12' gelesen wird, das folgende zurückgeschickt:
  • sys RDPP = 0X' 00000
  • usr RDPP = 0X' 00000.
  • Wenn Daten, die gleich drei Blocks (16 Bytes pro Block) empfangen werden, wird der Schreibzeiger WTP sequentiell auf die folgende Weise aktualisiert, und die empfangenen Daten werden in den Empfangspuffer geschrieben:
  • sys 0X' 5A000
  • sys 0X' 5A010
  • sys 0X' 5A020.
  • Wenn alle Daten vollständig empfangen worden sind, ist die Schreibadresse WTP des Schreibzeigers 11 0X' 5A030.
  • Diesmal, wenn der Inhalt RDPP des Registers 12' gelesen wird, werden die folgenden Informationen sequentiell erhalten:
  • usr RDPP = 0X' 82000 (was zeigt, daß Daten des ersten Blocks an der Benutzeradresse 0X' 82000 (Systemadresse 0X' 5A000) angeordnet werden);
  • usr RDPP = 0X' 82010 (was die Benutzeradresse von Daten des zweiten Blocks ist);
  • usr RDPP = 0X' 82020 (was die Benutzeradresse von Daten des dritten Blocks ist);
  • usr RDPP = 0X' 00000 (was zeigt, daß es keine Daten gibt); und
  • usr RDPP = 0X' 00000 (was zeigt, daß es keine Daten gibt).
  • Auf diese Weise kann das Benutzerprogramm (CPU 3) erkennen, daß es keine Daten anschließend an die drei Blocks gibt.
  • Wenn Daten, die gleich 8 kBytes sind, empfangen worden sind und folglich der Empfangspuffer mit den Daten gefüllt worden ist, läuft der Empfangspuffer über und das Überlaufermittlungssignal wmatch wird gleich 1 (wmatch = 1). Folglich hält die Ablaufsteuerung 9 (Fig. 3) zeitweise die Datenübertragung an, um zu verhindern, daß Daten verloren gehen.
  • Die Leseadresse RDP des Lesezeigers 12 wird durch den Inhalt RDPP des Registers 12' aktualisiert. Wenn ein leerer Bereich im Empfangspuffer verfügbar wird, wird die Datenempfangsoperation neu gestartet.
  • Wenn Daten, die zuvor als überflüssig erkannt werden, in den empfangenen Daten enthalten sind, wird der Lesezeiger 12 neu geschrieben, so daß die Leseoperation einige Daten überspringt. Wenn zum Beispiel die Leseadresse RDP und die Schreibadresse WTP wie folgt sind:
  • sys RDP = 0X' 5A010
  • sys WTP = 0X' 5A810
  • wird das folgende in den Lesezeiger RDP geschrieben, um Daten zu überspringen, die gleich 16 Blocks sind:
  • sys RDP ← 0X' 5A110.
  • Die Schreiboperation auf dem Register wird über den Bus durchgeführt, der auch für die DMA-Übertragungsoperation verwendet wird. Folglich führt der DMA-Kontroller 50 die nächste Operation nicht durch, bis die obige Sprungoperation vollendet ist.
  • Wie in Fig. 10 gezeigt, ist es möglich, wenn die empfangenen Daten, die angefordert werden, um gelesen zu werden, wie folgt in zwei Bereiche aufgeteilt sind:
  • 0X' 5BF00 - 0X' 5BFFF
  • 0X' 5A000 - 0X' 5A0FF
  • kontinuierlich auf diese Bereiche durch Verdopplung des Pufferbereichs zuzugreifen, wie in Fig. 10 durch eine unterbrochene Linie gezeigt.
  • Es gibt eine Möglichkeit, daß die Daten, die in den Hauptspeicher geschrieben werden, nicht mit den Daten übereinstimmen, die in einen Cache-Speicher geschrieben werden. Durch Annullieren der Daten im Cache-Speicher durch Verwendung der Adresse im Register (RDPP) 12' wird es möglich, die Übereinstimmung zwischen Daten im Hauptspeicher und Daten im Cache- Speicher sicherzustellen.
  • Es wird nun ein Prozeß des Annullierens von Daten im Cache- Speicher unter Bezugnahme auf die Fig. 11A, 11B und 12 beschrieben. Fig. 11A zeigt eine herkömmliche Cache-Datenannullierungsschaltung, und Fig. 11B zeigt eine Cache-Datenannullierungsschaltung gemäß der Ausführungsform der vorliegenden Erfindung. Die in Fig. 11A gezeigte Schaltung weist einen Etikettenspeicher (TAG) 27, einen Attributspeicher (ATTR) 28, einen Cache-Datenspeicher 29, einen Komparator 30, und ein UND-Glied 31 auf. Die Adresse ADD wird in eine höchstwertige Adresse und eine niedrigstwertige Adresse aufgespalten. Auf den Etikettenspeicher 27, den Attributspeicher 28 und den Cache-Datenspeicher 29 wird gleichzeitig durch die niedrigstwertige Adresse zugegriffen. Wenn der Inhalt des Etikettenspeichers 27 derselbe wie die höchstwertige Adresse ist und der Inhalt des Attributspeichers 28 "gültig" anzeigt, wird ein Treffersignal durch das UND-Glied ausgegeben und Cache-Daten werden verwendet. Wenn der Inhalt des Etikettenspeichers 27 nicht mit der höchstwertigen Adresse übereinstimmt oder der Inhalt des Attributspeichers 28 "ungültig" anzeigt, werden die Daten aus dem Hauptspeicher ausgelesen. Die Daten werden im Cache-Speicher gehalten, bis Daten, die dasselbe Etikett aufweisen, wie jenes der Daten im Cache-Speicher.
  • Wenn Daten in den Hauptspeicher bezüglich der Adresse von im Cache-Speicher gehaltenen Daten durch einen I/O-Prozeß des Datenempfangens und -Schreibens geschrieben werden, werden Daten im Hauptspeicher verschieden von Daten im Cache-Speicher.
  • Wie in Fig. 12(a) gezeigt, werden Daten C in einem Bereich eines Hauptspeichers 35 gespeichert, der durch eine Adresse B angegeben wird. Wenn die Daten C aus dem Hauptspeicher 35 ausgelesen werden, werden die Daten C in einem Cache-Speicher 34 gehalten. Danach stimmen, wenn Daten D in den Bereich des Hauptspeichers 35 geschrieben werden, der durch Adresse B angegeben wird, wie in Fig. 12(b) gezeigt, die Daten im Cache-Speicher 34 nicht mit den Daten im Hauptspeicher 35 übereine. Wenn auf den Cache-Speicher 34 zugegriffen wird, um die Daten D daraus zu lesen, werden die Daten C daraus ausgelesen, da die Daten C im Cache-Speicher 34, die durch die Adresse B angegeben werden, noch gültig sind. Das heißt, die Daten D können nicht aus dem Cache-Speicher 34 ausgelesen werden.
  • Folglich ist es notwendig, Daten im Cache-Speicher 34 zu annullieren, die durch die aktualisierte Adresse des Hauptspeichers 35 angegeben werden. Gemäß der Ausführungsform der vorliegenden Erfindung wird, wenn die Datenleseoperation ausgeführt wird, nachdem empfangene Daten in den Empfangspuffer im Hauptspeicher geschrieben werden, die Adresse RDPP im Register 12' gelesen und dann an den Bus ausgegeben. Die Daten im Cache- Speicher 34 werden durch Verwendung der obigen Adresse annulliert (siehe Fig. 12(b)).
  • Fig. 11B zeigt die Cache-Datenannullierungsschaltung, die die obige Prozedur realisiert. Die in Fig. 11B gezeigte Schaltung weist Multiplexer 32 und 33 auf. Der Multiplexer 32 erhält einen höchstwertigen Teil der Adresse RDPP, die aus dem Register 12' ausgelesen und an den gemeinsamen Bus durch den DMA-Kontroller 50 ausgegeben wird. Der Multiplexer 33 erhält einen niedrigstwertigen Teil der obigen Adresse RDPP. Ferner erhalten die Multiplexer 32 und 33 die höchstwertigen bzw. niedrigstwertigen Teile der Adresse ADD. Wenn die Adresse RDPP aus dem Register 12' ausgelesen wird, werden die höchstwertigen bzw. niedrigstwertige Teile der Adresse RDPP durch die Multiplexer 32 und 33 anstelle der höchstwertigen und niedrigstwertigen Teile der Adresse ADD ausgewählt. Dann wird auf den Etikettenspeicher 27 und den Attributspeicher 29 durch die ausgewählte Adresse zugegriffen. Wenn das Treffersignal ausgegeben wird, wird das Ungültigsignal in den Attributspeicher 28 geschrieben, so daß Daten im Cache-Speicher 34 annulliert werden können.
  • Es wird nun eine Beschreibung, unter Bezugnahme auf die Fig. 13A und 13B, einer Schaltung gegeben, die fähig ist, kontinuierlich auf Daten zuzugreifen, die in einen oberen und unteren Teil des Empfangspuffers aufgeteilt sind. Wie in Fig. 13A gezeigt, wird eine Abbildung ausgeführt, so daß Adressen, die in einem realen Speicher 37 voneinander beabstandet sind, zu aufeinanderfolgenden Adressen werden. Ein Adreßbereich (Adreßabbildung) der doppelten Größe des realen Pufferbereichs ist vorgesehen, um die Trennung von Adressen zu vermeiden, die die empfangenen Daten angeben.
  • Zum Beispiel werden Adressen 5C000-5E000 einer Adreßab bildung 36 in Adressen 5A000-5C000 des realen Speichers 37 eingesetzt. Durch Zugreifen auf Adressen 5BF00-5C100, wird es möglich, kontinuierlich Daten auszulesen, die im realen Speicher 37 aufgeteilt sind. Fig. 13B zeigt eine Adreßumsetzungsschaltung, die die obige Adreßumsetzung ausführt. Ein Adreßbit AD[14 : 13] wird in '01' zwischen 5C000-5E000 umgesetzt. Ein Decoder (DEC) 38 ermittelt einen Abschnitt, in dem die Adreßumsetzung durchgeführt werden sollte, und ein Multiplexer (MPX) 39 setzt den Bitwert um, wenn der Abschnitt ermittelt wird.
  • Es wird nun eine Beschreibung, unter Bezugnahme auf Fig. 14, einer Struktur gegeben, in der mehrere Empfangspuffer vorgesehen sind, wobei diese Puffer selektiv auf der Grundlage des Typs von empfangenen Daten und/oder des Typs der Zugriffsquelle verwendet wird. Wie in Fig. 14(a) gezeigt, sind mehrere Sätze der Register RDP, WTP, LAR, PAR, BCMD und BRST vorgesehen und werden selektiv auf der Grundlage des Nachrichtentyps und/oder einer Aufgaben-ID verwendet.
  • Der Nachrichtentyp kann aus einem Kopf der empfangenen Daten gewonnen werden, und die Aufgaben-ID kann in einem Register erhalten werden, das die Aufgaben-ID hält. Fig. 14(b) ist eine detaillierte Ansicht der Struktur, die mehrere Empfangspuffer aufweist. Wie in dieser Figur gezeigt, sind mehrere Registergruppen 40-42, die mit jeweiligen Typen von zum Beispiel Nachrichten in Beziehung stehen, verkettet und ferner mit einem Decoder (DEC) 44 verbunden. Ein Register 43, das mit dem Decoder 44 verbunden ist, hält Daten, die einen gewünschten Typ von Nachricht zeigen. Die obigen Daten werden in das Register 43 durch zum Beispiel die CPU 3 (Fig. 1) geschrieben. Der Decoder 44 decodiert die Daten im Register 43 und wählt eine der Registergruppen 40-42 aus. Jede der Registergruppen 40-42 ist mehreren Adressen zugeordnet, um die Daten in den Registern RDP, WTP, LAR, PAR, BCMD und BRST selektiv auszulesen. Mit der obigen Struktur wird es möglich, durch eine einzige Schnittstelle effizient auf nur eine spezifische Nachricht zuzugreifen.
  • Die vorliegende Erfindung weist die folgenden Vorteile auf. Erstens wird es möglich, eine Reihe von Prozessen wegzulassen, die durch die CPU ausgeführt werden, nachdem Daten am Prozessor ankommen. Folglich wird es möglich, die Einstellzeit, nachdem Daten empfangen werden, zu reduzieren und die Belastung der CPU zu reduzieren. Als nächstes wird der Zeiger, der mit dem Empfangspuffer verbunden ist, automatisch durch Hardware aktualisiert. Folglich wird es möglich, die Probleme zu beseitigen, die von einer Verwendung von Software herrühren. Zusätzlich können, da die Datenleseoperation übersprungen werden kann, Daten effizient bei einer hohen Geschwindigkeit gelesen werden. Auch können Informationen, die zeigen, daß es keine Daten im Empfangspuffer gibt, durch Bezugnehmen auf die Informationen in den Registern zum Verwalten des Empfangspuffers erhalten werden. Folglich können Daten effizient aus dem Empfangspuffer ausgelesen werden. Die Seitenadresse wird in der Form einer logischen Adresse und realen Adresse verwaltet. Folglich wird es möglich, schnell die Speicheradresse zu erzeugen, selbst wenn der Zugriffsmodus umgeschaltet wird. Durch selektives Verwenden von mehreren Empfangspuffern auf der Grundlage des Nachrichtentyps oder der Aufgaben-ID wird es möglich, effizient auf spezifische Daten zuzugreifen. Es wird möglich, automatisch Daten über die Adresse des Cache-Speichers durch Verwendung der Adresse im Register zum Verwalten des Empfangspuffers zu annullieren. Folglich stimmt der Inhalt des Cache-Speichers immer mit Daten im Hauptspeicher überein. Durch Bereitstellen eines Adreßbereichs des Doppelten des Empfangspuffers, wird es möglich, kontinuierlich auf aufgeteilte Daten zuzugreifen und folglich die Zugriffsoperation effizient durchzuführen.
  • Die vorliegende Erfindung ist nicht auf die spezifisch offenbarten Ausführungsformen begrenzt, und Variationen und Modifikationen können vorgenommen werden, ohne den Rahmen der vorliegenden Erfindung zu verlassen, wie sie beansprucht wird.

Claims (9)

1. Empfangspuffersteuersystem für ein System mit:
einem Speicher (4), der einen Pufferbereich aufweist,
der als ein Empfangspuffer (8) dient, wobei Daten über einen Bus an den Speicher angelegt werden,
Schreibzeiger-Einrichtungen (11), die mit dem Speicher gekoppelt sind, zum Halten einer Schreibadresse des Pufferbereichs; und
Lesezeiger-Einrichtungen (12), die an den Speicher gekoppelt sind, zum Halten einer Leseadresse des Pufferbereichs,
Überlauf/Unterschreitungs-Ermittlungseinrichtungen (17), die an die Schreibzeiger-Einrichtungen und die Lesezeiger-Einrichtungen gekoppelt sind, zur Ermittlung einer Situation, in der ein Überlauf oder eine Unterschreitung im Pufferbereich auftreten wird, wobei diese Ermittlung als Reaktion auf die Schreibadresse, die durch die Schreibzeiger-Einrichtungen gehalten wird, und die Leseadresse, die durch die Lesezeiger-Einrichtungen gehalten wird, stattfindet; und
Steuer-Einrichtungen (9), die an den Speicher und die Überlauf/Unterschreitungs-Ermittlungseinrichtungen gekoppelt sind, um Schreiben oder Lesen der Daten in oder aus dem Pufferbereich zu sperren, wenn die Überlauf- oder Unterschreitungs-Ermittlungseinrichtungen die Situation ermitteln, in der ein Überlauf bzw. eine Unterschreitung auftreten werden,
dadurch gekennzeichnet, daß es Aktualisierungseinrichtungen (12') zum Halten einer fortgeschrittenen Leseadresse aufweist, die um einen vorherbestimmten Adreßwert der Le seadresse vorausgeht, die in den Lesezeiger-Einrichtungen gehalten wird, und zum Aktualisieren der Leseadresse, die in den Lesezeiger-Einrichtungen gehalten wird, durch die fortgeschrittene Leseadresse, worin Daten über den Bus aus dem Speicher gelesen werden, und
die Überlauf/Unterschreitungs-Ermittlungseinrichtungen so angeordnet sind, daß sie einen Überlauf und eine Unterschreitung durch Vergleichen der Schreibadresse mit jeweils der fortgeschrittenen Leseadresse und der Leseadresse ermitteln, und ein Signal ausgeben, wenn entweder die Leseadresse oder die fortgeschrittene Leseadresse dieselbe wie die Schreibadresse sind.
2. Empfangspuffersteuersystem nach Anspruch 1, dadurch gekennzeichnet, daß es ferner Einrichtungen (3) zum Schreiben einer externen Leseadresse in die Lesezeiger- Einrichtungen aufweist, wobei die externen Leseadresse anzeigt, daß Daten im Pufferbereich aufgeteilt sind, die so angeordnet sind, daß aufgeteilte Daten kontinuierlich aus dem Pufferbereich ausgelesen werden.
3. Empfangspuffersteuersystem nach Anspruch 1, dadurch gekennzeichnet, daß es ferner Einrichtungen (3) zum Feststellen auf der Grundlage der fortgeschrittenen Leseadresse aufweist, ob es Daten im Pufferbereich gibt oder nicht.
4. Empfangspuffersteuersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß:
das Empfangspuffersteuersystem ferner Register- Einrichtungen (15, 16) zum Halten einer ersten Basisadresse eines logischen Adreßtyps und einer zweiten Basisadresse eines realen Adreßtyps aufweist;
und daß das Empfangspuffersteuersystem ferner so angeordnet ist, daß die ersten und zweiten Basisadressen zum Aktualisieren der Schreibadresse, die durch die Schreibzeiger-Einrichtungen gehalten wird, und der Leseadresse, die durch die Lesezeiger-Einrichtungen gehalten wird, verwendet werden, wobei entweder die erste Basisadresse für das Aktualisieren verwendet wird, oder die zweite Basisadresse für das Aktualisieren auf der Grundlage des Typs von Daten, die in den Pufferbereich eingegeben werden, verwendet wird.
5. Empfangspuffersteuersystem nach Anspruch 1, dadurch gekennzeichnet, daß:
der Speicher mehrere Pufferbereiche aufweist; und
das Empfangspuffersteuersystem Einrichtungen zur Ermittlung des Typs von Daten und zum Auswählen eines der mehreren Pufferbereiche auf der Grundlage des Typs von Daten aufweist.
6. Empfangspuffersteuersystem nach Anspruch 5, dadurch gekennzeichnet, daß:
die Schreibzeiger-Einrichtungen mehrere Schreibzeiger (WTP0, WTP1, WTP2) aufweisen, die jeweils für die Pufferbereiche vorgesehen sind;
die Lesezeiger-Einrichtungen mehrere Lesezeiger (RDP0, RDP1, RDP2) aufweisen, die jeweils für die Pufferbereiche vorgesehen sind;
die Überlauf/Unterschreitungs-Ermittlungseinrichtungen so angeordnet sind, daß sie für jeden der Pufferbereiche die Situation ermitteln; und
die Steuer-Einrichtungen so angeordnet sind, daß sie für jeden der Pufferbereiche Schreiben oder Lesen der Daten in oder aus dem Pufferbereich zu sperren, wenn die Überlauf/Unterschreitungs-Ermittlungseinrichtungen die Situation ermitteln.
7. Empfangspuffersteuersystem nach Anspruch 6, dadurch gekennzeichnet, daß es ferner Einrichtungen (43, 44) zum Auswählen eines der Schreibzeiger und eines der Lesezeiger auf der Grundlage des Typs von Daten aufweist.
8. Empfangspuffersteuersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß es ferner aufweist:
einen Cache-Speicher (34) zum Einschreiben von Daten, welche Daten identisch zu Daten sind, die in den Pufferbereich geschrieben werden; und
Einrichtungen (27-33), die wirksam an die Aktualisierungseinrichtungen gekoppelt sind, zum Annullieren der Daten im Cache-Speicher, wenn die fortgeschrittene Leseadresse ausgegeben wird.
9. Empfangspuffersteuersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Aktualisierungseinrichtungen ein Register (12') zum Speichern der fortgeschrittenen Leseadresse aufweisen.
DE69227061T 1991-04-05 1992-04-01 Empfangspuffersteuerungssystem Expired - Lifetime DE69227061T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7314691A JP2703417B2 (ja) 1991-04-05 1991-04-05 受信バッファ

Publications (2)

Publication Number Publication Date
DE69227061D1 DE69227061D1 (de) 1998-10-29
DE69227061T2 true DE69227061T2 (de) 1999-02-11

Family

ID=13509769

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69227061T Expired - Lifetime DE69227061T2 (de) 1991-04-05 1992-04-01 Empfangspuffersteuerungssystem

Country Status (5)

Country Link
US (1) US5765187A (de)
EP (1) EP0507571B1 (de)
JP (1) JP2703417B2 (de)
AU (1) AU637543B2 (de)
DE (1) DE69227061T2 (de)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617088A (en) * 1994-01-26 1997-04-01 Sony Corporation Sampling frequency converting device and memory address control device
EP0735480B1 (de) * 1995-03-31 2003-06-04 Sun Microsystems, Inc. Cache-kohärentes Computersystem, das Entwertungs- und Rückschreiboperationen minimiert
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5710891A (en) * 1995-03-31 1998-01-20 Sun Microsystems, Inc. Pipelined distributed bus arbitration system
EP0735481B1 (de) * 1995-03-31 2003-05-14 Sun Microsystems, Inc. Mechanismus auf Systemebene zum Entwerten von Daten, die im externen Cache eines Prozessors in einem Computersystem gespeichert sind
US5634068A (en) * 1995-03-31 1997-05-27 Sun Microsystems, Inc. Packet switched cache coherent multiprocessor system
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5689713A (en) * 1995-03-31 1997-11-18 Sun Microsystems, Inc. Method and apparatus for interrupt communication in a packet-switched computer system
US5821910A (en) * 1995-05-26 1998-10-13 National Semiconductor Corporation Clock generation circuit for a display controller having a fine tuneable frame rate
US5900886A (en) * 1995-05-26 1999-05-04 National Semiconductor Corporation Display controller capable of accessing an external memory for gray scale modulation data
WO1996037873A1 (en) * 1995-05-26 1996-11-28 National Semiconductor Corporation Display controller capable of accessing graphics data from a shared system memory
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
JPH1078934A (ja) * 1996-07-01 1998-03-24 Sun Microsyst Inc パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム
DE19650993A1 (de) * 1996-11-26 1998-05-28 Francotyp Postalia Gmbh Anordnung und Verfahren zur Verbesserung der Datensicherheit mittels Ringpuffer
JPH10207766A (ja) * 1997-01-16 1998-08-07 Nec Ic Microcomput Syst Ltd 画像生成装置
US6101329A (en) * 1997-02-18 2000-08-08 Lsi Logic Corporation System for comparing counter blocks and flag registers to determine whether FIFO buffer can send or receive data
US5923900A (en) * 1997-03-10 1999-07-13 International Business Machines Corporation Circular buffer with n sequential real and virtual entry positions for selectively inhibiting n adjacent entry positions including the virtual entry positions
TW432362B (en) * 1997-04-02 2001-05-01 Matsushita Electric Ind Co Ltd High speed data input-output device which fetches data into internal memory and performs operations on the data before outputting the data
US5978868A (en) * 1997-08-28 1999-11-02 Cypress Semiconductor Corp. System for generating buffer status flags by comparing read and write pointers and determining direction of progression of read pointer with respect to write pointer
US6092128A (en) * 1997-08-28 2000-07-18 Cypress Semiconductor Corp. Ethernet repeater that couples an input data stream to multiple output data streams of differing rates and provides access to a shared bus by a number of inputs and outputs
US6148386A (en) * 1998-03-19 2000-11-14 Lucent Technologies Inc Address generator circuity for a circular buffer
EP0965980A1 (de) * 1998-06-19 1999-12-22 Deutsche Thomson-Brandt Gmbh Vorichtung zur Verstärkung und Konvertierung von Stromsignalen in Spannungssignale
JP3163064B2 (ja) * 1998-07-22 2001-05-08 三洋電機株式会社 ディスク記録装置
JP3284464B2 (ja) * 1998-09-29 2002-05-20 セイコーエプソン株式会社 ページプリンタ及びページプリントシステム
US6363438B1 (en) * 1999-02-03 2002-03-26 Sun Microsystems, Inc. Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers
GB2350533B (en) 1999-05-28 2001-07-04 Mitel Corp Method to control data reception buffers for packetized voice channels
US6408409B1 (en) * 1999-11-15 2002-06-18 Sun Microsystems, Inc. Method and apparatus for ring buffer flow error detection
JP2001216647A (ja) 1999-11-22 2001-08-10 Sanyo Electric Co Ltd 制御装置
JP2001216646A (ja) 1999-11-22 2001-08-10 Sanyo Electric Co Ltd データ記録装置
JP2001216644A (ja) 1999-11-22 2001-08-10 Sanyo Electric Co Ltd データ記録装置
JP2001216645A (ja) 1999-11-22 2001-08-10 Sanyo Electric Co Ltd 制御装置
JP3545330B2 (ja) 1999-12-27 2004-07-21 三洋電機株式会社 記録制御装置
JP3754288B2 (ja) 1999-12-27 2006-03-08 三洋電機株式会社 制御装置
JP2001250329A (ja) 1999-12-27 2001-09-14 Sanyo Electric Co Ltd データ記録装置
US6480912B1 (en) 2000-07-21 2002-11-12 Stmicroelectronics, Inc. Method and apparatus for determining the number of empty memory locations in a FIFO memory device
US6952739B2 (en) * 2000-08-03 2005-10-04 International Business Machines Corporation Method and device for parameter independent buffer underrun prevention
GB2366935B (en) * 2000-09-15 2004-01-07 Mitel Corp Method of checking for and recovering from underruns and overrun slips when writing to circular buffers in dynamic bandwidth circuit emulation services
FR2817364A1 (fr) * 2000-11-29 2002-05-31 Thomson Multimedia Sa Procede de detection de l'effacement d'une donnee dans une memoire geree circulairement, et dispositif pour la mise en oeuvre du procede
JP2002230772A (ja) 2001-01-31 2002-08-16 Sanyo Electric Co Ltd データ記録装置及びデータ記録装制御装置
JP3801088B2 (ja) * 2002-04-19 2006-07-26 株式会社デンソー 車両用通信装置
US7042813B2 (en) * 2002-05-13 2006-05-09 Texas Instruments Incorporated Shock protection for compressed audio on a CD player
US7697946B2 (en) * 2002-06-04 2010-04-13 Forster Ian J Reflective communication using radio-frequency devices
AU2002328419A1 (en) * 2002-07-01 2004-01-19 Ipsquare Semiconductor circuit device, packet processing method, management system, management method, and packet processing method
EP1618466B1 (de) * 2003-04-16 2010-10-20 Nxp B.V. Datenverarbeitung wobei gleichzeitig ausgeführte prozesse durch einen fifo-puffer kommunizieren
US20050262314A1 (en) * 2004-05-21 2005-11-24 Oh Yong S System and method for circular buffer
WO2005116830A1 (en) * 2004-05-27 2005-12-08 Koninklijke Philips Electronics N.V. Signal processing apparatus
US20060075184A1 (en) * 2004-10-01 2006-04-06 Jen-Ying Chen Synchronous\asynchronous memory device with single port memory unit
TWI237806B (en) * 2004-11-03 2005-08-11 Sunplus Technology Co Ltd Audio decoding system with ring buffer and method thereof
US7350040B2 (en) * 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US8089978B2 (en) * 2005-11-09 2012-01-03 Freescale Semiconductor, Inc. Method for managing under-run and a device having under-run management capabilities
DE602006013197D1 (de) * 2006-01-04 2010-05-06 Freescale Semiconductor Inc Verfahren zur verwaltung von unterläufen und einrichtung mit unterlauf-verwaltungsfähigkeiten
US20080148399A1 (en) * 2006-10-18 2008-06-19 Microsoft Corporation Protection against stack buffer overrun exploitation
KR101344475B1 (ko) * 2007-01-05 2013-12-24 삼성전자주식회사 메모리 관리방법 및 장치
JP2008293484A (ja) * 2007-04-27 2008-12-04 Panasonic Corp バッファメモリ共有装置
JP4854598B2 (ja) * 2007-05-31 2012-01-18 三菱電機株式会社 データ転送制御装置
EP2045973A1 (de) * 2007-10-02 2009-04-08 Deutsche Thomson OHG Speicherpuffersystem und Verfahren zum Betreiben eines Speicherpuffersystems für schnellen Datenaustausch
CN101526912A (zh) * 2008-03-04 2009-09-09 英业达股份有限公司 内存干扰测试的***与方法
US8291136B2 (en) * 2009-12-02 2012-10-16 International Business Machines Corporation Ring buffer
GB2482303A (en) * 2010-07-28 2012-02-01 Gnodal Ltd Modifying read patterns for a FIFO between clock domains
JP5728948B2 (ja) * 2011-01-06 2015-06-03 セイコーエプソン株式会社 記録システム、記録システムの制御方法、記録制御装置、および、プログラム
KR101593865B1 (ko) 2012-02-29 2016-02-12 미쓰비시덴키 가부시키가이샤 데이터 전송 장치, 데이터 전송 방법 및 데이터 전송 프로그램
JP5598493B2 (ja) 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
US20140068139A1 (en) * 2012-08-29 2014-03-06 Advanced Micro Devices, Inc. Data transfer system and method
US10516740B2 (en) * 2014-05-30 2019-12-24 Apple Inc. Dynamic transport switching in inter-device communication
JP6334376B2 (ja) * 2014-12-02 2018-05-30 株式会社東芝 通信装置及びディスクリプタオーバーフロー検出方法
CN110557341A (zh) * 2018-05-31 2019-12-10 北京京东尚科信息技术有限公司 数据限流的方法和装置
CN111372038B (zh) * 2018-12-26 2021-06-18 厦门星宸科技有限公司 多串流影像处理装置及方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
DE2714106C3 (de) * 1977-03-30 1982-01-14 Telefonbau Und Normalzeit Gmbh, 6000 Frankfurt Verfahren zum Zwischenspeichern von Informationen in einem FIFO-Speicher
US4175287A (en) * 1978-01-23 1979-11-20 Rockwell International Corporation Elastic store slip control circuit apparatus and method for preventing overlapping sequential read and write operations
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
JPS59112327A (ja) * 1982-12-20 1984-06-28 Hitachi Ltd リングバツフア制御方式
JPS60178570A (ja) * 1984-02-24 1985-09-12 Nec Corp デ−タ受信器
US4648033A (en) * 1984-09-07 1987-03-03 International Business Machines Corporation Look-aside buffer LRU marker controller
US4692894A (en) * 1984-12-18 1987-09-08 Advanced Micro Devices, Inc. Overflow/Underflow detection for elastic buffer
US4704697A (en) * 1985-06-17 1987-11-03 Counterpoint Computers Multiple station video memory
JPS62184561A (ja) * 1986-02-07 1987-08-12 Matsushita Electric Ind Co Ltd 入出力バツフア制御装置
JPS62184560A (ja) * 1986-02-07 1987-08-12 Matsushita Electric Ind Co Ltd 入出力バツフア制御装置
US5133062A (en) * 1986-03-06 1992-07-21 Advanced Micro Devices, Inc. RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
US4949301A (en) * 1986-03-06 1990-08-14 Advanced Micro Devices, Inc. Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
JPS62208153A (ja) * 1986-03-08 1987-09-12 Nec Corp 入出力バツフア装置
GB2190220A (en) * 1986-05-09 1987-11-11 Int Computers Ltd Multi-level storage system
JPS63291134A (ja) * 1987-05-22 1988-11-29 Toshiba Corp 論理集積回路
JPH01143080A (ja) * 1987-11-30 1989-06-05 Sony Corp 記録装置
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US4945548A (en) * 1988-04-28 1990-07-31 Digital Equipment Corporation Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
JPH0650486B2 (ja) * 1988-05-24 1994-06-29 日本電気株式会社 データチェイン処理方式
JPH0223439A (ja) * 1988-07-13 1990-01-25 Mitsubishi Electric Corp データ処理装置
JP2556558B2 (ja) * 1988-09-09 1996-11-20 沖電気工業株式会社 ファーストイン・ファーストアウトメモリ
JP2523814B2 (ja) * 1988-09-20 1996-08-14 富士通株式会社 ム―ブアウト・システム
EP0369920A3 (de) * 1988-11-18 1992-01-15 Rolm Company Verschachtelung von Ringpuffern
US4995041A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
JPH04506425A (ja) * 1989-06-30 1992-11-05 ポケット コンピューター コーポレイション 計算機システムにおける情報管理方法及び装置
JPH0337870A (ja) * 1989-07-05 1991-02-19 Matsushita Electric Ind Co Ltd 書き込み制御回路
GB2247546B (en) * 1990-08-31 1995-03-01 Sun Microsystems Inc Method and apparatus for predictive caching

Also Published As

Publication number Publication date
JPH04308956A (ja) 1992-10-30
EP0507571A2 (de) 1992-10-07
AU1396792A (en) 1992-10-15
DE69227061D1 (de) 1998-10-29
US5765187A (en) 1998-06-09
EP0507571B1 (de) 1998-09-23
AU637543B2 (en) 1993-05-27
EP0507571A3 (en) 1993-10-20
JP2703417B2 (ja) 1998-01-26

Similar Documents

Publication Publication Date Title
DE69227061T2 (de) Empfangspuffersteuerungssystem
DE2755897C2 (de)
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE60211076T2 (de) Datenübertragung zwischen virtuellen Adressen
DE2240433C3 (de) Hierarchische Datenspeicheranordnung für mehrere über Pufferspeicher angeschlossene Einheiten und ein Verfahren zu deren Betrieb
DE2241257C3 (de) Datenverarbeitende Anlage
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE69331311T2 (de) Datenkommunikationssystem und Verfahren
DE3687724T2 (de) Digitalprozessorsteuerung.
DE69032862T2 (de) Intelligenter Ein-/Ausgabeprozessor und Datenverarbeitungssystem
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE69332059T2 (de) Datenübertragung zwischen Prozessoren in Mehrprozessorsystemen
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE2523372C3 (de) Eingabe-/Ausgabe-Anschlußsteuereinrichtung
DE2854485A1 (de) Datenverarbeitungssystem mit speicherhierarchie
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE4335475A1 (de) Datenverarbeitungseinrichtung mit Cache-Speicher
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
DE2630323A1 (de) Datenspeichereinrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE