DE3338345C2 - - Google Patents
Info
- Publication number
- DE3338345C2 DE3338345C2 DE3338345A DE3338345A DE3338345C2 DE 3338345 C2 DE3338345 C2 DE 3338345C2 DE 3338345 A DE3338345 A DE 3338345A DE 3338345 A DE3338345 A DE 3338345A DE 3338345 C2 DE3338345 C2 DE 3338345C2
- Authority
- DE
- Germany
- Prior art keywords
- vector
- data
- register
- main memory
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
Description
Die Erfindung betrifft einen Vektorprozessor gemäß dem
Oberbegriff des Anspruchs 1. Ein solcher Vektorprozessor
ist aus der EP-OS 00 44 563 bekannt.
Allgemein weist ein Vektorprozessor einen Hauptspeicher, der
Vektordaten speichert und ein Vektorregister, das aus dem Hauptspeicher
ausgelesene Vektordaten speichert, auf. Der Zugriff zum Hauptspeicher und
zum Vektorregister für das Leben und Schreiben erfolgt durch
Kennzeichnung einer Bitposition jeweils in einem Wort. Die
zum Lesen oder Schreiben gekennzeichnete Bitposition wird
Adressgrenze (englisch: adress bound) genannt. Der Hauptspeicher und die
Adressregister können Daten von mehrfacher Bytebreite speichern. Falls im Hauptspeicher
Daten l₁-Byte breit, im Adressregister l₂-Byte und ein Vektorelement
m-Byte breit gespeichert sind, wird angenommen, daß l₁/m eine Ganzzahl
und l₂ größer oder gleich m ist. Im Hauptspeicher gespeicherte Vektordaten
werden durch Kennzeichnung ihrer Adressgrenze im Vektor-Prozessor
ausgelesen, als Vektorelement im Vektorregister gespeichert und dann vom
Vektorregister einer arithmetischen Einheit für die Berechnung übertragen.
Das Berechnungsergebnis wird im Vektorregister gespeichert.
Bei bekannten Vektorprozessoren, die zwei arithmetische Einheiten aufweisen
und bei denen jedes Wort des Vektorregisters aus zwei von den getrennten
arithmetischen Einheiten, zum Beispiel der arithmetischen Einheit 0 und 1 zu
verarbeitenden Vektordatenelementen besteht, muß diejenige arithmetische
Einheit bestimmt werden, die für die Verarbeitung des jeweiligen Vektordatenelements
in dem jeweiligen Wort des Vektorregisters verwendet werden soll
und in welche arithmetische Einheit das jeweilige Vektordatenelement eingegeben
werden muß. Aufgrund der komplizierten Steuerung für die häufige
Datenübertragung vom Vektorregister zu den arithmetischen Einheiten ergibt sich
eine lange Berechnungsdauer.
Fig. 2(e) zeigt beispielhaft wie im Hauptspeicher 100 eines herkömmlichen Vektorprozessors
angeordnete Vektordatenelemente in ein Vektorregister (200-1) gesetzt
werden. In der Fig. 2 ist jedes Wort des Vektorregisters 200-1 8 Byte breit,
während die mit F(1) und F(2) bezeichneten Daten 4 Byte breit sind. Die Datenelemente
F(1), F(3) und F(5) sind in die eine arithmetische Einheit und die Daten
F(2) und F(4) in die andere arithmetische Einheit einzugeben. Bei der Übertragung
der Vektordaten vom Vektorregister 200-1 zur arithmetischen Einheit muß bestimmt
werden, ob die rechten 4 Byte oder die linken 4 Byte eines als erstes Wort aus
dem Vektorregister ausgelesenen 8-Byte-Worts ein effektives Datum F(1) enthalten.
Ebenfalls muß bestimmt werden, welche der arithmetischen Einheiten für die
Berechnung des Datums F(1) verwendet werden soll. Für das zweite Wort muß bestimmt
werden, welche arithmetischen Einheit für das jeweilige Datum F(1) und F(2)
in dem aus dem Vektorregister ausgelesenen Wort verwendet werden soll. Derselbe
Bestimmungsvorgang ist, für die folgenden zu verarbeitenden Wort nötig.
In Fig. 2(f) werden im Hauptspeicher 100 gespeicherte Vektordatenelemente
in der in der Figur dargestellten Weise im Vektorregister 200-1 gesetzt. Auch in
diesem Fall weisen jedes Wort des Vektorregisters 200-1 8-Byte- und die Daten,
wie G(1) und G(2) 4-Byte-Breite auf. Die Daten G(1), G(3) und G(5) sind der
einen arithmetischen Einheit und die Daten G(2) und G(4) der anderen arithmetischen
Einheit einzugeben. Auch im Falle der Fig. 2(f) ist für die Übertragung
der Vektordatenelemente im Vektorregister 200-1 zur arithmetischen Einheit 300
die Bestimmung, ob sich ein effektives Datum in den rechten oder linken 4 Byte
eines aus dem Vektorregister 200-1 ausgelesenen 8 Byte Worts befindet, und welche
arithmetische Einheit das effektive Datum erhalten soll, erforderlich. Beide in
Fig. 2(e) und Fig. 2(f) dargestellten Fälle erfordern eine komplizierte Steuerschaltung
zur Bestimmung der Datenübertragung vom Vektorregister zu den
arithmetischen Einheiten und für diese komplizierte Steuerung der Datenübertragung
vom Vektorregister zu den arithmetischen Einheiten wird zusätzlich
Zeit verbraucht, wodurch sich als Ergebnis die Vektorberechnungszeit nachteilig
verlängert.
Bei einem herkömmlichen Vektorprozessor mit nur einer einzigen arithmetischen
Einheit zur Verarbeitung des jeweiligen Wortes des Vektorregisters kann ein
Vektordatum dann nicht verarbeitet werden, falls mehrere Vektorelemente
des Vektordatums in einem Speicherbereich des Speichers gespeichert sind.
Man könnte bei der Anwendung der Technik, mit der bestimmt wird, welches
Vektordatenelement im jeweiligen Wort des Vektorregisters welchem der beiden
arithmetischen Einheiten des herkömmlichen Vektorprozessors mit zwei arithmetischen
Einheiten eingegeben werden soll, eine Lösung dahingehend versuchen,
daß man wie beim obenerwähnten Vektorprozessor nur eine einzige arithmetische
Einheit verwendet. Daraus ergibt sich jedoch folgendes Problem:
Die im Hauptspeicher eingespeicherten Vektordaten können in das Vektorregister
einmal ohne Veränderung der Anordnung im Hauptspeicher eingeschrieben werden.
In diesem Fall müssen jedoch die in Worten des Vektordatenregisters angeordneten
Vektordatenelements, bevor sie zur Verarbeitung der arithmetischen Einheit eingegeben
werden, in ihrer Position verändert werden. Wenn zum Beispiel das Vektorregister
8-Byte-Worte mit einem in dem rechten 4 Byte gespeicherten 4 Byte
langen Vektordatenelement hat und die arithmetische Einheit ein von links nach
rechts angeordnetes Eingabewortformat benötigt, muß ein aus dem Vektorregister
ausgelesenes Vektordatenelement in der Weise, daß es von der linken Seite zu
der rechten Seite des Wortes verschoben wird, neu arrangiert werden. Wenn in
einem anderen Beispiel jedes Vektordatenelement in einem Wort des Vektorregisters
eine unterschiedliche Anordnung besitzt, wie wenn beispielsweise mehrere
Vektordatenelemente kontinuierlich in einem Wort vorhanden sind, muß für
jedes Vektordatenelement eine unterschiedliche Neuordnung erfolgen. Da,
um jeweils die Umordnung der Vektordatenelemente zu bestimmen, ein Entscheidungsvorgang
nötig ist, wird die dazu verwendete Steuerschaltung kompliziert
und die Übertragung der Vektordaten vom Vektordatenregister zur arithmetischen
Einheit ist zeitaufwendig. Bei der Vektorberechnung folgt dem Auslesen der
Vektordaten aus dem Hauptspeicher und der Übertragung zum Vektorregister eine
häufige Übertragung von Vektordaten und Ergebnissen zwischen Vektorregister
und arithmetischer Einheit, was wiederum die Vektorberechnungszeit wegen der
Umordnung der Vektordatenelemente und der Bestimmung der richtigen Ordnung
der Vektordatenelemente, immer wenn ein solches vom Vektorregister zur
arithmetischen Einheit übertragen wird, verlängert und ein komplizierte
Steuerschaltung für die Bestimmung erfordert. Die obigen Schwierigkeiten werden
im folgenden genauer ausgeführt:
Fig. 1 stellt den Vorgang bei der Vektorberechnung duch einen Vektor-Prozessor
anschaulich dar. Der in Fig. 1 dargestellte Aufbau enthält einen Hauptspeicher 100,
eine Vektorregistergruppe 200, die Vektorregister 200-1 bis 200-n, die jeweils
aus l′ Elementen bestehen, aufweist und eine arithmetische Einheit 300. Bei der
Verarbeitung werden l′ Elemente umfassende Vektordaten A(1-l) und B(1-l), die
im Hauptspeicher 100 gespeichert sind ausgelesen und den Vektorregistern 200-1
und 200-2 übertragen und durch die arithmetische Einheit 300 die gewünschte
Berechnung ausgeführt. Die als Ergebnis der Berechnung anfallenden Vektordaten
C(1-l) werden über das Vektorregister 200-3 in den Hauptspeicher 100 eingespeichert.
Zur Vereinfachung des Datenaufbaues kann der Hauptspeicher 100 für
die Vektordatenelemente die feste Wortlänge 8 Byte haben. Falls jedoch das
Format des Vektordatenelements nicht nur 8 Byte sondern zum Beispiel auch
4 Byte haben soll, kann ein umfassendes Vektordatum unter Verwendung des
gleichen Hauptspeichers mit der gleichen Kapazität verarbeitet werden. Dies
stellt eine wesentliche Forderung an einen Vektor-Prozessor dar. Im Fall Vektordatenelemente
unterschiedlichen Formats im Hauptspeicher 100 gespeichert sind
(z. B. 4-Byte-Daten und 8-Byte-Daten) und in die Vektorregister zur Berechnung
eingelesen werden, ergibt sich das folgende, anhand der Fig. 2 beschriebene
Problem:
In den Fig. 2a bis 2f ist mit dem Bezugszeichen 100 ein Hauptspeicher und mit
200-1 ein Vektorregister gekennzeichnet. Dabei wird angenommen, daß die Elemente
des Vektorregisters ein 8-Byte-Datenformat, die im Hauptspeicher gespeicherten
Vektordaten ein 8-Byte-Datenformat aufweisen und daß eine Datenadresse im
Hauptspeicher byteweise ausgegeben wird. Ebenfalls wird angenommen, daß
die Vektordaten im Hauptspeicher 100 unter folgendem Adressenformat gespeichert
sind:
Es wird nämlich das führende Element (das erste Element) direkt adressiert, die
folgenden Elemente jedoch in byteweisen Adressinkrementen relativ zum führenden
Element. In Fig. 2(a) und 2(b) sind die Vorgänge beim Auslesen der im
Hauptspeicher 100 gespeicherte 8-Byte-Vektordaten in das Vektorregister 200-1
und dann die Eingabe der Daten in die arithmetische Einheit 300 dargestellt.
Im Fall (a) sind die Vektordaten im Hauptspeicher 100 mit dem Adressinkrement 8
für jedes Datenelement hintereinander gespeichert, während im Fall (b) das
Adressinkrement 16 für jedes Element der im Hauptspeicher 100 gespeicherten
Vektordaten gewählt ist, wobei die Datenelemente jeweils jeden zweiten Speicherplatz
des Hauptspeichers einnehmen. In beiden Fällen ist die Übertragung der aus
dem Hauptspeicher ausgelesenen Vektordaten zum Vektorregister in der vorliegenden
Anordnung ohne Datenmanipulation (Schieben) durchführbar. In den
Fällen (c) und (d) ist der Vorgang der Übertragung von Vektordaten deren Elemente
jeweils ein 4-Byte-Datenformat besitzen, dargestellt. Im Fall (c) sind die Elemente
mit einem Adressinkrement von vier kontinuierlich im Hauptspeicher gespeichert,
wodurch jeweils zwei Elemente paarweise als 8-Byte-Datum aus dem Hauptspeicher
ausgelesen werden können. Bei diesem Verfahren können, wie die Fig. 2 zeigt,
die ersten und die zweiten Elemente der Vektordaten jeweils in die linke und
die rechte Hälfte des ersten Elements des Vektorregisters übertragen werden.
Im Fall (d) sind die Vektorelemente mit dem Adressinkrement 20 gespeichert,
und ungeradzahlige Elemente in die linke Hälfte der Elemente des Vektorregisters
und geradzahlige Elemente in die rechte Hälfte des Vektorregisters als effektive
4-Byte-Daten gesetzt. Wenn bei den Fällen (c) und (d) im Vektorregister stehende
Vektordaten der arithmetischen Einheit linksbündig mit ansteigender Elementnummer
eingegeben werden sollen, ergeben sich folgende Schwierigkeiten:
- - Ein Vektorregisterlesezähler muß im Falle der 4-Byte-Vektordatenelemente mit der kontinuierlichen Vektordatenelementadresse anders fortgeschrieben werden als in anderen Fällen, wodurch der Fortschreibevorgang für den Zähler umständlich wird;
- - die Vektorregistersteuerung muß im Falle der 4-Byte-Daten informiert werden, ob die 8 Byte eines Elements des Vektorregisters zwei effektive 4-Byte-Daten oder eines enthalten und im letzten Fall ob das 4-Byte-Vektorelement in der rechten Hälfte oder in der linken Hälfte steht und außerdem ist eine Schaltung nötig, die aus dem 8-Byte-Datum des Vektorregisters das 4-Byte- Datum herausnimmt. Die dadurch sich ergebende komplizierte Vektorregistersteuerung braucht damit eine zusätzliche Zeit, um Daten vom Vektorregister zu der arithmetischen Einheit zu übertragen und der Schaltungsaufwand (hardwar) der Registersteuerung erhöht sich.
Bei den anhand der Fig. 2(a) bis 2(d) dargestellten Fällen werden die Vektordatenelemente
unabhängig vom Datenformat der Vektordaten Element für Element der
arithmetischen Einheit übertragen, wobei beim 4-Byte-Datenformat die paarweise
Übertragung zweier Vektorelemente zur arithmetischen Einheit und die übereinstimmende
Ausführung der Berechnung für die beiden Elemente möglich ist,
wie bei Fig. 2(e) und (f). In den letzteren Fällen müssen zusätzlich zu den
zuvor beschriebenen Vorgängen zwei aus zwei benachbarten Elementen des
Vektorregisters ausgelesene Vektordaten abhängig von einer Information, wie
effektive 4-Byte-Daten gespeichert sind, verschmolzen werden, wozu eine komplizierte
Steuerung nötig ist. Dazu muß gesagt werden, daß die Verarbeitung
in den in Fig. 2(e) und 2(f) dargestellten Fällen mittels zweier arithmetischer
Einheiten erfolgt.
Die oben angeführten komplizierten Datenbehandlungen sind zum Auslesen von
Vektordaten aus dem Hauptspeicher und zur geordneten Übertragung in einem
vorgegebenen Format zur arithmetischen Einheit nötig. Falls diese Datenbehandlung
bei der Übertragung vom Vektorregister zur arithmetischen Einheit geschieht,
muß dafür eine komplizierte Steuerschaltung für jedes Vektorregister vorhanden
sein und zusätzlich zur komplexen Vektorregistersteuerschaltung braucht das
Auslesen der Vektordaten aus dem Vektorregister in die arithmetische Einheit
viel Zeit, was einer Beschleunigung der Verarbeitung hinderlich im Weg steht.
Die genannte EP-OS 00 44 563 offenbart eine Technik, die
in dem Fall dienlich ist, wo die Anzahl zu verarbeitender
Vektorelemente größer ist als die Anzahl der in einem Vektorregister
oder in einem Vektordatenspeicher speicherbaren
Vektorelemente. In diesem Falle können unmöglich alle Vektordatenelemente
gleichzeitig in das Vektordatenregister eingeschrieben
werden. Deshalb teilt die Schaltung der genannten
EP-OS 00 44 563 die Vektorelemente und schreibt die geteilten
Elemente in den Vektordatenspeicher. Es ist jedoch
nur der Fall offenbart, wo die l₁-Datenbyte, die aus dem Hauptspeicher
auf einen Zugriff hin ausgelesen werden können, gerade
die Vektordatenelemente darstellen. Dagegen befaßt sich die
genannte Entgegenhaltung überhaupt nicht mit den Fällen, wo
Vektordatenelemente nur in der ersten Hälfte der l₁-Datenbyte
oder nur der zweiten Hälfte der auf einen Zugriff hin aus dem
Hauptspeicher ausgelesenen l₁-Datenbyte stehen.
Aufgabe der Erfindung ist es, einen Vektorprozessor zu ermöglichen,
bei dem aus dem Hauptspeicher ausgelesene Vektordaten
durch Änderung der Position der Vektordatenelemente zur
Verarbeitung durch die arithmetische Einheit aufbereitet werden
können, um dadurch die Verarbeitung der Daten, nachdem
diese in der Vektorspeichereinrichtung gespeichert sind, zu
vereinfachen.
Die obige Aufgabe wird bei einem Vektorprozessor gemäß dem
Oberbegriff des Anspruchs 1 erfindungsgemäß durch die in
dessen kennzeichnendem Teil angegebenen Merkmale gelöst.
Die Patentansprüche 2 bis 9 kennzeichnen jeweils vorteilhafte
Ausbildungen davon.
Die Erfindung wird im folgenden anhand der Zeichnung beispielhaft näher beschrieben. Es
zeigt
Fig. 1 ein knappes Übersichtsdiagramm eines Vektorprozessor;
Fig. 2(a) und (b) Speichertafeln, die die Speicheranordnung, wenn im Vektorregister 8-Byte-
Vektordatenelemente gespeichert sind, erklären;
Fig. 2(c) bis (f) Speichertafeln, die die Speichertechnik beim Speichern von 4-Byte-
Vektordatenelemente im Vektorregister erläutern;
Fig. 3(a) bis (d) Speichertafeln, die die vorgeschlagene Speichertechnik beim Speichern von 4-Byte-
Vektordatenelementen im Vektorregister erläutern;
Fig. 4 ein Blockschaltbild eines Ausführungsbeispiels des vorgeschlagenen
Vektorprozessors;
Fig. 5 ein Diagramm des Anforderungsordnungsformats, das im vorgeschlagenen
Vektorprozessor verwendet wird;
Fig. 6(a) bis 6(c) Ablaufpläne für die Verarbeitung des in Fig. 4 dargestellten Vektorprozessors;
Fig. 7 ein Schaltbild, das die Anforderungsausgabesteuerschaltung von Fig. 4
im einzelnen darstellt;
Fig. 8 ein Schaltbild, das im einzelnen die in Fig. 4 dargestellte Datenwandlersteuerschaltung
zeigt;
Fig. 9 ein Blockschaltbild des in Fig. 4 dargestellten Adressgenerators;
Fig. 10 eine Tabelle, die die vom Inkrementvielfachgenerator von Fig. 9
erzeugten vielfach erklärt;
Fig. 11 ein Blockschaltbild eines weiteren Ausführungsbeispiels der in Fig. 4
dargestellten Datenwandlersteuerschaltung.
Im folgenden wird ein bevorzugtes Ausführungsbeispiel beschrieben.
Der in Fig. 4 dargestellte Schaltungsaufbau
enthält ein Befehlsregister 1, eine Adressregistergruppe 2,
eine Inkrementregistergruppe 3, eine Erfassungsschaltung 4, die ermittelt, ob
Vektordatenelemente mit dem Adressinkrement 4 vorliegen oder nicht, eine
Erfassungsschaltung 5, die feststellt, ob die Adressgrenze beim vierten Byte
in einem 8-Byte-Wort liegt oder nicht, einen Befehlsdecoder 6, eine Anforderungsausgabe-Steuerschaltung
7, ein Anforderungsausgabe-Register 8, ein Auftragsregister
9, eine Adressgeneratorschaltung 10, ein Adressregister 11,
eine Prioritätsschaltung 12, ein MS(Hauptspeicher)-Startregister 13, ein Auftragsregister
14, ein Adressregister 15, ein Vorregister 16, ein Auftragsregister
17, ein Datenregister 18, eine Datenwandler-Steuerschaltung 19, ein Schreibflaggenregister 20, ein Schreibende-Flaggenregister 21, ein Datenregister 22,
eine Vektorregisterschreibschaltung 23, einen Hauptspeicher 100, Vektorregister
200-1 bis 200-n und Signalleitung l 0 bis l 27, l 28-1 bis l 28-n, und l 29 bis l 34.
Anhand der Fig. 4 wird die in Fig. 2(a) dargestellte Operation des Lesens von
Vektordaten A(1)-A(5) aus dem Hauptspeicher 100 und deren Einschreiben
in das Vektorregister 200-1 zunächst beschreiben. Eine nicht dargestellte
Vektorbefehls-Steuerschaltung (VIC) überträgt ein Startsignal jeweils zur Anforderungsausgabe-Steuerschaltung
7 und zur Vektorregister-Schreibschaltung 23
über die Signalleitungen l 2 und l 29. Gleichzeitig informiert die VIC-Schaltung
die Anforderungsausgabe-Steuerschaltung 7 über die Anzahl der zu verarbeitenden
Vektordatenelemente über die Signalleitung l 1. Der Decoder 6 dekodiert den
OP-Code eines Vektorbefehls im Befehlsregister 1 und informiert die Anforderungsausgabe-Steuerschaltung
7 über das Datenformat jedes Vektordatenelements über
die Signalleitung l 32. Das Datenformat ist durch Dekodierung eines aus dem
Hauptspeicher 100 über die Leitung l 34 ausgelesenen Vektorbefehls erhältlich.
Die Signalleitung l 32 liefert eine "1", falls der Befehl ein 4-Byte-Vektordatum
kennzeichnet und eine "0" zur Kennzeichnung eines 8-Byte-Datums. In dem
in Fig. 2(a) dargestellten Beispiel liefert die Signalleitung l 32 eine "0" für den
8-Byte-Befehl. Die Vektorregisternummer (200-1) eines für den Empfang der
ausgelesenen Daten vorgesehenen Registers, das vom Register fällt R₁ des
im Befehlsregister 1 stehenden Vektorbefehls angegeben ist, wird der Vektorregister-Schreibschaltung
23 über die Signalleitung l 30 übertragen. Außerdem
wird die Adressregisternummer der Adressregistergruppe 2 und Information,
die ein Inkrement-Register aus der Inkrementregistergruppe 3 kennzeichnet,
die jeweils durch das Registerfeld R₂ und R₃ des Vektorbefehls im Befehlsregister
1 angegeben werden, diesen Registergruppen über die Signalleitung l 0
zugesendet. Die Adressregistergruppe 2 stellt eine Gruppe von Adressregistern dar,
die die Adressen der führenden Vektorelemente der im Hauptspeicher gespeicherten
Vektordaten halten, während die Inkrementregistergruppe 3 eine Gruppe von
Inkrement-Registern darstellt, die die Adressinkremente zwischen benachbarten
Elementen halten, deren Inhalte mit durch die Signalleitung l 0 gekennzeichnete
Registernummern über die Signalleitungen 14 und 15 zur
Adressgeneratorschaltung 10 übertragen werden. Gleichzeitig mit der Übertragung
der Anfangselementadresse und des Inkrements zur Adressgeneratorschaltung
10 wird die Adresse des Anfangselements der Erfassungsschaltung 5
eingegeben, die wiederum feststellt, ob die Adressgrenze das vierte Byte
darstellt oder nicht und darüber die Anforderungsausgabe-Steuerschaltung 7
informiert. In diesem Beispiel ist die Startadresse 0100 (in hexadizimaler
Schreibweise), und die Startadresse stellt nicht die 4-Byte-Grenze dar, weshalb
die Erfassungsschaltung 5 eine "0" über die Signalleitung l 10 sendet. Die
Erfassungsschaltung 4 empfängt das Inkrement und ermittelt, ob dieses
4 ist oder nicht und sendet, falls das Inkrement 4 ist, eine "1" oder andernfalls
"0" über die Signalleitung l 6 zur Anforderungsausgabe-Steuerschaltung 7.
Da in diesem Beispiel das Inkrement 8 beträgt, wird über die Signalleitung
l 6 eine "0" übertragen.
Nach Beendigung der vorangehend geschilderten Vorverarbeitung beginnt die
Leseoperation vom Hauptspeicher 100. Der Ablauf dieses Prozeses wird anhand
der in Fig. 6(a) dargestellten Zeittafel beschrieben. Diese Zeittafel zeigt die
Signalzustände an verschiedenen Stellen des Vektor-Prozessors beim Auslesen
von Vektordaten aus dem Hauptspeicher 100 in das Vektorregister. Mit n = 1,
n = 2, und so weiter, ist in den Fig. 6(a) und ebenso in den Fig. 6(b) und 6(c),
die später beschrieben werden, angegeben, daß Vektordatenelemente 1, 2 usw.
beim Lesen, Schreiben und dergleichen verarbeitet werden. Hier ergibt sich
der erste Zyklus wie folgt: Das Anforderungsausgaberegister 8 erzeugt Anforderungen
für das Auslesen von Daten aus dem Hauptspeicher 100 auf der Signalleitung
l 11 und sendet diese jeweils für ein Element der Vektordaten A(1-5) der Prioritätsschaltung
12 und die Zeitdauer für die Ausgabe der Anforderung für das erste
Element wird als erster Zyklus definiert. Im ersten Zyklus wird gleichzeitig mit
der Ausgabe der Anforderung für das erste Element ein Anforderungsauftrag
vom Auftragsregister 9 der Prioritätsschaltung 12 über die Signalleitung l 12 und
eine Leseadresse vom Adressregister 11 der Prioritätsschaltung 12 über die Signalleitung
l 14 gesendet. Der Anforderungsauftrag hat beispielsweise das in Fig. 5
dargestellte Format. In diesem Fall besteht ein Anforderungsauftrag aus 5 Bit
und Bit 0 bezeichnet eine Anforderernummer. Die Bezeichnung "Anforderer"
betrifft den in Fig. 4 strichpunktiert eingerahmten Schaltungsteil. Dabei können
mehrere solcher Anforderer vorhanden sein und diese sind nummeriert. Bei der
vorliegenden Anordnung werden die Anforderer 0 und 1 verwendet, wobei der
Erste dem Lesen und der Letztere dem Schreiben zugeordnet sind. Da der
Anforderer 0 hier verwendet wird, wird das Bit 0 des Anforderungsauftrages
"0". Bit 1 kennzeichnet das Datenformat eines Vektordatums und ist "0"
für einen das 8-Byte-Format kennzeichnenden Befehl oder "1" für einen das
4-Byte-Format kennzeichnenden Befehl. In diesem Beispiel ist das Datenformat
8 Byte, wie es in Fig. 2(a) dargestellt ist, weshalb Bit 1 "0" ist. Bitstellen 2 und 3
des Anforderungsauftrags geben die Zulässigkeit der Daten an. Der Zugriff
zum Hauptspeicher 100 erfolgt jedes Mal zu einem 8-Byte-Wort und deshalb
gibt es, falls das Vektordatenelement ein 4-Byte-Datenformat hat, die Fälle,
daß zwei Elemente im 8-Byte-Wort enthalten sind, daß ein Element in den vorderen
4 Byte des Wortes und daß ein Element in den hinteren 4 Byte des Wortes
enthalten ist. Dann wird die Bitstelle 2 "1", wenn die vorderen 4 Byte des Wortes
Daten enthalten und andernfalls wird es "0" und Bit 3 wird "1", wenn die letzeren
4 Byte des Wortes Daten enthalten und im anderen Fall wird es "0". Falls das
Vektordatenelement ein 8-Byte-Format hat, sind beide Bitstellen 2 und 3 "1",
wie in dem in Fig. 2(a) dargestellten Fall. Bitstellen 4 gibt die letzte Anforderung
an.
Der Prioritätsschaltung 12 eingegebene Anforderungen werden im selben Zyklus
ausgewählt, in die MS-Startregister 13 über die Signalleitung l 16 gesetzt und dann
als MS-Startsignal dem Hauptspeicher 100 über die Signalleitung l 19 im zweiten
Zyklus übertragen.
Die Prioritätsschaltung 12 empfängt auch Anforderungen vom Anforderer 1. Falls
in diesem Fall die Anforderer miteinander innerhalb der Bank
konkurrieren, wird eine Anforderung entsprechend der Prioritätsordnung ausgewählt
und in diesem Fall kann eine Anforderung in einem anderen als dem Anforderungseingabezyklus
ausgewählt werden. Bei der vorliegenden Beschreibung wird jedoch angenommen,
daß kein weiterer Anforderer gleichzeitig arbeitet und somit kann eine
Anforderung im selben Zyklus ausgewählt werden.
Synchron mit dem Hauptspeicherstartsignal wird dem Hauptspeicher über die Signalleitung
l 17 das Auftragsregister 14, über die Signalleitung l 20 ein Auftrag, über die
Signalleitung l 18 das Adressregister 15 und über die Signalleitung l 21 eine Adresse
übertragen.
Im ersten Zyklus wird von der Prioritätsscchaltung 12 eine Anforderung für das
Auslesen des ersten Vektordatenelements aus dem Hauptspeicher 100 ausgewählt
und gleichzeitig wird ein Anforderungssignal, das angibt, daß eine Anforderung
gewählt wurde über die Signalleitung l 15 der Anforderungsausgabe-Steuerschaltung
7 übertragen. Aufgrund dieses Signals setzt die Anforderungsausgabe-Steuerschaltung
7 eine Anforderung und einen Auftrag für das zweite Element in das
Anforderungsausgaberegister 8 und das Auftragsregister 9 jeweils über die Signalleitung
18 und 19. Synchron mit dieser Operation wird eine Adresse von der Adressgeneratorschaltung
10 im Adressregister 11 über die Signalleitung l 7 gesetzt.
Die Anforderung, der Auftrag und die Adresse für das zweite Element werden
der Prioritätsschaltung 12 im zweiten Zyklus über dieselben Wege wie für das
erste Element eingegeben. Die verbleibenden Elemente werden nacheinander
in der gleichen Weise verarbeitet, bis die letzte Anforderung für das fünfte
Vektordatenelement (A5) im Fall der Fig. 2(a) abgeschlossen ist. Dann wird im
fünften Zyklus zum ersten Mal die Bitstelle 4 des des Prioritätsschaltung 12
über die Signalleitung l 12 eingegebenen Auftrags "1". Die letzte Anforderung
kennzeichnende Bitstelle 4 des Auftrags wird ebenfalls der Anforderungsausgabe-
Steuerschaltung 7 über die Signalleitung l 13 eingegeben. Damit sendet, wenn
die Bitstelle 4 des Auftrags "1" ist, und die Anforderungsausgabe-Steuerschaltung 7
das Anforderungsauswahlsignal von der Prioritätsschaltung 12 über die Signalleitung
l 15 empfängt, die Schaltung 7 der VIC durch die Signalleitung 13 im
darauffolgenden sechsten Zyklus eine Endeinformation.
Wie die Fig. 6(a) zeigt, liefert das Auftragsregister 9 nacheinander im ersten
bis fünften Zyklus auf der Signalleitung l 12 die Aufträge 00110, 00110, 00110,
00110 und 00111. Die Erzeugung dieser Aufträge wird anhand der Fig. 7
beschrieben.
Fig. 7 zeigt ein Schaltschema der Anforderungsausgabe-Steuerschaltung 7. Diese
Schaltung enthält einen Wähler 300, Register 301-305, 324 und 325, ein Anforderungsausgaberegister
8, Register 9-0 bis 9-4, die die Bitstelle 0-4 des
Auftragsregister 9 bilden, Invertierer 306-314, UND-Schaltungen 340-357,
ODER-Schaltungen 370-376, Erfassungsschaltungen 320-322, die die Inhalte
des Registers 301 empfangen und ein "1" erzeugen, wenn der eingegebene
Wert jeweils größer als 0, gleich 2 und gleich 1 ist, und eine Abwärtszählschaltung
323, die die Inhalte des Registers 301 empfängt und vom eingegebenen
Wert 2 oder 1 subtrahiert. Über die Signalleitung l 1 und den Wähler 300 wird
das Register 301 mit dem Wert 5, der Anzahl der zu verarbeitenden Vektordatenelemente,
geladen. Das Register 302, das eine das Datenformat jedes Elements
angebende Information speichert, wird vom Decoder 6 über die Signalleitung l 32
mit einem Wert 0 geladen, der das 8-Byte-Datenformat angibt. Das Register 303,
das die Information speichert, ob das Adressinkrement 4 ist oder nicht, wird
über die Signalleitung l 6 mit 0 geladen, was angibt, daß das Inkrement nicht
4 ist. Das Register 304, das die Information speichert, ob die Startadresse an der
4-Byte-Grenze liegt, oder nicht, wird von der Erfassungsschaltung über die Signalleitung
l 10 mit 0 geladen, was angibt, daß die Startadresse nicht an der 4-Byte-
Grenze liegt. Es sei angenommen, daß das Register 305 auf 1 gesetzt wird,
wenn das Startsignal von einer (nicht dargestellten) Schaltung gesendet wird
und auf 0 gesetzt wird, wenn ein erstes Anforderungssignal zu der Prioritätsschaltung
12 gesendet wird. Die von der Adressgeneratorschaltung 10 herkommende
Signalleitung l 33 nimmt eine "1" an, wenn die Adresse an der 4-Byte-Grenze liegt.
Im folgenden wird die zur Erzeugung der Aufträge in den Zyklen ablaufende
Prozedur beschrieben. Am Anfang hält das Register 301 den Wert 5, wodurch die
Erfassungsschaltung 320 eine "1" ausgibt, das Register 305 hält eine 1, weshalb
die ODER-Schaltung 375 eine "1" ausgibt und das Register 302 enthält den
Wert 0, weshalb der Inverter 310 über die UND-Schaltung 340 eine "1" erzeugt.
Die UND-Schaltung 344, die diese Ausgangssignale empfängt, gibt eine "1" aus.
Dieser "1"-Ausgang von der UND-Schaltung 344 wird über die ODER-Schaltung 371
im Anforderungsausgaberegister 8 gesetzt und eine Anforderung für das erste
Element für die Prioritätsschaltung 12 durch die Signalleitung l 11 im ersten Zyklus
ausgegeben. Gleichzeitig werden die Inhalte des Registers 301 der Abwärtszählschaltung
323 eingegeben und 1 abgezogen, wodurch, wenn die UND-Schaltung 357
eine "1" erzeugt, dieser Wert 4 wird. Das Register 301 wird von diesem Ergebnis
durch den Wähler 300 fortgeschrieben. Weil am Ausgang des Inverters 313 eine
"1" erzeugt wird, wird in das Register 9-2 der Wert 1 über die ODER-Schaltung 372
und die UND-Schaltung 353 und in das Register 9-3 der Wert 1 über die ODER-
Schaltung 373 und die UND-Schaltung 355 geladen.
Da bei diesem Beispiel der Anforderer 0 zur Verwendung kommt, wird der
Inhalt des Registers 9-0 auf den festen Wert 0 von einer (nicht dargestellten)
Schaltung gesetzt. Das Register 9-1 enthält aufgrund des 0-Ausgangs des
Registers 302 eine 0. Die UND-Schaltungen 350 und 351 und die Erfassungsschaltung
322 erzeugen sämtliche eine "0" und die diese Ausgänge empfangende
ODER-Schaltung 374 erzeugt am Ausgang eine "0", die in das Register 9-4
über die UND-Schaltung 356 gesetzt wird.
Folglich werden während des zweiten bis fünften Zyklus die Register 9-0 bis
9-3 mit 0011 über dieselben Signalwege geladen. Obwohl im zweiten und den
darauffolgenden Zyklen das Register 305 auf 0 rückgesetzt wird, wird das
von der Prioritätsschaltung 12 über die Signalleitung l 15 ausgesendete Anforderungswählsignal
"1", weshalb die ODER-Schaltung 375 eine "1" erzeugt, wodurch
eine Anforderung ausgegeben wird. Während des zweiten bis vierten Zyklus
wird das Register 9-4 mit 0, jedoch im fünften Zyklus durch den folgenden
Prozess zur Kennzeichnung des letzten Elements mit 1 geladen. Die Inhalte
des Registers 1 werden nämlich vermindert und werden zu 1, worauf die Erfassungsschaltung
322 eine "1" erzeugt, die ins Register 9-4 über die ODER-
Schaltung 324 und die UND-Schaltung 356 gesetzt wird. Im sechsten Zyklus werden
die Inhalte des Registers 301 0 und die Erfassungsschaltung 320 erzeugt einen
0-Ausgang, so daß das Anforderungsausgaberegister 8 nicht länger auf 1 gesetzt
ist, und keine weitere Anforderung der Prioritätsschaltung 12 gesendet wird.
Auch im sechsten Zyklus wird das Register 325 auf 1 gesetzt und die Vektorbefehlssteuerschaltung
1 erhält eine Endeinformation über die Signalleitung 13.
Sobald das MS-Startsignal vom MS-Startregister 13 zum Hauptspeicher 100
über die Signalleitung l 19 übertragen ist, wird das entsprechende Vorsignal vom
Hauptspeicher 100 über die Signalleitung l 22 gesendet und in das Vorregister 16,
nach dem fünf Zyklen vergangen sind, gesetzt (obwohl bei diesem Ausführungsbeispiel
fünf Zyklen vergehen, ist die vorgeschlagene Lösung nicht auf diesem
Wert beschränkt). Synchron mit dem Vorsignal wird der Auftrag für das entsprechende
Element und das aus dem Hauptspeicher 100 ausgelesene 8-Byte-Datum in das
Auftragsregister 17 und das Datenregister 18 jeweils über die Signalleitungen l 23 und
l 24 geladen. Nachdem das Vorsignal in das Vorregister 16 gesetzt ist (d. h. das
Vorregister 16 wird auf "1" gesetzt), setzt die Datenwandlersteuerschaltung 19
das Schreibsignal in das Schreibflaggenregister 20 und das Schreibendesignal in
das Schreibende-Flaggenregister 21, wenn nötig auf der Basis des in das Auftragsregister
17 gesetzten Auftrags, nachdem ein Zyklus vergangen ist. Gleichzeitig
lädt die Schaltung 19 das Datenregister 22 mit den im Datenregister 18 geladenen
ausgelesenen Daten. Dann wird die im Schreibflaggenregister 20 und die im
Schreibende-Flaggenregister 21 gespeicherte Information als Schreibsignal übertragen
und ein Schreibendesignal der Vektorregisterschreibschaltung 23 jeweils
über die Signalleitungen l 25 und l 26 übertragen. Das Schreibsignal wird über die
Signalleitung l 28-1 dem Vektorregister 200-1 übertragen, so daß es zum Setzen
der auf der Signalleitung l 27 übertragenen Schreibdaten verwendet wird. Wenn
die Vektorregisterschreibschaltung 23 das Schreibendesignal auf der Signalleitung
126 (im zwölften Zyklus in Fig. 6(a) empfangen hat, überträgt sie das Endesignal
zur VIC über die Signalleitung l 31 nach Beendigung ihrer Schaltungsverarbeitung
im darauffolgenden Zyklus.
Die Datenwandlerschaltung 19 ordnet die Vektordatenelemente bezüglich ihrer Anordnung
im Datenwort das aus dem Hauptspeicher ausgelesen und dem Datenregister 18
eingegeben ist, so an, daß ihre neue Anordnung an die Eingabe in die arithmetische
Einheit 300 auf der Basis des (im Detail in Fig. 5 dargestellten) Auftrags, der
von der Anforderungsausgabe-Steuerschaltung 7 erzeugt und in das Auftragsregister
17 über das Auftragsregister 9 geladen wurde, angepaßt ist, und lädt dann die neugeordneten
Vektordatenelemente in das Datenregister 22. Die Neuordnung der Vektordatenelemente
findet bei dem in Fig. 2(a) dargestellten Fall nicht statt, wohingegen bei den in
Fig. 3(a) und Fig. 3(b) dargestellten Fällen, wie anhand der in Fig. 6(b) und 6(c)
dargestellten Zeittafeln des weiteren beschrieben wird, die Vektordatenelemente
von der Datenwandlerschaltung 19 entsprechend dem jeweiligen Auftrag neu angeordnet
werden.
In Fig. 8 ist ein Schaltschema der Datenwandler-Steuerschaltung 19 dargestellt. Die
Schaltung enthält ein Vorregister 16, Register 17-0 bis 17-4, die die Bitstellen 0-4
des Auftragsregisters 17 bilden, ein Register 18-1, das die ersten 4 Byte des
Datenregisters 18 bildet, ein Register 18-2, das die letzen 4 Byte des Datenregisters
18 bildet, das Schreibflaggenregister 20, das Schreibendeflaggenregister 21, ein
Register 22-1, das die ersten vier Byte des Datenregisters 22 bildet, ein Register
22-2, das die letzten 4 Byte des Datenregisters 22 bildet, ein Register 450,
Invertierer 400-404, UND-Schaltungen 410-421, ODER-Schaltungen 430-434 und
Torschaltungen 440-442.
Im folgenden wird der Betrieb der Datenwandler-Steuerschaltung 19 für den Fall
der Fig. 2(a), für die die Zeittafel in Fig. 6(a) gilt, beschrieben. Zu der Zeit,
wenn das Vorregister 16 mit 1 geladen wird, was das Vorrücken des ersten
Elements im siebten Zyklus angibt, werden die Register 17-0 bis 17-4 mit
00110 und die Register 18-1 und 18-2 mit ausgelesenen Daten geladen. Dann
erzeugt die UND-Schaltung 410 eine "1", die im achten Zyklus über die ODER-
Schaltung 430 in das Schreibflaggenregister 20 gesetzt wird und ein Schreibsignal
wird über die Signalleitung l 25 der Vektorregisterschreibschaltung 23
übertragen. Da die Register 17-4 eine 0 enthalten, erzeugt die UND-Schaltung
419 eine "0" und setzt das Schreibendeflaggenregister 21 auf "0". Die UND-
Schaltung 414 erzeugt einen 1-Ausgang, der die Torschaltung 440 über die
ODER-Schaltung 432 und über die ODER-Schaltung 433 die Torschaltung 442
freigibt, so daß ausgelesene Daten des ersten Vektordatenelements, die in den
Registern 18-1 und 18-2 gespeichert sind, im achten Zyklus jeweils in die
Register 22-1 und 22-2 geladen werden und zum Vektorregister 200-1 über
die Signalleitung l 27 übertragen werden.
Dasselbe Verfahren wird mit dem zweiten bis zum fünften Vektordatenelement
ausgeführt und synchron mit dem Vorrücken des fünften Elements wird das
Register 17-4 auf 1 gesetzt. Zu dieser Zeit wird ein von der UND-Schaltung 412
erzeugtes 1-Signal der UND-Schaltung 419 durch die ODER-Schaltung 431 übertragen
und, wenn die UND-Schaltung 419 an ihrem anderen Eingang vom Register 17-4
einen 1-Ausgang erhält, erzeugt sie einen 1-Ausgang und setzt das Schreibendeflaggenregister
21 auf 1. Dann wird das Schreibendesignal über die Signalleitung l 26
im zwölften Zyklus ausgesendet.
Im folgenden wird der Betrieb beim Auslesen von Vektordaten D(1-5) aus dem
Hauptspeicher 100 und beim Einschreiben dieser Daten in das Vektorregister 200-1,
wie in Fig. 3 dargestellt, anhand der Schaltpläne von Fig. 4, 7 und 8 und der Zeittafel
von Fig. 6(b) beschrieben. Vor dem Betrieb der Anforderungsausgabe-Steuerschaltung
7 laufen im Prozessor dieselben Verarbeitungen, wie beim vorangehenden
Beispiel von Fig. 2(a) ab. In diesem Beispiel ist die Anzahl der zu verarbeitenden
Elemente gleich 5, das Vektorregister, das die ausgelesenen Daten speichert, ist das
Vektorregister 2-1, die Anfangselementadresse der Vektordaten ist 0100, das
Adressinkrement 4 und das Datenformat jedes Vektordatenelements ist 4 Byte. Entsprechend
wird das in Fig. 7 gezeigte Register 301, das die Anzahl der zu verarbeitenden
Elemente speichert, mit 5 geladen; das Register 302 wird auf 1 gesetzt,
was angibt, daß das Datenformat 4 Byte beträgt; das Register 303 wird auf 1
gesetzt, was angibt, daß das Adressinkrement 4 ist, das Register 304 wird auf
0 gesetzt, was angibt, daß die Adresse des Anfangselements nicht an der 4-Byte-
Grenze liegt (sondern an der 8-Byte-Grenze). Das Register 305 wird auf 1
gesetzt (es wird auf 0 zurückgesetzt sobald eine Anforderung über die Signalleitung
l 11 ausgeschickt wird).
Zuerst wird anhand der Fig. 6(b) und 7 die Verarbeitung duch die Anforderungsausgabe-
Steuerschaltung 7 beschrieben. Der Inhalt des Registers 301, das ist eine 5, wird
der Erfassungsschaltung 320 eingegeben. Da dieser eingegebene Wert größer
als 0 ist, erzeugt die Erfassungsschaltung 320 eine "1" für die UND-Schaltung 345.
Ein 1-Ausgang des Registers 305 wird über die ODER-Schaltung 376 der UND-
Schaltung 345 zugeführt, die ebenfalls von der UND-Schaltung eine "1"
erhält, wodurch die UND-Schaltung 345 durch die drei 1-Eingänge freigegeben
wird und ein 1-Ausgangssignal erzeugt. Dieses 1-Ausgangssignal wird ins Anforderungsausgangsregister
8 über die ODER-Schaltung 371 im fünften Zyklus gesetzt
und eine Anforderung an die Prioritätsschaltung 12 über die Signalleitung l 11
ausgegeben. Gleichzeitig wird ein 1-Ausgangssignal von der UND-Schaltung 346
durch die UND-Schaltung 353 in das Register 9-2 gesetzt, das somit Bit 2 des
Auftrags enthält. Ein 1-Ausgangssignal von der UND-Schaltung 343 wird über die
ODER-Schaltung 373 und die UND-Schaltung 345 in das Register 9-3 gesetzt,
das somit Bit 3 des Auftrags enthält. Zusätzlich wird das Register 9-0, um die
Bitstelle 0 des Auftrags zu erhalten, mit 0 geladen (immer 0, da der Anforderer 0
verwendet wird). Das Register 9-1 wird mit 1 geladen, damit die Bitstelle 1 des
Auftrags ausgefüllt ist, und das Register 9-4 wird mit 0 über die ODER-Schaltung
374, die ein 0-Ausgangssignal von den Erfassungsschaltungen 321 und 322 erhält,
geladen und enthält somit Bit 4 des Auftrag. Außerdem wird der Inhalt des
Registers 301, das heißt 5, der Abwärtszählschaltung 323 eingegeben, dort durch
die Wirkung eines 1-Ausgangssignal von der UND-Schaltung 354 um zwei vermindert
und der sich ergebende Wert 3 in das Register 301 geladen. Der Wert
2 wird deshalb vom Inhalt des Registers 301 abgezogen, weil zwei Datenelemente,
das sind das erste und das zweite Vektordatenelement in einer Speicheranforderung
enthalten sind.
Darauffolgend empfängt die Anforderungsausgabe-Steuerschaltung 7 das Anforderungsauswahlsignal
über die Signalleitung l 15 für die im ersten Zyklus der
Prioritätsschaltung 12 übertragenen Anforderung. Im Unterschied zu dem in
Fig. 6(a) dargestellten Fall erzeugt die UND-Schaltung 344 jedoch keinen
1-Ausgang, und deshalb wird im zweiten Zyklus die folgende Anforderung nicht
in das Anforderungsausgaberegister 8 gesetzt.
Im Fall der Fig. 6(b) wird nämlich dieses Auswahlsignal vom Register 324 im
zweiten Zyklus gesetzt, und aus diesem Grunde die zweite Anforderung im
dritten Zyklus ausgegeben. Es wird nämlich das im zweiten Zyklus in das Register
324 gesetzte Auswahlsignal im dritten Zyklus in das Anforderungsausgaberegister
8 gesetzt und der Prioritätsschaltung 12 übertragen. Hier wird ein Ein-/Ausgangssignal
des Register 324 über die ODER-Schaltung 376 der UND-Schaltung 345
geliefert, das Anforderungsausgaberegister 8 wird mit derselben Anforderung
über denselben Signalweg wie zuvor im dritten Zyklus und die Register 9-0 bis
9-4 werden mit Auftragsbits geladen. In diesem Falle werden das dritte und das
vierte Vektordatenelement aus dem Hauptspeicher 100 mittels einer einzigen
Leseoperation ausgelesen, das heißt mit einer einzigen Anforderung, so daß die Anforderungen
für das dritte und vierte Vektordatenelement gleichzeitig ausgegeben
werden, weshalb vom Wert 3 des Eingangssignals der Abwärtszählschaltung 323
eine 2 abgezogen und der sich ergebende Wert 1 in das Register 301 gesetzt
wird.
Darauffolgend wird im vierten Zyklus das Auswahlsignal für die zweite Anforderung
durch das Register 324 gesetzt und daraufhin die dritte Anforderung im fünften
Zyklus ausgegeben. Im Unterschied zum Ablauf bei der ersten und zweiten Anforderung
wird in das Register 9-3 eine 0 einsetzt. Dies geschieht dadurch, daß die Erfassungsschaltung
322, die das 1-Ausgangssignal des Registers 301 erfaßt, eine
"1" erzeugt, weshalb die UND-Schaltung 343 eine "1" ausgibt, die durch die ODER-
Schaltung 370 invertiert durch den Inverter 132 als dessen 0-Ausgangssignal ein
"0"-Ausgangssignal der UND-Schaltung 348 bewirkt ("1" im Falle der ersten und
der zweiten Anforderung), und diese "0" wird in das Register 9-3 gesetzt. Die
letzten 4 Byte der aus dem Hauptspeicher 100 mittels der dritten Anforderung
ausgelesenen 8-Byte-Daten werden nämlich nicht verwendet und sind ungültig.
Zusätzlich wird das oben erwähnte 1-Ausgangssignal der Erfassungsschaltung 322
in das Register 9-4 über die UND-Schaltung 356 gesetzt und gibt damit die
letzte Anforderung an.
Danach wird im sechsten Zyklus das Register 325 auf 1 gesetzt und die Endeinformation
wird über die Signalleitung 13 der VIC übertragen.
Hierauf wird die Verarbeitung der Datenwandlersteuerschaltung 19 anhand der
Fig. 6(b) und 8 erläutert. Im siebten Zyklus wird der Vorblock vom Hauptspeicher
100 dem Vorregister 16 über die Signalleitung l 22, der Auftrag über die Signalleitung
l 23 den Registern 17-1 bis 17-4, die ersten 4 Byte der ausgelesenen
8-Byte-Daten dem Register 18-1 und die zweiten 4 Byte dem Register 18-2
über die Signalleitung l 24 übertragen. Dabei wird angenommen, daß die Register
17-1 bis 17-4, 18-1 und 18-2 nur gesetzt werden, wenn der Vorblock ausgesendet
wird.
Die UND-Schaltung 410 erzeugt an ihrem Ausgang eine 1 und setzt das Schreibflaggenregister
20 im achten Zyklus über die ODER-Schaltung 430, und die UND-
Schaltung 413 erzeugt an ihrem Ausgang ein 1-Signal, das das Regiser 450 auf
1 setzt. Außerdem erzeugt die UND-Schaltung 416 ein 1-Ausgangssignal, das
über die UND-Schaltung 424 und die ODER-Schaltung 432 die Torschaltung 440
freigibt. Der Inhalt des Registers 18-1 wird über die ODER-Schaltung 434 dem
Register 22-1 im achten Zyklus übertragen. Die Torschaltungen 441 und 442 bleiben
gesperrt, und der Register 22-2 wird auf 0 gesetzt.
Obwohl im achten Zyklus der Vorblock nicht in das Vorregister 16 gesetzt wird,
enthält das Register 450 eine 1, die das Schreibflaggenregister 20 über die
ODER-Schaltung 430 im neunten Zyklus auf 1 setzt. Gleichzeitig wird das
Register 450 durch das 0-Ausgangssignal der UND-Schaltung 410 auf 0 gesetzt.
Durch das 1-Ausgangssignal der ODER-Schaltung 433 wird lediglich die Torschaltung
441 freigegeben, wodurch der Inhalt des Registers 18-2 im neunten
Zyklus in das Register 22-1 gesetzt wird. Es wird nämlich das Schreibsignal
über die Signalleitung l 25 der Vektorregisterschreibschaltung 23 im achten und
neunten Zyklus und gleichzeitig die ersten vier Byte der ausgelesenen
8-Byte-Daten im achten Zyklus zugeschickt, während die neunten 4 Byte im neunten
Zyklus übertragen werden. Auf diese Weise wird jedes Vektordatenelement, das
in die Register 18-1 und 18-2 entsprechend dem im Auftragsregister 17 stehenden
Auftrag gesetzt wurde, nacheinander in die Register 22-1 gelesen und dann
über die Signalleitung l 27 in das Register 200-1 eingeschrieben.
Im neunten Zyklus wird das Vorregister 16 mit einem neuen Vorblock geladen
und der Verarbeitungsprozess ist mit den vorigen Fällen identisch. Schließlich
wird im elften Zyklus der Vorblock gesetzt und gleichzeitig ist der Auftrag
01101. Im zwölften Zyklus wird das Schreibflaggenregister 20 auf 1 gesetzt
und da das Register 17-3 eine 0 enthält, erzeugt die UND-Schaltung 413
ein 0-Ausgangssignal, das das Register 450 auf 0 setzt. Gleichzeitig erzeugt
die UND-Schaltung 415 für die Torschaltung 440 über die ODER-Schaltung 432
ein 1-Ausgangssignal, wodurch der Inhalt des Registers 18-1 in das Register
22-1 gesetzt wird. Die Torschaltungen 441 und 442 sind nicht freigegeben, und
alle Nullen werden in das Register 22-2 gesetzt. Außerdem erzeugt die UND-
Schaltung 418 ein 1-Ausgangssignal, das das Schreibendeflaggenregister 21
über die ODER-Schaltung 431 im zwölften Zyklus erstmalig auf 1 setzt und
die Verarbeitungsendeinformation wird über die Signalleitung l 26 der Vektorschreibschaltung 23 zugeschickt.
Schließlich wird der Betrieb beim Auslesen von Vektordaten E(1-5) aus dem
Hauptspeicher 100 und deren Einschreiben in das Vektorregister 200-1 anhand
der Fig. 6(c), 7 und 8 erläutert. In diesem Fall sind die Anzahl der zu verarbeitenden
Vektordatenelemente gleich 5, die Anfangselementadresse gleich 0100, das Adressinkrement
gleich 20, und das Datenformat jedes Vektordatenelements umfaßt 4 Byte. Dann
wird das Register 301 mit dem Wert 5, der die Anzahl der zu verarbeitenden
Vektordatenelement angibt, geladen; das Register 302 wird mit dem Wert 1,
der das 4-Byte-Datenformat angibt, geladen; das Register 303 wird auf 0
gesetzt, was angibt, daß das Adressinkrement anders als 4 ist; das Register 304
wird auf 0 gesetzt, was angibt, daß die Anfangselementadresse nicht an der
4-Byte-Grenze (sondern an der 8-Byte-Grenze) liegt. Das Register 305
wird auf 1 gesetzt (es wird auf 0 gesetzt, falls eine Anforderung ausgesendet
wird). Der Betrieb der Anforderungsausgabe-Steuerschaltung 7 von Fig. 7
ist ähnlich wie im Fall der Fig. 2(a), unterscheidet sich jedoch in folgenden
Punkten. Die Erzeugung der Bitstellen 2 und 3 des in die Register 9-2 und
9-3 zu setzenden Auftrags unterscheidet sich wie folgt: Wenn von der Adressgeneratorschaltung
10 über die Signalleitung l 33, falls die Adresse jedes Vektordatenelements
an der 4-Byte-Grenze liegt, eine "1", oder, falls die Adresse
an der 8-Byte-Grenze liegt, eine "0" erzeugt wird, wird die Bitstelle 2 vom
Ausgang der UND-Schaltung 347 und die Bitstelle 3 vom Ausgang der UND-Schaltung
349 erzeugt.
Der Betrieb der in Fig. 8 dargestellten Datenwandler-Steuerschaltung 19 ähnelt
ebenfalls dem Fall von Fig. 2(a), unterscheidet sich aber in folgenden Punkten:
Es wird nämlich abhängig von den in den Registern 17-2 und 17-3 gesetzten
Werten, falls das Register 17-2 eine 1 enthält (0 für das Register 17-3), von
der UND-Schaltung 415 ein 1-Ausgangssignal erzeugt, das die Torschaltung 440
über die ODER-Schaltung 432 freigibt, so daß der Inhalt des Registers 18-1
in das Register 22-1 gesetzt wird. Die Torschaltung 442 ist gesperrt, und das
Register 22-2 wird auf 9 gesetzt. Falls das Register 17-3 eine 1 enthält
(0 für das Register 17-2), erzeugt die UND-Schaltung 417 ein 1-Ausgangssignal,
das die Torschaltung 441 durch die ODER-Schaltung 433 freigibt und den Inhalt
des Registers 18-2 in das Register 22-1 setzt, und das Register 22-2 wird
mit lauter Nullen gesetzt.
Nun wird die Adreßgeneratorschaltung 10 genau beschrieben. Fig. 9 zeigt ein
Ausführungsbeispiel der Adreßgeneratorschaltung 10, die einen Wähler 10-1,
Register 10-2 und 10-3, einen Inkrementvielfach-Generator 10-4 und einen
Addierer 10-5 aufweist. Vor der Erzeugung der Adresse wird die Anfangselementadresse
in das Register 10-2 über die Signalleitung l 4 und den Wähler
10-1 und das Adreßinkrement für benachbarte Vektordatenelemente in das
Register 10-3 über die Signalleitung l 5 gesetzt. Dann wird synchron mit der
Ausgabe einer Anforderung an die Prioritätsschaltung 12 durch die Anforderungsausgabe-Steuerschaltung
die Adresse in folgender Weise erzeugt: (Dabei beruht
dieses Ausführungsbeispiel auf der Annahme, daß die Register 10-2, 10-3
und der Addierer 10-5 ein Datenformat von 3 Byte (Bitpositionen 0.0-2.7) hat
und die Adresse auf Bytebasis ausgedrückt ist).
Falls jedes Vektordatenelement ein Datenformat von 8 Byte oder falls jedes
Vektordatenelement ein 4-Byte-Datenformat und ein von vier abweichendes
Adressinkrement aufweist (d. h., daß 4-Byte-Daten nicht kontinuierlich im Hauptspeicher
gespeichert sind), stellt die Adresse für die erste Anforderung die
Anfangselementadresse selbst dar, die anfangs ins Register 10-2 gesetzt wurde.
Dann erzeugt der Inkrementvielfach-Generator 10-4 ein 0-Vielfach für das in
Register 10-3 gesetzte Inkrement und speist dieses zum Addierer 10-5, der an
seinem anderen Eingang den Inhalt des Registers 10-2 empfängt und das Additionsergebnis
dem Adreßregister 11 über die Signalleitung 17 überträgt. Zu dieser
Zeit werden, falls der Hauptspeicher 8 Byte breit ausgelesen wird, die Bitpositionen
2.5-2.7 der am Ausgang des Addierers 10-5 erzeugten Adresse ignoriert.
In einem anderen Fall, in dem jedes Vektordatenelement ein 4-Byte-Format hat
(dann ist das Adreßinkrement anders als 4) werden die Bitstellen 2 und 5 der
Adresse über die Signalleitung l 23 an die Anforderungsausgabe-Steuerschaltung 7
übertragen, um diese zu informieren, ob die Adresse an der 4-Byte-Grenze
ist. Für die zweite und weitere Anforderungen werden die Adressen durch Addition
von 1-Vielfachen des Adreßinkrements zum Inhalt des Registers 10-2 durch den
Addierer 10-5 nacheinander erzeugt. Gleichzeitig wird die sich durch Addition
im Addierer 10-5 ergebende Adresse über den Wähler 10-1 in das Register 10-2
gerettet, da sie für die Adressenerzeugung für die folgende Anforderung benötigt
wird.
Falls jedes Vektordatenelement ein 4-Byte-Datenformat und ein Adreßinkrement von
4 aufweist unterscheidet sich die Adreßerzeugung, abhängig davon, ob die
Adresse des führenden Vektordatenelements an der 4-Byte-Grenze oder der
8-Byte-Grenze liegt. Falls die führende Elementadresse an der 4-Byte-Grenze
liegt, ist die Adresse für die erste Anforderung
um das Adreßinkrement vermindert (vom Vielfachgenerator 10-4 werden -1-Vielfache
des Adreßinkrements erzeugt und dem Addierer 10-5 eingespeist). Die Adressen
für die zweite und jede weitere Anforderung werden durch Addition des
verdoppelten Adreßinkrements zur Adresse der ersten Anforderung nacheinander
erhalten. Falls die Adresse des führenden Vektordatenelements an der 8-Byte-Grenze
liegt, wird die Adresse für die erste Anforderung durch die Adresse des führenden
Vektordatenelements selbst erhalten (ein 0-Vielfaches des Adreßinkrements wird
vom Vielfachgenerator 10-4 erzeugt und dem Addierer 10-5 eingespeist).
Die Adressen für die zweite und weitere Anforderungen werden durch Addition
des verdoppelten Adreßinkrements zur Adresse des führenden Vektordatenelements
nacheinander erhalten. In Fig. 10 sind die Inkrement-Vielfachen, die der Inkrement-Vielfachgenerator 10-4 erzeugt.
Fig. 11 zeigt ein weiteres Ausführungsbeispiel der Datenwandlersteuerschaltung.
Die Schaltung enthält ein Sicherstellregister 500 und Wähler 501-503. Die
restlichen Teile, die mit denen von Fig. 8 übereinstimmen, sind weggelassen.
Die folgende Beschreibung führt anhand der Fig. 8 aus, wie das Ausführungsbeispiel
in Fig. 11 die Operationen für die Fälle (c) und (d) in Fig. 3
ausführt.
Zuerst wird der Fall von Fig. 3(c) behandelt. Synchron mit dem ersten Vorblock
aus dem Hauptspeicher 100 werden Daten F(1) in das Register 18-2 geladen. Es
wird angenommen, daß die Beurteilung, ob der über die Signalleitung l 24 übertragene
8-Byte-Datenblock zwei 4-Byte-Datenelemente oder nur eines enthält,
und im letzteren Fall die Beurteilung, ob das eine Datenelement in die erste
oder zweite Hälfte des Wortes plaziert wird, auf der Basis des synchron mit
dem Vorblock übertragenen Auftrags nach der vorigen Schilderung vorgenommen
wird. Nach dem der Ankunft des Vorblocks folgenden Zyklus wird das
Datum F(1) zeitweise in das Sicherstellregister 500 über den Wähler 503 geladen.
Nach dem die Register 18-1 und 18-2 jeweils synchron mit dem zweiten
Vorblock mit den Daten F(2) und F(3) geladen wurden, wird das Datum F(1)
im Register 500 über den Wähler 501 dem Register 22-1, das Datum F(2)
im Register 18-1 über den Wähler 502 dem Register 22-2 und das Datum F(3)
im Register 18-2 über den Wähler 503 dem Register 500 im darauffolgenden
Zyklus übertragen. Denn im folgenden Zyklus werden die Daten F(1) im
Register 22-1 und F(2) im Register 22-2 in das Vektorregister eingeschrieben.
Nachdem die Register 18-1 und 18-2 jeweils mit den Daten F(4) und F(5) synchron
mit dem dritten (letzten) Vorblock geladen wurden, wird F(3) im Register 500
über den Wähler 501 dem Register 22-1, die Inhalte des Registers 18-1 über
den Wähler 502 an das Register 22-2 und der Inhalt des Registers 18-2 über
den Wähler 503 dem Register 500 im darauffolgenden Zyklus übergeben. Gleichzeitig
mit dem Einschreiben des Datums F(3) des Registers 22-1 und des
Datums F(4) des Registers 22-2 in das Vektorregister im nächsten Zyklus wird
das Datum F(5) im Register 500 in das Register 22-1 geladen, und dann in das
Vektorregister im folgenden Zyklus zum Abschluß des Vorgangs eingeschrieben.
In diesem Fall kann der Vorblock vom Hauptspeicher 100 in aufeinanderfolgenden
Zyklen ausgesendet werden, so daß die Anforderungsausgabe-Steuerschaltung 7
die Anforderungen an die Prioritätsschaltung 12 in aufeinanderfolgenden Zyklen
ausgeben kann.
Nun wird noch der Fall von Fig. 3(d) beschrieben. Nachdem das Register 18-2
mit dem Datum G(1) synchron mit dem ersten Vorblock geladen wurde, wird
das Datum G(1) über den Wähler 503 dem Register 500 im nächsten Zyklus
übergeben. Nachdem das Register 18-1 synchron mit dem zweiten Vorblock
mit dem Datum G(2) geladen wurde, wird das im Register 500 stehende Datum
G(1) über den Wähler 501 dem Register 22-1 und das Datum G(2) im Register 18-1
über den Wähler 502 dem Register 22-2 übergeben, und dann werden beide in das
Vektorregister im nächsten Zyklus eingeschrieben. Die Daten G(3) und G(4)
werden identisch verarbeitet. Dagegen wird das letzte Datum G(5), das im Register
18-2 gespeichert wurde, wenn der entsprechende Vorblock übertragen wurde,
direkt über den Wähler 501 dem Register 22-1, ohne durch das Register 500 im
nächsten Zyklus zu gehen, übergeben, und dann in das Vektorregister
eingeschrieben.
Obwohl die Ausführungsbeispiele für die Fälle beschrieben wurden, daß der Hauptspeicher
und die Vektordatenelemente 8 Byte breit und die Vektordaten
4 Byte oder 8 Byte breit sein können, ist die vorliegende Erfindung auf diese
Datenformate nicht beschränkt. Die Erfindung ist dagegen allgemein auf
Vektorprozessoren mit einem Hauptspeicher anwendbar, aus dem l₁-Byte-Daten
ausgelesen werden können, wo die Elemente einer Vektorspeichereinrichtung
ein Datenformat von l₂-Byte haben und in die Vektorspeichereinrichtung m-Byte
Vektordatenelemente nacheinander eingeschrieben werden.
Claims (10)
1. Vektorprozessor mit
- - einem Hauptspeicher (100), der Vektorelemente speichert,
- - einem mit dem Hauptspeicher (100) verbundenen Vektordatenspeicher (200) mit einer Vielzahl von Vektorregistern (VR), die mehrere Datenbereiche jeweils mit einer Datenbreite l₂ haben, und
- - mindestens einer Arithmetik-Einheit (30), die mit den aus dem Vektordatenspeicher (200) ausgelesenen Vektorelementen eine Vektorberechnung ausführt und ein in den Vektordatenspeicher (200) einzuschreibendes Rechenergebnis liefert,
dadurch gekennzeichnet, daß
- - eine Lese- und Schreibeinheit mit dem Hauptspeicher
(100) und dem Vektordatenspeicher (200) verbunden ist,
die sequentiell eine Vielzahl von Daten mit einer Länge l₁
aus dem Hauptspeicher (100) ausliest, wobei die Daten
zumindest ein Vektorelement einer Länge m eines Satzes
von Vektorelementen an einer von mehreren möglichen Positionen
innerhalb jedes Datums der Länge l₁ aufweisen
(l₁/m ist eine Ganzzahl und größer als 1 und l₂ ist
größer als m), und die in den ausgelesenen Daten der
Länge l₁ enthaltenen Vektorelemente in die Datenbereiche
des Vektordatenspeichers (200) einschreibt und
eine Schreibposition innerhalb eines Datenbereichs für ein jeweiliges Vektorelement zumindest eines Teils der gesamten Vektorelemente so ändert, daß die jeweiligen Vektorelemente Positionen, die für die weitere Verarbeitung benötigt werden, einnehmen, und - - die Lese- und Schreibeinheit eine Anforderungsausgabe-Steuerschaltung
(7) enthält, die eine Information
darüber erzeugt, ob ein jeweiliger m-Byte-Bereich
eines Datums der Länge l₁, das aus dem Hauptspeicher
(100) ausgelesen wurde, ein Vektorelement enthält
oder nicht, und zwar aufgrund der Startadresse, die
die Adresse des ersten Vektorelements des Vektorelementsatzes
angibt, und aufgrund des Adreßinkrements
zwischen zwei benachbarten Vektorelementsätzen, und
die Lese- und Schreibeinheit eine Datenumsetz-Steuerschaltung (19) enthält, die auf die von der Anforderungsausgabe-Steuerschaltung (7) erzeugte Information anspricht und eine Position, wo das eine Vektorelement innerhalb der Datenbereiche des Vektordatenspeichers (200) einzuschreiben ist, angibt, und - - die Arithmetik-Einheit die Vektorberechnung für die aus dem Vektordatenspeicher (200) ausgelesenen Vektorelemente ohne Positionsverschiebung der jeweiligen Vektorelemente ausführt.
2. Vektorprozessor nach Anspruch 1,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinheit weiterhin aufweist:
- - Register (8, 9), die mit der Anforderungsausgabe- Steuerschaltung (7) verbunden sind und die von dieser erzeugte Information zusammen mit einer Leseanforderung zum Hauptspeicher (100) übertragen und
- - Register (16, 17, 18), die die übertragene Information zusammen mit Daten der Länge l₁ in Antwort auf die Leseanforderung an die Datenumsetz-Steuerschaltung (19 in Fig. 8) weiter übertragen, um diese zum Ansprechen auf die genannte weiter übertragene Information zu aktivieren, damit diese eine Position angibt, wo das übertragene Vektorelement in die Datenbereiche des Vektordatenspeichers (200) einzuschreiben ist.
3. Vektorprozessor nach Anspruch 1,
dadurch gekennzeichnet, daß
die Datenumsetz-Steuerschaltung (19) nach dem Anordnen
einer Position zumindest einer der in einem Datum der
Länge l₁ enthaltenen Vektorelemente sequentiell mehrere
Vektorelementsätze, die in dem einen aus dem Hauptspeicher
(100) ausgelesenen Datum der Länge l₁ enthalten sind,
in verschiedene Datenbereiche des Vektordatenspeichers
(200) einschreibt.
4. Vektorprozessor nach Anspruch 3,
dadurch gekennzeichnet, daß
die Anforderungsausgabe-Steuerschaltung (7) eine Information
erzeugt, ob sich einer der Vektorelementsätze
in einem jeweiligen Bereich der Länge m eines aus dem
Hauptspeicher (100) ausgelesenen Datums der Länge l₁ befindet
oder nicht und Logikschaltungen enthält, die auf
die erzeugte Information ansprechen und bei Ansprechen
der Logikschaltungen die Übertragung einer Leseanforderung
an den Hauptspeicher (100) für mindestens n Zyklen des
Hauptspeicherauslesevorgangs, nachdem eine Leseanforderung
dem Hauptspeicher (100) für ein Datum der Länge l₁ übertragen
wurde, verhindert, falls die erzeugte Information
angibt, daß das eine Datum der Länge l₁ n Vektordatenelemente
enthält.
5. Vektorprozessor nach Anspruch 3,
dadurch gekennzeichnet, daß
die Anforderungsausgabe-Steuerschaltung (7) Logikschaltungen enthält, die aufgrund der Größe jedes Vektorelements des Satzes, der Startadresse des Vektorelementsatzes und des Adreßinkrements zwischen zwei benachbarten Vektorelementen des Satzes eine Information darüber erzeugen, ob sich eines der Vektorelemente in einem Bereich der Länge m eines jeweiligen aus dem Hauptspeicher (100) ausgelesenen Datums der Länge l₁ befindet oder nicht und
die Datenumsetz-Steuerschaltung (19 in Fig. 8) auf die obengenannte erzeugte Information anspricht und daraufhin einen Datenbereich und eine Position innerhalb des Datenbereichs angibt, wo die jeweiligen Vektorelemente, die in dem aus dem Hauptspeicher (100) ausgelesenem Datum der Länge l₁ enthalten sind, in den Vektordatenspeicher (200) einzuschreiben sind, wenn die obengenannte erzeugte Information angibt, daß das Datum der Länge l₁ mehrere Vektorelemente enthält.
die Anforderungsausgabe-Steuerschaltung (7) Logikschaltungen enthält, die aufgrund der Größe jedes Vektorelements des Satzes, der Startadresse des Vektorelementsatzes und des Adreßinkrements zwischen zwei benachbarten Vektorelementen des Satzes eine Information darüber erzeugen, ob sich eines der Vektorelemente in einem Bereich der Länge m eines jeweiligen aus dem Hauptspeicher (100) ausgelesenen Datums der Länge l₁ befindet oder nicht und
die Datenumsetz-Steuerschaltung (19 in Fig. 8) auf die obengenannte erzeugte Information anspricht und daraufhin einen Datenbereich und eine Position innerhalb des Datenbereichs angibt, wo die jeweiligen Vektorelemente, die in dem aus dem Hauptspeicher (100) ausgelesenem Datum der Länge l₁ enthalten sind, in den Vektordatenspeicher (200) einzuschreiben sind, wenn die obengenannte erzeugte Information angibt, daß das Datum der Länge l₁ mehrere Vektorelemente enthält.
6. Vektorprozessor nach Anspruch 5,
dadurch gekennzeichnet, daß
mit der Anforderungsausgabe-Steuerschaltung (7) Register
(8, 9) verbunden sind, un die erzeugte Information zusammen
mit einer Leseanforderung dem Hauptspeicher (100)
zu übertragen und dem Hauptspeicher (100) Register (16,
17, 18) zugeordnet sind, um die übertragene Information
zusammen mit einem Datum der Länge l₁ auf die Leseanforderung
der Datenumsetz-Steuerschaltung (19) weiter zu übertragen,
damit diese zum Ansprechen auf die weiter übertragene
Information aktiviert wird.
7. Vektorprozessor nach Anspruch 2,
dadurch gekennzeichnet, daß
die Lese- und Schreibeinheit eine Datenumsetz-Steuerschaltung
(19 in Fig. 11), die einen Vektorelementteil,
der in einem aus dem Hauptspeicher (100) ausgelesenen Datum
der Länge l₁ enthaltenen Vektorelemente rettet, und Logikschaltungen
aufweist, die den geretteten Vektorelementteil
zusammen mit einem anderen Vektorelementteil der in einem
darauffolgend aus dem Hauptspeicher (100) ausgelesenen Datum
der Länge l₁ enthaltenen Vektorelemente nach Anordnung der
Positionen jeweils des einen und des anderen Vektorelementteils
der jeweiligen Vektorelemente des vorangehenden Datums
der Länge l₁ und des folgenden Datums der Länge l₁ in einen
der Datenbereiche des Vektordatenspeichers (200) einschreiben.
8. Vektorprozessor nach Anspruch 7,
dadurch gekennzeichnet, daß
die Anforderungsausgabe-Steuerschaltun (7) Logikschaltungen enthält, die aufgrund der Größe jedes Vektorelements, der Startadresse des Vektorelementensatzes und des Adressinkrements zwischen zwei benachbarten Vektorelementen des Satzes Information darüber erzeugen, ob sich ein Vektorelement im jeweiligen Bereich der Länge m in aus dem Hauptspeicher (100) ausgelesenen Daten der Länge l₁ befindet oder nicht, und
die Datenumsetz-Steuerschaltung (19) auf die obengenannte Information anspricht und einen Datenbereich angibt, wo ein Datenbereich und eine Position innerhalb des angegebenen einen und anderen Vektorelementteils, die im jeweiligen, aus dem Hauptspeicher (100) ausgelesenen Datum der Länge l₁ enthalten sind, in den Vektordatenspeicher (200) einzuschreiben sind und den Einschreibzeitpunkt jedes Vektorelementteils der Vektorelemente steuert, wenn die erzeugte Information angibt, daß ein Datum der Länge l₁ mehrere Vektorelemente enthält.
die Anforderungsausgabe-Steuerschaltun (7) Logikschaltungen enthält, die aufgrund der Größe jedes Vektorelements, der Startadresse des Vektorelementensatzes und des Adressinkrements zwischen zwei benachbarten Vektorelementen des Satzes Information darüber erzeugen, ob sich ein Vektorelement im jeweiligen Bereich der Länge m in aus dem Hauptspeicher (100) ausgelesenen Daten der Länge l₁ befindet oder nicht, und
die Datenumsetz-Steuerschaltung (19) auf die obengenannte Information anspricht und einen Datenbereich angibt, wo ein Datenbereich und eine Position innerhalb des angegebenen einen und anderen Vektorelementteils, die im jeweiligen, aus dem Hauptspeicher (100) ausgelesenen Datum der Länge l₁ enthalten sind, in den Vektordatenspeicher (200) einzuschreiben sind und den Einschreibzeitpunkt jedes Vektorelementteils der Vektorelemente steuert, wenn die erzeugte Information angibt, daß ein Datum der Länge l₁ mehrere Vektorelemente enthält.
9. Vektorprozessor nach Anspruch 8,
dadurch gekennzeichnet, daß
mit der Anforderungsausgabe-Steuerschaltung (7) Register (8, 9) verbunden sind, die die erzeugte Information zusammen mit einer Leseanforderung an den Hauptspeicher (100) übertragen, und
mit dem Hauptspeicher (100) Register (16, 17, 18) verbunden sind, die die übertragene Information zusammen mit Daten der Länge l₁ nach Maßgabe der Leseanforderung an die Datenumsetz-Steuerschaltung (19) weiter übertragen, um die Datenumsetz-Steuerschaltung (19) zum Ansprechen auf die weiter übertragene Information zu aktivieren.
mit der Anforderungsausgabe-Steuerschaltung (7) Register (8, 9) verbunden sind, die die erzeugte Information zusammen mit einer Leseanforderung an den Hauptspeicher (100) übertragen, und
mit dem Hauptspeicher (100) Register (16, 17, 18) verbunden sind, die die übertragene Information zusammen mit Daten der Länge l₁ nach Maßgabe der Leseanforderung an die Datenumsetz-Steuerschaltung (19) weiter übertragen, um die Datenumsetz-Steuerschaltung (19) zum Ansprechen auf die weiter übertragene Information zu aktivieren.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57184553A JPS5975365A (ja) | 1982-10-22 | 1982-10-22 | ベクトル処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3338345A1 DE3338345A1 (de) | 1984-04-26 |
DE3338345C2 true DE3338345C2 (de) | 1989-03-30 |
Family
ID=16155212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19833338345 Granted DE3338345A1 (de) | 1982-10-22 | 1983-10-21 | Vektor prozessor |
Country Status (4)
Country | Link |
---|---|
US (1) | US4825361A (de) |
JP (1) | JPS5975365A (de) |
DE (1) | DE3338345A1 (de) |
GB (1) | GB2130767B (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0167959B1 (de) * | 1984-07-02 | 1992-05-06 | Nec Corporation | Rechner-Vektorregisterverarbeitung |
JP2667806B2 (ja) * | 1985-10-11 | 1997-10-27 | 株式会社日立製作所 | ベクトルプロセツサ |
JPS62208167A (ja) * | 1986-03-10 | 1987-09-12 | Hitachi Ltd | ベクトル処理装置 |
US5167018A (en) * | 1986-09-24 | 1992-11-24 | Daikin Industries, Ltd. | Polygon-filling apparatus |
US4949247A (en) * | 1988-02-23 | 1990-08-14 | Stellar Computer, Inc. | System for transferring multiple vector data elements to and from vector memory in a single operation |
JPH0792779B2 (ja) * | 1988-10-08 | 1995-10-09 | 日本電気株式会社 | データ転送制御装置 |
JP2531760B2 (ja) * | 1988-10-11 | 1996-09-04 | 日本電気株式会社 | ベクトル処理装置 |
JP2607689B2 (ja) * | 1989-07-10 | 1997-05-07 | 株式会社日立製作所 | ベクトル処理装置 |
US5170370A (en) * | 1989-11-17 | 1992-12-08 | Cray Research, Inc. | Vector bit-matrix multiply functional unit |
WO1992009968A1 (en) * | 1990-11-27 | 1992-06-11 | Cray Research, Inc. | VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR |
JP3117096B2 (ja) * | 1992-01-30 | 2000-12-11 | 富士通株式会社 | マイクロプロセッサ |
US5848286A (en) * | 1994-03-29 | 1998-12-08 | Cray Research, Inc. | Vector word shift by vo shift count in vector supercomputer processor |
US5881302A (en) * | 1994-05-31 | 1999-03-09 | Nec Corporation | Vector processing unit with reconfigurable data buffer |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US7140019B2 (en) * | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
GB2394571B (en) * | 2002-10-23 | 2005-08-10 | Motorola Inc | Arrangement system and method for vector permutation in single-instruction multiple-data microprocessors |
US7299338B2 (en) * | 2002-12-04 | 2007-11-20 | Agere Systems Inc. | Vector indexed memory unit and method |
GB2399900B (en) * | 2003-03-27 | 2005-10-05 | Micron Technology Inc | Data reording processor and method for use in an active memory device |
US7290122B2 (en) * | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
US7610466B2 (en) * | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7275148B2 (en) * | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US7315932B2 (en) * | 2003-09-08 | 2008-01-01 | Moyer William C | Data processing system having instruction specifiers for SIMD register operands and method thereof |
US20070226469A1 (en) * | 2006-03-06 | 2007-09-27 | James Wilson | Permutable address processor and method |
WO2007123231A1 (ja) | 2006-04-21 | 2007-11-01 | Nippon Sheet Glass Company, Limited | 光輝性顔料およびその製造方法、並びに該光輝性顔料を含む水性樹脂組成物 |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US8060724B2 (en) * | 2008-08-15 | 2011-11-15 | Freescale Semiconductor, Inc. | Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor |
JP5658556B2 (ja) * | 2010-12-24 | 2015-01-28 | 富士通株式会社 | メモリ制御装置、及びメモリ制御方法 |
US9342479B2 (en) | 2012-08-23 | 2016-05-17 | Qualcomm Incorporated | Systems and methods of data extraction in a vector processor |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3585608A (en) * | 1966-06-23 | 1971-06-15 | Hewlett Packard Co | Random access memory |
US3573851A (en) * | 1968-07-11 | 1971-04-06 | Texas Instruments Inc | Memory buffer for vector streaming |
US3794984A (en) * | 1971-10-14 | 1974-02-26 | Raytheon Co | Array processor for digital computers |
US3812473A (en) * | 1972-11-24 | 1974-05-21 | Ibm | Storage system with conflict-free multiple simultaneous access |
US3827031A (en) * | 1973-03-19 | 1974-07-30 | Instr Inc | Element select/replace apparatus for a vector computing system |
US3919534A (en) * | 1974-05-17 | 1975-11-11 | Control Data Corp | Data processing system |
JPS5148937A (en) * | 1974-10-25 | 1976-04-27 | Fujitsu Ltd | Kiokusochi niokeru junjoseigyohoshiki |
US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
JPS5852265B2 (ja) * | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
JPS6055864B2 (ja) * | 1980-07-21 | 1985-12-06 | 株式会社日立製作所 | ベクトルプロセツサ |
KR860001434B1 (ko) * | 1980-11-21 | 1986-09-24 | 후지쑤 가부시끼가이샤 | 데이타 처리시 스템 |
JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
JPS59111569A (ja) * | 1982-12-17 | 1984-06-27 | Hitachi Ltd | ベクトル処理装置 |
US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
-
1982
- 1982-10-22 JP JP57184553A patent/JPS5975365A/ja active Granted
-
1983
- 1983-10-19 GB GB08327931A patent/GB2130767B/en not_active Expired
- 1983-10-21 DE DE19833338345 patent/DE3338345A1/de active Granted
-
1987
- 1987-03-02 US US07/021,590 patent/US4825361A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE3338345A1 (de) | 1984-04-26 |
US4825361A (en) | 1989-04-25 |
JPS5975365A (ja) | 1984-04-28 |
GB2130767B (en) | 1986-05-08 |
GB2130767A (en) | 1984-06-06 |
JPH0425582B2 (de) | 1992-05-01 |
GB8327931D0 (en) | 1983-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3338345C2 (de) | ||
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE2353258C2 (de) | Datenverarbeitungsanlage | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2260353C2 (de) | Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage | |
DE3424962C2 (de) | ||
DE2130299A1 (de) | Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen | |
DE2719247B2 (de) | Datenverarbeitungssystem | |
DE2829668A1 (de) | Kanaldatenpufferspeicher | |
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE2912287A1 (de) | Datenverarbeitungsgeraet | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE2353635C2 (de) | Vorrichtung zur Datenverarbeitung | |
DE3043100C2 (de) | ||
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2625113C2 (de) | Speicherschutzeinrichtung | |
DE1499206B2 (de) | Rechenanlage | |
DE19722803A1 (de) | Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner | |
DE2063195C2 (de) | Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern | |
DE2506671C3 (de) | Binärdaten-Handhabungsnetzwerk | |
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE2233193A1 (de) | Stapel-speichersystem | |
DE2558417A1 (de) | Datenverarbeitungssystem | |
DE3931505C2 (de) | Speichersteuerung in einer Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |