DE69118392T2 - Adressengenerator für einen ringpuffer - Google Patents

Adressengenerator für einen ringpuffer

Info

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
Application number
DE69118392T
Other languages
English (en)
Other versions
DE69118392D1 (de
Inventor
Douglas Garde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE69118392D1 publication Critical patent/DE69118392D1/de
Application granted granted Critical
Publication of DE69118392T2 publication Critical patent/DE69118392T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/106Details of pointers, i.e. structure of the address generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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.
DE69118392T 1990-11-02 1991-11-01 Adressengenerator für einen ringpuffer Expired - Lifetime DE69118392T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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