DE69227061T2 - Empfangspuffersteuerungssystem - Google Patents
EmpfangspuffersteuerungssystemInfo
- 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
Links
- 239000000872 buffer Substances 0.000 title claims description 135
- 230000015654 memory Effects 0.000 claims description 74
- 238000001514 detection method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims 1
- 101150072471 rdp1 gene Proteins 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 238000012546 transfer Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 101100425949 Mus musculus Tnfrsf13c gene Proteins 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 2
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/10—Methods 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/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
- G06F5/14—Means 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9031—Wraparound memory, e.g. overrun or underrun detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements 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
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1991
- 1991-04-05 JP JP7314691A patent/JP2703417B2/ja not_active Expired - Lifetime
-
1992
- 1992-04-01 DE DE69227061T patent/DE69227061T2/de not_active Expired - Lifetime
- 1992-04-01 AU AU13967/92A patent/AU637543B2/en not_active Ceased
- 1992-04-01 EP EP19920302872 patent/EP0507571B1/de not_active Expired - Lifetime
-
1997
- 1997-04-22 US US08/844,852 patent/US5765187A/en not_active Expired - Lifetime
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 |