DE2354521A1 - Verfahren und einrichtung zum gleichzeitigen zugriff zu verschiedenen speichermoduln - Google Patents

Verfahren und einrichtung zum gleichzeitigen zugriff zu verschiedenen speichermoduln

Info

Publication number
DE2354521A1
DE2354521A1 DE19732354521 DE2354521A DE2354521A1 DE 2354521 A1 DE2354521 A1 DE 2354521A1 DE 19732354521 DE19732354521 DE 19732354521 DE 2354521 A DE2354521 A DE 2354521A DE 2354521 A1 DE2354521 A1 DE 2354521A1
Authority
DE
Germany
Prior art keywords
memory
requester
address
requesters
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.)
Granted
Application number
DE19732354521
Other languages
English (en)
Other versions
DE2354521C2 (de
Inventor
Stuart Gordon Tucker
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2354521A1 publication Critical patent/DE2354521A1/de
Application granted granted Critical
Publication of DE2354521C2 publication Critical patent/DE2354521C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling 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

Böblingen, den 11. Oktober 1973 lw/se
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: PO 971 055 '
Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
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 Speicherstellenadresse enthält.
Eine solche Einrichtung wird z. B. bei Vektorberechnungen verwendet. Da jeder Vektor mehrere Komponenten aufweist, müssen für die einzelnen Vektoren Operandenreihen 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 Vektorrechner 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
408822/0740
werden zuerst die Vektoren, die überarbeitet werden sollen, vom Hauptspeicher in den Pufferspeicher gebracht und hiernach der Pufferspeicher zyklisch für jweils eine Komponente adressiert. Es ist klar, daß durch den Pufferspeicher ein Mehraufwand entsteht und die Verarbeitungszeit verlängert wird.
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 Speichersystem bekannt, welches aus mehreren voneinander unabhängigen Speichermoduln 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 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 Ausgangssammelleitung 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.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren
409822/0740
PO 971 055
und eine Einrichtung anzugeben, welche mehreren Anforderern den gleichzeitigen Zugriff zu unabhängigen Speichermoduln zum Auslesen von gleichzeitig zu verarbeitenden Operanden ermöglichen, wobei mehrere dieser Operanden in demselben Speichermodul abgespeichert sein können.
Das erfindungsgemäße Verfahren ist im Kennzeichen des Hauptanspruches beschrieben.
Die erfindungsgemäße Einrichtung zur Durchführung des Verfahrens ist im Kennzeichen des Anspruches 4 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 dem Rechenwerk auch gleichzeitig angeführt werden können .
Ein Ausführungsbeispiel der Erfindung soll nun anhand von Figuren beschrieben werden.
Es zeigen:
Fig. 1 ein Blockschema eines Vektorrechners;
Fig. 2 ein verzahntes Speichersystem;
Fig. 3 ein Blockschema der in Fig. 1 -gezeigten Starteinrichtung zur Feststellung von Adressenkonflikten zwischen vier Anforderern A-D;
971 055 409822/0740
Fig. 4 eine variable Verzögerungseinrichtung;
Fig. 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 Startzyklen,
zur Durchführung von einzelnen Speicherzugriffen;
Fig. 8 einen in Fig. 1 gezeigten Schalter;
Fig. 9 eine in Fig. 1 gezeigte Schaltmatrix;
Fig. 10 das Blockschema des Startmoduls für den Anforderer A;
Fig. 11 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 D und
Fig. 14 das Blockschema einer Zugriffssteuerung mit
Adresstoren.
Das Ausführungsbeispiel zeigt ein Speichersystem zur Verwendung in Vektorberechnungen. In Fig. 1 sind die zu verarbeitenden Vek-
409822/0740
PO 971 055
toren mit A, B, C und D bezeichnet. Hierbei sollen die Vektoren B, C und D miteinander kombiniert werden und den Resultatvektor A ergeben. Obwohl im nachfolgenden die Anforderungsquellen als Vektoren bezeichnet werden, ist es jedoch klar, daß auch andere Operandenreihen auf die gezeigte Weise verarbeitet werden können. Es wird im nachfolgenden daher oft auch nur allgemein von Anforderern A-D gesprochen.
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 Speicherung an adressierbaren Speicherstellen nötigen Mittel, sowie Eingangsund Ausgangssammelleitungen 13 und 14.
Die aus dem Speicher 10 auszulesenden Adressen werden dem Speicher über Adreßtore 15 angeboten. Die Adreßinformationen der Anforderer A-D gelangt zu den Ädreßtoren über,die Leitungen 16, 17, 18 und
Die Zugriffe zum Speicher werden über eine Starteinrichtung 20, eine Zugriffssteuerung 21 und eine Verzogerungsauswahl 22 durchgeführt. In Fig. 1 sind vier voneinander unabhängige Speichermoduln gezeigt. Die Auswahl eines Speichermoduls erfolgt durch die zwei niederwertigen Bits der von den Anforderern gelieferten Adressen. Die Auswahl eines bestimmten Moduls 12 wird durch die Steuerung 11 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 Speicher-
po 971 055 409822/0740
modul 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 IO angeboten. Es gelangen also zuerst die Adressen zum Speicher 10, welche einen Konflikt vorgerufen haben.
Jedes Mal, wenn die Zugriffssteuerung 21 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 ausgelesenen Daten auf jeder der AusgangsSammelleitungen 14 erhältlich.
In Fig. 1 ist ferner auch die Recheneinheit ALU 30 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, welche durch die beiden niederwertigen Adressenbits der Anforderer B, C und D gesteuert wird und die vom Speicher IO ausgelesenen Komponenten zu dem jeweils dem richtigen Vektor B, C und D entsprechenden Eingang der Recheneinheit 30
- 409822/0740
PO 971 055
durchschaltet. In ähnlicher Weise ist am Eingang des Speichers ein Schalter 36 vorgesehen, welcher ebenfalls von den beiden niederwertigen Ädressenbits 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 Fig. 1 Verzögerungsschaltungen 37, 38 und 39 gezeigt, deren Verzögerungsbetrag über die Leitungen 40, 41 und 42 von der Verζögerungsauswahl 22 verändert werden kann. Die Verzögerungsschaltungen übertragen die an ihrem Eingang 43, 44 und 45 anliegenden Daten der Vektoren B, C und D mit einer veränderbaren Verzögerung zur Recheneinheit 30.
Es wurde bereits oben festgestellt, daß die Starteinrichtung 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 Startzyklen durchgeführt werden, um einen Adressenkonflikt aus der Welt zu schaffen, wird die erste Komponente und alle darauffolgenden Komponenten 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 Speicherzyklen 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,
4O9822/07A0
PO 971 055
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 Speichermodulri betrieben und demzufolge kann das Rechenwerk 30 auch bei jedem Speicherzyklus in Tätigkeit treten und eine Resultatkomponente errechnen. Durch diese intensive und vollständige Verwendung der Speichermoduln und des Rechenwerks wird die Rechenzeit der Vektorberechnung kleingehalten. Insbesondere wird verhindert, daß, von einer Anzahl Startzyklen abgesehen, ein Speichermodul 12, 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 DO, 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 Startzyklen O oder 1 betragen. Für den Anforderer A sind keine Startzyklen 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 21 bestimmt werden, werden Steuersignale auf den Leitungen 4O, 41 und 42 von der Verzögerungsauswahl 22 erzeugt, welche die geforderten Verzögerungszeiten in den Verzögerungsschaltungen 37, 38 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 auf-
409822/0740
PO 971 055
einanderfolgenden Moduln gespeichert sind. Jeder der Speichermoduln 12 hat eine Anzahl adressierbarer Speicherstellen. Die Adressen der zu verarbeitenden Vektorkomponenten 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.
Fig. 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, C, und 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 der Resultatvektor ist, bedeutet dies, daß die erste errechnete Komponente des Vektors A bevorzugt 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 Fig. 3 sind die Ausgangsleitungen
409822/0740
PO 971 055
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, welche 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ögerungszeiten von 0, 1, 2 oder 3 Verzögerungszyklen für den Anforderer D.
Die logischen Schaltungen der Verzögerungsschaltungen 37, 38 und 39 sind in Fig. 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 Fig. 4 ist ersichtlich, daß das Ausgangssignal 45 der Schaltmatrix 35 in Fig. 1 den UND-Gliedern 61, 62, 63 und 64 zugeführt wird. Wenn also der Anforderer 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 D ausgelesene 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,
409822/074Ö
PO 971 055
eiii zweites Verζö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 Änforderer 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 B 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 Figuren 5,6 und 7 näher erklärt werden. In Fig. 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, C und 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 nummeriert. Al stellt somit die erste Komponente des Vektors A, B2, die zweite Komponente des Vektors B und D3, 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 C ist 18 und die erste Komponente des Vektors D ist an der Adresse 27 gespeichert.
409 8 22/07 40
PO 971 055
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 Bl, Cl und Dl sofort der Recheneinheit 3O 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 3O zugeführt und das Resultat an der für die Komponente A2 vorgesehenen Speicherstelle gespeichert. Die Verzögerungselemente 6O 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. 6 gezeigten Symbole X entsprechen einem Verζögerungselement 60 in Fig. 4, welches keine Daten gespeichert hat. Bevor ein gleichzeitiger Zugriff zu allen vier Vektoren durchgeführt werden kann, sind drei Startzyklen erforderlich. Im ersten Startzyklus wird durch einen Zugriff zum Speicher 10 die Komponente Dl aus dem Modul 2 ausgelesen. Dl wird im ersten Verzögerungselement
409822/074G
PO 971 055
gespeichert und die Adresse für den Anforderer D um 1 erhöht. Zur Zeit des zweiten Startzyklus ist das Signal Dl bereits in das zweite Verzögerungselement gelaufen. Dadurch kann in das freigewordene erste Element die Komponente D2 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 C gebracht.
Während des nächsten Startzyklus werden die Komponenten D3r C2 und Bl 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 istf kann also ein gleichzeitiger Zugriff zu allen vier Anforderern für die Komponenten Al, B2, C3 und D4 durchgeführt werden. Die Komponente Al erscheint am Ausgang 34 der Recheneinheit 30 und stellt das Resultat der ersten Rechenoperation, d. h., die Verknüpfung der Komponenten Bl und Cl und Dl dar. In allen darauffolgenden Zyklen können gleichzeitige Speicherzugriffe ohne Adressenkonflikte ausgeführt werden.
Fig. 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 Fig. 7 ist ersichtlich, daß sowohl Anforderer A als auch D zu Beginn der Berechnung Zugriff zum Speichermodul 1 verlangen.
Die verschiedenen Anforderer A bis D sind in Fig. 7 nicht näher bezeichnet. Es handelt sich dabei um irgend welche Benutzereinrichtungen 80, welche Zugriff zum Speicher 10 verlangen, um eino 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 Anforderer zu jedem
409822/074 9
PO 971 055
Speichermodul Zugriff erlangen kann. Bei den Einrichtungen 80 kann es sich z. B. um einen Pufferspeicher handeln oder auch um einen Eingangs/Aus gangs kanal. Es wurde in Fig. 7 nicht für not-" wendig gehalten, alle betreffenden Operanden jeder der Operandenreihen zugleich darzustellen. Es ist nur notwendig, beim ersten Zugriff zum Speicher einen Adressenkonflikt zwischen den Anforderern 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 Al. 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 Dl ausgelesen und die Adresse um 1 erhöht. Hierdurch erfolgt im nächsten Startzyklus ein Zugriff zum Operand D2 im Speichermodul 2 und nach einer nochmaligen Erhöhung der Adresse um 1 ein Zugriff zum Operand D3 im Speichermodul 3. Nach erfolgtem Zugriff zum Speichermodul 3 für den Operand D3 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 IO zu den Operanden Al, 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 3O zu dem gewünschten Speichermodul , welcher jeweils durch die Moduladresse des Anforderers A angegeben wird, zu bringen. Hierzu werden die beiden niederwertigen Bits, welche die Moduladresse darstellen, decodiert und die decodierten Signale auf den
409822/0740
PO 971 055
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 Speichermodul 2 gebracht.
In Fig. 9 ist die in Fig. 1 gezeigte Schaltmatrix 35 näher 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 Speiehermoduls 12 über eine Anzahl von ODER-Glieder 86, 87 und 88 zur gewünschten Verzögerungsschaltung 37, 38 oder 39 zu bringen.
Die in Fig. 1 gezeigte Starteinrichtung 20 und die Verzögerungsauswahl 22 sind in den Fig. 10, 11, 12 und 13 ausführlich dargestellt. In diesen Fign. wurde eine 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, C und D.
Aus Fig. 10 ist ersichtlich, daß eine 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 A dem Startmodul des Anforderers B zugeführt wird. Das in Fig. 10 dargestellte Signal "MOD 1 durch A" wird dem Start-
4098 2 2/07A0.'
PO 971 055
modul 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. 11 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 Speicheritiodul 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 UND-Glieder 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, welche 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 (Fig. 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
409822/0740
PO 971 055
des Anforderers A als auch des Anforderers B belegt ist.
Der Startmodul für den Anforderer C ist in den Fign. 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 Startmoduls für den Anforderer B (Fig. 11), welche angeben, welche Startmoduln bereits für den ersten Zugriffszyklus gegeben sind, sowie eine Anzeige des vom Anforderer C gewünschten ersten Speichermoduls. Das Ausgangssignal des ODER-Gliedes 110 in Fig. 12B gibt an, daß keine Startzyklen für den Anforderer C notwendig sind. Diese Anzeige ergibt sich durch die Ausgangssignale der UND-Glieder 111 bis 114. Die Eingangssignale zu den UND-Gliedern 111 bis 114 stellen die decodierten Moduladressen des vom Anforderer C gewünschten ersten Moduls dar, während jeweils der andere Eingang der UND-Glieder 111 bis 114 mit dem Ausgang eines entsprechenden Inverters 115 bis 118 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 C einen 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 Signal 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 Anforderer C bis zum Modul 3 weitergeschaltet werden muß, bevor ein Zugriff zu den Speichermoduln 1 und 2 durch
409822/0740
PO 971 055
die Anforderer A und B durchgeführt werden kann.
Die andere Möglichkeit der Anforderungen für einen ersten Zugriff des Anforderers C sind in Fig. 12B durch das Aus gangs signal des ODER-Gliedes 130 gegeben, welches als Eingänge die Ausgangssignale der UND-Glieder 131 bis 134 erhält. Z.B. 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 ersten 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 D. Aufgrund dieser 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, um einen Adressenkonflikt zu beheben. Z.B. 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, welche 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 erzeugen 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 Fall muß nämlich der Modul 3 für einen Zugriff durch den Anforderer C und nicht den Anforderer D re-
409822/0740
PO 971 055
serviert werden.
Der Startmodul für den Anforderer D ist in den Fign. 13A und 13B gezeigt. Dieser Modul löst Adressenkonflikte zwischen den Anforderern A, B oder C einerseits und dem Anforderer D andererseits. Die in dem Startmodul D gezeigten logischen Schaltungen entsprechen im wesentlichen den in den Fign. 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 Fig. 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 A&aahl der notwendigen Startzyklen für den Anforderer D.
Die in Fig. 1 gezeigte Zugriffssteuerung 21 ist in Fig. 14 ausführlich gezeigt. Das Grundelement dieser Einrichtung wird durch einen Startzähler SUC 150 gebildet. Es kann sich dabei um irgend einen 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ß SpeieherZugriffsoperationen 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.
• . 40982 2/07 40
PO 971 055
Der in den Zähler 15O 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 Fign. 10 bis 13 gezeigten Einrichtunge 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 O, 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 Wert 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.
Der übrige Teil der in Fig. 14 gezeigten Einrichtung dient dazu, die Startzyklen in geordneter Reihenfolge durchzuführen, d. h., 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 Speieherzugriffszyklen ein, d. h. gleichzeitige Zugriffe zu 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 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 den jeweiligen Adressenregister stehende Adresse um 1 erhöht.
409822/0740
PO 971 O55
Im Falle des Anforderers A wird ein erster Speicherzugriff ermöglicht, wenn der Startzähler 150 auf 0 steht und die Speicherzugriff seinrichtung auf "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 Zugriff in dem Speieherzyklus 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 Fig. 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 Verzögerungszeiten vorgesehen werden müssen. Deshalb wird das UND-Glied 182 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 1, notwendig ist. In diesem Falle wird der Startzähler 150 auf den Wert 3
409 822/0 7 40
PO 971 055
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 1 erhöht. Das UND-Glied 184 erhält ein Vorbereitungssignal vom ODER-Glied 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 C inkrementiert und zum Speicher bringt, als Resultat der Signale vom ODER-Glied 180 für die Startzyklen 2 und
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 angezeigt Wert gleich 1 ist.
Nach Beendigung der drei Startzyklen ist der vom Startzähler 15O 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öht werden.
Zusammenfassend kann die Arbeitsweise des Ausführungsbeispieles der Erfindung wie folgt beschrieben werden: Es wird ein Speicher gezeigt, in dem die Startadressen der ersten Operanden von mehreren Operandenreihen auf willkürliche 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 Adressenkonflikte überprüft und Konflikte für einen ersten Zugriff zum Speichersystem zwischen zwei Anforderern gelöst. Für einzelene Anforderer wird eine bestimmte Anzahl von Startzyklen in einer vorherbestimmten Reihenfolge vorgesehen und damit der Adressenkonflikt gelöst, derart, daß hierauf gleichzeitige Zugriffe für alle Anforderer zum Speichersystem
409822/0740
PO 971 055
durchgeführt werden können. Die Einrichtung gestattet es, zu bestimmen, welche der Anforderer zuerst Zugriff 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.
In Änwendungsbeispielen, in denen ein solches gleichzeitiges Verarbeiten nicht notwendig ist, bestimmt die Einrichtung nur die Reihenfolge der während der Startzyklen notwendigen Zugriffsoperationen. Die gezeigte Einrichtung kann auch zur Speicherung von Operanden verwendet werden, welche auf einer Vielzahl von Kanälen gleichzeitig eintreffen« Hierbei werden die Anfangs-Adressenkonflikte gelöst, entsprechende Anfangsadressenreihen zum Zugriff zum Speicher erzeugt und in die Datenübertragungswege entsprechende Verzögerungen eingeschaltet, um zu erreichen, daß die auf den Kanälen gleichzeitig eintreffenden Operanden auch gleichzeitig dem Speicher zur Speicherung angeboten werden, sobald die An-,fangs-Adressenkonflikte gelöst sind.
Zu anderen Verwendungszwecken kann es notwendig sein, die in Fig. 3 gezeigte Einrichtung zu modifizieren. In Datenverarbeitungsanlagen wird eine Vielzahl von Datenquellen, wie z.B. periphere Speicher, Programmoduln, Datenserien, usw. verwendet, deren Gebrauch durch eine Vielzahl von Benutzern geregelt werden muß. Es ist wünschenswert, hierbei jeden der Benutzer eine eigene Bezeichnung der gewünschten Datenquelle zu ermöglichen und im weiteren die Zuteilung der Datenquellen zu den einzelnen Benutzern der Datenverarbeitungsanlage zu überlassen. Wenn z.B. mehrere Anforderer zu einem gewissen Zeitpunkt eine Anforderung für eine bestimmte Datenquelle, welche durch alle Anforderer mit der gleichen Be-
409822/0740
PO 971 055
zeichnung angefordert wird, erhalten wird, muß durch eine bestimmte Methode dieser Anforderungskonflikt aus der Welt geräumt werden und eine bestimmte Datenquelle jedem der Anforderer zugeteilt werden, wobei der Unterschied zwischen dem Ausmaß der ge- " wünschten Datenquellen einerseits und der zugeteilten Datenquellen andererseits festgehalten werden muß.
Eine solche Methode kann mit Hilfe der in den Flgn. 10 bis 13 gezeigten Einrichtung durchgeführt werden. In diesen Figuren werden die einzelnen Anforderer mit einer Zuteilungspriorität für die verschiedenen Datenquellen versehen. Dem Anforderer A wird die höchste Zuteilungspriorität gegeben, was aus Fig. 10 ersichtlich ist. In Fig. 11 wird für den Anforderer B entschieden, ob die von ihm gewünschte Einrichtung die gleiche ist oder nicht, wie die vom Anforderer A gewünschte. Wenn nicht, wird vom ODER-Glied 103 ein Ausgangssignal erzeugt, welches angibt, daß die dem Anforderer B zugeteilte Einrichtung dieselbe ist, wie die verlangte. Falls vom Anforderer B die gleiche Einrichtung gewünscht wird wie vom Anforderer A, erzeugt das ODER-Glied 90 ein Ausgangssignal, welches anzeigt, daß die vom Anforderer B bezeichnete Einrichtung um 1 modifiziert wurde. Auch in den Fig. 12 und 13 wird auf die gleiche Weise vorgegangen und eine Abweichung zwischen der vom Anforderer C gewünschten und der ihm zugeteilten Einrichtung um 0,1 oder 2 definiert. Für den Anforderer D kann diese Abweichung 0,1, 2 oder 3 betragen. Diese Ausgangssignale, welche im bevorzugten Ausführungsbeispiel dazu benutzt werden, die Speicheradressenfolge während einer gewissen Anzahl vor Startzyklen zu liefern und Verzögerungen in die Datenpfade einzuschalten, können dann auf jede mögliche Art von der Datenverarbeitungsanlage dazu benutzt werden, den Unterschied zwischen der vom Anforderer gewünschten Einrichtung und der ihm zugeteilten Einrichtung festzulegen.
po 971 055 409822/0740

Claims (11)

  1. PA TE-N TA H' SPRÜCHE
    Verfahren zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln, wobei aufeinanderfolgende Operanden einer Operandenreihe in aufeinanderfolgenden Speichermoduln gespeichert sind und die Operandenadresse eine Moduladresse und eine Spexcherstellenadresse enthält, gekennzeichnet durch folgende Verfahrensschritte:
    a) die von mehreren Anforderen gelieferten Moduladressen werden auf Gleichheit überprüft,
    b) bei Konflikten werden den Anforderern Speicherstartzyklen nach vorbestimmten Prioritäten zugeteilt,
    c) nach Durchführung der Startzyklen werden die Anforderungen aller Anforderer, die sich nunmehr auf jeweils voneinander verschiedene Speichermoduln beziehen, gleichzeitig ausgeführt.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die in den Startzyklen ausgelesenen Operanden vor der Bearbeitung um einen geeigneten Betrag verzögert werden, damit die Operanden aller Anforderer gleichzeitig zur Verarbeitung gelangen.
  3. 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß für Anforderer geringer Priorität mehr Startzyklen vorgesehen werden als für. Anforderer höherer Priorität.
  4. 4. Einrichtung zur Durchführung des Verfahrens nach den Ansprüchen 1 bis 3, gekennzeichnet durch eine Starteinrichtung (2O) zur Feststellung von Start-Adressenkonflikten und zur Bestimmung der Anzahl Startzyklen für jeden Anforderer, sowie durch eine von der Starteinrichtung ge-
    . . steuerte Zugriffssteuerung (21), welche eine Adressentorschal tung (15) derart steuert, daß die Zugriffsadressen der einzelnen Anforderer während der Startzyklen dem
    40982 2/07-40
    PO 971 055
    Speicher so zugeführt werden, daß nach Ablauf der Startzyklen keine Adressenkonflikte mehr bestehen.
  5. 5. Einrichtung nach Anspruch 4, gekennzeichnet durch eine Einrichtung (22) zur Auswahl einer beschränkten Anzahl Verζögerungszeiten in Verzögerungsschaltungen (37, 38, 39), derart, daß die in den Startzyklen ausgelesenen Operanden mit den später ausgelesenen Operanden anderer Anforderer gleichzeitig bei einer Recheneinheit (30) eintreffen.
  6. 6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Operandenreihen die Komponenten von Vektoren darstellen und daß der Anforderer (A) der höchsten Priorität den Resultatvektor darstellt.
  7. 7. Einrichtung nach Anspruch 5 , dadurch gekennzeichnet, daß die Anforderungen (A-D) Kanalanforderungen zum Hauptspeicher (10) darstellen.
  8. 8. Einrichtung nach Anspruch 5, gekennzeichnet durch einen Startzähler (15O), welcher auf die notwendige Anzahl Startzyklen durch logische Einrichtungen (Fig. 14, oberer Teil) gesetzt wird und durch logische Schaltungen (Fig. 14, unterer Teil) zur Steuerung der Adressentore (15) in der zur Lösung der Adressenkonflikte notwendigen Reihenfolge.
  9. 9. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die Starteinrichtung (20) für jeden Anforderer einen Startmodul (Fig. 10 bis 13) enthält, welcher als Eingang die Start-Moduladresse des Anforderers, sowie die Adressen der von dem Anforderer der nächsthöheren Priorität belegten Speichermoduln (12) empfängt und daraus die Anzahl Startzyklen und Verζögerungszeiten bestimmt.
    PO 971 055 40982270740
    - 27 - 235452T
  10. 10. Einrichtung nach Anspruch 5, gekennzeichnet durch einen von der Starteinrichtung (20) gesteuerten Schalter (36) und eine gesteuerte Schaltmatrix (35) zur Verbindung des Speichers (10) mit der Recheneinheit"(30) .
  11. 11. Einrichtung nach Anspruch 5, dadurch gekennzeichnet/ daß die Anzahl η der Anforderer (A-D) gleich ist der Anzahl Speichermoduln (12) ,
    daß nur in n-1 Übertragungswegen (31, 32,. 33) der Anforderer Verzögerungsschaltungen (37, 38, 39) vorgesehen sind, daß in diesen Übertragungswegen die Verzögerungen folgende Werte annehmen können: 0 oder 1 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 (n-1) Wegen Operanden vom Speicher (10) zur Recheneinheit (30) übertragen werden und daß auf dem n-ten Weg das Resultat von der Recheneinheit zum Speicher übertragen wird.
    409822/0740
    PO 971 055
    a*
    Le e rs e i te
