DE1806464A1 - Adressengenerator fuer einen Digitalrechner - Google Patents

Adressengenerator fuer einen Digitalrechner

Info

Publication number
DE1806464A1
DE1806464A1 DE19681806464 DE1806464A DE1806464A1 DE 1806464 A1 DE1806464 A1 DE 1806464A1 DE 19681806464 DE19681806464 DE 19681806464 DE 1806464 A DE1806464 A DE 1806464A DE 1806464 A1 DE1806464 A1 DE 1806464A1
Authority
DE
Germany
Prior art keywords
address
bits
operand
addition
value
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.)
Pending
Application number
DE19681806464
Other languages
English (en)
Inventor
Smith Richard Deming
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.)
RCA Corp
Original Assignee
RCA Corp
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 RCA Corp filed Critical RCA Corp
Publication of DE1806464A1 publication Critical patent/DE1806464A1/de
Pending legal-status Critical Current

Links

Classifications

    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

u 6 4 6
6692-68/Dr.v.ß/Bru
RCA 58,427
U.S.Ser.No. 746,513
filed: July 22,1968
Radio Corporation of America, New York, N.Y. (V.St.A.)
Adressengenerator für einen Digitalrechner
Die vorliegende Erfindung betrifft einen Adressengenerator für einen Digitalrechner, der einen Speicher und einen Programmplatzzähler zur Aufnahme einer solchen Anzahl von Adressenbits, wie es zur Adressierung eines beliebigen Speicherplatzes aus einer Anzahl von Speicherplätzen im Speicher erforderlich ist, enthält, mit einem Adressenänderungsregister zur Aufnahme von Adressenänderungsinformation, die aus einem statisierten Befehl gewonnen wurde, und einer Addier-Subtrahier-Einheit, die zwei Operandeneingänge, einen Additions-Subtraktions-Steuereingang und einen Adressenausgang für eine neue Adresse aufweist.
Bei einem Digitalrechner muss jeder der vielen Wortspeicherplätze im wahlfrei zugreifbaren Speicher des Rechners erreichbar sein. Bei Speichern mit einer grossen Anzahl von Wortspeicherplätzen ist für den Zugriff eines beliebigen Speicherplatzes eine Adresse aus einer entsprechend grossen Anzahl von Binärziffern erforderlich. Für einen Speicher mit 1024 Wortspeicherplätaen ist z.B. eine Adresse aus zehn Binärziffern nötig. 1 048 576 Speicherplätze können mit einer aus zwanzig Bits bestehenden Adresse adressiert werden, während für 134 21772i Speicherplätze eine Adresse aus 27 Bits benötigt wird. Die Anzahl der adressierbaren WortSpeicherplätze ist immer gleich der
909887/1384
ORIGINAL INSPECTED
der Anzahl der Adressenbits entsprechenden Potenz von zwei.
Bei Betrieb eines Digitalrechners ist es üblich, aufeinanderfolgende Befehle des Programms in aufeinanderfolgenden Wortspeicherplätzen des Speichers zu speichern. Die Reihenfolge der Durchführung der Befehle hängt jedoch häufig von den im Rechner erhaltenen Resultaten ab, die an Entscheidungs- oder Verzweigungspunkten des Programmes den folgenden Ablauf der durchzuführenden Befehle bestimmen. Programme werden gewöhnlich so geschrieben, daß nach Möglichkeit benachbarte Speicherplätze verwendet werden können. Die Durchführung eines Programmes kann jedoch den Zugriff zu einem Wortspeicherplatz an irgendeinem beliebigen Ort im Speicher notwendig machen.
Die in einem WortpLatz des Speichers gespeicherten Befehle enthalten Adressenteile, die zum Zugriff von Daten oder des als nächstes durchzuführenden Befehles dienen. Diese Information kann in einem Programmadressenzähler gespeichert werden. Wenn der Speicher viele Wortspeicherplätae enthält, wird der zum Adressieren eines anderen V/ort Speicherplatzes erforderliche Teil des Befehls übermässig lang. So sind z.B. 27 Bits in einem Befehlswort erforderlich, um ein beliebiges anderes Wort in einem Speicher, der 134 217 728 Speicherplätze enthält, adressieren zu können.
Es ist bekannt, eine Anzahl von Grund- oder Basisadresse nregistern (wie dem Programmzähler) in einem Rechner vorzusehen, die zur Aufnahme von Adressenbits dienen, die in einem Adressengenerator mit anderen Adressen- (oder Adressenänderungs-)bits kombiniert werden können, welche von einer Information gewonnen wurden, welche in einem abgerufenen oder statisierten Befehl, d.h. in einem Befehl, der aus dem Speicher geholt wurde und beim Adressengenerator eingetroffen ist, enthalten ist. Der Adressengenerator spricht hierauf mit dem Erzeugen einer vollständigen Adresse an, wie sie erforderlich ist, um den Speicher beim Holen des nächsten Befehles zu adressieren. Bei solchen bekannten Anordnungen ist ein zusätzlicher apparativer Aufwand für die Basisregister und deren Steuerung erforderlich und die Programmierung des Rech-
90 9 887/1384
ner wird kompliziert, da die Einrichtungen zur Adressenerzeugung, die normalerweise einen Addierer enthalten, der sowohl die Adressenbits als auch die Adressenänderungsbits aufnimmt und verarbeitet, gesteuert werden Bussen.
Im Vergleich zu den oben erwähnten bekannten Adressengeneratoren ist bei de« Adressengenerator gemäss der Erfindung die Zuordnung Ton nur relativ wenig Adressenänderungsbits in eines Befehl erforderlich, während, bezogen auf den Inhalt des Programmzählers, eine genaue Adressierung jeder relativ benachbarten Adres se im Speicher, einer Anzahl weiter entfernter Adressen und relativ wenigen der am weitesten entfernten Adressen im Speicher möglich ist.
Bei eine» bevorzugten AusfUhrungsbeispiel der Erfindung weist das Adressenänderungsregister Teile zur Aufnahme von Positionsbits, Vertbits sowie einem Vorzeichenbit auf, die alle aus dem erwähnten statisierten Befehl gewonnen werden. Der Adressen-generator enthält ferner eine den Inhalt des Positionsbitteiles des Adressenänderungsregisters verwertende Anordnung, die eine Anzahl von höherstelügen Bits vom Programmplatzzähler zum ersten Operandeneingang der Additions-Subtraktions-Einheit überträgt; die Anzahl dieser höherstelligen Bits wird dabei durch die Positionsbits bestinst. Die letzterwähnte Anordnung bewirkt ferner die übertragung des Inhaltes des Wertbitteiles des Adressenänderungsregisters zu* zweiten Operandeneingang der Additions-Subtraktions-Einheit in einer "Bitrangordnungsstelle, die ebenfalls durch die Positionsbits bestimmt wird. Schließlich ist eine Anordnung vorgesehen, um den Inhalt des Vorzeichenteils des Adressenänderungsregisters zum Steuereingang der Additions-Subtraktions-Einheit zu fibertragen,um eine Addition oder Subtraktion der Operanden und damit die Erzeugung einer neuen (vollständigen) Adresse für den Speicher zu bewirken, z.B. um den nächsten Befehl aus dem Speicher für die Verwendung im Rechner herauszulesen.
909887/ 1 384
Die Erfindung wird im folgenden anhand der Zeichnung näher erläutert, deren einzige Figur ein Schaltbild eines Ausführungsbeispiels eines Adressengenerators gemäss der Erfindung zeigt.
In der Zeichnung ist eine Anordnung zum Erzeugen einer aus 6 Bits bestehenden Adresse für einen beliebigen von 6*5 Spei» cherplätzen dargestellt. Die Anordnung enthält einen Programmzäh» ler oder Programmplatzzähler 10, der einen üblichen Teil eines Rechners darstellt und bei dem vorliegenden Beispiel aus einem sechsstelligen Binärzähler besteht. Der Inhalt des Programmsähler 10 wird durch einen Adressengenerator verwertet, der ein Adressenänderungsregister 12 mit einem Teil für zwei Positionsbits P, einen Teil für zwei Wertebits V und einen Teil für ein Vorzeichenbit S enthält. Das Ausgangssignal des Adressengeneratops wird durch ein sechsstelliges Neue-Adresse-Register 14 geliefert.
Bei der in der Zeichnung zur Erläuterung der Erfindung dargestellten Anordnung enthalten die Adressen 6 Bits zur Adressierung eines beliebigen von 64 verschiedenen Speicherplätzen. Der dargestellte Adressengenerator arbeitet mit 5 Adressenänderungsbits, die von einem statisierten Befehl gewonnen werden. Zur Erzeugung der folgenden , aus 6 Bits bestehenden neuen Adresse werden 5 Adressenänderungsbits verwendet. Das Adressenänderung! register ist nur deshalb fast so groß wie der Programmzähler und das Neue-Adresse-Register 14, da der zu adressierende Speicher nur 64 Speicherplätze aufweist. Wenn die Erfindung in der Praxis zur Adressierung eines grossen Speichers verwendet wird, enthalten der Programmzähler und das Adressenregister 14 für die nächste Adresse eine grosse Anzahl von Bits, z.B. 27 Bits und das Adressenänderungsregister kann dann wesentlich weniger Bits, z.B. 16 Bits, enthalten. In diesem Falle kann das Adressenänderun|sregister dann in einen Positionsteil von 4 Bits, einen Wertteil von 11 Bits und einen Vorzeichenteil von einem Bit unterteilt sein. Der in der Zeichnung nur in einfacher Form dargestellte Adressengenerator hat also besonders dann erhebliche Vorzüge,
909887/1384
wenn er für die Adressierung von Speichern mit einer grossen Anzahl von Speicherplätzen verwendet wird.
Der dargestellte Speicheradressengenerator enthält eine Additions-Subtraktions-Einheit 18 mit einem ersten Operanden-Eingang , der mit dem Ausgang eines ersten Operandenregisters 20 verbunden ist und einem zweiten Operandeneingang, der mit einem zweiten Operandenregister 22 verbunden ist. Die Additions-Subtraktions-Einheit 18 weist ferner einen Steuereingang 24 für ein Steuersignal auf, das bestimmt, ob die Einheit 18 eine Additions- oder Subtraktionsoperation mit den beiden Operanden durchführt. Die Einheit 18 führt normalerweise eine Addition durch, sie subtrahiert jedoch, wenn ihrem Eingang 21I ein Signal des Wertes 1 vom Vorzeichenteil S des Registers 12 zugeführt wird. Die von der Addition-Subtraktion-Einheit 18 erzeugte Summe oder Differenz wird dem Register 14 für die nächste Adresse zur Verwendung im zugehörigen Rechner zugeführt.
Der erste Operand, der dem ersten Operandenregister 20 zugeführt wird, besteht aus ausgewählten Bits vom Programmzähler, die durch den Inhalt des Stellenteiles P des Adressenänderungsregisters bestimmt werden. Der dem zweiten Operandenregister 22 zugeführte Operand enthält den Inhalt des Werteteiles V des Adressenänderungsregisters 12, der in Bitstellen übertragen wird, welche durch den Inhalt des Stellenteiles P bestimmt werden. Zusätzlich wird, wenn die Stellenbits nicht beide den Wert 1 haben, ein Bit des Wertes 1 in eine Stelle des zweiten Operandenregisters 22 übertragen, die eine Bitstelle niedriger ist .als die, in die die Wertebits übertragen werden. Wenn jedoch die Positionsbits beide den Wert 1 haben, werden die Wertebits um 1 erhöht. Das Vorzeichenbit S bestimmt, ob die Einheit 18 #öa» eine Addition oder Subtraktion durchführt. Wenn alle Bits im Adressenänderungsregister den Wert 1 haben (einschließlich des eine Subtraktion fordernden Vorzeichenbits) wird der ganze Inhalt des zweiten Operandenregisters, zu Null gemacht.
909887/ 1 384
Die oben beschriebene Konstruktion und Arbeitsweise des dargestellten Adressengenerators ist in der folgenden Tabelle A dargestellt, in der der erste un d der zweite Operand in Form von Bits vom Progranunzähler 10 und dem Adressenänderungsregister 12 aufgeführt sind.
909887/1384
P1P0 = 00: 1 = 1 r 1 = TAB + O -7- L ε O A O 1806464 fr
Operand 2 = 2 P1P0 s 11 und S : 2 = E L C3 O 1
Operand Operand C c' V1 C2 O C1 1
Wenn Adresse Operand Ο= •c" O A3 V1
P1P0 = 01: 1 = Adresse + O O A2 A1 O
Operand 2 = A= C3 O
Operand = V0 C2 O O
Wenn Adresse c5 A3 V0 1
P1P0 = 10: 1 = + O O A2 1 O
Operand 2 = A* O O
Operand - s (+? V0 O O O
Wenn Adresse P1P0 = 11, und S : C5 C* 1 1 O
Operand + O V1 A3 1 O O
Operand + O A* O
AS O O O O O
Wenn Adresse = (-) C* O O O O O
V1 O O O O
- O O O O
A*
O
Wenn C* O
O O
a"
909887/1384
Im folgenden sollen nun die Logikschaltungen beschrieben werden, die zur Durchführung der in der obigen Tabelle A aufgeführten Funktionen dienen. Jedes Rechteck in den Registern bedeutet eine bistabile Stufe mit einem Setzeingang und einem Rücksetzeingang (oben) und einem 1- bzw. 0-Ausgang (unten)* Jede bistabile Stufe bildet einen Speicherplatz für eine einzige Binärziffer.
Die Ausgangssignale der bistabilen Stufen im Positionsteil P des Adressenänderungsregisters 12 werden einem Decoder zugeführt, der vier Ausgänge aufweist, die mit 00, 01, 10 und 11 bezeichnet sind und von denen jeweils einer gleichzeitig in Abhängigkeit vom Inhalt der bistabilen Stufen des Positionsteiles P erregt wird.
Die Ausgänge der bistabilen Stufen C^ und C im Programm zähler 10 sind direkt mit den Eingängen der bistabilen Stufen 2·* und 2 im ersten Operandenregister gekoppelt. Der Inhalt der bistabilen Stufe C^ im Zähler 10 wird nur dann der bistabilen Stufe 23 im ersten Operandenregister 20 zugeführt, wenn der Ausgang 11 des Decoders 30 nicht erregt ist. Hierfür sind ein Inverter 31 und ein UND-Gatter 32 vorgesehen. Das Ausgangssignal der bistabilen C2 des Zählers 10 wird der bistabilen Stufe 22 des ersten Operandenregisters 20 nur dann zugeführt, wenn das Ausgangssignal der bistabilen Stufe P des Positionsteiles des Registers 12 den Wert 0 hat und dadurch ein UND-Gatter 33 aufgetastet wird. Der Inhalt der bistabilen Stufe C1 des Zählers wird der bistabilen Stufe 21 des ersten Operandenregisters 20 über ein UND-Gatter 34 nur dann zugeführt, wenn der Ausgang 00 des Decoders 30 erregt ist. Der Inhalt der bistabilen Stufe C des Programmzählers 10 wird vom Adressengenerator nicht verwendet. Die bistabile Stufe
enthält immer eine Null.
det. Die bistabile Stufe 2 des ersten Operandenregisters 20
Wenn die Positionsbits P1Jp0 beide 0 sind, bewirkt das Ausgangssignal 00 des Decoders 30 auf der Leitung 35, daß in der bistabilen Stufe 2 des zweiten Operandenregisters 22
909887/1384
eine 1 gespeichert wird. Wenn der Decoder 30 entsprechend den Positionsbits das Ausgangssignal 01 liefert, wird eine 1 über ein ODER-Gatter 36 in die bistabile Stufe 21 des zweiten Operandenregisters eingespeichert. Wenn der Decoder 30 entsprechend den Positionsbits das Ausgangssignal10 liefert, wird eine 1 über ein ODER-Gatter 38 in der bistabilen Stufe 22 des zweiten Operandenregisters gespeichert. Wenn die Positionsbits P das Ausgangssignal 00 am Decoder 30 entstehen lassen, wird ein Gatter 40 aufgetastet, das dann den Inhalt der Wert-Stufe V0 über das ODER-Gatter 36 zur bistabilen Stufe 21 des zweiten Operan- · denregisters durchlässt und ein UND-Gatter 42 wird aufgetastet, das den Inhalt der Wert-Stufe V1 über das ODER-Gatter 38 zur bistabilen Stufe 2 des zweiten Operandenregisters durchlässt.
Wenn der Decoder 30 entsprechend den Werten der Positionsbits das Ausgangssignal 01 liefert, wird ein UND-Gatter 44 aufgetastet, das dann den Inhalt der Wert-Stufe V über das ODER-Gatter 38 zur Stufe 2 des zweiten Operandenregisters durchlässt und ein UND-Gatter 46 wird aufgetastet, das den Inhalt der Wert-Stufe V1 über ein ODER-Gatter 48 und über die 23-Bitstelle in einem Zähler 50 zur Stufe 2^ des zweiten Operandenregisters durchlässt.
Der Zähler 50 enthält bistabile Stufen für drei Bits, die mit 2^, 2 und 2^ bezeichnet sind. Der Inhalt des Zählers kann um eine Einheit erhöht werden, indem man ein Signal des Wertes 1 einem Zähleingang I desZählers 50 zuführt. Die 2^-Stufe des Zählers 50 hat keinen äusseren Eingang, sondern stellt einen Speicherplatz für ein Übertragsbit dar, das beim Weiterschalten des Zählers entstehen kann.
Wenn die Positionsbits 10 oder 11 sind, tastet der 1-Ausgang der Positions-Stufe P1 ein UND-Gatter 52 auf, um den Inhalt der Wert-Stufe V0 über das ODER-Gatter 48 und die Stufe 25 des Zählers 50 zur Stufe 2^ des zweiten Operandenregisters 22 durchzulassen. Das 1-Ausgangssignal der Positionsstufe P1 tastet ausserdem ein UND-Gatter 54 auf, das den Inhalt der Wertstufe V1
90 9887/1384
über die 2 -Stufe des Zählers 50 zur Stufe 2^ des zweiten Operandenregisters durchlässt. Unter diesen Bedingungen werden die UND-Gatter 52 und 54 unverändert auch durch das invertierte Au3-' gangssignal eines UND-Gatters 56 durchlaßbereit gemacht. Das UND-Gatter 56 spricht nur dann an, wenn beide PositionsstuSen P1, P Einsen enthalten, beide Wertstufen V1 , V0 Einsen enthalten und die Vorzeichenstufe S eine Eins enthält, was einem Minuszeichen bzw. einer Subtraktion entspricht.
Wenn die Positionsbits P1, P0 gleich 11 sind (entsprechend einem Ausgangssignal 11 des Decoders 30) und die Wert-
1 0
its V , V und das Vorzeichenbit S nicht alle den Wert 1 haben (so daß ein Ausgangssignal vom invertierenden UND-Gatter 56 auftritt) spricht ein UND-Gatter 58 an, wodurch der Inhalt des Zählers um eine Einheit erhöht wird.
Aus der Tabelle A ist ersichtlich, daß der erste Operand der der Additions-Subtraktions-Einheit zugeführt wird, aus einer wechselnden Zahl von Bits hoher Stellen vom Programmzähler 10 besteht. Abhängig von den Positionsbit P besteht der erste Operand aus 5, 4, 3 oder 2 der Bits der höchsten Stellen vom Programmzähler 10 gefolgt von Nullen. Der erste Operand stellt daher die Adresse eines Wortplatzes dar, die sich am Anfang eines Blocks von Adressen befindet, der die Adresse im Programmzähler
mfasst. Die neuen Adressen werden dadurch gebildet, daß ein zweiter Operand zu einem ersten Operanden, der die erste Adresse eines Blocks von Adressen darstellt, addiert oder von diesen öubtrahiert wird.
In der folgenden Tabelle B sind die zweiten Operanden aufgeführt, die der Additions-Subtraktions-Einheit l8 bei verschiedenen Kombinationen von Positionsbits und Wertbits zugeführt werden. Jeder zweite Operand ist in Form sowohl der aus 6 Bits bestehenden Binärzahl als auch der entsprechenden Dezimalzahl angegeben.
909887/138 4
COPY
180646
-11- LE-B ODerand
TABEL ZWEITER Dezimal
POSITIONS-Bits WERT-Bits Binär 1
000 001 3
OO 00 000 011 5
OO 01 000 101 7
OO 10 000 111 2
OO 11 000 010 6
Ol 00 000 110 10 '
Ol 01 001 010 14
Ol 10 001 110 4
Ol 11 000 100 12
10 00 001 100 20
10 01 010 100 28
10 10 011 100 8
10 11 001 000 16
11 OO 010 000 24
11 01 011 000 32»
11 10 100 00O1 O2
11 11 000 0002
11 11
1 Wenn Vorzeichen ,bit = (+)
2 Wenn Vorzeichen bit
909887/ 1 384 COPY
ORIGINAL INSPECTED
TABE OO LLE C OPERAND
POSITIONS-Bits WERT-Bits 00 ZWEITER Dezimal
-12- 01 Binär 1
OO 00 000 001 CVl
Die in der Tabelle B enthaltende Information ist in der Ol 10 000 010 3
folgenden Tabelle C nach steigenden Ordnungszahlen geordnet 00 01 000 011 4
dargestellt. 10 11 000 100 5
00 00 000 101 6
01 10 000 110 7
00 01 000 111 8
11 11 001 000 10
Ol 01 001 010 12
10 10 001 100 14
01 10 001 110 16
11 11 010 000 20
10 11 010 100 24
11 11 011 000 28
10 ■■ (+) 011 100 32 >·
11 = (-) 100 00O1 O2
11 000 0002
1 Wenn Vorzeichen bit =
2 Wenn Vorzeichen^bit =
909887/ 1384
Aus Tabelle C ist ersichtlich, daß der zweite Operand irgendeinen Deziraalwert zwischen O und 8, jeden zweiten Dezimalwert zwischen 9 und 16 und jeden vierten Dezimalwert zwischen 17 und 32 anzunehmen vermag. Die die angegebenen Werte aufweisenden Operanden werden zum ersten Operanden addiert oder von diesem subtrahiert, welcher die erste Adresse in dem Block von Adressen darstellt, die die Adresse im Programmzähler 10 umfaßt. Die neue 'Adresse, die die Additions-Subtraktions-Einheit zu erzeugen vermag, kann also irgendeine Adresse bis zu 8 Stellen höher oder niedriger als die erste Operandenadresse sein. Ferner kann die neue Adresse 10, 12, 14 oder 16 Stellen über oder unter der ersten Operandenadresse liegen. Weiterhin kann eine neue Adresse erzeugt werden, die 20, 24, 28 oder 32 Plätze oberhalb oder unterhalb der ersten Operandenadresse liegt.
Der vorliegende Adressengenerator erlaubt also eine wirtschaftliche Adressierung aller benachbarten Speicherplätze, einer relativ grossen Anzahl von etwas weiter entfernten Speicherplätze und einer etwas geringeren Anzahl der am weitesten entfernten Speicherplätze. Er erfüllt also die Forderungen des Programmierers, alle benachbarten Speicherplätze adressieren zu können und in der Lage zu sein, mit unterschiedlicher Auswahlmöglichkeit auf entferntere Speicherplätze an beliebigen Stellen des Speichers springen zu können. Die Vorteile die hierdurch
rreicht werden sind besonders bei Speicherwerken mit sehr vielen Speicherplätzen erheblich.
Wie an den Enden der Tabellen B und C aufgeführt ist, bewirkt ein Minuszeichenbit in Kombination mit Positionsbits 1,1 und Wertbits 1,1 die Erzeugung eines zweiten Operanden mit dem Binärwert 000 000 entsprechend dem Dezimalwert 0. Dies erfolgt bei der dargestellten Ausführungsform durch das invertierende UND-Gatter 56, welches die Gatter 58, 52 und 54 sperrt und die Übertragung von Einsen durch diese Gatter zum zweiten Operandenegister 22 verhindert. Die Möglichkeit, einen zweiten Operanden
909887/ 1 384
des Wertes O zu erzeugen, erlaubt die Erzeugung einer Adresse, die den Anfang eines Blockes von Adressen bildet, welcher die Adresse im Programmzähler enthält. Wenn der zweite Operand den Wert Null hat, ist die erzeugte Adresse die gleiche wie sie im ersten Operandenregister 20 enthalten ist und entspricht damit den Bits der höheren Stellen im Programmzähler IO gefolgt von Nullen. Der Adressengenerator kann selbstverständlich auch anders aufgebaut sein und den Inhalt des ersten Operandenregisters 20 direkt verwenden,wenn dies erforderlich ist.
Die Erfindung ist selbstverständlich nicht auf den in der Zeichnung dargestellten logischen Aufbau zur Durchführung der beschriebenen Operationen beschränkt.
909887/1384

Claims (5)

Patentansprüche
1.) Adressengenerator für einen Digitalrechner, der einen Speicher und einen Programmplatzzähler zur Aufnahme einer solchen Anzahl von Adressenbits wie es zur Adressierung eines beliebigen Speicherplatzes aus einer Anzahl von Speicherplätzen im Speicher erforderlich ist, enthält, mit einem Adressenänderung register zur Aufnahme von Adressenänderungsinformation, die aus einem statisierten Befehl gewonnen wurde, und einer Addier-Subtrahiereinheit, die zwei Operandeneingänge, einen Additions-Subtraktions-Steuereingang und einen Adressen-Ausgang für eine neue Adresse aufweist, dadurch gekennzeichnet, daß das Adressenänderungsregister (12) Teile zur Aufnahme von Positionsbits (P) , Wertbits (V) und einem Vorzeichenbit (S) der vom Befehl gewonnenen Information aufweist, daß eine den Inhalt des Positionsbitteiles (P , P) des Adressenänderungsregisters (12) verwertende Anordnung (30, 32 bis 34, 40, 42, 44, 46, 52,54, 58) vorgesehen ist, die eine durch diesen bestimmte Anzahl von höherstelligen Bits vom Programmplatzzähler (10) zum ersten Operandeneingang der Additions-Subtraktions-Einheit (18) und dem Inhalt des Wertbitteiles (V1, V ) des Adressenänderungsregisters zum zweiten Operandeneingang der Additions-Subtraktions-Einheit in einer durch die Positionsbits bestimmten Bitstellenrangordnung überträgt, und daß eine Anordnung (24) vorgesehen ist, um den Inhalt des Vorzeichenteils (S) des Adressenänderungsregisters zum Steuereingang der Additions-Subtraktions-Einheit zu übertragen und dadurch eine Addition oder Subtraktion der Operanden und die Erzeugung einer neuen Adresse zu bewirken, wobei eine relativ kleine Anzahl von Adressenänderungsbits zur Erzeugung einex* neuen Adresse dienen, die eine beliebige von vielen numerisch gesehen relativ benachbarten Adressen oder eine von einer Anzahl weiter entfernten Adressen oder eine von/wenigen
T*f* T fit d V
am weitesten entfernten Adressen sein kann.
2.) Adressengenerator nach Anspruch 1, gekennzeichnet durch eine vom Inhalt des Positionsbitteiles des Adressenänderungsregisters (12) gesteuerte Anordnung zur bedingten übertragung eines Bits des Wertes 1 in eine Bitstelle des zweiten Operandeneingangs der Additions-Subtraktions-Einheit (18), die stellenmässig unterhalb der Wertbits liegt.
3.) Adressengenerator nach Anspruch 1, gekennzeichnet durch eine vom Inhalt des Positionsbitteiles des Adressenänderungsregisters (12) gesteuerte Anordnung zur bedingten Erhöhung der zum zweiten Operandeneingang der Additions-Subtraktions-Einheit (18) übertragenen Wertbits (V , V ) um eine Einheit.
k.) Adressengenerator nach Anspruch 1, gekennzeichnet durch eine Anordnung (56),die auf bestimmte Bitkombination im Adressenänderungsregister (12) anspricht und bewirkt, daß die Additions-Subtraktions-Einheit (18) eine neue Adresse erzeugt, die gleich dem ersten Operandeneingang ist.
5.) Adressengenerator nach Anspruch 1, gekennzeichnet durch eine Anordnung. (56)9 die anspricht, wenn der Inhalt des Positionsteils und des Werteteils des Adressenänderungsregisters (12) nur aus Einsen besteht und der Vorzeichenteil (S) ein Subtraktionsbit enthält und'dann die übertragung der Einsen zum anderen Operandeneingang der Additions-Subtraktions-Einheit sperrt.
'9887/1384
DE19681806464 1968-07-22 1968-10-31 Adressengenerator fuer einen Digitalrechner Pending DE1806464A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US74651368A 1968-07-22 1968-07-22

Publications (1)

Publication Number Publication Date
DE1806464A1 true DE1806464A1 (de) 1970-02-12

Family

ID=25001167

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19681806464 Pending DE1806464A1 (de) 1968-07-22 1968-10-31 Adressengenerator fuer einen Digitalrechner

Country Status (6)

Country Link
US (1) US3530439A (de)
JP (1) JPS4843058B1 (de)
DE (1) DE1806464A1 (de)
FR (1) FR1604079A (de)
GB (1) GB1270311A (de)
RO (1) RO58267A (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3634883A (en) * 1969-11-12 1972-01-11 Honeywell Inc Microinstruction address modification and branch system
US3618031A (en) * 1970-06-29 1971-11-02 Honeywell Inf Systems Data communication system
FR2134805A5 (de) * 1971-04-21 1972-12-08 Cii
US3838399A (en) * 1973-09-21 1974-09-24 Gte Automatic Electric Lab Inc Even/odd repeat address counter
JPS5128728A (de) * 1974-09-04 1976-03-11 Hitachi Ltd
JPS6161371U (de) * 1984-09-28 1986-04-25
JPS6449767U (de) * 1987-09-24 1989-03-28

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3160858A (en) * 1961-09-29 1964-12-08 Ibm Control system for computer
DE1160222B (de) * 1962-01-04 1963-12-27 Siemens Ag Schaltungsanordnung zur Adressenmodifikation bei einer programmgesteuerten digitalen Rechenmaschine
US3277446A (en) * 1962-07-05 1966-10-04 Singer Inc H R B Address modification system and novel parallel to serial translator therefor
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement
US3359542A (en) * 1965-04-19 1967-12-19 Burroughs Corp Variable length address compouter

Also Published As

Publication number Publication date
JPS4843058B1 (de) 1973-12-17
FR1604079A (de) 1971-07-05
RO58267A (de) 1975-09-15
US3530439A (en) 1970-09-22
GB1270311A (en) 1972-04-12

Similar Documents

Publication Publication Date Title
DE2755273C2 (de)
DE2751097C2 (de) Schaltungsanordnung zum Erzeugen eines Kennsignals
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE2339636A1 (de) Programmsteuereinrichtung
DE2230103A1 (de) Adressiereinrichtung fuer einen speicher
DE2725396C3 (de)
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2019444A1 (de) Datenverarbeitungsanlage
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2908691A1 (de) Digitalrechner
DE3043100C2 (de)
DE2527062C3 (de) Anpassungsfähiger Adressendecodierer
DE2926322A1 (de) Speicher-subsystem
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE2134816A1 (de) Einrichtung zur adressenuebersetzung
DE2117581B2 (de) Einrichtung zur Adressenprüfung
DE3121046C2 (de)
DE1806464A1 (de) Adressengenerator fuer einen Digitalrechner
DE2245284A1 (de) Datenverarbeitungsanlage
DE2164718A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/Ausgabe-Einheiten mittels einer Zentraleinheit
DE3149926A1 (de) Programmierbare vergleichsschaltung
DE3341339C2 (de) Befehlsfolgegenerator
DE1283895B (de) Codeumsetzer zum Umsetzen eines beliebigen Eingangscode in einen beliebigen Ausgangscode
DE2150292A1 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit ueberlagerter Ausfuehrung und Entnahme von Befehlen