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
Application number
DE3338345A
Other languages
English (en)
Other versions
DE3338345A1 (de
Inventor
Koichiro Sagamihara Jp Omoda
Shunichi Musashino Jp Torii
Shigeo Hachioji Jp Nagashima
Yasuhiro Inagami
Takayuki Hadano Jp Nakagawa
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3338345A1 publication Critical patent/DE3338345A1/de
Application granted granted Critical
Publication of DE3338345C2 publication Critical patent/DE3338345C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details 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 ln 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.
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.
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.
DE19833338345 1982-10-22 1983-10-21 Vektor prozessor Granted DE3338345A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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