DE2354521A 1972-11-24 1973-10-31 Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln Expired DE2354521C2 (de)

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 true DE2354521A1 (de) 1974-05-30
DE2354521C2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2542102A1 (de) * 1974-09-25 1976-04-08 Data General Corp Datenverarbeitende anlage

Families Citing this family (31)

* Cited by examiner, † Cited by third party
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
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
JPH048824B2 (de) * 1979-01-09 1992-02-18
US4302818A (en) * 1979-07-10 1981-11-24 Texas Instruments Incorporated Micro-vector processor
US4319324A (en) * 1980-01-08 1982-03-09 Honeywell Information Systems Inc. Double word fetch system
US4376972A (en) * 1980-01-08 1983-03-15 Honeywell Information Systems Inc. Sequential word aligned address apparatus
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 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 優先順位回路
DE3485635D1 (de) * 1983-04-25 1992-05-14 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US26087A (en) 1859-11-15 Improvement in fastening metal hoops on cotton-bales
DE2025933A1 (de) * 1969-07-09 1971-01-21 Burroughs Corp , eine Ges n d Geset zen d Staates Michigan, Detroit Mich (V St A) Vorrangschaltung für eine Eingangs / Ausgangs Vermittlung

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3541516A (en) * 1965-06-30 1970-11-17 Ibm Vector arithmetic multiprocessor computing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US26087A (en) 1859-11-15 Improvement in fastening metal hoops on cotton-bales
DE2025933A1 (de) * 1969-07-09 1971-01-21 Burroughs Corp , eine Ges n d Geset zen d Staates Michigan, Detroit Mich (V St A) Vorrangschaltung für eine Eingangs / Ausgangs Vermittlung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US Re. 26087 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2542102A1 (de) * 1974-09-25 1976-04-08 Data General Corp Datenverarbeitende anlage

