DE2354521C2 - Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln - Google Patents
Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen SpeichermodulnInfo
- Publication number
- DE2354521C2 DE2354521C2 DE2354521A DE2354521A DE2354521C2 DE 2354521 C2 DE2354521 C2 DE 2354521C2 DE 2354521 A DE2354521 A DE 2354521A DE 2354521 A DE2354521 A DE 2354521A DE 2354521 C2 DE2354521 C2 DE 2354521C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- requester
- address
- access
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
Description
a) die von mehreren Anforderern gelieferten Moduladressen werfen auf Gleichheit überprüft,
b) bei Konflikten werden den Anforderern Speicherstartzyklen nach vorbestimmten Prioritäten
zugeteilt, wobei für Anforderer geringer Priorität mehr Speicherstartzyklen vorgesehen
werdett φ, für Anforderer höherer Priorität,
c) die in den zugeteilten Speicherstartzykien
ausgelesenen Operanden werden vor der Verarbeitung um einen geeigneten Betrag
verzögert damit die Operanden aller Anforderer gleichzeitig zur Verarbeitung gelangen,
d) nach Durchführung der zugeteilten Speicherstartzyklen
werden die Anforderungen aller Anforderer, die sich nunmehr auf jeweils voneinander verschiedene Speichermoduln beziehen,
gleichzeitig ausgeführt
2. Einrichtung zur Qsirchfüb.-ang des Verfahrens
nach Anspruch 1, gekennzeichnet durch eine Starteinrichtung (20) zur feststdlung von Start-Adressenkonflikten
und zur Bestimmung der Anzahl der zuzuteilenden Speicherstartzykien für jeden Anforderer sowie durch eine von der Starteinrichtung
gesteuerte Zugriffssteuerung (21), welche Adreßtore (15) derart steuert daß die Zugriffsadressen
der einzelnen Anforderer während der Speicherstartzykien dem Speicher so zugeführt werden, daß
nach Ablauf der zugeteilten Speicherstartzykien keine Adressenkonflikte mehr bestehen, sowie durch
eine von der Starteinrichtung (20) gesteuerte Einrichtung Verzögerungsauswahl (22) zur Auswahl
einer beschränkten Anzahl Verzögerungszeiten in Verzögerungsschaltungen (37,38,39), derart daß die
in den zugeteilten Speicherstartzykien ausgelesenen Operanden mit den später ausgelesenen Operanden
anderer Anforderer gleichzeitig bei einer Recheneinheit (30) eintreffen.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet
daß die Operandenreihen die Komponenten von Vektoren darstellen und daß der Anjorderer
(A) der höchsten Priorität den Resultatvektor darstellt.
4. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Anforderungen (A—D) Kanalanforderungen
zum Hauptspeicher (10) darstellen.
5. Einrichtung nach Anspruch 2, gekennzeichnet durch einen Startzähler (150), welcher auf die
notwendige Anzahl der zuzuteilenden Speicherstartzykien durch logische Einrichtungen (Fig. 14,
oberer Teil) gesetzt wird und durch logische Schaltungen (Fig. 14. unterer Teil) zur Steuerung
der Adreßtore (15) in der zur Lösung der Adressenkonflikte notwendigen Reihenfolge.
6. Einrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß die Starteinrichtung (20) für jeden Aliförderer-einen Startmodul (Fig. 10 bis 13)
enthält welcher als Eingang die Start-Moduladresse des Anforderers, sowie die Adressen der von dem
Anforelerer der nächsthöheren Priorität belegten
Speichermodulh (12) empfängt und daraus die Anzahl der zuzuteilenden Speicherstartzykien und
Verzögehingszeiten bestimmt.
7.. Einrichtung nach Anspruch 2, gekennzeichnet durch einen von der Starteinrichtung (20) gesteuerten
Schalter (36) und eine gesteuerte Schaltmatrix (35) zur Verbindung des Speichers (10) mit der
Recheneinheit (30).
8. Einrichtung nach Anspruch 2, dadurch gekennzeichnet
daß die Anzahl π der Anforderer (A—D) gleich_ist
der Anzahl Speichermoduln (12),
daß nur in 77—1 Übertragungswegen (31,32,33) der Anforderer Verzögerungsschaltungen (37, 38, 39) vorgesehen sind,
daß nur in 77—1 Übertragungswegen (31,32,33) der Anforderer Verzögerungsschaltungen (37, 38, 39) vorgesehen sind,
daß in diesen Obenragungswegen die Verzögerungen folgende Werte annehmen können: 0 oder t im
ersten dieser Wege; 0, 1 oder 2 im zweiten dieser Wege; 0,1,2... oder (n-1) im (n -1 )-ten Weg;
daß auf diesen (π—λ) Wegen Operanden vom Speicher (10) zur Recheneinheit (36) übertragen werden und daß aiii* dem n-ten Weg (34) das Resultat von der Recheneinheit zum Speicher übertragen wird.
daß auf diesen (π—λ) Wegen Operanden vom Speicher (10) zur Recheneinheit (36) übertragen werden und daß aiii* dem n-ten Weg (34) das Resultat von der Recheneinheit zum Speicher übertragen wird.
Die Erfindung betrifft ein Verfahren und eine Einrichtung zum gleichzeitigen Zugriff zu verschiedenen
Speichermoduln, wobei aufeinanderfolgende Operanden einer Operandenreihe in aufeinanderfolgenden
Speichermoduln gespeichert sind und die Operandenadresse eine Moduladresse und eine Speicherstellenadrcsse
enthält.
«to Eine solche Einrichtung wird z. B. bei Vektorberechnungen
verwendet. Da jeder Vektor mehrere Komponenten aufweist müssen für die einzelnen Vektoren
Operanden gespeichert werden, wobei bei jedem Berechnungsschritt jeweils ein Operand aus jeder Reihe
betroffen ist. Das Ergebnis eines Berechnungsschrittes ergibt eine Komponente eines Resultatvektors. Um in
einem solchen Vektcrrechner kurze Berechnungszeiten zu erzielen, ist es erwünscht, jeweils zwei oder mehr
Operanden, welche die Komponenten der einzelnen zu verarbeitenden Vektoren darstellen, periodisch und
entsprechend den Speicherzyklen der Recheneinheit zuzuführen, deren Verarbeitungszykluszeit vorzugsweise
gleich ist der Speicherzykluszeit. Nach jedem Verarbeitungszyklus wird eine Komponente des Resultatvektors
erhalten,die abgespeichert werden muß.
In bekannten Mehrzweck-Rechenanlagen muß zur Durchführung von Vektorberechnungen ein Pufferspeicher
verwendet werden. Hierbei werden zuerst die Vektoren, die überarbeitet werden sollen, vom Haupt·
speicher in den Pufferspeicher gebracht und hiernach der Pufferspeicher zyklisch für jeweils eine Komponente
adressiert. Es ist klar, daß durch den Pufferspeicher ein Mehraufwand entsteht und die Verarbeitungszeit
verlängert wird.
b5 Eine Verbesserung könnte dadurch erzielt werden.
daß die zu verarbeitenden Operanden jeweils gleichzeitig aus dem Hauptspeicher ausgelesen werden.
Aus der US-Patentschrift Re 26 087 ist ein Speicher-
Aus der US-Patentschrift Re 26 087 ist ein Speicher-
system bekannt, welches aus mehreren/ voneinander
unabhängigen Speichermodüln besteht, zu denen gleichzeitig ein Zugriff durchgeführt werden kann.
Aufeinanderfolgende Operanden werden", hierbei vorzugsweise in aufeinanderfolgenden Moduln gespeichert
Wenn nun ein Anforderer eine Sequenz von aufeinanderfolgenden Zugriffsadressen zu den Operanden
liefert, können dem Speichersystem Zugriffsanforderungen
rascher als die Zykluszeit eines Speichermoduls angeboten werden. Wenn nämlich der "Zugriff zum to
Modul 0 begonnen ist, kann der Zugriff zum Modul 1 bereits in Gang gesetzt werden, d. h. also, noch bevor
der vollständige Zugriffszyklus zum Modul 0 beendet ist Man könnte nun in einem solchen verzahnten
Speichersystem mit unabhängigen'Speichermoduln für jeden Modul eine Eingangs- und Ausgangssanunelleitung
vorsehen und die ersten Komponenten der zu
verarbeitenden Vektoren jeweils in voneinander verschiedenen Speichermoduln speichern. Dann könnten
alle Speichermoduln gleichzeitig betrieben werden und die zu verarbeitenden Komponenten gleichzeitig
ausgelesen und dem Rechenwerk zugeführt werden. Es ist jedoch aus Programmierungsgründen und Systemgründen
äußerst schwierig, eine solche Adressenverteilung zu erzielen, also zu verhindern, daß zwei
gleichzeitig zu verarbeitende Komponenten in demselben Speichermodul gespeichert sind.
Können Speicherzugriffe zu einem bestimmten Speichermodul von mehreren aufrufenden Einheiten
durchgeführt werden, so kommt es bei Gleichzeitigkeit von mehreren Aufrufen zu Zugriffskonflikten. Aus der
DE-OS 20 25 933 ist eine Einrichtung bekannt geworden, weiche einen solchen Zugriffskonflikt mit Hilfe
einer Vorrangschaltung löst. Hierzu wird die Verwendung eines Stapelregisters vorgeschlagen, in dem die
Bezeichnungen der aufrufenden Einheiten gespeichert werden, die an einem Zugriffskonflikt beteiligt sind. Die
dabei verwendete Vorrangsregel gewährt der aufrufenden Einheit schließlich den Vorrang, deren Bezeichnungsspeicherung
am ältesten ist (First Come — First *0 Served). Zusätzlich ist eine Abtastschaltung vorgesehen,
welche über im engeren Sinne gleichzeitige Aufrufe entscheidet, indem durch die Abtastung aller aufrufenden
Einheiten eine zeitlichen Auflösui^ erreicht wird. Zur Kombination der durch den Abtaster einerseits und «5
durch das Stapelregister andererseits ermöglichten Vorrangsaussagen ist eine Vergeichsschaltung vorgese-■
hen, die eingangsseitig soviohl mit dem Abtaster, als
auch mit der Stapelregistersteuerung verbunden ist und eine Vermittliingssteuerung zur Durchverbindung der
aufrufenden Einheit mit der gewählten Einheit steuert. Die beschriebene Vorrangsschaltung ermöglicht die
Gewährung einer ausgewogenen Priorität an alle aufrufenden Einheiten, was jedoch mit einem verhältnismäßig
hohen Aufwand verbunden ist. Für die Erzielung eines gleichzeitigen Zugriffs zu verschiedenen Speichermoduln,
in denen aufeinanderfolgende Operanden mehrerer Operandenreihen gespeichert sind, ist die
bekannte Einrichtung jedoch nicht geeignet. Obwohl nach der vorliegenden Erfindung auch Zugriffskonflikte
zu einem bestimmten Speichermodul auftreten können, kommt es dabei nicht auf eine ausgewogene Zugriffszuteilung
an, sondern auf eine durch die bezweckte Gleichzeitigkeit der Verarbeitung von Operanden aus
verschiedenen Operandenreihen bestimmte Reihenfolge-
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und eine Einric''''jng anzugeben, welche
mehreren Acforderern den gleichzeitigen Zugriff zu
unabhängigen Speichermodüln zum Auslesen von gleichzeitig zu verarbeitenden Operanden verschiedener
Operandenreihen, deren Beginnadressen willkürlich auf die Speichermodüln verteilt sein können, ermöglicht
Das erfindungsgemäße: Verfahren ist im Kennzeichen des Hauptanspruchs beschrieben. .
Die erfindungsgemäße Einrichtung zur Durchführung des Verfahrens ist im Kennzeichen des Anspruches 2
beschrieben. .
Die Erfindung hat den Vorteil, daß auch in einem
Mehrzweckrechner eine Vektorberechnung ohne größeren Zeitaufwand durchgeführt werden, kann. Die
Erfindung ist auch geeignet für Datenverarbeitungsanlagen mit virtuellen Speichern, da die Vektorberechnung
durch eventuelle Datenaustauschoperationen nicht beeinträchtigt wird.
Die Erfindung ermöglicht ferner die Verwendung des Rechenwerkes auf zyklischer Basis, da die jeweils
gleichzeitig zu verarbeitenden Operanden <i"em Rechenwerk auch gleichzeitig zugeführt werden können.
Ein Ausführungsbeispiel der Erfindung soll nun anhand von Figuren beschrieben werden. Es zeigt
F i g. 1 ein Blockschema eines Vektorrechners;
F i g. 2 ein verzahntes Speichersystem;
F i g. 3 ein Blockschema der in F i g. 1 gezeigten Starteinrichtung zur Feststellung von A.dressenkonflikten
zwischen vier Anforderern A—D;
F i g. 4 eine variable Verzögerungseinrichtung;
F i g. 5 eine im Hauptspeicher gespeicherte Vektorserie,
wobei die erste Komponente jedes Vektors jeweils in voneinander verschiedenen Speichermoduln gespeichert
ist;
Fig.6 eine schematische Darstellung von vier'
Vektoren, deren erste Komponenten in demselben Speichermodul gespeichert sind;
Fig.7 eine schematische Darstellung von Stanzyklen,
zur Durchführung von einzelnen Speicherzugriffen·,
F i g. 8 einen in F i g. 1 gezeigten Schalter;
F i g. 9 eine in F i g. 1 gezeigte Schaltmatrix;
Fig. IO das Blockschema des Startmoduls für den Anforderer A;
Fig. II das Blockschema des Startmoduls für den Anforderer B;
Fig. 12 das Blockschema des Startmoduls für den Anforderer C;
Fig. 13 das Blockschema des Startmoduls für den Anforderer Dund
F i g. 14 das Blockschema einer Zugriffssteuerung mit
Adreßtoren.
Daa Aüsführungsbeispitl zeigt ein Speichersystem
zur Verwendung in Vektorberechnungen. Speicherstartzyklen werden im folgenden auch einfach Sjtartzyklen
genannt. In Fig. 1 sind die zu verarbeitenden Vektoren mit A, B, C und D bezeichnet. Hierbei sollen
die Vektoren B, C i'nd D miteinander kombiniert
werden und den Resultatvektor A ergeben. Obwohl im nachfolgenden die Anfördefungsquellen als Vektoren
bezeichnet werden, ist es jedoch klar, daß arch andere Operandenreihen auf die gezeigte Weise verarbeitet
werden können. Es wird im nachfolgenden daher oft auch nur allgemein von Vnforderem A— Dgesprochen.
In Fig. 1 ist ein Speicher 10 mit den notwendigen
Steuerungen 11 als vierfach verzahnter Speicher gezeigt. Der Speicher 10 enthält eine Vielzahl von
Speichermoduln mit direktem Zugriff, SP MOD 0,1,2,3.
Jeder der Speichermoduln 12 enthält die zur Speiche-
rung an adressierbaren Speicherstellen nötigen Mittel, sowie Eingangs- und Ausgangssammelleitungen 13 und
14.
Die aus dem Speicher 10 auszulesenden Adressen werden dem Speicher über Adreßtore 15 angeboten.
Die AdreBinformationen der Anforderer A — /} gelangt
zu den Adreßtoren über die Leitungen 16,17,18 und 19.
Die Zugriffe zum Speicher werden über eine Starteinrichtung 20·, eine Zugriffssteuerung 21 und eine
Verzögerungsauswahl 22 durchgeführt. In Fig. 1 sind vier voneinander unabhängige Speichermoduln gezeigt.
Die Auswahl eine» Speichermoduls erfolgt durch die zwei niederwertigitn Bits der von den Anforderern
gelieferten Adressen. Die Auswahl eines bestimmten Moduls 12 wird durch die Steuerung Il ausgeführt. Die
restlichen Bits der Adressen adressieren eine bestimmte Speicherstelle in dem von den zwei niederwertigen Bits
ausgewählten Modul.
Die Starteinrichtung 20 hat die Aufgabe, die zwei niederwertigen Bits d.h. die Moduladressen daraufhin
zu überprüfen, ob sich zwei oder mehrere von den Anforderern A bis D über die Leitungen 23, 24, 25 und
26 gelieferte Moduladressen auf denselben Speichermodul beziehen. Für den Beginn der Vektorberechnung
heißt das. daß die Starteinrichtung 20 feststellt, ob sich zwei oder mehrere erste Komponenten der zu
verarbeitenden Vektoren in demselben Speichermodul befinden. Wird von der Starteinrichtung 20 ein
Adressenkonflikt festgestellt, werden von der Zugriffssteuerung 21 in einer vorherbestimmten Reihenfolge
einzelne der auf den Leitungen 16 bis 19 gelieferten Anforderungsadressen über die Adreßtore 15 dem
Speicher 10 angeboten. Es gelangen also zuerst die Adressen zum Speicher 10, welche einen Konflikt
vorgerufen haben.
Jedesmal, wenn d:ie Zugriffssteuerung Zi eine Adresse
über die Adreßtore 15 dem Speicher 10 zur Adressierung zuführt, wird die Adresse dieses Anforderers durch
ein Signal auf der Leitung 47 zu dem Adreßregister des Anforderers um 1 erhöht, so daß beim nächsten Zugriff
dieses Anforderers der darauffolgende Speichermodul adressiert wird. Nach einer gewissen Anzahl solcher
Speicher-Startzyklen, in denen die zum Zugriff verwendeten Adressen nach jedem Zugriff jeweils um 1 erhöht
werden, wird von der Zugriffssteuerung 21 schließlich festgestellt, daß alle vier Anforderer Zugriff zu
voneinander verschiedenen Speichermoduln 12 des Speichers 10 verlangen. Ab diesem Zeitpunkt werden
von der Zugriffssteuerung 21 über die Adreßtore 15 alle Adressen auf den Leitungen 16 bis 19 gleichzeitig der
Steuerung 11 und dem Speicher 10 bei jedem Speicherzyklus zugeführt. Nach jedem Zugriff sind die
ausgeiesenen Daten auf jeder der Ausgangssammelleitungen 14 erhältlich.
!n Fig. i ist ferner auch die Recheneinheit ALU30
gezeigt, welche an ihren Eingängen 31, 32 und 33 die
entsprechenden Komponente der Vektoren B, C und D empfängt Am Ausgang 34 der Recheneinheit wird der
Resultatvektor A erhalten.
Da die aufeinanderfolgenden Komponenten der Vektoren in aufeinanderfolgenden Zyklen von aufeinanderfolgenden
Speichermodulen 0 bis 3 in einer zyklischen Sequenz erhalten werden, ist eine Schaltmatrix
35 vorgesehen, weiche durch die beiden niederwertigen Adressenbits dier Anforderer B, Cund D gesteuert
wird und die vom Speicher 10 ausgelesenen Komponenten zu dem jeweils dem richtigen Vektor B, C und D
entsprechenden Eingang der Recheneinheit 30 durchschaltet. In ähnlicher Weise ist am Eingang des
Speichers ein Schalter 36 vorgesehen, welcher ebenfalls von den beiden niederwertigen Adressenbits der
Adresse des Resultatvektors A gesteuert wird und die am Ausgang 34 des Rechenwerkes 30 erhaltenen Daten
jeweils zum richtigen Speichermodul 12 durchschaltet.
Ferner sind in F i g. I Verzögerungsschaltungen 37,38
und 39 gezeigt, deren Verzögerungsbetrag über die Leitungen 40, 41 und 42 von der Verzögerungsauswahl
to 22 verändert werden kann. Die Verzögerungsschaltungen übertragen die an ihrem Eingang 43, 44 und 45
anliegenden Daten der Vektoren B, Cund D mit einer veränderbaren Verzögerung zur Recheneinheit 30.
Es wurde bereits oben festgestellt, daß die Startein· richtung 20, die von den Anforderern gelieferten Anfangsadressen daraufhin überprüft, ob ein Konflikt vorliegt, d. h„ ob sich zwei oder mehrere Moduladressen auf denselben Speichermodul beziehen. Liegt ein Konflikt vor, werden von der Zugriffssteuerung 21 für gewisse Anforderer eine Anzahl von Startzyklen durchgeführt, um den Adressenkonflikt aus der Welt zu schaffen. Außerdem folgt aus der Natur von Vektorberechnungen, daß am Eingang der Recheneinheit 30 die entsprechenden Komponenten der zu verarbeitenden Vektoren gleichzeitig anliegen sollen. Wenn also z. B. für den Anforderer D eine bestimmte Anzahl von Startzykfen durchgeführt werden, um einen Adressenkonflikt aus der Welt zu schaffen, wird die erste Komponente und alle darauffolgenden Komponenten
Es wurde bereits oben festgestellt, daß die Startein· richtung 20, die von den Anforderern gelieferten Anfangsadressen daraufhin überprüft, ob ein Konflikt vorliegt, d. h„ ob sich zwei oder mehrere Moduladressen auf denselben Speichermodul beziehen. Liegt ein Konflikt vor, werden von der Zugriffssteuerung 21 für gewisse Anforderer eine Anzahl von Startzyklen durchgeführt, um den Adressenkonflikt aus der Welt zu schaffen. Außerdem folgt aus der Natur von Vektorberechnungen, daß am Eingang der Recheneinheit 30 die entsprechenden Komponenten der zu verarbeitenden Vektoren gleichzeitig anliegen sollen. Wenn also z. B. für den Anforderer D eine bestimmte Anzahl von Startzykfen durchgeführt werden, um einen Adressenkonflikt aus der Welt zu schaffen, wird die erste Komponente und alle darauffolgenden Komponenten
JO dieses Vektors in der Verzögerungseinrichtung 39 derart verzögert, daß die bereits ausgelesenen Komponenten
des Vektors D mit den entsprechenden Komponenten der anderen Vektoren, welche bei den
nunmehr folgenden gleichzeitigen Zugriffen ausgelesen werden, in erforderlicher Weise in der Recheneinheit 30
kombiniert werden können.
Die zeitliche Steuerung der Speichcrzyklen erfolgt
über Signale auf der Leitung 46. Wie bereits beschrieben, ist es Zweck der gezeigten Einrichtung.
gleichzeitige Zugriffe zum Speicher 10 für alle Anforderer auf zyklischer Basis zu ermöglichen, derart,
daß bei jedem Speicherzugriffszyklus ein neuer Satz von Vektorkomponenten gleichzeitig dem Rechenwerk 30
zugeführt werden kann und vom Rechenwerk eine Resultatkomponente des Vektors A erzeugt wird. Bei
jedem Speicherzyklus werden also alle 4 Speichermoduln betrieben, und demzufolge kann das Rechenwerk
30 auch bei jedem Speicherzyklus in Tätigkeit treten und eine Resultatkomponente errechnen. Durch c^ise
so intensive und vollständige Verwendung der Speichermoduln ufid des Rechenwerks wird die Rechenzeit der
Vektorberechnung kleingehaiten. Insbesondere wird verhindert, daß, von einer Anzahl Startzyklen abgesehen,
ein Speichermodul IZ oder die Recheneinheit 30 für einen oder mehrere Zyklen infolge von Adressenkonflikten
untätig bleiben.
Mit den Verzögerungsschaltungen 37, 38 und 39 können unterschiedliche Verzögerungszeiten erzielt
werden, die von der Verzögerungsauswahl 22 ausgewählt werden. Die Einrichtung ist so ausgelegt, daß die
Anzahl der Startzyklen für den Anforderer D 0.1,2 oder
3 betragen kann. Für den Anforderer C ist eine Anzahl von Startzyklen von 0, 1 oder 2 vorgesehen. Für den
Anforderer B kann die Anzahl Startzykien ö oder 1 betragen. Für den Anforderer A sind keine Startzykien
und daher auch keine Verzögerung vorgesehen. Die Verzögerungszeiten der Verzögerungsschaltungen sind
in festen Zeitbeträgen abgestuft wobei eine Stufe gleich
ist einem Speicherzyklus. Aus der Anzahl Startzyklen, wie sie durch die Starteinrichtung 20 und die
Zugriffssteuerung ii bestimmt werden, werden Steuersignale
auf den Leitungen 40, 4t und 42 von der Verzögerungsauswahl 22 erzeugt, welche die geforderten
Verzögerungszeiten in den Verzögerungsschaltungen 37. S und 39 derart einstellen, daß nach Ablauf der
Startzyklen alle Operanden, die zugleich verarbeitet werden sollen, auch zugleich der Recheneinheit
zugeführt werden.
In Fig. 2 ist der Speicher 10 in seinen Einzelteilen
dargestellt. Der Speicher besteht aus vier Speichermoduln 12 und stellt sich den Anforderern als vierfach
verzahnter Speicher dadurch dar, daß die Adressen von jeweils aufeinanderfolgenden Operanden in aufeinan- IS
derfolgenden Moduln gespeichert sind. Jeder der Speichermoduln 12 hat eine Anzahl adressierbarer
Vekiorkomponenten sind dabei über alle Speichermoduln
verteilt. Im Modul 0 sind die Adressen 0, 4, 8 usw. gespeichert; im Modul Nr. 1 die Adressen 1,5,9 usw. und
in den beiden restlichen Moduln sinngemäß die restlichen Adressen. Wenn also die von einem
Anforderer gelieferte Adresse im Register 50 gespeichert wird, werden die beiden niederwertigen Bits 51
dem Moduldecoder 52 zugeführt und wählen den adressierten Speichermodul 12 aus. Hierdurch werden
die restlichen Bits 53 des Registers 50 dem betreffenden Speicherstellendecoder 54 zugeführt und adressieren
die gewünschte Speicherstelle. Die beiden niederwertigen Bits von jeder gelieferten Speicheradresse definieren
jeweils einen Speichermodul. Nach erfolgtem Zugriff zum Speicher 10 wird die Zugriffsadresse über
die Leitung 55 um 1 erhöht, wodurch sich der durch die beiden niederwertigen Bits 51 angegebene Wert
ebenfalls um 1 erhöht und somit der darauffolgende Modul adressiert wird. Durch die aufeinanderfolgenden
Inkrementierungen der Speicheradresse werden die vier Speichermoduln zyklisch adressiert.
F i g. 3 zeigt in übersichtlicher Weise, wie die Auswahl der Verzögerungswerte in den Verzögerungsschaltungen
37 bis 39 erfolgt. Sofern in Fig.3 und in den folgenden Figuren Bezugszeichen verwendet werden,
welche auch in anderen Figuren aufscheinen, sind damit stets die gleichen Einrichtungen gemeint. Die beiden
niederwertigen Bits der von den Anforderern gelieferten Adressen erscheinen auf den Leitungen 23 bis 26 und
werden den Startmoduln A. B, Cund D zugeführt Es ist
zu sehen, daß Anforderer A die höchste Priorität beim Zugriff zum Speicher 10 erhält. Da der Anforderer A so
der Resultatvektor ist. bedeutet dies, daß die erste errechnete Komponente des Vektors A bevoraigt vor
allen andern Zugriffen im Speicher 10 gespeichert wird
Die erste vom Anforderer B gelieferte Moduladresse hat Priorität vor den Anforderern C und- D. In F i g. 3
sind die Ausgangsleitungen 40, 41 und 42 von den betreffenden Startmoduln B, C und D gezeigt deren
Signale die Anzahl Startzyklen der betreffenden Anforderern angeben. Die Leitung 40 besteht also in
Wirklichkeit aus zwei Leitungen, weiche angeben, ob die gewünschte Verzögerung für den Anforderer B 0
oder 1 ist Die Leitung 41 besteht aus drei Leitungen, welche anzeigen, ob die Verzögerung für den Anforderer
C 0, 1 oder 2 ist und die Leitung 42 schließlich besteht aus vier Leitungen zur Erzielung von Verzöge- es
rungszeiten von 0, 1, 2 oder 3 Verzögerungszyklen finden Anforderer D.
Die logischen Schaltungen der Verzögerungsschaltungen 37,38 und 39 sind in F i g. 4 im einzelnen gezeigt.
Die Verzögerungseinheiten 60 erzielen jeweils eine Verzögerung von einem Hauptspeicherzyklus und
können z. B. als Schieberegister ausgeführt sein. Wie bereits oben ausgeführt, sind für den Anforderer D die
höchste Anzahl von Verzögerungszeiten, d. h. drei Zyklen, vorgesehen und wird infolgedessen dem
Anforderer D bei Auftreten eines Konfliktes der erste Speicherzyklus gewährt. Die oben besprochene Priorität
tritt in Fig.3 in Erscheinung, bedeutet aber nicht,
daß die Anforderer B und C zeitlich gesehen, einen Zugriff vor dem Anforderer D erhalten. Für den
Anforderer D können, wie gezeigt, bis zu drei Startzyklen durchgeführt werden, bevor die anderen
Anforderer Zugriff zum Speicher erhalten.
Aus F i g. 4 ist ersichtlich, daß das Ausgangssignal 45 der Schaltmatrix 35 in F i g. I den UND-Gliedern 61,62,
S3 und S4 zugeführt wird. Wenn also άζτ Anfüidcrcf D
drei Startzyklen erhält, um einen Adressenkonflikt mit den anderen Anforderern aus der Welt zu schaffen und
wenn keine anderen Konflikte auftreten, wird das UND-Glied 61 durch ein Signal auf der Leitung 65
durchgeschaltet. In ähnlicher Weise wird das UND-Glied 66 durch ein Signal auf der Leitung 67 und das
UND-Glied 68 durch ein Signal auf der Leitung 69 durchgeschaltet. Die erste vom Anforderer Dausgelesene
Komponente und alle darauffolgenden Vektorkomponenten, die vom Anforderer D adressiert werden,
laufen über den durch das UND-Glied 61, ein erstes Verzögerungselement 60, das ODER-Glied 70, ein
zweites Verzögerungselement 60, das ODER-Glied 71, ein drittes Verzögerungselement 60 und das ODER-Glied
72 gebildeten Weg und gelangen über die Leitung 33 zu der Recheneinheit 30.
Nach der von der Zugriffssteuerung 21 bestimmten Anzahl Startzyklen für den Anforderer D findet ein
gleichzeitiger Zugriff zum Speicher 10 durch die Anforderer B. C und D statt. Somit wird die erste vom
Anforderer D ausgelesene Komponente dem ODER-Glied 72 zugeführt, während die Ausgangssignale 43
und 44, welche jeweils die erste Komponente der Anforderer öund C darstellen, den ODER-Gliedern 73
und 74 von den UND-Gliedern 68 und 66 zugeführt werden. Nach den Startzyklen für den Anforderer D
werden somit in den darauffolgenden Speicherzyklen die darauffolgenden Komponenten der Vektoren B. C
und D auf den Leitungen 31,32 und 33 vom Speicher 10
erhalten.
Die Arbeitsweise der gezeigten Einrichtung soll nun anhand der Fig.5, 6 und 7 näher erklärt werden. In
F i g. 5 ist der Speicher 10 wieder aus 4 Speichermoduln bestehend dargestellt Die Moduln sind voneinander
unabhängig und werden verzahnt adressiert Im Speicher 10 sollen Zugriffe zu den vier Vektoren A bis D
durchgeführt werden. Die Komponenten der Vektoren B, Cund D werden der Recheneinheit 30 zugeführt und
das Resultat der Rechenoperation als Resultatvektor A über den Schalter 36 wieder dem Speicher 10 zugeführt
Jeder der Anforderer führt einen Zugriff zum Speicher 10 für' sechs Komponenten, d. h. Datenworte aus. Die
Komponenten jedes Vektors sind aufeinanderfolgend numeriert A 1 stellt somit die erste Komponente des
Vektors A, B 2, die zweite Komponente des Vektors B
und D 3, die dritte Komponente des Vektors D dar.
Die Adresse der ersten Komponente der Vektoren
wird links vom Speicher 10 gezeigt Es ist zu sehen, daß die erste Adresse für den Vektor A gleich Null ist die
erste Adresse für den Vektor B ist 9, die erste Adresse
für den Vektor Cist 18 und die erste Komponente des
Vektors D ist an der Adresse 27 gespeichert.
Aus einer näheren Betrachtung dieser Adressen ist ersichtlich, daß ein gleichzeitiger Zugriff zu allen vier
Speichermoduln durchgeführt werden kann, da sich die genannten Adressen jeweils in einem andern Modul
befinden. Die jeweilige Moduladresse stimmt dabei mit den beiden niederwertigen Bits des betreffenden
Anforderers überein. Bei jedem Speicherzugriff und nach jeder Erhöhung können somit alle vier Speichermoduln
adressiert werden, da sich die jeweils gleichzeitig benötigten Vektorkomponenten in voneinander
unterschiedlichen Speichermoduln befinden.
Da somit kein Adressenkonflikt auftritt, kann ein gleichzeitiger Speicherzugriff zu allen vier Moduln
durchgeführt werden und werden durch die Verzögerungsschaltungen 37, 38 und 39 keine Verzögerungen
erzielt. Beim ersten Speicherzugriff können daher die Komponenten Sl, Cl und Dl sofort der Recheneinheit
30 an den Eingängen 31, 32 und 33 zugeführt werden und das Resultat A auf der Leitung 34 über den
Schalter 36 in den Speicher an der adressierten Stelle eingelesen werden. Beim nächsten Zugriff zum Speicher
10 werden die Komponenten B2 und C2 und D2 der
Recheneinheit 30 zugeführt und das Resultat an der für die Komponente A 2 vorgesehenen Speicherstelle
gespeichert. Die Verzögerungselemente 60 treten also nicht in Funktion.
In Fig.6 ist eine andere Adressenverteilung der
ersten Komponenten der Vektoren gezeigt. Alle vier Anfangskomponenten befinden sich dabei im Speichermodul
2. Wenn die Starteinrichtung 20 die Moduladressen der von den Anforderern A bis D gelieferten
Adressen empfängt, wird auf weiter unten beschriebene Weise eine Verzögerungszeit von drei Zyklen für den
Vektor D, von zwei Zyklen für den Vektor C und von einem Zyklus für den Vektor B erzeugt. Die in Fig.b
gezeigten Symbole X entsprechen einem Verzögcrungselement 60 in Fig.4, welches keine Daten
gespeichert hat. Bevor ein gleichzeitiger Zugriff zu allen vier Vektoren durchgelührt werden kann, sind drei
Startzyklen erforderlich. Im ersten Startzyklus wird durch einen Zugriff zum Speicher 10 die Komponente
D1 aus dem Modul 2 ausgelesen. D 1 wird im ersten
Verzögerungselement gespeichert und die Adresse für den Anforderer D um 1 erhöht. Zur Zeit des zweiten
Startzyklus ist das Signal D1 bereits in das zweite
Verzögerungselement gelaufen. Dadurch kann in das freigewordene erste Element die Komponente D 2 vom
Modul 3 übertragen werden. Ebenfalls im zweiten Startzyklus wird die Komponente Cl vom Modul 2
ausgelesen und in das erste Verzögerungselement des Übertragungsweges für den Vektor Cgebracht
Während des nächsten Startzyklus werden die Komponenten D 3, C2 und B1 aus den Moduln mit den
Nummern 0,3 und 2 ausgelesen. Damit ist die Startphase beendet, und es liegt nun eine Zugriffssituation vor,
welche keine Adressenkonflikte mehr aufweist. Im nächsten Zyklus, welcher in Fig.6 mit »Grund 0«
bezeichnet ist, kann also ein gleichzeitiger Zugriff zu
allen vier Anforderern für die Komponenten A 1, B 2, C3 und DA durchgeführt werden. Die Komponente A 1
erscheint am Ausgang 34 der Recheneinheit 30 und stellt das Resultat der erster. Rechenoperation, d.ir, die
Verknüpfung der Komponenten B1 und C". und D1
dar. In allen darauffolgenden Zyklen können gleichzeitige Speidierzugriffe ohne Adressenkonflikte ausgeführt
werden.
F i g. 7 zeigt wiederum eine andere Verteilung der zu bearbeitenden Operandenreihen und zeigt damit die
Wirkungsweise der Einrichtung in ihrer allgemeinsten Form. Es handelt sich nun darum, die Reihenfolge der
Startzyklen für die verschiedenen Anforderer zu bestimmen, für den Fall, daß sich die ersten Zugriffe von
zwei oder mehr Anforderern auf den gleichen Speichermodul beziehen. Aus F i g. 7 ist ersichtlich, daß
sowohl Anforderer A als auch D zu Beginn der Berechnung Zugriff zum Speichermodul 1 verlangen.
Die verschiedenen Anforderer A bis Dsind in Fig.7
nicht näher bezeichnet. Es handelt sich dabei um irgend welche Benutzereinrichtungen 80, welche Zugriff zum
Speicher 10 verlangen, um eine Vielzahl von Operanden,
d. h., jeweils eine Operandenreihe, zum und vom Speicher zu übertragen. Zu diesem Zweck ist eine
Schaltmatrix 81 vorgesehen, derart, daß jeder Anforderet i.u jcuciii SpciCnci'iTiüdui Zugriff erlangen kanu. Bei
den Einrichtungen 80 kann es sich z. B. um einen Pufferspeicher handeln oder auch um einen Eingangs-/
Ausgangskanal. Es wurde in F i g. 7 nicht für notwendig gehalten, alle betreffenden Operanden jeder der
Operandenreihen zugleich darzustellen. Es ist nur notwendig, beim ersten Zugriff zum Speicher einen
Adressenkonflikt zwischen den Anforderein festzustellen und diesen Konflikt derart zu lösen, daß nach einer
kleinen Anzahl von Startzyklen gleichzeitige Zugriffe zu allen Speichermoduln durchgeführt und Operanden
zwischen dem Speicher 10 und den Benutzern 80 übertragen werden können.
Wie gezeigt, speichert der Speichermodul 1 die Anfangskomponenten Dl und A 1. Es liegt also ein
Adressenkonflikt vor, und es müssen für den Anforderer D eine Anzahl von Startzyklen derart durchgeführt
werden, daß nachher weitere Komponenten des Anforderers D und die ersten Komponenten der
Anforderer B und C gleichzeitig aus dem Speicher ausgelesen werden können. Im ersten Startzyklus wird
daher der Operand D 1 ausgelesen und die Adresse um 1 erhöht. Hierdurch erfolgt im nächsten Star:-yklus ein
Zugriff zum Ope.and D2 im Speichermodul 2 und nach einer nochmaligen Erhöhung der Adresse um 1 ein
Zugriff zum Operand D 3 im Speichermodul 3. Nach erfolgtem Zugriff zum Speichermodul 3 für den
Operand D 3 und nach der Erhöhung der Adresse um 1 liegt eine Zugriffssituation vor. in der alle vier
Anforderer Zugriff zu jeweils verschiedenen Speichermoduln verlangen. Im darauffolgenden Zyklus »Grund
0« kann daher ein gleichzeitiger Zugriff zum Speicher 10
zu den Operanden A I. Bl, Cl und D4 durchgeführt
werden. Nach diesem Zugriff können weitere gleichzeitige Zugriffe folgen, da auch durch die Erhöhung der
Adressen um 1 kein Adressenkonflikt mehr auftritt. In Fig.8 ist eine einzige Bitposition des Schalters 36
dargestellt. Es ist Aufgabe des Schalters 36, das ■ Ausgangssignal 34 von der Recheneinheit 30 zu dem
gewünschten Speichermodul, welcher jeweils durch die Moduladresse des Anforderers A angegeben wird, zu
bringen. Hierzu werden die beiden niederwertigen Bits, weiche die Moduladresse darstellen, decodiert und die
decodierten Signale auf den vier gezeigten Leitungen jeweils einem Eingang von vier UND-Gliedern 82 bis 85
zugeführt Wenn z. B. der Anforderer A Zugriff zum Speichermodul 2 verlangt, wird das UND-Glied 84
durchgeschaltet und die Bitposition π vom Ausgang 34 über das UND-Glied 84 zur Eingangssammelleitung 13
für die Bitposition η zum Speichermodui 2 gebracht.
In Fig.9 ist die in Fig. 1 gezeigte Schaltmatrix 35
In Fig.9 ist die in Fig. 1 gezeigte Schaltmatrix 35
nä^er gezeigt. Ihre Wirkungsweise ist ähnlich der oben
für den Schalter 36 beschriebenen. Auch in Fig.9 sind
nur die Schaltmittel für eine einzige Bitposition gezeigt. Es ist Aufgabe der Schaltmatrix 35, die jeweils
betriebenen drei Speichermoduln 12 mit dem geeigneten Eingang 31 bis 33 der Recheneinheit 30 zu
verbinden. Die beiden niederwertigen Bits der von den Anforderern B, C und D gelieferten Adressen werden,
wie oben beschrieben, dazu benutzt, das entsprechende UND-Glied durchzuschalten und damit das Signal der
Bitposition η vom Ausgang 14 eines Speichermoduls 12 über eine Anzahl von ODER-Gliedern 86,87 und 88 zur
gewünschten Verzögerungsschaltung 37, 38 oder 39 zu bringen.
Die in F i g. 1 gezeigte Starteinrichtung 20 und die Verzöge.-ungsauswahl 22 sind in den Fig. 10,11,12 und
i3 ausführlich uäigeiiic!ii. in diesen Figuren wurde είπε
positive Logik angenommen, d. h., daß eine logische Funktion ein positives Signal erzeugt, wenn sie erfüllt
ist, wobei im gegenteiligen Falle ein negatives Signal erzeugt wird. Wie bereits früher festgestellt, ist es die
Aufgabe der Starteinrichtung 20 und der Verzögerungsauswahl 22, die Prioritätsreihenfolge von Zugriffen zum
ersten verlangten Speichermodul festzulegen. Die Priorität haben dabei in der Reihenfolge die Anforderer
A. B, Cund D.
Aus Fi g. 10 ist ersichtlich, daß einr Anforderung von
A für einen ersten Zugriff zu den Speichermoduln 0,1,2
und 3 Priorität hat und daß das decodierte Signal der beiden niederwertigen Bits der Adresse von 4 dem
Startmodul des Anforderers B zugeführt wird. Das in F i g. 10 dargestellte Signal »MOD 1 durch A« wird dem
Startmodul von B zugeführt und bedeutet, daß der Speichermodul 1 durch eine Anforderung von A belegt
ist. Diese Anforderung wird dann beim ersten gleichzeitigen Zugriff aller vier Anforderer ausgeführt.
In Fig. U ist der Startmodul für den Anforderer B
gezeigt, welcher als Eingangssignal den ersten vom Anforderer A angeforderten Modul empfängt und an
den Startmodul des Anforderers C eine decodierte Anzeige des vom Anforderer B verlangten ersten
Speichermoduls liefert.
Das Ausgangssignal des ODER-Gliedes 90 gibt an. daß für den ersten Zugriff des Anforderers B ein
Startzyklus erforderlich ist, bevor gleichzeitige Zugriffszyklen stattfinden können. Die Eingänge zum ODER-Glied
90 sind mit den Ausgängen der UND-Glieder 91 bis 94 verbunden, wobei die Eingänge dieser UN D-GHeder
anzeigen, daß der erste, vom Anforderer B verlangte Modul derselbe ist, welcher auch vom
Anforderer A gewünscht wird.
Mit den Invertern 95 bis 98, den UND-Gliedern 99 bis
102 und dem ODER-Glied 103 wird angezeigt daß zwischen dem vom Anforderer B und dem vom
Anforderer A gewünschten ersten Speichermodul kein Adressenkonflikt vorliegt. In diesem Fall ist kein
Startzyklus für den Anforderer B erforderlich, und auf der Leitung 104 wird ein Signal erzeugt welches angibt
daß für den Anforderer B keine Verzögerung in der Schaltung 37 notwendig ist
Durch die ODER-Glieder 105 bis 108 werden Signale erzeugt weiche einen möglichen Konflikt mit dem
Anforderer C lösen können. So gibt. z. B. ein Ausgangssignal vom ODER-Glied 106 dem Startmodul
für den Anforderer C(Fi g. 12) an, daß der Speichermodul
1 bereits für einen Zugriff ausgewählt d. h. belegt ist Der betreffende Zugriff kann dabei vom Anforderer B
oder vom Anforderer A gewünscht sein. Der andere Eingang des ODER-Gliedes 106 ist mit dem Ausgang
des UND-Gliedes 92 verbunden, welches anzeigt, daß der Speichermodul 0 sowohl durch einen ersten Zugriff
des Anforderers A als auch des Anforderers B belegt ist. Der Startmodul für den Anforderer C ist in den
Fig. 12A und 12B gezeigt. In diesen Startmoduln wird die Verzögerungszeit, d. h. die Anzahl der notwendigen
Startzyklen für den Anforderer C bestimmt. Als Eingänge empfängt dieser Startmodul die Ausgänge des
to Startmoduls für den Anforderer B (Fig. 11), welche
angeben, welche Startmoduln bereits für den ersten Zugr.'ffszyklus gegeben sind, sowie eine Anzeige des
vom Anforderer Cgewünschten ersten Speichermoduls. Das Ausgangssignal des ODER-Gliedes 110 in F i g. 12B
gibt an, daß keine Startzyklen für den Anforderer C notwendig sind. Diese Anzeige ergibt sich durch die
Ausgar.gssigr.sle izr UND-Glieder 111 bis 114. Die
Eingangssignale zu den UND-Gliedern Ul bis 114 stellen die dekodierten Moduladressen des vom
Anforderer Cgewünschten ersten Moduls dar, während jeweils der andere Eingang der UND-Glieder 111 bis
114 mit dem Ausgang eines entsprechenden Inverters
115 bis 115 verbunden ist. So gibt z. B. das UND-Glied
112 an, daß der Modul 1 wohl vom Anforderer C, jedoch
weder vom Anforderer A noch vom Anforderer B gewünscht wird.
Das Ausgangssignal des ODER-Gliedes 119 in Fig. 12A gibt an, daß für den Anforderer C zwei
Startzyklen vorgesehen werden müssen, um einen Adressenkonflikt zu lösen. Das entsprechende Signal
wird mit Hilfe der UND-Glieder 120 bis 127 erzeugt. So empfängt z. B. das UND-Glied 125 an einem Eingang
ein Signal, welches anzeigt, daß der Speichermodul 2 entweder vom Anforderer A oder vom Anforderer B
beim ersten Zugriff verlangt wird. Der andere Eingang des UND-Gliedes 125 ist mit dem Ausgang eines
UND-Gliedes 121 verbunden, welches anzeigt, daß der Anforderer Ceinen ersten Zugriff zum Speichermodul 1
wünscht, daß jedoch der Speichermodul 1 entweder durch den Anforderer A oder B für einen ersten Zugriff
belegt ist Das UND-Glied 125 liefert also ein Sign»" zu einem Eingang des ODER-Gliedes 119 und zeigt damit
an, daß sowohl der Speichermodul 1 als auch der Speichermodul 2 bereits belegt sind und daß daher der
■*5 Anforderer Cbis zum Modul 3 weitergeschaltet werden
muß, bevor ein Zugriff zu den Speichermoduln 1 und 2 durch die Anforderer A und B durchgeführt werden
kann.
Die andere Möglichkeit der Anforderungen für einen ersten Zugriff des Anforderers Csind in F i g. 12B durch
das Ausgangssignal des ODER-Gliedes 130 gegeben, welches als Eingänge die Ausgangssignale der UND-Glieder
131 bis 134 erhält Zum Beispiel zeigt das UND-Glied 133 an, daß für den Anforderer C ein
Startzyklus durchgeführt werden muß, bevor gleichzeitige Zugriffe stattfinden können, wenn der Anforderer C
einen ersten Zugriff zum Speichermodul 1 verlangt der Speichermodul 1 jedoch bereits für den Anforderer A
oder B belegt ist und wenn der Speichermodul 2 noch nicht für einen ernten Zugriff der Anforderer A oder B
belegt ist Der Anforderer C muß deshalb durch Startzugriffe zum Speichermodul 2 weitergeschaltet
werden, bevor die Adressenkonflikte aus der Welt geräumt sind und gleichzeitige Speicherzugriffe stattfinden
können.
Schließlich geben die Ausgangssignale der ODER-Glieder 135 bis 138 in Fig. 12A die notwendigen
Signale für die Eingänge des Startmoduls für den
Anforderer Dl Aufgrund diese Eingangssignale kann der Startmodul für den Anforderer D die Anzahl Verzögerungen in der Schaltung 33 und somit die Anzahl
Startzyklen für den Anforderer D bestimmen, welche notwendig sind, iwi einen Adressenkonflikt zu beheben.
Zum Beispiel zeigt das ODER-Glied 136 an, daß der Speichermodul 3 bereits durch Anforderungen der
anderen drei Anforderer belegt ist Zwei Eingänge des ODER-Gliedes 136 erhalten Signale, weiche angeben,
daß der Anforderer C einen ersten Zugriff zum Speichermodul 3 oder daß die Anforderer A oder B
bereits einen Zugriff zum Speichermodul 3 wünschen. Auch die UND-Glieder 122 und 125 geben an, daß der
Speichermodul 3 bereits durch Anforderungen anderer Quellen belegt ist. Die UND-Glieder 122 und 125
erzeuger Ausgangssignale dann, wenn bereits ein Konflikt zwischen dem Anforderer C und den
Anforderern A oder B bezüglich eines Zugriffs zu den
Speichermoduln 1 oder 2 gelöst wurde. In einem solchen FaH nuiß nämlich der Modul 3 für einen Zugriff durch
den Anforderer C und nicht den Anforderer D reserviert werden.
Der Startmodul für den Anforderer D ist in den Fi g. 13A und 13B gezeigt Dieser Modul löst Adressenkonflikte zwischen den Anfordererri A, B oder C
einerseits und dem Anforderer D andererseits. Die in dem Startmodul D gezeigten logischen Schaltungen
entsprechen im wesentlichen den in den Fig. 11 und 12
gezeigten Schaltungen. Die ODER-Glieder 140 bis 143 empfangen an ihren Eingängen Ausgangssignale von
UND-Gliedern, welche als Folge der Lösung von vorhergehenden Adressenkonflikten zwischen den
Anforderern A. B und C erzeugt werden. Auch in F i g. 13 wird der decodierte Wert der Moduladresse des
Anforderers D mit anderen Signalen verglichen, welche angeben, ob andere Anforderer bereits als Folge der
Lösung vorhergehender Adressenkonflikte Zugriff zu dem vom Anforderer D gewünschten Speichermodul
verlangt haben. Für den Anforderer D können bis zu drei Startzyklen vorgesehen werden um einen eventuellen Adressenkonflikt aus der Welt zu schaffen.
Abhängig von der Lösung vorhergehender Konflikte erzeugt eines der ODER-Glieder 140 bis 143 ein Signal
und wählt den entsprechenden Verzögerungsbetrag am Eingang der Recheneinheit 30 aus und bestimmt somit
auch die Anzahl der notwendigen Startzyklen für den Anforderer D.
Die in Fig. I gezeigte Zugriffssteuerung 21 ist in Fig. 14 ausführlich gezeigt Das Grundelement dieser
Einrichtung wird durch einen Startzähler SUC150 gebildet Es kann sich dabei um irgendeinen binärcodierten Zähler oder einen Ringzähler handeln, welcher
durch eine Einrichtung 151 gesetzt wird. Das Setzen erfolgt als Folge eines Signales auf der Leitung 152,
welches von der Datenverarbeitungsanlage geliefert wird und anzeigt, daß Speicherzugriffsoperationen
durchgeführt werden müssen. Sobald alle Konflikte fertiggestellt sind und der Zugriff zum Speicher 10
beginnen soll, wird ein Signal auf der Leitung 153 von der Datenverarbeitungsanlage geliefert, welches die
Dekrementierungseinrichtung 154 in Tätigkeit setzt und den Zähler 115 auf 0 herabzählt.
Der in den Zähler 150 gesetzte Wert ist der größte für einen der Anforderer B. C oder D nötigen Verzögerungswerte. Dieser Wert wird von den in den Fig. 10 bis
'13 gezeigten Einrichtungen geliefert. Das Setzen des Startzählers 150 erfolgt mit Hilfe von ODER-Gliedern
155 bis 177, von Invertern 158 bis 160 und von
UND-Gliedern 161 bis 165. Das. Ausgangssignal des
UND-Gliedes 163 setzt den Zähler 150 auf 0, wenn das UND-Glied 161 vorbereitet wird. Eine solche Vorbereitung des UND-Gliedes 161 erfolgt nur, wenn eine
Verzögerungszeit von 1, 2 oder 3 nicht gewählt wurde.
Auf ähnliche Weise erzeugen die UND-Glieder 164 und 165 ein Ausgangssignal nur, wenn bestimmte andere
Werte nicht ausgewählt werden. So verhindert z. B. der
Inverter 160 einen Signaldurchgang durch die UND-Glieder 165 und 162 und damit auch 164, wenn die
Leitung 166 ein Signal führt Dieses Signal gibt an, daß für den Anforderer D drei Verzögerungszeiten gewählt
wurden.
is dient dazu, die Startzyklen in geordneter Reihenfolge
durchzuführen, dh, für bestimmte Anforderer eine
gewisse Anzahl von Startzyklen derart durchzuführen,
daß die angezeigten Adressenkonflikte aus der Welt
geschafft werden können. Nach Ablauf der Startzyklen
leitet die Einrichtung normale Speicherzugriffszyklen
ein, d. h. gleichzeitige Zugriffe a\ allen Speichermoduln
des Speichers 10.
Die Adressen der Anforderer A bis D werden in den
Adressenregistern 170 bis 173 gespeichert In Fig. 14 sind auch die in Fig. 1 gezeigten Adressentore 15
dargestellt welche alle durch das Speicherzyklussignal auf der Leitung 46 vorbereitet werden. Die Adressentore 15 werden jedoch erst dann durchlässig, wenn auch
ein Signal der ODER-Glieder 174,175 oder 176 oder des
UND-Gliedes 177 an den Toren anliegt Empfangen die Tore 15 die notwendigen Steuersignale, so bringen sie
die Adresseninformation von den Registern 170 bis 173 zu den Speichermoduln und erzeugen gleichzeitig auf
einer Leitung 178 ein Signal, welches die in dem jeweiligen Adressenregister stehende Adresse um I
erhöht
auf 0 steht und die Speicherzugriffseinrichtung auf
«o »laufen« steht, was durch ein Signal auf der Leitung 179
angezeigt wird.
Es wird daran erinnert, daß für den Anforderer A
keine Startzyklen und keine Verzögerung vorgesehen sind und daß deshalb für den Anforderer A der erste
*5 Zugriff in dem Speicherzyklus durchgeführt wird, indem
gleichzeitige Zugriffe zu allen Speichermoduln erfolgen. Die ODER-Glieder 180 und 181 empfangen an ihren
Eingängen Signale vom Startzähler 150, welche anzeigen, daß die Anzahl der notwendigen Startzyklen
1.2 oder 3 ist und erzeugen an ihren Ausgängen Signale,
welche als Eingänge für die UND-Glieder 182 bis 184 dienen. Außerdem sind in Fig. 14 noch die UND-Glieder 185 bis 187 vorgesehen.
Die genannten Logikschaltungen bringen die durch den Startzähler 150 angezeigten Anzahl Startzyklen in
Übereinstimmung mit der Anzahl notwendiger Zeitverzögerungen für jeden Anforderer. Als Beispiel der
Funktionsweise der in Fig. 14 gezeigten Einrichtung wird auf die F i g, 6 Bezug genommen, in welcher ein
Adressenbeispiel gezeigt wurde, welches einen ersten Zugriff zum Speichermodul 2 durch alle Anforderer
vorsieht und damit auch die Lösung eines Adressenkonfliktes notwendig macht. In diesem Falle wird auf der
Leitung 166 ein Signal erzeugt, welches angibt, daß für den Anforderer D drei Verzögerungszeiten vorgesehen
werden müssen und welches ein Eingangssignal zum UND-Glied 184 erzeugt. Ebenfalls wird auf der Leitung
188 ein Signal erzeugt, welches angibt, daß für den
Anforderer C zwei Verzogerungszeiten vorgesehen
werden müssen. Deshalb wird das UND-GHed 128
durch ein Signal auf der Leitung 188 durchgeschaltet und wird auch das UND-Glied 185 durch ein Signal auf
der Leitung 189 leitend, wodurch angezeigt wird, daß für
den Anforderer B eine Verzögerung von j notwendig
ist In diesem Falle wird der Startzähler 150 auf den Wert 3 gesetzt, so daß bei allen drei Startzyklen das
UND-Glied 184 ein Signal durch das ODER-Glied 176 schickt und damit die Adresse im Register 173 durch das
entsprechende Adressentor 15 überträgt und nachher diese Adresse um I erhöht Das UND-Glied 184 erhält
ein Vorbereitungssignal vom ODERrGlied 181 bei jedem der drei Startzyklen. Was den Anforderer C
betrifft, erzeugt das UND-Glied 182 ein Signal, welches
das ODER-Glied 175 passiert und die Adresse des Anforderers Cinkrementiert und zum Speicher bringt
als Resultat der Signale vom ODER-Glied 180 für die
Startzyklen 2 und 1.
Die Adresse des Anforderers B wird zum Speicher übertragen und inkrementiert als Folge eines Signales
vom UND-Glied 185 ,über das ODER-Glied 175, wenn der vom Startzähler angezeigte Wert gleich I ist
Nach Beendigung der drei Startzyklen ist der vom Startzählsr 150 angezeigte Wert gleich Null und wird
somit das UND-Glied 177 vorbereitet wodurch alle Adressentore 15 vorbereitet bleiben und bei jedem
Speicherzyklussignal auf der Leitung 46 die Adressen der Adressenregister der Anforderer A bis D zum
Speicher gebracht und hiernach erhöhl werden.
Zusammenfassend kann die Arbeitsweise des Ausführungsbeispieles der Erfindung wie folgt beschrieben
werden:
der ersten Operaaden von mehreren Operandenreihen
auf wülkürfiche Weise in den verschiedenen Speichermoduln des Speichers verteilt sein können. Für die
Vielzahl der Anforderer werden gleichzeitige Zugriffe zum Speicher vorgesehen, wobei jeder Anforderer einer
ίο der genannten Operandenreihen entspricht Die Startadressen aller Anforderer werden auf Adressenkönflikte überprüft und Konflikte für einen ersten Zugriff zum
Speichersystem zwischen zwei Anforderern gelöst Für einzelne Anforderer wird eine bestimmte Anzahl von
Startzyklen in einer vorherbestimmten Reihenfolge vorgesehen und damit der Adressenkonflikt ,gelöst
derart daß hierauf gleichzeitige Zugriffe füi alle
Anforderer zum Speichersystem durchgeführt werden können. Die Einrichtung gestattet es, zu bestimmen.
welche der Anforderer zuerst Zugrifl erhalten sollen und welche Anzahl von Startzyklen notwendig ist
Eine bevorzugte Anwendung der gezeigten Einrichtung besteht in der Vektorberechnung. Hierbei wird
durch die Einrichtung auch die notwendige Anzahl von
Verzögerungszeiten für die einzelnen, während der
Startzyklen aus dem Speicher ausgelesenen Vektorkomponenten bestimmt um sicherzustellen, daß alle
gleichzeitig zu verarbeitenden Komponenten auch gleichzeitig bei der Recheneinheit eintreffen.
Claims (1)
- Patentansprüche: ' .ί. Verfahren zum gleichzeitigen Zugriff zu verschiedenen Speichennoduin, wobei aufeinanderfolgende Operanden einer Operandenreihe, in aufeinanderfolgenden Speichennoduin gespeichert sind und die Operandenadresse eine Moduladresse und eine Speicherstellenadresse enthält g e k e ή η zeichnet durch folgende Verfahrensschritte:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US00309320A US3812473A (en) | 1972-11-24 | 1972-11-24 | Storage system with conflict-free multiple simultaneous access |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2354521A1 DE2354521A1 (de) | 1974-05-30 |
DE2354521C2 true DE2354521C2 (de) | 1983-12-22 |
Family
ID=23197705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2354521A Expired DE2354521C2 (de) | 1972-11-24 | 1973-10-31 | Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln |
Country Status (7)
Country | Link |
---|---|
US (1) | US3812473A (de) |
JP (1) | JPS5317458B2 (de) |
CA (1) | CA1014669A (de) |
DE (1) | DE2354521C2 (de) |
FR (1) | FR2208162B1 (de) |
GB (1) | GB1438875A (de) |
IT (1) | IT1001546B (de) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3993982A (en) * | 1973-07-23 | 1976-11-23 | Consolidated Video Systems, Inc. | Sequence control unit for a television time base corrector |
JPS5410219B2 (de) * | 1973-12-07 | 1979-05-02 | ||
CA1051121A (en) * | 1974-09-25 | 1979-03-20 | Data General Corporation | Overlapping access to memory modules |
JPS5174534A (ja) * | 1974-12-24 | 1976-06-28 | Fujitsu Ltd | Tensomeireihoshiki |
US4001783A (en) * | 1975-03-26 | 1977-01-04 | Honeywell Information Systems, Inc. | Priority interrupt mechanism |
JPS51138138A (en) * | 1975-05-26 | 1976-11-29 | Nippon Telegr & Teleph Corp <Ntt> | Semi-conductor storage device |
US3964054A (en) * | 1975-06-23 | 1976-06-15 | International Business Machines Corporation | Hierarchy response priority adjustment mechanism |
US4034347A (en) * | 1975-08-08 | 1977-07-05 | Bell Telephone Laboratories, Incorporated | Method and apparatus for controlling a multiprocessor system |
US4099231A (en) * | 1975-10-01 | 1978-07-04 | Digital Equipment Corporation | Memory control system for transferring selected words in a multiple memory word exchange during one memory cycle |
US4104719A (en) * | 1976-05-20 | 1978-08-01 | The United States Of America As Represented By The Secretary Of The Navy | Multi-access memory module for data processing systems |
US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
US4153951A (en) * | 1976-09-24 | 1979-05-08 | Itek Corporation | Event marker having extremely small bit storage requirements |
US4234918A (en) * | 1977-05-31 | 1980-11-18 | Burroughs Corporation | Time-shared, multi-phase memory system with error checking and data correcting |
DE3071216D1 (en) * | 1979-01-09 | 1985-12-12 | Sullivan Computer | Shared memory computer apparatus |
US4302818A (en) * | 1979-07-10 | 1981-11-24 | Texas Instruments Incorporated | Micro-vector processor |
US4376972A (en) * | 1980-01-08 | 1983-03-15 | Honeywell Information Systems Inc. | Sequential word aligned address apparatus |
US4319324A (en) * | 1980-01-08 | 1982-03-09 | Honeywell Information Systems Inc. | Double word fetch system |
JPS6057090B2 (ja) * | 1980-09-19 | 1985-12-13 | 株式会社日立製作所 | データ記憶装置およびそれを用いた処理装置 |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
JPS5975365A (ja) * | 1982-10-22 | 1984-04-28 | Hitachi Ltd | ベクトル処理装置 |
JPS59148952A (ja) * | 1983-02-14 | 1984-08-25 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 優先順位回路 |
ATE74675T1 (de) * | 1983-04-25 | 1992-04-15 | Cray Research Inc | Mehrprozessorsteuerung fuer vektorrechner. |
US4771378A (en) * | 1984-06-19 | 1988-09-13 | Cray Research, Inc. | Electrical interface system |
CA1228677A (en) * | 1984-06-21 | 1987-10-27 | Cray Research, Inc. | Peripheral interface system |
US4679148A (en) * | 1985-05-01 | 1987-07-07 | Ball Corporation | Glass machine controller |
JPS6366670A (ja) * | 1986-09-08 | 1988-03-25 | Pioneer Electronic Corp | 演算処理回路 |
CA1310429C (en) * | 1987-09-19 | 1992-11-17 | Nobuo Uchida | Access priority control system for main storage for computer |
US5009281A (en) * | 1988-03-10 | 1991-04-23 | Yamaha Corporation | Acoustic apparatus |
US6728832B2 (en) * | 1990-02-26 | 2004-04-27 | Hitachi, Ltd. | Distribution of I/O requests across multiple disk units |
US5680574A (en) | 1990-02-26 | 1997-10-21 | Hitachi, Ltd. | Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units |
US5680518A (en) * | 1994-08-26 | 1997-10-21 | Hangartner; Ricky D. | Probabilistic computing methods and apparatus |
US5946710A (en) * | 1996-11-14 | 1999-08-31 | Unisys Corporation | Selectable two-way, four-way double cache interleave scheme |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US26087A (en) | 1859-11-15 | Improvement in fastening metal hoops on cotton-bales | ||
US3541516A (en) * | 1965-06-30 | 1970-11-17 | Ibm | Vector arithmetic multiprocessor computing system |
US3638198A (en) * | 1969-07-09 | 1972-01-25 | Burroughs Corp | Priority resolution network for input/output exchange |
-
1972
- 1972-11-24 US US00309320A patent/US3812473A/en not_active Expired - Lifetime
-
1973
- 1973-09-17 GB GB4345872A patent/GB1438875A/en not_active Expired
- 1973-09-18 IT IT29051/73A patent/IT1001546B/it active
- 1973-10-09 CA CA182,964A patent/CA1014669A/en not_active Expired
- 1973-10-18 JP JP11645673A patent/JPS5317458B2/ja not_active Expired
- 1973-10-23 FR FR7338733A patent/FR2208162B1/fr not_active Expired
- 1973-10-31 DE DE2354521A patent/DE2354521C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2208162A1 (de) | 1974-06-21 |
GB1438875A (en) | 1976-06-09 |
FR2208162B1 (de) | 1976-06-18 |
CA1014669A (en) | 1977-07-26 |
US3812473A (en) | 1974-05-21 |
JPS5317458B2 (de) | 1978-06-08 |
JPS4984335A (de) | 1974-08-13 |
IT1001546B (it) | 1976-04-30 |
DE2354521A1 (de) | 1974-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2354521C2 (de) | Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln | |
DE3752017T2 (de) | Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit | |
DE3300263C2 (de) | ||
DE2117936A1 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE2953861C2 (de) | ||
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2716051A1 (de) | Datenverarbeitungsanlage, bei der zum speicherzugriff schluessel verwendet werden | |
DE3338333A1 (de) | Logiksimulatorgeraet zur gueltigkeitspruefung einer logikstruktur | |
DE1499175B2 (de) | Steuereinrichtung in einem mehrspezies rechner | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3224034A1 (de) | Mehrprozessorensystem | |
DE2928488A1 (de) | Speicher-subsystem | |
DE69025650T2 (de) | Multiprozessorsystem mit Vektorpipelinen | |
DE1901343B2 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE3400723C2 (de) | ||
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
DE69605820T2 (de) | Datenfehler-detektion und -korrektur für gemeinsamen speicher | |
DE2443579B2 (de) | Asynchroner Arbiter | |
DE3043100C2 (de) | ||
DE3788617T2 (de) | Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor. | |
DE2625113C2 (de) | Speicherschutzeinrichtung | |
DE69029608T2 (de) | Digitale Signalprozessorvorrichtung | |
DE68903280T2 (de) | Vektorschlange in computern mit vektorregister. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8126 | Change of the secondary classification |
Free format text: G06F 13/06 G06F 15/347 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |