DE2354521C2 - Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln - Google Patents

Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln

Info

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
Application number
DE2354521A
Other languages
English (en)
Other versions
DE2354521A1 (de
Inventor
Stuart Gordon Poughkeepsie N.Y. 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

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ß 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.
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-
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
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
OCS«.ll.ftl.f dll.lfl.ll.
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
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 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.
Der übrige Teil der in F ΐ g; 14 gezeigten Einrichtung
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
Im Falle des Anforderers A wird ein erster Speicherzugriff ermöglicht wenn der Startzähler 150
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:
Es wird ein Speicher gezeigt, in dem die Startadressen
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.
Hierzu 11 Elatt Zeichnungen

Claims (1)

  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:
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 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)

* 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
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)

* 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
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

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