Also Published As

Publication number Publication date
CA1014669A (en) 1977-07-26
JPS4984335A (de) 1974-08-13
FR2208162B1 (de) 1976-06-18
US3812473A (en) 1974-05-21
JPS5317458B2 (de) 1978-06-08
IT1001546B (it) 1976-04-30
FR2208162A1 (de) 1974-06-21
DE2354521C2 (de) 1983-12-22
GB1438875A (en) 1976-06-09

Similar Documents

Publication Publication Date Title
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE3300263C2 (de)
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE2912287C3 (de) Datenverarbeitungsanlage
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2230103A1 (de) Adressiereinrichtung fuer einen speicher
DE2360303C2 (de) Datenverarbeitungsanlage mit Adreßübersetzung für Ein-/Ausgabekanäle
DE2712224A1 (de) Datenverarbeitungsanlage
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE1901343B2 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE3400723C2 (de)
DE1269393B (de) Mikroprogramm-Steuerwerk
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE1449544A1 (de) Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk
DE68927202T2 (de) Paralleler Prozessor
DE2625113C2 (de) Speicherschutzeinrichtung
DE2951040C2 (de)
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE1922304A1 (de) Datenspeichersteuergeraet
DE1524181B2 (de) Auswahlvorrichtung fuer ein und ausgabegeraete einer daten verarbeitungsanlage
DE19628039B4 (de) Speicheradressen-Steuerschaltung

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