-
Verfahren zur Adressierung eines Speichers Die Erfindung betrifft
ein Verfahren zur Adressierung eines Speichers, bei dem den Zeichen einer Information
aufeinanderfolgende Adressen in mehreren Blöcken des Speichers zugeordnet sind und
gleichzeitig mehrere Zeichen gespeichert oder entnommen werden. Es ist bekannt,
den Hauptspeicher einer Datenverarbeitungsanlage in Blöcke aufzuteilen und aufeinanderfolgende
Adressen verschiedenen Blöcken zuzuteilen. Dies kann z. B. geschehen, um die Entnahme
von Informationen verschachtelt durchzuführen (BRD-AS 1 194 179). Es sind auch Anlagen
bekannt, bei denen jedem Zeichen eine Adresse im Speicher zugeordnet ist und die
die gleichzeitige Entnahme oder Eintragung mehrerer Zeichen aus dem Speicher gestatten.
Besteht ein Wort z. B. aus zwei Zeichen, werden die Wörter durch geradzahlige Zeichenadressen
adressiert. Beide Zeichen liegen dann an den gleichen Stellen zweier Speicherblöcke,
von denen der erste die Speicherplätze mit den geradzahligen und der zweite die
mit den ungeradzahligen Zeichenadressen im Wort enthält. Es kann aber auch
eine
Information, die aus zwei Zeichen besteht, so im Speicher plaziert sein, daß das
erste Zeichen auf einem Speicherplatz mit ungerader Zeichenadresse und das zweite
auf einem Speicherplatz mit der darauffolgenden geraden Zeichenadresse steht, also
zwei verschiedenen Wörtern angehört. In diesem Fall ist es bekannt, daB man die
Adresse des Wortes" indem das erste Zeichen steht, in die Adressenregister der beiden
zugehörigen Blöcke einträgt, das Wort in das Pufferregister des Speichers übernimmt
und dos gewünschte Zeichen aus dem Speicherwort auswählt und im nächsten Speicherzyklus
die Adresse des Speicherwortes, in dem das zweite Zeichen steht, in die Adressenregister
der beiden zugehörigen Speicherblöcke einträgt, das Speicherwort in das Pufferregister
übernimmt und das gewünschte zweite Zeichen auswählt. Um eine solche Information,
deren Zeichen zwei Wörtern angehören, 2u lesen oder einzuschreiben, sind
daher zwei Speicherzyklen nötig.
-
Wenn ein Wort z. B. aus vier Zeichen besteht, werden diese Wörter
durch Adressen adressiert, die durch vier teilbar sind. Dieses Wort kann aber auch
so im Speieher angeordnet sein, daß das erste Zeichen 'auf einem Speicherplatz mit
der Adresse 4 j + '1 oder auf einem Speicherplatz mit der Zeichenadresse
4j + 2 oder auf einem Speicherplatz mit der Zeichenatreese 4 j #t 3 :steht.
Auch
in diesem Fall und in den Fällen, wo das Wort aus mehr Zeichen zusammengesetzt
ist, werden nacheinander zwei Wörter aufgerufen und die benötigten Zeichen
ausgewählt. Der Zweck der Erfindung besteht in der Verringerung der Zahl der zur
Entnahme oder zur Eintragung benötigten Speicherzyklen und damit in der Erhöhung
der Arbeitsgeschwindigkeit des Speichers. Der Erfindung liegt die Aufgabe zugrunde,
zu einer Information, deren 2n Zeichen auf aufeinanderfolgenden Speicherplätzen,
die auf 2n Blöcke verteilt sind, stehen, wobei diese Zeichen zu zwei verschiedenen
Speicherwörtern gehören, in einem Speicherzyklus simultan zuzugreifen. Die Aufgabe
wird erfindungsgemäß dadurch gelöst, daß die Adressen, die die den Zeichen
zugeordneten Speicherplätze innerhalb der Blöcke festlegen, aus der Adresse des
ersten Zeichens in n Stufen gebildet werden, indem in der ersten Stufe 21 Adressen,
in der zweiten Stufe 22 und in .der n-ten Stufe 2n Adressen gebildet werden,
wobei die Adressen je Stufe um ein Bit verkürzt werden und jede Adresse
einer Stufe entweder direkt oder um eins erhöht zweiweitere Adressen der
folgenden Stufe liefert.
Die Erfindung ermöglicht somit, 2n Zeichen
in einem Speicherzyklus aus dem Speicher zu lesen oder in diesen einzuschreiben,
ganz gleich, ob das erste Zeichen eine Adresse hat, die durch 2n teilbar ist oder
nicht, wenn der Speicher aus mindestens 2n Blöcken besteht. Diese Zeichen können
verschiedenen Wörtern angehören. Der erfinderische Gedanke ist selbstverständlich
auch dann anwendbar, wenn die Informationen eine Zahl von Zeichen haben, die keine
Potenz von 2 ist.
-
Die Erfindung soll nachstehend an zwei Ausführungsbeispielen näher
erläutert werden.
-
In der zugehörigen Zeichnung zeigen: Fig. 1: die Zuordnung der Speicherplatzadressen
in einem Block, Fig. 2: die Zuteilung der Zeichenadressen zu`cen Blöcken bei Wörtern
aus zwei @eichen;° @'' Fig. 3: die Schaltung zur Ansteuerung zweier''8.icke° des
Speichers, Fig. 4: die Zuteilung der Zeichenadresse zu den Blöcken bei Wörtern aus
vier Zeichen= Fig. 5: die Schaltung zur Ansteuerung von vier Blöcken des Speichers.
In
der Fig. 1 ist ein Block eines Speichers mit K Speicherplätzen dargestellt (K =
1024). Die Speicherplätze sind von 0 ... 1023 numeriert. Diese Nummern werden im
folgenden als Speicherplatzadressen bezeichnet.
-
Die Fig. 2 zeigt eine Aufteilung des Speichers für die gleichzeitige
Entnahme von Wörtern, die aus zwei Zeichen bestehen.
-
Hat der Speicher 8 K Speicherplätze und besteht er aus acht Blöcken,
von denen jeder 1024 Plätze enthält, kann man die den geraden Zeichenadressen 0,
2, ... 2046 zugeordneten Zeichen in den ersten Block, die den ungeraden Zeichenadressen
1, 3, ... 2047 zugeordneten Zeichen in den zweiten Block, die den geraden Zeichenadressen
2048, ... 4094 zugeordneten Zeichen in den dritten Block und die den ungeraden Zeichenadressen
2049, ... 4095 zugeordneten Zeichen in den vierten Block eintragen usw. Den verschiedenen
Blöcken sind dadurch abwechselnd gerade oder ungerade Zeichenadressen zugeordnet.
Jedes Zeichen ist somit durch seine Zeichenadresse adressierbar. In der Zentraleinheit
der Rechenanlagen werden jedoch gleichzeitig zwei Zeichen, die ein Wort bilden,
verarbeitet. Hierbei hat das erste Zeichen gewöhnlich eine gerade und das zweite
Zeichen eine ungerade Zeichenadresse (Fall A).
Die Adressierung
eines Wortes erfolgt durch die Wortadresse. Diese entspricht den Zeichenadressen
der Zeichen eines Wortes ohne Berücksichtigung den niedrigsten Bits.
-
Im Fall A ist die Wortadresse 4 (01t0). Beim Aufruf dieses Wortes
werden beide Blöcke angesprochen und die beiden Zeichen mit den Zeichenadressen
4 (01C0) und 5 (0101) parallel entnommen oder einsgeschrieben. Es kann aber
auch eine Information, die aus »ei Zeichen besteht, verarbeitet werden, wenn das
erste Zeichen auf einem Speicherplatz mit ungerader Zeichenadresse und das zweite
Zeichen auf den folgenden Speicherplatz, der eine gerade Zeichenadresse hat,, steht
(Fall B). Die beiden Zeichen gehören also zu verschiedenen Wörtern.
-
In diesem Fall mu.ß eine zweite Wortadresse, nämlich die für den Block
mit den geraden Zeichenadressen, gebildet werden. Zum Aufruf sind zwei Wortessen,
nämlich 8 (1000) und 10 (1010) erforderlich.
-
Die Fig. 3 zeigt zwei Blöcke 36; 37 mit zwei Zugehörigen'Pufferregistern
38; 39, in die je ein elesenes Zeichen eingetragen oder aus denen je
ein zu schreibendes Zeichen entnommen wird. Der Block 36 enthält die Zeichen
mit den geraden und der Block 3?' die Zeichen mit den ungeraden Zeichexadres.
Es
sind ferner zwei Adressenregister 34; 35 vorhanden, denen die Speicherplatzadressen
zugeführt werden. Das Adressenregister 35 wird aus einem Register 31 direkt und
das Adressenregister 34 über ein Register 33 beschickt. Zwischen die Register 31
und 33 ist ein Netzwerk 32 zur Addition von eins geschaltet.
-
Im Fall A gelangt die geradzahlige Zeichenadresse 4 (0100) des ersten
Zeichens in das Register 31 und über das Netzwerk 32 um eins erhöht in das Register
33. Da das niedrigste Bit bei den Übertragungen vom Register 31 in das Adressenregister
35 und vom Register 33 in das Adressenregister 34 unbeachtet bleibt, sind die Speicherplatzadressen
in den Adressenregistern 34 und 35 gleich,- nämlich 2 (0010).
-
Ist die erste Zeichenadresse ungerade, z. B. 9 (1001), entsteht im
Register 33 die gerade Adresse 10 (1010). Da wieder das letzte Bit unbeachtet bleibt,
steht im Adressenregister 35 die Speicherplatzadresse 4 (0100) und im Adressenregister
34 die Speicherplatzadresse 5 (0101). Es wird also eine Information gelesen, deren
erstes Zeichen eine ungerade Zeichenadresse 9 und deren zweites Zeichen eine gerade
Zeichenadresse 10 hat.
-
Im folgenden Beispiel sollen Wörter oder Informationen aus vier Zeichen
aus dem Speicher entnommen werden.
Die Aufteilung der Zeichenadressen
auf die Blöcke ist so vorgenommen, daB dem ersten Block die Zeichenadressen 4j (j
- 0, 1, ... 1023), dem zweiten Block die Zeichenadressen 4j + 1, dem dritten Block
die@Zeichenadressen 4j + 2 und dem vierten Block die Zeichenadressen 4j + 3 zugeordnet
sind. Für die Plazierung der vier Zeichen eines Wortes oder einer Information im
Speicher sind dann die vier Fälle C, D, E und F möglich.
-
Die Speicherplatzadressen in den einzelnen Blöcken sind dieselben,
wie in der Fig. 1 dargestellt ist, also 0 ... 1023. Es werden gleichzeitig vier
Blöcke aufgerufen.
-
Die Figur 5 zeigt vier Blöcke 53; 54; 55; 56 mit den Pufferregistern
57; 58; 59;,60 und den Adressenregistern 49; 50; 51; 52. Der Block 53 enthält die
Zeichenadressen 4j eines Wortes, der Block 54 die Zeichenadressen 4j + 1, der Block
55 die Zeichenadressen '#j1+ 2 und der Block 56 die Zeichenadressen 4j + 3`"`k@Ä
Das Adres:;@:nz--c:gister 52 wird von einem Register 41 über ein Register 44 beschickt,
das Adressenregister 51 von einem Register 41 über ein Register 43, das Adressen=-register
50 von einem Register 41 über ein Register 44 und ein Register 46 und das Adressenregister
49 von einem Register 41 über ein Register 43 und ein Register 48. Zwischen den
Registern .41 und 43, den Registern 44 und 46 und den Registern 43 und 48
befinden sich die Netzwerke 42; 45; 47 zur Addition von eins.
Im
Fall C gelangt die durch 4 teilbare Adresse 8 (1000) in das Register 41 und über
ein Netzwerk 42 um eins erhöht in das Register 43 und aus dem Register 41 direkt
in das Register 44. Da das niedrigste Bit der Adresse nicht beachtet wird, steht
zum Zweck der weiteren Verarbeitung in den Registern 43 und 44 jeweils 4 (0100).
Aus dem Register 43 gelangt die Adresse 4 über ein Netzwerk 47 um eins erhöht in
das Register 48 und von dort ohne das niedrigste Bit in das Adressenregister 49
und aus dem Register 43 ohne das niedrigste Bit direkt in das Adressenregister 51.
In den Adressenregistern 49 und 51 stehen also die Speicherplatzadressen 2 (0010).
Aus dem Register 44 gelangt die Adresse 4 (0100) über ein Netzwerk 45 tun eins erhöht
in das Register 46 und von dort ohne das niedrigste Bit in das Adressenregister
50 und aus dem Register 44 ohne das niedrigste Bit direkt in das Adressenregister
52.
-
In den Adressenregistern 50 und 52 stehen somit ebenfalls die Speicherplatzadressen
2 (0010).
-
Im Fall D gelangt die Zeichenadresse 13 (1101) in das Register 41
und über das Netzwerk 42 um eins erhöht in das Register 43 und aus dem Register
41 direkt in das Register 44. Da das niedrigste Bit der Adresse nicht beachtet wird,
steht in dem Register 43 eine Adresse 7 (0111) und in dem Register 44 eine
Adresse 6 (0110). Aus dem Register 43 gelangt die Adresse 7 über
das
Netzwerk 4'7 um eins erhöht in das Register 48 und ohne das niedrigste Bit in das
Adressenregister 49 und aus dem Register 43 ohne das niedrigste Bit direkt in das
Adressenregister 51. Aus dem Register 44 gelangt die Adresse 6 (0110) über das Netzwerk
45 um eins erhöht in das Register 46 und von dort ohne das niedrigste Bit in das
Adressenregister 50 und aus dem Register 44 ohne das niedrigste Bit direkt in das
Adressenregister 52. Die Adressenregister 50; 51; 52 enthalten somit die Speicherplatzadresse
3 (0011) und das Adressenregister 43 die Speicherplatzadresse 4 (0'!00).
-
Der Fall D ist in der Fig. 5 dargestellt. Die Fälle E und F werden
analog behandelt.