DE3507584A1 - Adressenberechnungssystem fuer digitale verarbeitungseinrichtungen - Google Patents
Adressenberechnungssystem fuer digitale verarbeitungseinrichtungenInfo
- Publication number
- DE3507584A1 DE3507584A1 DE19853507584 DE3507584A DE3507584A1 DE 3507584 A1 DE3507584 A1 DE 3507584A1 DE 19853507584 DE19853507584 DE 19853507584 DE 3507584 A DE3507584 A DE 3507584A DE 3507584 A1 DE3507584 A1 DE 3507584A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- data
- address register
- addresses
- register
- 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.)
- Granted
Links
Classifications
-
- 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/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
STRASSE & STOFFREGBN
Patentanwälte · European Patent Attorneys ^
^% ^J \J f ^ Q ^f
Tektronix, Inc. München, 04. März 1985
Beaverton, Oregon 97077 (V.St.A.) ka-ks 14 708
Adressenberechnungssystem für
digitale Verarbeitungseinrichtungen
Die Erfindung betrifft eine digitale Verarbeitungseinrichtung
und insbesondere ein System zum Berechnen der Adresse des nächsten aus einem Datenspeicher zu holenden
Operanden gleichzeitig mit der Ausführung des letzten geholten Operanden.
Bei einer Feldverarbeitungseinrichtung ist es des öfteren
erforderlich, eine geordnete Gruppe oder Reihe von Daten
mit einer anderen geordneten Gruppe von Daten wiederholt zu bearbeiten, wobei bei jedem folgenden Durchgang bei
einem neuen Datenpunkt in der ersten Gruppe begonnen wird. Bei der digitalen Filterung eines durch eine Reihe
von Abtastungen dargestellten Signals wird beispielsweise
eine Signalformfaltung durchgeführt. Ein allgemeiner
Ausdruck, der die Faltung des Signals χ durch den Filterkennwert h darstellt, lautet:
ρ P= Anzahl der Koeffizienten
der Filterkennlinie h(i)()
n=0 i = Nummer der Datenpunkte,
wobei 0<i<P
Bei diesem Beispiel wird jeder Satz von die Signalform χ darstellenden Datenpunkten zuerst mit einem entsprechenden
Koeffizienten von h multipliziert und die Summe
dieser Produkte wird addiert; hierauf werden die Koeffizienten um eine Position verschoben und dieser Vorgang
wird wiederholt. Diese Multiplikation und Addition für
jeden der die Filterkennlinie darstellenden Koeffizienten
wird wiederholt, bis die vollständige die Signalform darstellende Datengruppe mit allen die Filterkennlinie
darstellenden Koeffizienten gefaltet wurde. Während jedes
Durchgangs durch die Gruppe von Koeffizienten müssen die
Adressen der Daten und Koeffizienten in dem Datenspeicher
nach jeder folgenden Multiplikation und Addition berechnet
werden. Nach jedem derartigen Durchlauf durch die Gruppe von Koeffizienten, die die Filterkennlinie oder
-Charakteristik darstellen, muß das System zu einer Startadresse zurückkehren, die auf den Beginn der Gruppe
von Koeffizienten in dem Datenspeicher zeigt, sowie zu
einer Startadresse, die auf den nächsten Datenpunkt in der Gruppe von die Signalform darstellenden Datenpunkten
zeigt, wobei der ursprüngliche Zeiger oder Cursor um "1" erhöht wurde.
Ein Ziel, was gewöhnlich bei der Feldverarbeitung,
insbesondere bei der Signalverarbeitung angestrebt wird,
ist die Verarbeitung mit hoher Geschwindigkeit. Dies ist
insbesondere dort wichtig, wo eine Echtzeitverarbeitung
wünschenswert ist. Wo wie in dem vorhergehenden Beispiel wiederholte Durchgänge durch die Gruppen von Datenpunkten
erforderlich sind, müssen neue Adressen für jede folgende Operation berechnet werden; dies bedeutet, daß irgendein
Mechanismus vorgesehen sein muß, der die Operandenadressen während jedes Durchlaufs fortschaltet und die
Zeiger oder Cursoren zu Beginn jedes Durchlaufs wieder initialisiert, einschließlich des Fortschaltens des
Wertes auf den jeder Zeiger initialisiert wird.
Bei bekannten Mikroprozessoreinrichtungen erfordert das
Starten der Adressenberechnung üblicherweise, daß die
35
Startadressen und der Wert, um den die Startadressen fortzuschalten sind, in einem Speicher gespeichert
werden, daß diese Werte immer dann aufgerufen werden, wenn eine Berechnung einer neuen Startadresse erforderlieh
ist, nämlich für eine erneute Initialisierung der
augenblicklichen Adresse zu Beginn jedes neues Durchlaufs
durch eine Gruppe von Operanden, und daß die neue Startadresse berechnet wird. Dieser Vorgang wird durch
eine Reihe von Programmschritten, d.h. Befehlen durchgeführt. Eine Einrichtung, die auf die vorbeschriebene
Weise arbeitet, ist beispielsweise der TMS 320 Mikroprozessor
der Firma Texas Instruments Corporation, und der F9445 Mikroprozessor der Firma Fairchild, Inc. und der
ATMAC Mikroprozessor der Firma Radio Corporation of America. Diese Programmschritte erfordern eine übergeordnete
Aktivität, die den Zeitaufwand erhöht, der für eine Reihenverarbeitung erforderlich ist.
Somit wäre es wünschenswert, einen Mechanismus anzugeben, der die Startadressen und die augenblicklichen Adressen
verfolgt, neue Adressen berechnet, während die Feldverarbeitung durch die Gruppen von Daten läuft, und neue
Startadressen mit jedem folgenden Durchlauf durch die Berechnungsfolge gleichzeitig mit der Bearbeitung die
adressierten Operanden berechnet, um die Geschwindigkeit
der Reihenverarbeitungsschritte zu maximieren.
Es ist deshalb eine wesentliche Aufgabe der Erfindung, ein neues Adressenberechnungssystem zur Verwendung in
einer Datenverarbeitungseinrichtung anzugeben.
Ferner soll ein Adressenberechnungssystem geschaffen werden, bei dem die Startadresse einer Rechenschleife
automatisch neu initialisiert werden kann.
35
Auch soll auf Daten zugegriffen und sollen Startadressen aktualisiert werden können, während gleichzeitig die
Berechnung mittels vorheriger Datenoperanden erfolgt.
Die Erfindung ist gekennzeichnet durch ein Adressenberechnungssystem
nach Patentanspruch 1.
Das Bedürfnis, die zusätzliche Zeit zu eliminieren, die
üblicherweise zur Berechnung neuer Adressen und zur neuen
Einstellung der Zeiger verwendet wird, wird bei der vorliegenden Erfindung erfüllt durch einen Systemaufbau,
der eine übliche Softwarefunktion ersetzt. Eine erste
Gruppe von Adressenregistern ist zum Speichern der Zeiger auf die Startadressen von Gruppen von Daten vorgesehen.
Eine zweite Gruppe von Adressenregistern dient zum Speichern der augenblicklichen Adressen, die diesen Daten
zugeordnet sind, und eine dritte Gruppe von Registern dient zum Speichern der Seite und des Speichers, in denen
diese Adressen auftreten. Die dem Datenspeicher zugeführte Adresse ist eine Verkettung der Werte am Ausgang der
Seitenregister und am Ausgang entweder der ersten oder
zweiten Adressenregister.
Zu Beginn führt die erste Gruppe von Registern zusammen mit dem Seitenregister die Startadressen dem Datenspeicher
zu. Gleichzeitig werden die Startadressen in der ersten Gruppe von Registern um einen vorbestimmten Wert
geändert und in der zweiten Gruppe und falls erforderlich in der ersten Gruppe von Registern rückgespeichert.
Hierdurch erfolgt nicht nur eine Aktualisierung der ersten Gruppe von Registern mit den Startadressen für die
nächste Schleife, sondern auch eine Fortschaltung der Adressen in der zweiten Gruppe von Registern zum zweiten
Schritt der Schleife. Während dann das System durch eine Berechnung läuft, wird das zweite Register mit jedem
folgenden Schritt geändert. Nach Beendigung eines Durchlaufs durch eine Rechenschleife gibt die erste Gruppe von
Registern wiederum die Startadressen an, die auch wiederum aktualisiert werden, und die zweite Gruppe von
Registern schreitet fort wie zuvor. Dies erfolgt bis die ganze Verarbeitung beendet ist.
Die Aktualisierung wird erreicht durch eine kombinierende
Logik, die die Ausgangswerte der ersten, zweiten oder dritten Gruppe von Registern aufnimmt und in einer
arithmetisch/logischen Einheit gemäß einer vorbestimmten
Funktion mit einem vorbestimmten Wert kombiniert. Das Ergebnis wird rückgespeichert in das entsprechende
Register. Ein gewählter Wert kann dazu dienen, die Ausgangswerte zu ändern und das vorgenannte Ergebnis zu
erzielen. Das Adressieren des Datenspeichers, die Berechnung der neuen Adressen und das Laden der neuen Adressen
in die Adressenregister tritt innerhalb eines Befehlsausführungszyklus
der Datenverarbeitungseinrichtung auf.
Bevorzugte Weiterbildungen des erfindungsgemäßen Adressenberechnungssystems
sind in den Unteransprüchen gekennzeichnet .
Weitere Ziele, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung
und der Zeichnung.
Es zeigen:
30
30
Fig. 1 eine beispielsweise Gruppe von Datenpunkten und
Koeffizienten, die in einer Reihenverarbeitungsberechnung
verwendet werden können,
Fig. 2 eine allgemeine Ausführungsform eines Teiles eines
Reihenprozessoraufbaus, mit dem das Adressenberechnungssystem
der vorliegenden Erfindung vorteilhaft eingesetzt werden könnte, und
Fig. 3 ein Blockschaltbild einer bevorzugten Ausführungsform des Adressenberechnungssystems der vorliegenden
Erfindung.
Die Figuren 1 und 2 zeigen Datenpunkte D1-D12, die eine abgetastete Signalform darstellen, welche gemäß einer
Funktion verarbeitet werden sollen, die durch die Koeffizienten C1-C6 repräsentiert wird. Diese Gruppen von
Datenpunkten und Koeffizienten stellen zu verarbeitende
Reihen oder Anordnungen dar und entsprechen Werten, die in einem Datenspeicher 10 des allgemein in Figur 2
gezeigten Systems 2 gespeichert sind, wobei jeder Wert eine entsprechende Speicheradresse besitzt. Bei einer
typischen Anwendung wird die Datenreihe oder -anordnung mit der Koeffizientenreihe oder -anordnung gefaltet.
Somit werden basierend auf Adressen von der Adressiereinheit
14 Dl und Cl aus dem Speicher abgerufen und in der arithmetischen Einheit 12 multipliziert, die auch das
Ergebnis sichert. Dann werden D2 und C2 aufgerufen und multipliziert usw. bis D6 und C6 aufgerufen und multipliziert
wurde, wobei während dieses Ablaufs die entsprechenden Produkte summiert werden. Die Gesamtsumme wird
typischerweise jedoch nicht notwendigerweise im Speicher
gesichert. Dann wird die gleiche Folge wiederholt, beginnend mit dem zweiten Datenpunkt in der Datenreihe,
d.h. D2 wird multipliziert mit Cl, D3 mit C2 usw. bis D7
mit C6. Der Vorgang wird nun wiederum so viele Male wiederholt als erforderlich ist, um eine vorbestimmte
Anzahl von Datenpunkten mit allen Koeffizienten zu
multi pii zieren .
35
35
Der Multiplikationsvorgang der Datenpunkte mit entsprechenden
Koeffizienten und die Summenbildung der Produkte
umfaßt eine Reihe von Schritten, die wiederholt durchzuführen sind, d.h. eine Schleife. Während jedes Durchlaufs
durch die Schleife muß die Adresseneinheit dem Datenspeicher die Adressen der augenblicklichen zu multiplizierenden
Daten- und Koeffizientenwerte zuführen. Somit müssen diese Adressen für jedes folgende Aufrufen,
Multiplizieren und Addieren geändert werden. Zu Beginn
jedes folgenden Durchlaufs durch die Schleife muß die Adresseneinheit auf den Startkoeffizienten und die neuen
Startdatenadressen zeigen. Während diese Feld- oder Anordnungsverarbeitung als Beispiel zur Erläuterung der
Erfindung gedacht ist, erkennt man daß viele andere Feldverarbeitungsalgorithmen ein ähnliches Wiederholen
des Durchschrei tens durch eine oder mehrere Reihen von Adressen entsprechend der Anordnungen von Daten erfordert,
die mit einer oder mehreren neuen Adressen für jede folgende Reihe von Operationen beginnen, so daß die
Erfindung auf viele derartiger Algorithmen anwendbar ist.
Bei dem allgemein dargestellten System der Figur 2
erfolgt die Berechnung von Adressen in der Adresseneinheit 14, während derjenigen Zeit, die die arithmetische
Einheit 12 benötigt, um eine Rechenoperation durchzuführen, d.h. während eines Arbeitsbefehlszyklus der Datenverarbeitungseinrichtung.
Bei dem vorgenannten Beispiel wird die Adresse für den nächsten Datenpunkt zum Speicher
gesandt und die Adresse für den folgenden Datenpunkt wird durch die Adresseneinheit berechnet, während ein Datenpunkt
und ein Koeffizient multipliziert werden. Während das Produkt zum vorhergehenden Produkt addiert wird, wird
die Adresse für den nächsten Koeffizienten zum Speicher gesandt und die Adresse für den folgenden Koeffizienten
wird berechnet. Dies setzt voraus, daß der Datenspeicher
automatisch seinen Inhalt an die Recheneinheit nach
Empfang einer Adresse abgibt, und daß die Recheneinheit
Register zum zeitweiligen Speichern seine Operanden besitzt, wie dies allgemein bekannt ist. Es ist zu
erkennen, daß das Adressenberechnungssystem der vorliegenden Erfindung mit einer Vielfalt von unterschiedlichen
Prozessoraufkonfigurationen verwendet werden kann. Vorzugsweise
sind jedoch getrennte Daten- und Programmbefehl sspei eher vorgesehen und die Programmbefehlsschaltung,
die Recheneinheit und die Adresseneinheit
arbeiten alle gleichzeitig und unabhängig für die maximale Ausnutzung der Vorteile der Erfindung.
Figur 3 veranschaulicht eine bevorzugte Ausführungsform
des erfindungsgemäßen Adressenberechnungssystems, wobei
die Startadresse für jede Gruppe von aufzurufenden Daten
in einem ersten Adressenspeicher (ARA) 16 gespeichert ist, der vorzugsweise tatsächlich aus einer Gruppe von
Speicherregistern zum Speichern der Startadressen von
entsprechenden Gruppen von Datenreihen aufweist. Die augenblicklichen Datenadressen werden in einem zweiten
Adressenspeicher (ARB) 18 gespeichert, der ebenfalls aus einer Gruppe von Speicherregistern zum Speichern augenblicklicher
Adressen besteht. Die Adressen in (ARA) 16 und (ARB) 18 werden von einer Quelle für neue oder
aktualisierte Adressen über Eingänge 20 bzw. 22 zugeführt.
Sind Daten in einem Speicher in "Seiten" gespeichert, dann besitzt das System vorzugsweise auch einen Seitenadressenspeicher
(PR) 24 zum Speichern der höchsten Bits, der zum Datenspeicher zu sendenden Adresse, wobei ARA und
ARB die niedrigsten Bits ihrer entsprechenden Adressen speichern. Wie ARA und ARB besteht PR 24 vorzugsweise
ebenfalls aus einer Vielzahl von Registern zum Speichern
von Teilen von Adressen, die Seiten darstellen, in denen entsprechende Reihendaten gespeichert sind. Wie ARA und
ARB empfängt PR seine Adressenbits von einer Quelle neuer oder aktualisierter Adressen an einem Eingang 26. Das
bestimmte Register in ARA, ARB und PR, von dem oder zu dem eine Adresse während einer bestimmten Operation
übertragen wird, empfängt ein Registerindexeingangssignal
28, das ein Teil der Prozessorbefehlskodierung ist,
welche von der Programmbefehlsschaltung beliebiger (nicht
gezeigter) Bauart zugeführt wird.
Die am Ausgang 30 dem Datenspeicher zugeführte Adresse ist eine Verkettung der Werte am Ausgang 32 der PR 24 und
am Ausgang 34 eines Adressenmultiplexers 36. Zuerst wählt
der Multiplexer 36 an seinem Ausgang den Ausgang 38 vom ARA 16. Hiernach wählt der Adressenmultiplexer 36 den
Ausgang 40 von ARB 18 usw. bis eine Folge von Schritten bzw. eine Schleife beendet ist.
Zur gleichen Zeit, zu der der Ausgangswert von ARA dem Multiplexer 36 zugeführt wird, kann ARA geändert, d.h.
aktualisiert und in das entsprechende Register von ARA über den Eingang 20 zurückgebracht werden. In ähnlicher
Weise kann, wenn der Ausgangswert von ARB dem Adressenmultiplexer 36 zugeführt wird, dieser ebenfalls aktualisiert
werden, wobei das Ergebnis in das entsprechende Register von ARB über Eingang 22 zurückgebracht wird. Es
ist von besonderer Wichtigkeit, daß, wenn die Ausgangswerte von ARA dem Datenspeicher zugeführt und aktuali-s
siert werden, die aktualisierte Adresse nicht nur in den
ARA-Speicher, sondern auch in den ARB-Speicher geladen wird, wodurch der ARB-Speicher fortgeschaltet wird.
Typischerweise werden die Adressen einfach um eins
erhöht; sie können jedoch auch um einen größeren Wert erhöht oder um irgendeinen Wert verringert werden oder
sie können sich auch überhaupt nicht ändern. Auf jeden Fall wird der Mechanismus zum Ändern dieser Werte
nachstehend beschrieben.
Der Wert am Ausgang 38 des ARA-Spei chers 16 wird einem
ersten Multiplexer 44 zugeführt, der auch als Eingangswerte eine Gruppe von Nullen am Eingang 46, eine Gruppe
von Einsen am Eingang 48, den Wert am Ausgang 50 eines x-Registers 52 (typischerweise ein versetzter Wert) und
den Wert am Ausgang 54 eines y-Registers 56 empfängt. Ein weiterer Zwischenmultiplexer 58 empfängt an seinen
Eingängen den Wert vom Ausgang 40 des ARB 18, den Wert am Ausgang 32 des PR 24, eine Gruppe von Nullen vom Eingang
60 und den Wert am Ausgang 50 des x-Registers 52. Eine arithmetisch/logische Einheit (ALU) 62, die selektiv
mathematische oder logische Operationen ausführen kann, besitzt zwei Eingänge, die mit dem Ausgang 64 des ersten
Zwischenmultiplexers 44 bzw. dem Ausgang 66 des zweiten
Zwischenmultiplexers 58 verbunden sind. Diese beiden
Eingänge der ALU 62 werden mittels der ALU kombiniert, damit sich ein Ergebnisausgangswert 68 ergibt.
Dieser Wert am Ausgang 68 der ALU 62 wird einem weiteren Multiplexer 70 zugeführt, dessen Ausgang Eingangssignale
zu dem ARA 16, ARB 18, PR 24, x-Register 52 und y-Register 56 abgibt. Somit kann der Ausgangswert vom Multiplexer
70 zur Aktualisierung der Adressen in den ARA-, ARB- und PR-Speichern und zum Ändern der Werte in den x-
und y-Register dienen. Beispielsweise kann der Ausgangswert
vom ARA 16 durch den Multiplexer 44 als Eingangswert zur ALU 62 zusammen mit einem Wert Eins der durch den
Multiplexer 58 gewählten Eingangssignale ausgewählt werden, so daß die beiden Werte durch die ALU logisch
oder mathematisch verarbeitet werden können, damit sich ein neuer Wert am Ausgang 68 ergibt. Eine Startadresse in
dem ARA-Speicher kann um Eins dadurch erhöht werden, daß
eine Eins in das x-Register 52 gebracht und diese als ein Eingangssignal vom Multiplexer 58 für eine Addition mit
dem Wert in einem gewählten Register des ARA-Speichers gewählt wird. Der Ausgangswert der ALU 62 würde den Wert
des gewählten Registers im ARA-Speicher plus Eins darstellen. Der Wert des ARA-Speichers plus Eins wird
durch den Multiplexer 70 ausgewählt und an den Eingang 20 des ARA-Speichers angelegt, so daß er in dem gewählten
Register des ARA-Speichers zurückgespeichert wird, wodurch
das Register des ARA-Speichers um Eins erhöht wird. Er wird auch an den Eingang 22 des ARB-Speichers zum
Ersetzen der entsprechenden augenblicklichen Adresse
angelegt, wodurch die augenblickliche Adresse entsprechend
der Gruppe von Daten fortgeschaltet wird, für die die Startadresse aktualisiert wurde. Bei dem Faltungsbeispiel
gemäß der vorangegangenen Beschreibung resultiert dies in einem Verschieben der Startadresse der Datenanordnung
um einen Datenpunkt und Fortschalten der augenblicklichen Adresse des zweiten Datenanordnungsschritts
einer neuen Schleife.
In gleicher Weise wird jedesmal dann, wenn eine Adresse von einem gewählten Register des ARB 18 zum Datenspeicher
gesandt wird, diese auch zur ALU 62 über den Zwischenmultiplexer
58 geleitet werden. Gleichzeitig kann durch den Zwischenmultiplexer 44 eine Zahl, beispielsweise vom
x-Register zum Addieren zu der Adresse und zu deren Fortschalten ausgewählt werden, wobei das Ergebnis in
das gewählte Register des ARB zurückgespeichert wird. Bei
dem Faltungsbeispiel führt dies zu einem Fortschreiten zu einem neuen Datenpunkt oder Koeffizienten.
Das x-Register 52 dient somit dazu, einen Wert abzugeben, mit dem die Werte in den ARA-Speicher 16, ARB-Speicher 18
oder PR-Speicher 24 geändert werden können. Das y-Register 56 kann andererseits dazu verwendet werden, einen
Wert zum Ändern der Werte in dem ARB-Speicher oder dem PR-Speicher 24 abzugeben. Dieses x- und y-Register wird
von einer Registersammelleitung 72 über den Multiplexer
70 geladen, wobei die in das x- und y-Register zu ladenden Werte von anderen Recheneinheiten etwa der
vorgenannten Befehlsschaltung in einer vollständigen
Datenverarbeitungsanlage kommen. Beispielsweise könnte
das x-Register mit einem Wert geladen werden, um den ein Register in dem ARA-Speicher für eine erneute Initialisierung
der Startadresse einer Anordnung am Beginn einer Schleife erhöht wird, während das y-Register mit einem
anderen Wert geladen werden könnte, mit dem ein Register in dem ARB-Speicher unter Berechnen der augenblicklichen
Adresse einer anderen Anordnung während eines Durchlaufs durch eine Schleife erhöht würde.
Der Wert am Ausgang 68 der ALU kann auch über einen Puffer 74 an die Registersammelleitung 72 zur Verwendung
durch eine andere Einheit der Anlage gelegt werden. Unter Umständen kann es wünschenswert sein zu bestimmen, wenn
eine wiederberechnete Adresse Null ist, was direkt am
ALU-Ausgang 68 festgestellt werden kann. Es ist zu beachten, daß die vorgenannten Funktionsmerkmale der
Adressenberechnungseinheit eine zugehörige (nicht gezeigte) Steuerlogik umfassen. Der Aufbau und die Konstruktion
spezieller Schaltungen zur Realisierung des zuvor beschriebenen Systemaufbaus einschließlich der
zugeordneten Steuerlogik ist in der Technik bekannt und es ist kein besonderer Aufbau für die vorliegende
Erfindung erforderlich, mit der Ausnahme, daß eine solche
kombinierende Logik verwendet wird, daß die Abgabe einer Adresse und die erneute Berechnung dieser Adresse zum
Anlegen an die Eingänge des ARA-, ARB- und PR-Speichers
alle in einem Schritt auftreten, während die Speicherung des Ergebnisses in dem ARA-, ARB- oder PR-Speicher in
einem zweiten Schritt erfolgt. Somit kann das Anlegen von Adressen an den Datenspeicher und das Aktualisieren
dieser Adressen in einem einzigen Arbeitsfehlszyklus der
Datenverarbeitungsanlage durchgeführt werden, d.h. in der
Periode, die die Recheneinheit benötigt, um einen einzigen Arbeitsbefehl vollständig auszuführen. Üblicherweise
würde dies bedeuten, einen Operanden aus einer Speicherstelle, etwa einem Register für zeitweilige
Speicherung innerhalb der Recheneinheit zu holen, diesen
Operanden zu bearbeiten und das Ergebnis abzuspeichern.
Die in der vorangehenden Beschreibung verwendeten Ausdrücke und Definitionen dienen lediglich der Erläuterung
und nicht der Begrenzung. Es ist nicht beabsichtigt, daß
die Verwendung derartiger Ausdrücke und Definitionen Äquivalente der gezeigten und beschriebenen Merkmale oder
Teile davon ausschließen sollen.
20
20
Claims (8)
1. Adressenberechnungssystem zur Verwendung in einer
Datenverarbeitungseinrichtung mit einem Datenspeicher und Vorrichtungen zum Durchführen eines Arbeitsbefehls
während eines Befehlszyklus,
gekennzeichnet durch
15
(a) eine erste Adressenregistervorrichtung (16) zum
Speichern eines vorbestimmten Teils einer dem Datenspeicher zuzuführenden Datenadresse,
(b) eine zweite Adressenregistervorrichtung (18) zum
Speichern eines vorbestimmten Teils einer dem Datenspeicher zuzuführenden Datenadresse,
(c) eine Ausgangsmulitplexervorrichtung (36), der auf
die erste und zweite Adressenregistervorrichtung (16,18) und auf einen Arbeitsbefehl anspricht, um
selektiv dem Datenspeicher entweder einen in der ersten Adressenregistervorrichtung (16) gespeicherten
Datenadressentei1 oder einen in der zweiten Adressenregistervorrichtung
(18) gespeicherten Datenadressenteil zuzuführen und
(d) eine Aktualisierungslogik, die auf die erste
Adressenregistervorrichtung (16) und einen Arbeitsbe-
35
fehl zum Ändern eines in der ersten Adressenregistervorrichtung
(16) gespeicherten Datenadressentei1s um
einen vorbestimmten Wert anspricht, wie er dem Datenspeicher zugeführt wird, und zum Laden des
geänderten Datenadressentei 1 es sowohl in die erste als auch in die zweite Adressenregistervorrichtung
(16,18) zur Speicherung darin, wobei das Ändern und Laden innerhalb eines einzigen Befehlszyklus der
Datenverarbeitungseinrichtung erfolgt.
10
2. System nach Anspruch 1,
dadurch gekennzeichnet,
daß die in der ersten und zweiten Adressenregistervorrichtung (16,18) gespeicherten Teile von Datenadressen eine vorbestimmte Anzahl von niederwertigen ^ Bits von entsprechenden Binäradressen sind, wobei das
daß die in der ersten und zweiten Adressenregistervorrichtung (16,18) gespeicherten Teile von Datenadressen eine vorbestimmte Anzahl von niederwertigen ^ Bits von entsprechenden Binäradressen sind, wobei das
ä System eine dritte Adressenregistervorrichtung (24)
zum Speichern der übrigen Bits der Binäradressen und
Vorrichtungen aufweist, die auf die dritte Registervorrichtung (24) und den Ausgangsmultiplexer (36)
ansprechen, um eine vollständige binäre Adresse an den Datenspeicher zu legen.
3. System nach Anspruch 1 oder 2,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
daß die Aktualisierungslogik Vorrichtungen zum Ändern
eines Datenadressentei1s in der zweiten Adressenregistervorrichtung
(18) um einen vorbestimmten Betrag aufweist.
4. System nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet,
daß die Aktualisierungslogik eine arithmetisch/logische Vorrichtung zum selektiven Ausführen von Rechen- oder logischen Operationen entweder mit einem oder beiden eingegebenen Operanden und zum Erzeugen
daß die Aktualisierungslogik eine arithmetisch/logische Vorrichtung zum selektiven Ausführen von Rechen- oder logischen Operationen entweder mit einem oder beiden eingegebenen Operanden und zum Erzeugen
eines Ergebnisses, eine erste Zwischenmultiplexervorrichtung
(44) zum Abgeben eines Datenadressentei1s
von der ersten Adressenregistervorrichtung
(16) als einem Eingangsoperanden an die arithmetisch/logische
Vorrichtung (62), eine Vorrichtung, die einen vorbestimmten Wert als zweiter Eingangsoperand an die arithmetisch/logische Vorrichtung (62)
anlegt, und eine Vorrichtung zum Speichern des Ergebnisses in einer oder beiden Adressenregistervorrichtungen
(16,18) aufweist.
5. System nach Anspruch 4,
dadurch gekennzeichnet,
daß die Vorrichtung zum Abgeben eines vorbestimmten Wertes eine Versetzungs-Regi stervorrichtung zum Spei- «,
ehern des vorbestimmten Werts und eine zweite J^
Zwischenmultiplexervorrichtung (58) zum Auswählen des *
in der Versetzungsregistervorrichtung gespeicherten
Wertes als Eingangsoperand zu der arithmetisch/1ogischen
Vorrichtung (62) aufweist.
6. System nach Anspruch 5,
dadurch gekennzeichnet,
daß der zweite Zwischenmultiplexer (58) auf die
zweite Adressenregistervorrichtung (18) zum Auswählen eines in der zweiten Adressenregistervorrichtung (18)
gespeicherten Datenadressentei1s als ein Eingangswert
zu der arithmetisch/logischen Vorrichtung anspricht
und daß die erste Zwischenmultiplexervorrichtung (44)
auf die Versetzungsregistervorrichtung zum Auswählen
des in der Versetzungsregistervorrichtung gespeicherten
Werts als Eingangswert zu der arithmetisch/logischen
Vorrichtung (62) anspricht.
7. System nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
daß die erste und zweite Adressenregistervorrichtung
(16,18) jeweils eine Vielzahl von Speicherregistern
und Vorrichtungen aufweisen, über die ein Adressenteil selektiv in diesen Speicherregistern gespeichert
oder aus diesen gelesen werden kann.
8. System nach Anspruch 7,
dadurch gekennzeichnet,
daß die in der ersten und zweiten Adressenregistervorrichtung
(16,18) gespeicherten Teile von Datenadressen eine vorbestimmte Anzahl der niederwertigen
Bits von entsprechenden Binäradressen sind, wobei das System ferner eine dritte Vielzahl von Speicherregistern
zum Speichern der übrigen Bits der Binäradressen
sowie eine Vorrichtung zum selektiven Speichern in oder Lesen aus den dritten Speicherregistern
und eine Vorrichtung aufweist, die auf die dritten Speicherregister und die Ausgangsmultiplexervorrichtung
(36) zum Darstellen einer vollständigen
Binäradresse zum Datenspeicher anspricht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/641,098 US4704680A (en) | 1984-08-15 | 1984-08-15 | Address computation system for updating starting addresses of data arrays in an array processor within an instruction cycle |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3507584A1 true DE3507584A1 (de) | 1986-02-27 |
DE3507584C2 DE3507584C2 (de) | 1988-10-20 |
Family
ID=24570924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19853507584 Granted DE3507584A1 (de) | 1984-08-15 | 1985-03-04 | Adressenberechnungssystem fuer digitale verarbeitungseinrichtungen |
Country Status (7)
Country | Link |
---|---|
US (1) | US4704680A (de) |
JP (1) | JPS6160133A (de) |
CA (1) | CA1223664A (de) |
DE (1) | DE3507584A1 (de) |
FR (1) | FR2569288B1 (de) |
GB (1) | GB2163280B (de) |
NL (1) | NL8500683A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3619036A1 (de) * | 1986-06-06 | 1987-12-10 | Wajda Eligiusz Dipl Ing | Verfahren zur steuerung von datenverarbeitenden einrichtungen |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
US5163149A (en) * | 1988-11-02 | 1992-11-10 | International Business Machines Corporation | Combining switch for reducing accesses to memory and for synchronizing parallel processes |
US5265225A (en) * | 1990-02-21 | 1993-11-23 | Harris Corporation | Digital signal processing address sequencer |
US5293596A (en) * | 1990-02-21 | 1994-03-08 | Matsushita Electric Industrial Co., Ltd. | Multidimensional address generator and a system for controlling the generator |
US5832533A (en) * | 1995-01-04 | 1998-11-03 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indexed addressing mode |
US6049858A (en) * | 1997-08-27 | 2000-04-11 | Lucent Technologies Inc. | Modulo address generator with precomputed comparison and correction terms |
US6047364A (en) * | 1997-08-27 | 2000-04-04 | Lucent Technologies Inc. | True modulo addressing generator |
US5983333A (en) * | 1997-08-27 | 1999-11-09 | Lucent Technologies Inc. | High speed module address generator |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
WO2001090888A1 (en) * | 2000-05-23 | 2001-11-29 | Theis Jean Paul | A data processing system having an address generation unit with hardwired multidimensional memory indexing support |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130868A (en) * | 1977-04-12 | 1978-12-19 | International Business Machines Corporation | Independently controllable multiple address registers for a data processor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5852265B2 (ja) * | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
JPS54127653A (en) * | 1978-03-28 | 1979-10-03 | Toshiba Corp | Data processor |
US4365292A (en) * | 1979-11-26 | 1982-12-21 | Burroughs Corporation | Array processor architecture connection network |
US4370732A (en) * | 1980-09-15 | 1983-01-25 | Ibm Corporation | Skewed matrix address generator |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
JPS5965377A (ja) * | 1982-10-05 | 1984-04-13 | Nippon Telegr & Teleph Corp <Ntt> | アドレス制御方法およびその装置 |
EP0124799B1 (de) * | 1983-04-13 | 1990-10-31 | Nec Corporation | Speicherzugriffseinrichtung in einem Datenverarbeitungssystem |
-
1984
- 1984-08-15 US US06/641,098 patent/US4704680A/en not_active Expired - Lifetime
-
1985
- 1985-02-25 GB GB08504822A patent/GB2163280B/en not_active Expired
- 1985-03-04 DE DE19853507584 patent/DE3507584A1/de active Granted
- 1985-03-11 NL NL8500683A patent/NL8500683A/nl not_active Application Discontinuation
- 1985-03-12 FR FR8503613A patent/FR2569288B1/fr not_active Expired - Lifetime
- 1985-03-13 CA CA000476418A patent/CA1223664A/en not_active Expired
- 1985-08-13 JP JP60178485A patent/JPS6160133A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4130868A (en) * | 1977-04-12 | 1978-12-19 | International Business Machines Corporation | Independently controllable multiple address registers for a data processor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3619036A1 (de) * | 1986-06-06 | 1987-12-10 | Wajda Eligiusz Dipl Ing | Verfahren zur steuerung von datenverarbeitenden einrichtungen |
Also Published As
Publication number | Publication date |
---|---|
JPS6160133A (ja) | 1986-03-27 |
NL8500683A (nl) | 1986-03-03 |
JPH0444970B2 (de) | 1992-07-23 |
GB2163280B (en) | 1988-06-08 |
DE3507584C2 (de) | 1988-10-20 |
FR2569288B1 (fr) | 1990-12-14 |
CA1223664A (en) | 1987-06-30 |
GB8504822D0 (en) | 1985-03-27 |
US4704680A (en) | 1987-11-03 |
FR2569288A1 (fr) | 1986-02-21 |
GB2163280A (en) | 1986-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE3507584A1 (de) | Adressenberechnungssystem fuer digitale verarbeitungseinrichtungen | |
DE3882772T2 (de) | Vektorprozessor angepasst zum Sortieren von Vektordaten. | |
DE2321112C2 (de) | Signalverarbeitungsanlage | |
DE1499193A1 (de) | Datenverarbeitungsanlage | |
DE2060635A1 (de) | Rechner-Steuergeraet sowie Verfahren und Steuerpult zum Programmieren desselben | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE69119930T2 (de) | Vorrichtung zur Programmierung einer speicherprogrammierbaren Steuerung und Verfahren zum Gebrauch der Ablaufplantechnik | |
DE3856139T2 (de) | Mikroprozessor | |
DE69925123T2 (de) | Datenberechnungvorrichtung | |
DE3418624C2 (de) | ||
DE3314137C2 (de) | ||
DE69112434T2 (de) | Kurvengenerator. | |
DE3507605A1 (de) | Schleifensteuersystem fuer digitale verarbeitungseinrichtungen | |
DE69622608T2 (de) | Informationsprozessor | |
EP0347970B1 (de) | Verfahren zum Prüfen eines Festwertspeichers und Anordnung zur Durchführung des Verfahrens | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE69030772T2 (de) | Dividierer zur hochgeschwindigen Ausführung einer arithmetischen Operation | |
DE19531036C2 (de) | Analog/Digital-Wandler | |
EP0265555A1 (de) | Verfahren und Schaltungsanordnung zur Addition von Gleitkommazahlen | |
DE69020430T2 (de) | Steueranordnung zur Aenderung eines Microbefehls. | |
DE3104256C2 (de) | ||
DE1283895B (de) | Codeumsetzer zum Umsetzen eines beliebigen Eingangscode in einen beliebigen Ausgangscode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: ST. CLAIR INTELLECTUAL PROPERTY CONSULTANTS, INC., |
|
8328 | Change in the person/name/address of the agent |
Free format text: WEICKMANN & WEICKMANN, 81679 MUENCHEN |