DE69118392T2 - Adressengenerator für einen ringpuffer - Google Patents
Adressengenerator für einen ringpufferInfo
- Publication number
- DE69118392T2 DE69118392T2 DE69118392T DE69118392T DE69118392T2 DE 69118392 T2 DE69118392 T2 DE 69118392T2 DE 69118392 T DE69118392 T DE 69118392T DE 69118392 T DE69118392 T DE 69118392T DE 69118392 T2 DE69118392 T2 DE 69118392T2
- Authority
- DE
- Germany
- Prior art keywords
- output
- input
- register
- adder
- address
- 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 claims description 109
- 230000006870 function Effects 0.000 claims description 4
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008569 process Effects 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/10—Indexing scheme relating to groups G06F5/10 - G06F5/14
- G06F2205/106—Details of pointers, i.e. structure of the address generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Description
- Die Erfindung betrifft das Gebiet digitaler Puffer und insbesondere die Generierung von Adressen für den Zugriff auf digitale Puffer. Vor allem betrifft die Erfindung die Generierung von Adressen für den Zugriff auf Ringpuffer.
- Digitale Informationsprozessoren verwenden häufig digitale Pufferspeicher, um Informationen, die an ein anderes Gerät wie z.B. ein Ein-/Ausgabeberät oder einen Prozessor übergeben werden, vorübergehend zu speichern. Ein Puffer kann aus speziellen miteinander verdrahteten Hardware-Registern aufgebaut sein, oder es kann sich dabei einfach um einen bestimmten Abschnitt eines größeren Speichers handeln. Solche digitalen Informationspuffer können vielerlei Formen annehmen. Eine solche Form ist als Ringpuffer bekannt. Bei Ringpuffern werden die Adressen für den Zugriff auf Speicherzellen der Puffer typischerweise dadurch generiert, daß der Inhalt eines Zeigerregisters, das sich außerhalb des Pufferbereichs befindet, modifiert wird, der auf eine Adresse im Puffer zeigt. Wird diese Adresse auf dem Adreßbus gebraucht, so wird sie von der Zeigeradresse ausgegeben, und der Zeiger wird um einen vorgegebenen Wert inkrementiert (oder dekrementiert), um für den nächsten Befehlszyklus bereit zu sein, der auf den Ringpuffer zugreift. Bei Ringpuffern müssen Einrichtungen bereitgestellt werden, um ein zyklisches "Zurückkehren" der Adresse zu veranlassen, wenn das Inkrement (oder Dekrement) bewirkt, daß die Adresse im Zeigerregister außerhalb der Grenzen des Puffers zu liegen kommt. Mit anderen Worten, es sind Einrichtungen bereitzustellen, die den Adreßgenerator für den Puffer veranlassen, Modulo-Adressen zu generieren, wobei das Modul der Länge des Puffers entspricht.
- Für Ringpuffer werden im allgemeinen Software-Techniken zum Generieren der Modulo-Adresse eingesetzt. Diese softwaremäßigen Adreßabbildungstechniken erfordern jedoch mehrere Befehlszyklen zur Durchführung der notwendigen Adressenvergleiche, arithmetischen Operationen und des Austauschs des Inhalts des Zeigerregisters. Eine solche softwaremäßige Adreßabbildung ist für bestimmte Anwendungstypen nicht schnell genug. Anwendungen wie digitale Filter, schnelle Fourier-Transformationen, Matrix-Manipulationen und andere allgemeine digitale Signalverarbeitungsroutinen erfordern eine sehr schnelle Generierung von Speicheradressen. Deshalb kann die softwaremäßige Modulo-Adreßgenerierung die Geschwindigkeit schneller Signalverarbeitungsvorrichtungen erheblich verringern. Folglich sind hardwaremäßig implementierte Adressierungsmechanismen manchmal wünschenswert.
- Ein solches hardwaremäßig implementiertes System wird in der US-Patentschrift Nr. 4,800,524 beschrieben. Die in der US-Patentschrift Nr. 4,800,524 beschriebene Vorrichtung umfaßt drei außerhalb des Puffers angeordnete Register, einschl. (1) eines L-Registers, das die Länge des Puffers enthält, (2) eines A-Registers, das die letzte Adresse im Puffer enthält, auf die zugegriffen wurde (hier handelt es sich um das Zeigerregister), und (3) eines M-Registers, das einen Inkrement-(oder Dekrement)-Wert enthält, der zum A- Register zu addieren bzw. von diesem zu subtrahieren ist. Die Vorrichtung umfaßt außerdem zwei getrennte Addier-/Subtrahierglieder, deres erstes eine absolute Pufferadresse generiert, die einfach dem Inhalt des A-Registers, addiert zum Inhalt des M-Registers, entspricht, und deren zweites eine zyklisch zum Anfang zurückkehrende Adresse generiert, indem die Länge des Puffers zur absoluten vom ersten Addierglied generierten Adresse entweder addiert (bei positivem M) oder davon subtrahiert wird (bei negativem M). Eine zusätzliche Logik wählt als Reaktion auf die Übertragsbits vom ersten und zweiten Addiergleid entweder die absolute Adresse oder die zyklisch zum Anfang zurückkehrende Adresse. Zeigen die Übertragsbits an, daß die generierte absolute Adresse außerhalb der Grenzen des Puffers liegt, so wird die zyklisch zum Anfang zurückkehrende Adresse verwendet und für den nächsten Zugriff in das A- Register eingetragen. Andernfalls wird die absolute Adresse gewählt und in das A-Register eingetragen. Die in der Patentschrift 4,800,524 offengelegte Erfindung ist jedoch dahingehend begrenzt, als die unteren K Bits der Basisadresse des Puffers (niedrigste Adresse) Null sein müssen, damit das System zur Prüfung der Übertragsbits funktioniert, wobei K der Anzahl der Bits ist, die erforderlich sind, um die Länge des Puffers darzustellen, und die Länge des Puffers einer Zweierpotenz entsprechen muß. Diese Einschränkungen können bei manchen Anwendungen äußerst hinderlich sein.
- Die PCT-Anmeldung WO-A-79/00035 beschreibt einen anderen Adressierungsmechanismus für hardwaremäßig implementierte Ringpuffer. Dieses Dokument beschreibt eine Vorrichtung zur Begrenzung eines zyklischen Datenpuffers, der ein Adreßregister zur Aufnahme der Adresse des zu verwendenden Datums, ein Grenzregister zur Aufnahme der Endadresse des Ringspuffers und ein Modul-Register zur Aufnahme der Länge des Puffers umfaßt. Ein Komparator vergleicht den Inhalt des Adreßregisters mit dem Inhalt des Grenzregisters, um festzustellen, ob die Adresse die Endadresse überschritten hat. Ist dies der Fall, so setzt der Komparator einen Befehl an ein Subtrahierglied, das abhängig vom Erhalt des abgesetzten Signals die Länge des im Modul-Register gehaltenen Puffers von der Adresse im Adreßregister subtrahiert, um eine Adresse zu generieren, die innerhalb des Pufferraums liegt.
- Entsprechend der vorliegenden Erfindung wird eine Vorrichtung zur Generierung von Zieladressen gemäß Anspruch 1 bereitgestellt.
- Die Vorrichtung oder der Adreßgenerator umfaßt vier Register. Bei einem bevorzugten Ausführungsbeispiel handelt es sich dabei um folgende Register:
- 1) ein Basisregister B, das die niedrigste Adresse im Puffer enthält,
- 2) ein Index-Zeigerregister I, das die nächste Adresse im Puffer enthält, auf die zuzugreifen ist,
- 3) ein Anderungsregister M, das mit dem Inkrement-(oder Dekrement)-Wert geladen wird, und
- 4) ein Längenregister L, das die Länge des Puffers enthält.
- Bei alternativen Ausführungsformen können das Basis- oder Längenregister, jedoch nicht beide, durch ein Endregister E ersetzt werden, das die höchste Adresse im Puffer enthält.
- Wird in dem bevorzugten Ausführungsbeispiel durch einen Befehl auf den Ringpuffer zugegriffen, so wird der Inhalt des Indexregisters auf den Adreßbus gelegt und dann das Indexregister so modifiziert, daß es für den nächsten Zugriff bereit ist. Ist der Änderungswert M positiv, so berechnen die Addier-/Subtrahierglieder den Wert von I + M (die absolute Adresse) sowie von I + M - L (die zyklische Rückkehradresse). Der Ausgang des Addier-/Subtrahiergliedes, das I + M - L berechnet, wird mit dem Ausgang des B-Registers verglichen. Der Ausgang des Addier-/Subtrahiergliedes, das I + M berechnet, und der Ausgang des Addier/Subtrahiergliedes, das I + M - L berechnet, werden ebenfalls als erster und zweiter Eingang an einen Multiplexer gelegt. Der Ausgang des Multiplexers wird mit dem Eingang des I-Registers gekoppelt, so daß einer der beiden Werte als neuer Indexwert gewählt wird. Ist I + M - L größer als oder gleich B, steuert der Komparator den Multiplexer so, daß der Eingang I + M - L als der in das Indexregister zu ladende Wert gewählt wird. Im anderen Fall steuert der Komparator den Multiplexer so, daß er den Eingang I + M wählt.
- Alternative Ausführungsbeispiele sind möglich, bei denen entweder das Längen- oder das Basisregister durch ein Endregister ersetzt wird, das den Endwert (d.h. die höchste Adresse) des Puffers enthält. Dadurch wären geringfügige Modifikationen der Addier-/Subtrahier-Schaltkreise erforderlich. Außerdem kann jedes dieser Ausführungsbeispiele für ein System, in dem der Modifizierfaktor M ein negativer Wert ist oder in dem M positiv oder negativ sein kann, weiter modifiziert werden.
- Nunmehr sei auf die beiliegenden Zeichnungen verwiesen; es zeigen:
- Fig. 1 einen beispielhaften Ringpuffer;
- Fig. 2 ein erstes Ausführungsbeispiel des Adreßgenerators der vorliegenden Erfindung;
- Fig. 3 ein zweites Ausführungsbeispiel des Adreßgenerators der vorliegenden Erfindung;
- Fig. 4 ein drittes Ausführungsbeispiel des Adreßgenerators der vorliegenden Erfindung; und
- Fig. 5 ein viertes Ausführungsbeispiel des Adreßgenerators der vorliegenden Erfindung.
- Fig. 1 zeigt einen typischen Ringpuffer, der Bestandteil eines größeren Speichers bildet. Die Basisadresse des Puffers ist die niedrigste Adresse im Puffer. Im Beispiel von Fig. 1 ist dies Adresse 20, die mit B in Fig. 1 gekennzeichnet ist. Die höchste Adresse im Puffer wird als Endadresse bezeichnet und ist in Fig. 1 Adresse 39, die mit E gekennzeichnet ist. Ein in den Puffer weisender Zeiger umfaßt typischerweise ein Register, das die Adresse der nächsten zu adressierenden Speicherzelle im Puffer enthält. Dieses Register wird im folgenden als Indexregister I bezeichnet. Typischerweise wird der Indexzeiger in einem Ringpuffer nach jedem Zugriff um eine vorgegebene Anzahl von Adressen inkrementiert oder dekrementiert, um für den nächsten Zugriff auf den Ringpuffer vorbereitet zu sein. Die Anzahl von Adreßplätzen, um die der Indexzeiger inkrementiert oder dekrementiert wird, wird im folgenden als Modifikationswert bezeichnet und ist in Fig. 1 als M dargestellt. Es ist üblich, daß der Modifikationswert ein fester Wert ist, der sich nie ändert. Es gibt jedoch Anwendungen, bei denen der Modifikationswert M geändert werden kann.
- Wie oben erwähnt, müssen in einem Ringpuffer Einrichtungen bereitgestellt werden, um den Indexzeiger zyklisch zum Anfang zurückzuführen, wenn der Inkrementwert dazu führen würde, daß der Indexzeiger die Grenzen des Puffers überschreitet. In Fig. 1 ist der Indexzeiger auf z.B. Adresse 35 weisend dargestellt. Beträgt der Inkrementwert M 3, wird der Zeiger so aktualisiert, daß er auf die Adresse Nr. 38 weist. Beim nächsten Inkrement von 3 jedoch würde der Indexzeiger normalerweise auf die Adresse 41 weisen, die außerhalb der Grenzen des Puffers liegt. Demzufolge sind Einrichtungen bereitzustellen, die sicherstellen, daß dann, wenn das Inkrement des Indexzeigers das Überschreiten der Endadresse des Puffers bewirken würde, er zyklisch zur Basis des Puffers zurückgeführt wird. Mit dem nächsten Inkrement des Indexzeigers sollte dieser dann auf die Adresse 21, und nicht auf die Adresse 41, weisen.
- Fig. 2 zeigt einen Adreßgenerator entsprechend der vorliegenden Erfindung zum Generieren von Adressen für einen Ringpuffer, wie der in Fig. 1 dargestellte Puffer. Fig. 2 zeigt ein Ausführungsbeispiel der Erfindung, bei dem das Inkrement M immer positiv oder immer negativ ist, was typisch ist. Es sind jedoch andere Ausführungsformen möglich, bei denen der Modifikationsfaktor positiv oder negativ sein kann, die später hierin beschrieben werden. Der Adreßgenerator des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung umfaßt vier Register, die mit L, M, I und B bezeichnet sind. Ein L-Register 12 wird durch Laden der Länge des Ringpuffers initialisiert. In ein M-Register 19 wird ein Inkrement-(oder Dekrement)-Wert geladen. In ein B-Register 14 wird die Basisadresse des Ringpuffers, d.h. die niedrigste Adresse bei positivem M oder die höchste Adresse bei negativem M geladen. Das I-Register, das im wesentlichen den in den Ringpuffer weisenden Zeiger umfaßt, wird automatisch mit der Basisadresse geladen, wenn diese in das B-Register geladen wird. Wie aus Fig. 2 ersichtlich, stellt ein OR-Gatter 16 sicher, daß dann, wenn ein Schreibfreigabebefehl 17 für das B-Register abgesetzt wird, das I- Register ebenfalls zum Einschreiben freigegeben ist, so daß sowohl das B- als auch das I-Register die auf einen Datenbus 18 gelegte Basisadresse erhalten.
- Bei den meisten Anwendungen für Ringpuffer wird der Pufferzeiger, d.h. das I-Register, jedes Mal um denselben Betrag inkrementiert. Dementsprechend kann ein Wert dauerhaft im M-Register 19 gespeichert werden. Für die Situationen, in denen das Inkrement M variieren kann, ist ein Multiplexer 20 bereitgestellt. Unter der Steuerung eines Prozessors (der Übersichtlichkeit halber nicht dargestellt) kann der Multiplexer 20 als Inkrement entweder das vom Prozessor auf den Datenbus gelegte Datum oder den Ausgang des M-Registers 19 wählen.
- Der Inhalt des I-Registers 10 wird als Antwort auf einen Prozessorbefehl, wie z.B. ein Signal IWREN 28 in Fig. 2 auf einen Adreßbus 26 gelegt. Die Logik in dem Adreßgenerator der vorliegenden Erfindung modifiziert dann den Inhalt des I-Registers, so daß es für den nächsten Zugriff auf den Ringpuffer bereit ist. Dementsprechend veranlaßt ein Befehlszyklus, der das I-Register anweist, seinen Inhalt auf den Adreßbus zu legen, die hierin zur Modifizierung des Inhalts des I-Registers zu beschreibende Sequenz.
- Wenn der Inhalt des I-Registers auf den Datenbus ausgegeben wird, wird er außerdem in einen Eingang eines Addierglieds 22 eingespeist. Der andere Eingang des Addierglieds wird mit dem Ausgang des Multiplexers 20 gekoppelt, der das gewählte Inkrement M enthält. Der Wert I + M wird vom Addierglied 22 ausgegeben und in einen Eingang eines Addier-/Subtrahierglieds 28 eingespeist. An seinem anderen Eingang erhält das Addier-/Subtrahierglied 28 den Ausgang des L- Registers, das die Länge des Puffers enthält. In dem Fall, in dem M stets positiv ist, ist das Addier-/Subtrahierglied so eingerichtet, daß es L von I + M subtrahiert. Ist M jedoch negativ, dann ist das Addier-/Subtrahierglied so eingerichtet, daß es den Wert L zu I + M addiert.
- Ist M positiv, dann wird der Wert von I + M - L durch einen Komparator 30 mit der Basisadresse B des Ringpuffers verglichen, wie in Fig. 2 dargestellt. Der Ausgang des Komparators 30 ist das Steuersignal an einen Multiplexer 32. Der Multiplexer 32 erhält am Eingang A den Wert von I + M - L, der vom Addier-/Subtrahierglied 28 ausgegeben wird, und am Eingang B den Wert von I + M, der vom Addierglied 22 ausgegeben wird. Der Komparator bestimmt, ob I + M - L größer als oder gleich B ist. Ist dies der Fall, setzt der Komparator 30 ein Signal ab, das den Multiplexer anweist, den an seinem Eingang A anliegenden Wert von I + M - L an seinem Ausgang bereitzustellen. Andernfalls weist der Komparator den Multiplexer 32 an, den an seinem Eingang B anliegenden Wert von I + M an seinem Ausgang bereitzustellen. Der Ausgang des Multiplexers wird an den Eingang des I-Registers zurückgeführt und stellt die neue Zeigeradresse dar, die im I-Register gespeichert wird.
- Der Zweck der obenbeschriebenen Operation des Addierglieds 22, des Addier-/Subtrahierglieds 28, des Komparators 30 und des Multiplexers 32 ist wie folgt. Der vom Addierglied 22 ausgegebene Wert von I + M stellt den neuen Absolutwert des Zeigers dar (d.h. den alten Zeigerwert plus dem Inkrement M, gleichgültig, ob er innerhalb der Grenzen des Puffers liegt). Liegt der Absolutwert innerhalb des Pufferbereichs, dann ist kein zyklisches Zurückkehren zum Anfang erforderlich, und er kann direkt in das I-Register eingetragen werden. Liegt er jedoch außerhalb des Pufferbereichs, dann muß die Länge L des Puffers vom Absolutwert subtrahiert werden, um die Adresse moduloartig zum Anfang zurückzuführen. Das Addier-/Subtrahierglied 28 berechnet I + M - L, gleichgültig, ob dies erforderlich ist oder nicht. Liegt I + M innerhalb des Pufferbereichs, so liegt es auf der Hand, daß durch Subtraktion der Länge L des Puffers von der absoluten Adresse die Adresse kleiner wird als die Basisadresse des Puffers, woraus sich ergibt, daß ein zyklisches Zurückkehren zum Anfang unnötig ist. Liegt jedoch I + M außerhalb der Grenzen des Puffers, dann wird I + M - L größer als oder gleich sein der Basisadresse B des Puffers. Dementsprechend bestimmt der Komparator 30, ob I + M - L größer als oder gleich ist der Basisadresse B. Ist dies der Fall, dann muß I + M außerhalb des Pufferbereichs gewesen sein, und der Komparator veranlaßt den Multiplexer 32, den Wert von I + M - L, und nicht den Wert von I + M, in das I-Register einzutragen.
- Ist M negativ, so verläuft die Operation in etwas geänderter Form. In dieser Situation berechnet das Addier-/Subtrahierglied 28 den Wert von I + M (wobei M negativ ist) + L, anstelle von I + M - L, und das B-Register enthält die höchste, und nicht die niedrigste, Adresse des Puffers. Dementsprechend muß auch die Komparatoroperation modifiziert sein, so daß dann, wenn der Wert von I + M - L an seinem Eingang A kleiner als oder gleich ist dem Wert an seinem Eingang B, der höchsten Adresse B im Puffer, der Multiplexer 30 angewiesen wird, I + M + L zu wählen. Andernfalls wählt er den anderen Eingang I + M.
- Wie oben beschrieben, führen das Addier-/Subtrahierglied 28 und der Komparator 30 in Abhängigkeit vom Vorzeichen von M geringfügig verschiedene Operationen aus. Vom Fertigungsstandpunkt aus gesehen ist es jedoch wünschenswert, einen einzigen Adreßgenerator zu produzieren, der für Anwendungen eingesetzt werden kann, bei denen M positiv oder negativ ist, anstatt für jede Situation ein getrenntes Gerät herzustellen. In dem bevorzugten Ausführungsbeispiel sind dementsprechend das Addier-/Subtrahierglied 28 und der Komparator 30 so ausgeführt, daß sie die getrennten, obenbeschriebenen Funktionen in Abhängigkeit vom Vorzeichenbit des Inhalts des M-Registers ausführen. Der Adreßgenerator ist demnach nicht nur in der Lage, beide dieser Situationen (mit positivem oder negativem M) abzuwickeln, sondern er arbeitet auch dann einwandfrei, wenn sich das Vorzeichen von M während des Betriebs, wie unten erläutert wird, ändern kann.
- Obwohl sich die obige Beschreibung der Erfindung auf Situationen beschränkt hat, in denen bekannt ist, daß M entweder positiv oder negativ ist, gibt es Anwendungen, bei denen sich der Offset M während des Betriebs von positiv nach negativ ändern kann. So kann beispielsweise bei der schnellen Generierung von Phasenwerten in Hochgeschwindigkeits-Breitbandsystemen die Verschieberichtung im Ringpuffer wechseln. Analog kann Situationen mit phasensynchronisierten Regelschleifen die Richtung des Offset wechseln. Die vorliegende Erfindung kann zur Abwicklung solcher Situationen angepaßt werden. Eine mögliche Anpassung bestünde in der Bereitstellung eines weiteren Addierglieds, das den Inhalt des B- und des L-Registers addiert, um die höchste Adresse des Puffers abzuleiten, sowie eines weiteren Multiplexers, der auf die Vorzeichenbits von M anspricht, um entweder den Ausgang des B-Registers (hierin als niedrigste Adresse des Puffers definiert) oder den Ausgang des zusätzlichen Addierglieds als einen Eingang des Komparators 30 zu wählen. Das Addier/Subtrahierglied spricht ebenfalls auf das Vorzeichenbit des Registers an, um L von I + M zu subtrahieren, wenn das Vorzeichenbit von M positiv ist, oder um L zum Wert von I + M zu addieren, wenn das Vorzeichenbit negativ ist. Der Komparator spricht ebenfalls auf das Vorzeichenbit an. Bestimmt der Komparator im Falle eines positiven M, daß sein Eingang A, also I + M - L, größer als oder gleich ist seinem Eingang B, also die Basisadresse B, dann weist er den Multiplexer 32 an, seinen Eingang A zu wählen, I + M - L. Ist M jedoch negativ, muß der Komparatorausgang so modifiziert werden, daß dann, wenn der Eingang A des Komparators, I + M + L, kleiner als oder gleich ist dem Eingang B des Komparators, B + L, der Multiplexer angewiesen werden muß, seinen Eingang A, I + M, und andernfalls seinen Eingang B, I + M + L, zu wählen.
- Die Geschwindigkeit der Adressenberechnung kann durch eine geringfügige Modifikation der in Dig. 2 dargestellten Schaltung weiter erhöht werden. Wie aus Fig. 2 ersichtlich, erscheinen erst dann gültige Daten am Ausgang des Addier-/Subtrahierglieds 28, wenn es den Wert von I + M vom Addierglied 22 erhält. Mit anderen Worten, um I + M ± L für den Vergleich mit B zu erhalten, muß der Komparator 30 die Laufzeitverzögerung des Addierglieds 22 plus die Laufzeitverzögerung des Addier-/Subtrahierglieds 28 abwarten. Die Schaltung von Fig. 2 kann, wie in Fig. 3 gezeigt, modifiziert werden, um zu vermeiden, daß der Komparator diese doppelte Laufzeitverzögerung abwarten muß, indem ein weiteres Register und ein anderes Addier-/Subtrahierglied 29, an dessen Eingängen die Ausgänge des B- und L-Registers anliegen und das B ± L berechnet, bereitgestellt werden. Der Komparator 30 kann dann I + M mit B ± L anstelle von I + M ± L mit B vergleichen. Der erstgenannte Vergleich ist im wesentlichen identisch mit dem zuletzt genannten, bei dem L einfach auf die andere Seite der Gleichung gebracht wird. Bei diesem Ausführungsbeispiel ist die Laufzeitverzögerung durch die Vorrichtung verkürzt, da die Berechnung von B ± L gleichzeitig mit der Berechnung von I + M und nicht später sequentiell erfolgt. Natürlich ließe sich die Notwendigkeit eines zweiten Addier-/Subtrahiergliedes auf einfache Weise vermeiden, indem nur ein Addier-/Subtrahierglied verwendet wird und in einem Register die Resultate einer der Additions-/Subtraktionsoperationen gespeichert werden.
- Weitere alternative Ausführungsformen der Erfindung sind in Fig. 4 und 5 dargestellt. Um einen Ringpuffer definieren zu können, müssen 1) dessen Basisadresse und Länge (entsprechend dem obenbeschriebenen Ausführungsbeispiel in Fig. 2), seine Endadresse und seine Länge oder 3) seine Basis- und Endadresse bekannt sein. Fig. 2 und 3 stellen Ausführungsbeispiele dar, die die Basisadresse und die in der ersten Alternative angegebene Längeninformation verwenden. Fig. 4 und 5 zeigen alternative Ausführungsformen der Erfindung, die Register mit den in der zweiten und dritten Alternative angegebenen Informationen verwenden.
- Bei dem Ausführungsbeispiel nach Fig. 4 ist das L-Register durch ein E-Register 40 ersetzt, das die Endadresse des Puffers enthält. Die Logik dieses Ausführungsbeispiels ist zum großen Teil identisch der des Ausführungsbeispiels nach Fig. 2; für identische Komponenten werden deshalb identische Bezugszeichen verwendet. Das Addier-/Subtrahierglied 28 und der Komparator 30 sind durch ein Addier-/Subtrahierglied 42 bzw. einen Komparator 44 ersetzt. Bei diesem Ausführungsbeispiel benötigt das Addier-/Subtrahierglied 42 Eingänge vom E- und B-Register sowie vom Addierglied 22. Das Addier-/Subtrahierglied 42 berechnet I + M - E + B, ungeachtet des Vorzeichens vom M (unter der Annahme, daß das B-Register mit der niedrigsten Adresse des Puffers initialisiert ist, wenn M positiv ist, und mit der höchsten Adresse, wenn M negativ ist).
- Ist M positiv, so vergleicht der Komparator 44 I + M - B + E mit B. Ist I + M - E + B kleiner als oder gleich B, dann steuert der Komparator 44 den Multiplexer 32 so, daß er seinen Eingang A wählt, der den Wert I + M - E + B hat. Andernfalls wird der Multiplexer 32 vom Komparator 44 so gesteuert, daß er seinen Eingang B wählt, der den Wert I + M hat. Ist M negativ, berechnet das Addier-/subtrahierglied 42 trotzdem I + M - B + B, und der Komparator vergleicht trotzdem I + M - E + B mit dem Inhalt des B-Registers, muß nun jedoch bestimmen, ob I + M - E + B kleiner als oder gleich B ist. Ist dies der Fall, so weist der Komparator 44 den Multiplexer 32 an, seinen Eingang A, den Wert von I + M - E + B, zu wählen. Andernfalls wird der Multiplexer 32 vom Komparator 44 so gesteuert, daß er seinen Eingang B, den Wert von I + M, wählt. Geringfügige Modifikationen sind erforderlich, wenn M während des Betrieb entweder positiv oder negativ sein kann.
- Fig. 5 zeigt ein weiteres Ausführungsbeispiel, bei dem ein L-Register 12, ein E-Register 45, ein I-Register 16 und ein M-Register 19 verwendet werden. Das Ausführungsbeispiel der Fig. 5 ist im wesentlichen identisch mit dem der Fig. 2, mit der Ausnahme, daß der Komparator 30 durch einen Komparator 50 ersetzt ist. Das Addier-/Subtrahierglied 28 ist gegenüber der Fig. 2 unverändert und berechnet genau wie im Ausführungsbeispiel der Fig. 2 I + M - L, wenn M positiv ist, oder I + M + L, wenn M negativ ist. Der Komparator 50 vergleicht den vom Addierglied 22 ausgegebenen Wert von I + M mit dem Inhalt des E-Registers. Ist bei positivem M I + M kleiner als oder gleich E (die höchste Adresse bei positivem M), steuert der Komparator den Multiplexer 32, so daß er seinen Eingang B, I + M, wählt. Andernfalls wählt der Multiplexer seinen Eingang A, I + M - L. Bei negativem M bestimmt der Komparator 50, ob I + M größer als oder gleich ist der Endadresse E (die niedrigste Adresse bei negativem M), und, wenn dies der Fall ist, steuert er den Multiplexer 32, so daß er seinen Eingang B, I + M, wählt. Andernfalls wählt er seinen Eingang A, I + M + L.
- Für das Ausführungsbeispiel nach Fig. 5 sind im Vergleich mit den zuvor beschriebenen Ausführungsbeispielen zusätzliche Schaltkreise erforderlich, um die Basisadresse bei der Initialisierung automatisch in das I-Register zu laden, das es bei diesem Ausführungsbeispiel kein Basisregister gibt. Die Basisadresse wird dementsprechend aus dem im L- und E-Register geladenen Inhalt abgeleitet und automatisch in das I-Register geladen. Ein Subtrahierglied 70 erhält an seinen Eingängen den Ausgang des L-Registers 12 und des E- Registers 45, subtrahiert L von E und legt den Wert nur während des erstmaligen Ladeprozesses an den Eingang des I- Registers. Da bei dem in Fig. 4 und 5 gezeigten Ausführungsbeispiel das I-Register durch ein Signal EWREN 78 freigegeben wird, muß das L-Register vor dem E-Register geladen werden, damit das Subtrahierglied den korrekten Wert in das I-Register eintragen kann. Alternative Ausführungsbeispiele sind möglich. Wie in Fig. 3 gezeigt, ist es beispielsweise möglich, das zusätzliche Subtrahierglied 70 durch das Addier-/Subtrahierglied 28 zu ersetzen, indem das Addier-/Subtrahierglied 28 zur Berechnung umgeschaltet und das I- Register zum Zeitpunkt der Registerinitialisierung mit dem Basiswert geladen wird.
- Das Ausführungsbeispiel nach Fig. 4 kann ebenfalls für die Situationen modifiziert werden, in denen M zwischen einem positiven und einem negativen Wert wechseln kann.
Claims (18)
1. Vorrichtung zur Generierung von Zieladressen
innerhalb eines Ringpuffers, der sich in einem Speicher
zwischen Grenzen erstreckt, die durch eine
Basisadresse, bei der es sich um eine beliebige Adresse im
Speicher handeln kann, und eine Endadresse, bei der
es sich um eine beliebige Adresse im Speicher handeln
kann, definiert sind, welche von der vorigen Adresse,
I, auf die in dem Puffer zugegriffen wurde, und einem
vorgeschriebenen Offset M abhängt, umfassend:
ein I-Register (10) zur Speicherung der Adresse I,
auf die zuvor in dem Puffer zugegriffen wurde;
erste und zweite Pufferregister (12 und 14; 40 und
14; 12 und 45) zur Speicherung von Informationen, die
die Position und Größe des Ringpuffers im Speicher
definieren;
eine erste Logikschaltung (22) zur Generierung einer
absoluten Adresse durch Berechnen des Wertes von
I + M;
eine zweite Logikschaltung (28 oder 48) zur
Generierung einer Umlaufadresse durch Modifizieren des
Wertes I + M um die Pufferlänge;
eine dritte Logikschaltung (33, 44 oder 50) zur
Bestimmung in Abhängigkeit von den Pufferregistern, ob
die absolute oder die Umlaufadresse innerhalb der
Grenzen des Ringpuffers liegt, wobei nur eine der
beiden Adressen innerhalb der Grenzen liegt; und
eine Einrichtung (32) zum Laden der
I-Registereinrichtung mit entweder der absoluten Adresse oder der
Umlaufadresse, je nachdem, welche sich innerhalb der
Grenzen des Ringpuffers befindet.
2. Vorrichtung gemäß Anspruch 1, die des weiteren ein M-
Register (19) zur Speicherung eines
Standard-Offsetwertes umfaßt.
3. Vorrichtung gemäß Anspruch 2, in der die erste
Logikschaltung ein Addierglied (22) umfaßt, von dem ein
erster Eingang zum Empfang des Ausgangs des
I-Registers, ein zweiter Eingang zum Empfang des Ausgangs
des M-Registers geschaltet ist, und mit einem
Ausgang, der die Summe der an den ersten und zweiten
Eingang gelegten Werte bereitstellt.
4. Vorrichtung gemäß Anspruch 3, in der die dritte
Logikschaltung eine Einrichtung (30 oder 40) zur
Bestimmung, ob die Umlaufadresse innerhalb der Grenzen
des Ringpuffers liegt, umfaßt.
5. Vorrichtung gemäß Anspruch 4, bei der M positiv ist,
und die Pufferregister ein L-Register (12) zur
Speicherung der Länge des Ringpuffers, L, und ein
B-Register
(14) zur Speicherung der niedrigsten Adresse in
den Ringpuffer, B, umfassen.
6. Vorrichtung gemäß Anspruch 5, in der
die zweite Logikschaltung eine
Subtraktionseinrichtung (28) umfaßt, mit einem ersten Eingang, der mit
dem Ausgang des L-Registers, einem zweiten Eingang,
der mit dem Ausgang des Addiergliedes gekoppelt ist,
und einem Ausgang, der die Differenz zwischen den
Eingängen, I + M - L, ist,
die dritte Logikschaltung eine Komparatoreinrichtung
(30) umfaßt, mit einem ersten Eingang, der mit dem
Ausgang der Subtraktionseinrichtung, I + M - L, einem
zweiten Eingang, der mit dem Ausgang des B-Registers,
B, gekoppelt ist, und einem Ausgang, der sich in
einem ersten Zustand befindet, wenn der erste Eingang
größer oder gleich ist dem zweiten Eingang, und sonst
in einem zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des ersten Addiergliedes, I + M, einem zweiten
Eingang, der mit dem Ausgang des zweiten Addiergliedes,
I + M - L, und einem dritten Eingang, der mit dem
Ausgang des Komparators gekoppelt ist, und mit einem
Ausgang, der mit dem Eingang des I-Registers
gekoppelt ist, wobei dieser Ausgang der Wert des ersten
Eingangs in Abhängigkeit von dem im zweiten Zustand
befindlichen Komparatorausgang und der Wert des
zweiten
Eingangs in Abhängigkeit von dem im ersten
Zustand befindlichen Komparatorausgang ist.
7. Vorrichtung gemäß Anspruch 4, bei der M negativ ist
und die Pufferregister ein L-Register (12) zur
Speicherung der Länge des Ringspuffers, L, und ein
B-Register (14) zur Speicherung der niedrigsten Adresse
in den Ringpuffer, B, umfassen.
8. Vorrichtung gemäß Anspruch 7, in der
die zweite Logikschaltung ein zweites Addierglied
(28) umfaßt, mit einem ersten Eingang, der mit dem
Ausgang des L-Registers, einem zweiten Eingang, der
mit dem Ausgang des Addiergliedes gekoppelt ist, und
einem Ausgang, der die Summe seiner Eingänge, I + M +
L, ist,
die dritte Logikschaltung einen Komparator (30)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des zweiten Addiergliedes, I + M + L, einem zweiten
Eingang, der mit dem Ausgang des B-Registers, B,
gekoppelt ist, und einem Ausgang, der sich in einem
ersten Zustand befindet, wenn der erste Eingang kleiner
oder gleich ist dem zweiten Eingang, und sonst in
einem zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des ersten Addiergliedes, I + M, einem zweiten
Eingang, der mit dem Ausgang des zweiten Addiergliedes,
I + M + L, und einem dritten Eingang, der mit dem
Ausgang des Komparators gekoppelt ist, und mit einem
Ausgang, der mit dem Eingang des I-Registers
gekoppelt ist, und mit einem Ausgang, der mit dem Eingang
des I-Registers gekoppelt ist, wobei dieser Ausgang
der Wert des ersten Eingangs in Abhängigkeit von dem
im zweiten Zustand befindlichen Komparatorausgangs
und der Wert des zweiten Eingangs in Abhängigkeit von
dem im ersten Zustand befindlichen Komparatorausgangs
ist.
9. Vorrichtung gemäß Anspruch 3, bei der M positiv ist,
und die Pufferregister ein E-Register (40) zur
Speicherung der höchsten Adresse in dem Ringpuffer und
ein B-Register (14) zur Speicherung der niedrigsten
Adresse in dem Ringpuffer umfassen.
10. Vorrichtung gemäß Anspruch 9, in der
die zweite Logikschaltung eine
Subtraktionseinrichtung (28) umfaßt, mit einem ersten Eingang, der mit
dem Ausgang des L-Registers, einem zweiten Eingang,
der mit dem Ausgang des Addiergliedes gekoppelt ist,
und einem Ausgang, der die Differenz zwischen den
Eingängen, I + M - L, ist,
die dritte Logikschaltung eine Komparatoreinrichtung
(50) umfaßt, mit einem ersten Eingang, der mit dem
Ausgang des Addiergliedes, I + M, einem zweiten
Eingang, der mit dem Ausgang des E-Registers, E,
gekoppelt
ist, und einem Ausgang, der sich in einem ersten
Zustand befindet, wenn der erste Eingang kleiner oder
gleich ist dem zweiten Eingang, und sonst in einem
zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
der Subtraktionseinrichtung, I + M - L, einem zweiten
Eingang, der mit dem Ausgang des Addiergliedes,
I + M, und einem dritten Eingang, der mit dem Ausgang
des Komparators gekoppelt ist, und mit einem Ausgang,
der mit dem Eingang des I-Registers gekoppelt ist,
wobei dieser Ausgang der Wert des ersten Eingangs in
Abhängigkeit von dem im zweiten Zustand befindlichen
Komparatorausgang und der Wert des zweiten Eingangs
in Abhängigkeit von dem im ersten Zustand
befindlichen Komparatorausgang ist.
11. Vorrichtung gemäß Anspruch 3, bei der M negativ ist,
und die Pufferregister ein E-Register (40) zur
Speicherung der höchsten Adresse in dem Ringpuffer und
ein B-Register (14) zur Speicherung der niedrigsten
Adresse in dem Ringpuffer umfassen.
12. Vorrichtung gemäß Anspruch 11, in der
die zweite Logikschaltung ein zweites Addierglied
(28) umfaßt, mit einem ersten Eingang, der mit dem
Ausgang des L-Registers, einem zweiten Eingang, der
mit dem Ausgang des Addiergliedes gekoppelt ist, und
einem Ausgang, der die Summe der Eingänge, I + M + L,
ist,
die dritte Logikschaltung einen Komparator (50)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des ersten Addiergliedes, I + M, einem zweiten
Eingang, der mit dem Ausgang des E-Registers gekoppelt
ist, und einem Ausgang, der sich in einem ersten
Zustand befindet, wenn der erste Eingang größer oder
gleich ist dem zweiten Eingang, und sonst in einem
zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des ersten Addiergliedes, I + M, einem zweiten
Eingang, der mit dem Ausgang des zweiten Addiergliedes,
I + M + L, und einem dritten Eingang, der mit dem
Ausgang des Komparators gekoppelt ist, und mit einem
Ausgang, der mit dem Eingang des I-Registers
gekoppelt ist, wobei dieser Ausgang der Wert des zweiten
Eingangs in Abhängigkeit von dem im zweiten Zustand
befindlichen Komparatorausgang und der Wert des
ersten Eingangs in Abhängigkeit von dem im ersten
Zustand befindlichen Komparatorausgang ist.
13. Vorrichtung gemäß Anspruch 3, bei der M positiv ist,
und die Pufferregister ein E-Register (40) zur
Speicherung der höchsten Adresse in dem Ringpuffer und
ein B-Register (14) zur Speicherung der niedrigsten
Adresse in dem Ringpuffer umfassen.
14. Vorrichtung gemäß Anspruch 13, in der
die zweite Logikschaltung ein
Addierglied/Subtraktionseinrichtung (48) umfaßt, mit einem ersten
Eingang, der mit dem Ausgang des E-Registers, E, einem
zweiten Eingang, der mit dem Ausgang des B-Registers,
B, einem dritten Eingang, der mit dem Ausgang des
Addiergliedes, I + M, gekoppelt ist, und einem
Ausgang, der der Wert I + M - E + B ist,
die dritte Logikschaltung einen Komparator (44)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
der Addierglied/Subtraktionseinrichtung, I + M - E +
B, einem zweiten Eingang, der mit dem Ausgang des B-
Registers, B, gekoppelt ist, und einem Ausgang, der
sich in einem ersten Zustand befindet, wenn der erste
Eingang größer oder gleich ist dem zweiten Eingang,
und sonst in einem zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des Addiergliedes, I + M, einem zweiten Eingang, der
mit dem Ausgang der
Addierglied/Subtraktionseinrichtung, I + M - E + B, und einem dritten Eingang, der
mit dem Ausgang des Komparators gekoppelt ist, und
mit einem Ausgang, der mit dem Eingang des
I-Registers gekoppelt ist, wobei dieser Ausgang der Wert
des ersten Eingangs in Abhängigkeit von dem im
zweiten Zustand befindlichen Komparatorausgang und der
Wert des zweiten Eingangs in Abhängigkeit von dem im
ersten Zustand befindlichen Komparatorausgang ist.
15. Vorrichtung gemäß Anspruch 3, bei der M negativ ist,
und die Pufferregister ein E-Register (40) zur
Speicherung der niedrigsten Adresse in dem Ringpuffer und
ein B-Register (14) zur Speicherung der niedrigsten
Adresse in dem Ringpuffer umfassen.
16. Vorrichtung gemäß Anspruch 15, in der
die zweite Logikschaltung ein
Addierglied/Subtraktionseinrichtung (48) umfaßt, mit einem ersten
Eingang, der mit dem Ausgang des E-Registers, E, einem
zweiten Eingang, der mit dem Ausgang des B-Registers,
B, einem dritten Eingang, der mit dem Ausgang des
Addiergliedes, I + M, gekoppelt ist, und einem
Ausgang, der der Wert I + M - E + B ist,
die dritte Logikschaltung einen Komparator (44)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
der Addierglied/Subtraktionseinrichtung, I + M - E +
B, einem zweiten Eingang, der mit dem Ausgang des B-
Registers, B, gekoppelt ist, und einem Ausgang, der
sich in einem ersten Zustand befindet, wenn der erste
Eingang kleiner oder gleich ist dem zweiten Eingang,
und sonst in einem zweiten Zustand, und
die Einrichtung zum Laden einen Multiplexer (32)
umfaßt, mit einem ersten Eingang, der mit dem Ausgang
des Addiergliedes, I + M, einem zweiten Eingang, der
mit dem Ausgang der
Addierglied/Subtraktionseinrichtung, I + M - E + B, und einem dritten Eingang, der
mit dem Ausgang des Komparators gekoppelt ist, und
mit einem Ausgang, der mit dem Eingang des
I-Registers gekoppelt ist, wobei dieser Ausgang der Wert
des ersten Eingangs in Abhängigkeit von dem im
zweiten Zustand befindlichen Komparatorausgang und der
Wert des zweiten Eingangs in Abhängigkeit von dem im
ersten Zustand befindlichen Komparatorausgang ist.
17. Vorrichtung gemäß Anspruch 4, die weiterhin umfaßt:
eine Einrichtung (18), um die Initialisierung der
Inhalte des M-, B- und L-Registers zu gestatten, und
eine Einrichtung (16) zum automatischen Laden des I-
Registers mit dem Inhalt des B-Registers.
18. Vorrichtung gemäß Anspruch 4, die weiterhin umfaßt:
eine Einrichtung (18), um die Initialisierung der
Registers zu gestatten, und
eine Einrichtung (16) zum automatischen Laden des I-
Registers mit der Basisadresse des Ringpuffers in
Abhängigkeit von der Initialisierung der
Registereinrichtungen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60836590A | 1990-11-02 | 1990-11-02 | |
PCT/US1991/008102 WO1992008186A1 (en) | 1990-11-02 | 1991-11-01 | Address generator for circular buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69118392D1 DE69118392D1 (de) | 1996-05-02 |
DE69118392T2 true DE69118392T2 (de) | 1996-08-14 |
Family
ID=24436166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69118392T Expired - Lifetime DE69118392T2 (de) | 1990-11-02 | 1991-11-01 | Adressengenerator für einen ringpuffer |
Country Status (5)
Country | Link |
---|---|
US (1) | USRE40904E1 (de) |
EP (1) | EP0555382B1 (de) |
JP (1) | JPH05507378A (de) |
DE (1) | DE69118392T2 (de) |
WO (1) | WO1992008186A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19748547B4 (de) * | 1997-01-10 | 2007-11-22 | Samsung Electronics Co., Ltd., Suwon | Modulo-Adresserzeugungsschaltung und -verfahren |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2718262B1 (fr) * | 1994-03-31 | 1996-05-24 | Sgs Thomson Microelectronics | Mémoire tampon à adressage modulo. |
US5659700A (en) * | 1995-02-14 | 1997-08-19 | Winbond Electronis Corporation | Apparatus and method for generating a modulo address |
SE515737C2 (sv) * | 1995-03-22 | 2001-10-01 | Ericsson Telefon Ab L M | Anordning och förfarande avseende hantering av digitala signaler och en behandlingsanordning omfattande en dylik |
GB2359641B (en) | 2000-02-25 | 2002-02-13 | Siroyan Ltd | Mapping circuitry and method |
JP2010160653A (ja) * | 2009-01-07 | 2010-07-22 | Renesas Electronics Corp | リングバッファ回路及びその制御回路 |
US9189433B2 (en) | 2012-12-18 | 2015-11-17 | International Business Machines Corporation | Tracking a relative arrival order of events being stored in multiple queues using a counter |
US9575822B2 (en) | 2014-08-01 | 2017-02-21 | Globalfoundries Inc. | Tracking a relative arrival order of events being stored in multiple queues using a counter using most significant bit values |
US11074184B2 (en) | 2019-04-15 | 2021-07-27 | International Business Machines Corporation | Maintaining data order between buffers |
US20220166680A1 (en) * | 2020-11-23 | 2022-05-26 | Spirent Communications, Inc. | Generation of data packets for high speed network testing using range variable field modifiers |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3461433A (en) * | 1967-01-27 | 1969-08-12 | Sperry Rand Corp | Relative addressing system for memories |
US3813652A (en) * | 1973-01-15 | 1974-05-28 | Honeywell Inf Systems | Memory address transformation system |
US3931611A (en) * | 1973-12-10 | 1976-01-06 | Amdahl Corporation | Program event recorder and data processing system |
US3999052A (en) * | 1975-06-18 | 1976-12-21 | International Business Machines Corporation | Upper bounds address checking system for providing storage protection for a digital data processor |
US4169289A (en) * | 1977-07-08 | 1979-09-25 | Bell Telephone Laboratories, Incorporated | Data processor with improved cyclic data buffer apparatus |
US4202035A (en) * | 1977-11-25 | 1980-05-06 | Mcdonnell Douglas Corporation | Modulo addressing apparatus for use in a microprocessor |
US4187549A (en) * | 1978-09-05 | 1980-02-05 | The United States Of America As Represented By The Secretary Of The Navy | Double precision residue combiners/coders |
US4251860A (en) * | 1978-10-23 | 1981-02-17 | International Business Machines Corporation | Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address |
GB2059652B (en) * | 1979-09-29 | 1983-08-24 | Plessey Co Ltd | Memory protection system using capability registers |
US4453209A (en) * | 1980-03-24 | 1984-06-05 | International Business Machines Corporation | System for optimizing performance of paging store |
JPS5745758A (en) * | 1980-09-03 | 1982-03-15 | Hitachi Ltd | Loop type data transmission controller |
US4627017A (en) * | 1980-10-22 | 1986-12-02 | International Business Machines Corporation | Address range determination |
US4485435A (en) * | 1981-03-09 | 1984-11-27 | General Signal Corporation | Memory management method and apparatus for initializing and/or clearing R/W storage areas |
US4453212A (en) * | 1981-07-13 | 1984-06-05 | Burroughs Corporation | Extended address generating apparatus and method |
US4809156A (en) * | 1984-03-19 | 1989-02-28 | Trw Inc. | Address generator circuit |
DE3411721C1 (de) * | 1984-03-29 | 1985-04-11 | Deutsche Gesellschaft für Wiederaufarbeitung von Kernbrennstoffen mbH, 3000 Hannover | Abgeschirmte,hochradioaktive,nasschemische Zelle einer kerntechnischen Anlage mit einer Vorrichtung zur Tropfleckerkennung und Verfahren zur Anwendung in einer derartigen Zelle |
US4623997A (en) * | 1984-12-13 | 1986-11-18 | United Technologies Corporation | Coherent interface with wraparound receive and transmit memories |
US4722067A (en) * | 1985-03-25 | 1988-01-26 | Motorola, Inc. | Method and apparatus for implementing modulo arithmetic calculations |
JPS61289440A (ja) * | 1985-06-18 | 1986-12-19 | Sony Corp | デイジタル信号処理装置 |
US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
US4935867A (en) * | 1986-03-04 | 1990-06-19 | Advanced Micro Devices, Inc. | Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations |
US4819165A (en) * | 1987-03-27 | 1989-04-04 | Tandem Computers Incorporated | System for performing group relative addressing |
US4833602A (en) * | 1987-06-29 | 1989-05-23 | International Business Machines Corporation | Signal generator using modulo means |
US4908748A (en) * | 1987-07-28 | 1990-03-13 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
-
1991
- 1991-11-01 JP JP92501267A patent/JPH05507378A/ja active Pending
- 1991-11-01 DE DE69118392T patent/DE69118392T2/de not_active Expired - Lifetime
- 1991-11-01 EP EP92900366A patent/EP0555382B1/de not_active Expired - Lifetime
- 1991-11-01 WO PCT/US1991/008102 patent/WO1992008186A1/en active IP Right Grant
-
2003
- 2003-04-14 US US10/412,827 patent/USRE40904E1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19748547B4 (de) * | 1997-01-10 | 2007-11-22 | Samsung Electronics Co., Ltd., Suwon | Modulo-Adresserzeugungsschaltung und -verfahren |
Also Published As
Publication number | Publication date |
---|---|
JPH05507378A (ja) | 1993-10-21 |
USRE40904E1 (en) | 2009-09-01 |
DE69118392D1 (de) | 1996-05-02 |
EP0555382B1 (de) | 1996-03-27 |
EP0555382A1 (de) | 1993-08-18 |
WO1992008186A1 (en) | 1992-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69500074T2 (de) | Modulo-adressierter Pufferspeicher | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE69329630T2 (de) | Vorrichtung zur Vektorverarbeitung | |
DE69128815T2 (de) | Warteschlangen für gegenseitige Verriegelung | |
DE3724317C2 (de) | ||
DE3151745C2 (de) | ||
DE3650532T2 (de) | Speicher mit programmierbarem Zugang | |
DE69429226T2 (de) | Absendung von Befehlen an mehrere Verarbeitungseinheiten | |
DE69130448T2 (de) | Adressenerzeugungsschaltung | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE2953861C2 (de) | ||
DE3789490T2 (de) | Steuerungssystem für ein Vektorprozessor. | |
DE1499722B1 (de) | Einrichtung zur modifizierung von informationswoertern | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE69118392T2 (de) | Adressengenerator für einen ringpuffer | |
DE69229771T2 (de) | Datenverarbeitungsverfahren und -vorrichtung | |
DE2332971C2 (de) | Mikroprogrammsteuereinrichtung | |
DE2625113C2 (de) | Speicherschutzeinrichtung | |
DE3900246C2 (de) | ||
DE2912073C2 (de) | ||
DE69027919T2 (de) | Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher | |
DE69618831T2 (de) | ECC-geschützte Speicherorganisation mit Lese-Änderungs-Schreib-Pipelinezugriff | |
DE3852196T2 (de) | Gruppenbezogenes Adressierungssystem. | |
DE3851241T2 (de) | Speicheranordnung. | |
DE69225095T2 (de) | Wirksamer Arbiter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |