DE1806464A1 - Adressengenerator fuer einen Digitalrechner - Google Patents
Adressengenerator fuer einen DigitalrechnerInfo
- 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
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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address 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
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 | v° | ||||||||
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.
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.
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)
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
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)
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)
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 |
-
1968
- 1968-07-22 US US746513A patent/US3530439A/en not_active Expired - Lifetime
- 1968-10-31 DE DE19681806464 patent/DE1806464A1/de active Pending
- 1968-12-21 RO RO58602A patent/RO58267A/ro unknown
- 1968-12-31 FR FR1604079D patent/FR1604079A/fr not_active Expired
-
1969
- 1969-07-16 GB GB35845/69A patent/GB1270311A/en not_active Expired
- 1969-07-21 JP JP44057579A patent/JPS4843058B1/ja active Pending
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 |