DE3338345A1 - Vektor prozessor - Google Patents

Vektor prozessor

Info

Publication number
DE3338345A1
DE3338345A1 DE19833338345 DE3338345A DE3338345A1 DE 3338345 A1 DE3338345 A1 DE 3338345A1 DE 19833338345 DE19833338345 DE 19833338345 DE 3338345 A DE3338345 A DE 3338345A DE 3338345 A1 DE3338345 A1 DE 3338345A1
Authority
DE
Germany
Prior art keywords
vector data
vector
register
main memory
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19833338345
Other languages
English (en)
Other versions
DE3338345C2 (de
Inventor
Yasuhiro Inagami
Shigeo Hachioji Nagashima
Takayuki Hadano Nakagawa
Koichiro Sagamihara Omoda
Shunichi Musashino Torii
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

• g> ·
HITACHI, LTD., Tokyo, Japan
VEKTOR PROZESSOR
Die Erfindung betrifft einen Vektor-Prozessor für schnelle Vektorberechnungen und insbesondere, einen Vektor-Prozessor mit einer vereinfachten Steuerung, der Vektordaten zur Vektorverarbeitung mit hoher Geschwindigkeit in das Vektorregister einschreibt.
Ein Vektor-Prozessor weist 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 Lesen 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 speichernFalls im Hauptspeicher Daten i.-Byte breit, im Adressregister ix-Byte und ein Vektorelement m-8yte breit gespeichert sind, wird angenommen, _ daß f./m eine Ganzzahl und 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 Vektor-Prozessoren, 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
81-A8146-O3
Datenübertragung vom Vektorregister zu den arithmetischen Einheiten ergibt sich eine lange Berechnungsdauer.
Figur 2 (e) zeigt beispielshaft wie im Hauptspeicher 100 eines herkömmlichen Vektorprozessors angeordnete Vektordatenelemente in ein Vektorregister (200-1) gesetzt werden. In der Figur 2 ist jedes Wort des Vektorregisters 200-1 8 Byte breit, während die mit F(I) und F(2) bezeichneten Daten 4 Byte breit sind. Die Datenelemente F(I) 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 iinken 4 Byte eines als erstes Wort aus dem Vektorregister ausgelesenen 8-Byte-Worts ein effektives Datum F(I) enthalten. Ebenfalls muß bestimmt werden, welche der arithmetischen Einheiten für die Berechnung des Datums FdVerwendet werden soll. Für das zweite Wort muß bestimmt werden, welche arithmetische Einheit für das jeweilige Datum F(I) und F(2) in dem aus dem Vektorregister ausgelesenen Wort verwendet werden soll. Derselbe Bestimmungsvorgang ist, für die folgenden zu verarbeitenden Worte 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(I) und G(2) 4-Byte-Breite auf. Die Daten G(I), 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 Figur 2(f) ist für die Übertragung der Vektordatenelemente im Vektorregister 200-1 zur arithmetischen Einheit 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ätzliche 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 eingespeicherte 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 Vektordatenregisteis angeordneten Vektordatenelemente, 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 eine komplizierte Steuerschaltung für die Bestimmung erfordert. Die obigen Schwierigkeiten werden im folgenden genauer ausgeführt:
Fig. 1 stellt den Vorgang bei der Vektorberechnung durch 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 1' Elementen bestehen^ aufweist und eine arithmetische Einheit 300. Bei der Verarbeitung werden Γ Elemente umfassende Vektordaten A(I-I) und B(I-I), 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(I-I) 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 d00 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
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 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 letzteren 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 (hardware) 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 Wege steht.
Es ist deshalb Aufgabe der Erfindung, einen Vektorprozessor zu ermöglichen, in dem die Anordnung der Vektordatenelemente während dem Auslesen der Vektordaten aus dem Hauptspeicher in eine Vektorspeichereinrichtung verändert wird , um dadurch die Umordnung der Vektordatenelemente beim Übertragen der Vektordaten von der Vektorspeichereinrichtung zur arithmetischen Einheit zu vermeiden und die Verarbeitung der Daten, nachdem diese in der Vektorspeichereinrichtung gespeichert sind, zu vereinfachen.
Zur Lösung dieser Aufgabe enthält der erfindungsgemäße Vektorprozessor eine Einrichtung, die aus dem Hauptspeicher ausgelesene Vektordatenelemente in getrennt bezeichnete Speicherplätze der Vektorspeichereinrichtung einschreibt, wodurch beim Auslesen der im Hauptspeicher gespeicherten Vektordaten und bei der übertragung in das Vektorregister die Vektordatenelemente in bestimmte Speicherplätze eingeschrieben werden, die so bestimmt sind, daß die Umordnung der Vektordatenelemente, wenn diese vom Vektorregister zur arithmetischen Einheit übertragen werden, entfallen kann.
■η
äff—
Erfindungsgemäß werden, falls nur eine einzelne arithmetische Einheit vorhanden ist, beim Auslesen aus dem Hauptspeicher und beim Einschreiben der Vektordaten in die Vektordatenspeichereinrichtung die Vektordatenelemente in Speicherworte der Vektordatenspeichereinrichtung in einer für die Eingabe zur arithmetischen Einheit geeigneten Position eingeschrieben.
Wenn dagegen zwei arithmetische Einheiten vorgesehen sind und die Worte der Vektordatenspeichereinrichtung jeweils von den arithmetischen Einheiten zu verarbeitende Vektordatenelemente enthalten, können die zwei Vektordatenelemente in jedem Wort an unveränderlichen Stellen entsprechend den arithmetischen Einheiten angeordnet werden, wodurch in beiden Fällen eine neue Anordnung für die Vektordatenelemente beim Auslesen der Vektordaten aus der Vektordatenspeichereinrichtung in die arithmetische Einheit oder die arithmetischen Einheiten entfallen kann. Damit erhöht sich die Vektorverarbeitungsgeschwindigkeit.
Mittels des erfindungsgemäßen Vektor-Prozessors werden im Hauptspeicher 400 zum Beispiel in der in Fig. 3(a) gezeigten Weise gespeicherte A Byte-Vektordaten dem Vektorregister 200-1 linksbündig in jedes Wort übertragen, so daß die Vektordaten, wenn sie aus dem Vektorregister 200-1 ausgelesen und der arithmetischen Einheit 300 eingegeben werden, nicht mehr umgeordnet werden müssen. Dasselbe trifft bei der in Fig. 3(b) gezeigten Anordnung der Vektordaten im Hauptspeicher zu. Bei der gemeinsamen Eingabe zweier Vektordatenelemente in die arithmetische Einheit, z.B. wenn A Byte-Daten im Hauptspeicher in der in Fig. 3(c) gezeigten Anordnung gespeichert sind, speichert das Vektorregister 200-1 die Vektordaten so, daß bei deren Übertragung vom Vektorregister 200-1 zur arithmetischen Einheit 300 eine Umordnung entfällt. Dasselbe Ergebnis wird bei einer Anordnung der Vektordaten im Hauptspeicher 100 wie in Fig. 3(d) erzielt.
Die Erfindung wird im folgenden anhand der Zeichnung näher beschrieben. Es zeigen:
Fig. 1 ein knappes Übersichtsdiagramm eines Vektor-Prozessors;
und (b) Speichertafeln, die die Speicheranordnung, wenn im Vektorregister 8-Byte-Vektordatenelemente gespeichert sind, erklären;
ORJGiNAL
bis (f) Speichertafeln, die die Speichertechnik beim Speichern von 4-Byte-Vektordatenelemente im Vektorregister erläutern;
bis 3(d) Speichertafeln, die die Speichertechnik beim Speichern von 4-Byte Vektordatenelementen im Vektorregister gemäß der Erfindung erläutern;
Fig. 4 ein Blockschaltbild eines Ausführungsbeispiels des erfindungsgemäßen Vektorprozessors;
Fig. 5 ein Diagramm des Anforderungsordnungsformats, das im erfindungsgemäßen Vektor-Prozessor verwendet wird;
bis 6(c) Ablaufpläne für die Verarbeitung des in Fig. 4 dargestellten Vektor-Prozessors;
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. lO eine Tabelle, die die vom Inkrementvielfachgenerator von Fig. 9 erzeugten vielfache erklärt;
Fig. 11 ein Blockschaltbild eines weiteren Ausführungsbeispiels der in Fig. 4 dargestellten Datenwandler-Steuerschaltung.
Im folgenden wird ein bevorzugtes Ausführungsbeispiel gemäß der Erfindung beschrieben. Der in Fig. 4 dargestellte Schaltungsaufbau gemäß einem Ausführungsbeispiel der Erfindung enthält ein Befehlsregister 1, eine Adressregistergruppe 2, eine Inkrementregistergruppe 3, eine Erfassungsschaltung 4, die ermittelt, ob
333834b
Vektordatenelemente mit dem Adressinkrement 4 vorliegen oder nicht, einer 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 id, eine Prioritätsschaltung 12, ein MS (Hauptspeicher)-Startregister 13, ein Auftragsregister 44, 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 Λθ bis &.Ί, «f28-l bis ^28-n, und J29 bis -f34.
Anhand der Fig. 4 wird die in Fig. 2(a) dargestellte Operation des Lesens von Vektordaten A(I) - A(5) aus dem Hauptspeicher iOO 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 über die Signalleitungen -f2 und f29. Gleichzeitig informiert die VIC-Schaltung die Anforderungsausgabe-Steuerschaltung 7 über die Anzahl der zu verarbeitenden Vektordatenelemente über die Signalleitung Ά. Der Decoder 6 decodiert den OP-Code eines Vektorbefehls im Befehlsregister 1 und informiert die Anforderungsausgabe-Steuerschaltung 7 über das Datenformat jedes Vektordatenelements über die Signalleitung ·&2. Das Datenformat ist durch Decodierung eines aus dem Hauptspeicher 100 über die Leitung 434 ausgelesenen Vektorbefehls erhältlich. Die Signalleitung -?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 132 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 Jf30 übertragen. Außerdem wird die Adressregisternummer der Adressregistergruppe 2 und Information, die ein Inkrement-Register aus der Inkrementregistergruppe 3 kennzeichnet, die jeweils durch das Register fällt R2 und R, des Vektorbefehls im Befehlsregister 1 angegeben werden, diesen Registergruppen über die Signalleitung ίο zugesendet. Die Adressregistergruppe 2 stellt eine Gruppe von Adressregistern dar,
ORIGINAL
•US-
•40-
die die Adressen der führenden Elemente der im Hauptspeicher gespeicherten Vektordaten halten, während die Inkrementregistergruppe 3 eine Gruppe von Inkrement-Register darstellt, die die Adressinkremente zwischen benachbarten Elementen halten, deren Inhalte mit durch die Signalleitung -SD gekennzeichnete Registernummern über die Signalleitungen 1.4 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 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 0400 (in hexadezimaler Schreibweise) und die Startadresse stellt nicht die 4 Byte-Grenze dar, weshalb die Erfassungsschaltung 5 eine "0" über die Signalleitung flO sendet. Die Erfassungsschaltung 4 empfängt das Inkrement und ermittelt, ob dieses 4 ist oder nicht und sendet, falls das Inkrement 4 ist, eine "4" oder andernfalls "0" über die Signalleitung ·?6 zur Anforderungsausgabe-Steuerschaltung 7. Da in diesem Beispiel das Inkrement 8 beträgt, wird über die Signalleitung iS eine "0" übertragen.
Nach Beendigung der vorangehend geschilderten Vorverarbeitung beginnt die Leseoperation vom Hauptspeicher 100. Der Ablauf dieses Prozesses wird anhand der in Figur 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=l, 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 •ill und sendet diese jeweils für ein Element der Vektordaten A&-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 AYl und eine Leseadresse vom Adressregister 11 der Prioritätsschaltung 4.2 über die Signal-
leitung ί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 4. "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 1I", wenn die vorderen 4 Byte des Wortes Daten enthalten und andernfalls wird es "0" und Bit 3 wird "1", wenn die letzteren 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. Bitstelle 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 -ft.6 gesetzt und dann als MS-Startsignal dem Hauptspeicher 100 über die Signalleitung fL9 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 oder ähnlichem 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 Erfindung wird jedoch angenommen, daß kein weiterer Anforderer gleichzeitig arbeitet und somit kann eine Anforderung im selben Zyklus ausgewählt werden.
Synchron mit dem MS-Startsignal wird dem Hauptspeicher über die Signalleitung >fl7 das Auftragsregister 14 und die Signalleitung-ßO ein Auftrag und über die Signalleitung -?18, das Adressregister 15 und die Signalleitung eine Adresse übertragen.
Im ersten Zyklus wird von der Prioritätsschaltung 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 Λ5 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 Il über die Signalleitung <?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 fl2 eingegebenen Auftrags "1". Die letzte Anforderung kennzeichnende Bitstelle 4 des Auftrags wird ebenfalls der Anforderungsausgabe-Steuerschaltung 7 über die Signalleitung <fl3 eingegeben. Damit sendet, wenn die Bitstelle 4 des Auftrags "1" ist,und die Anforderungsausgabe-Steuerschaltung das Anforderungsauswahlsignal von der Prioritätsschaltung 12 über die Signalleitung 115 empfängt, die Schaltung 7 demVIC 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 Λ.2 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
■43-
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 eine "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 -fl 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 -f52 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 %G mit 0 geladen, was angibt, daB 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 «flO 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 -f33 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 hat 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 im Anforderungsausgaberegister 8 gesetzt und eine Anforderung für das erste Element für die Prioritätsschaltung 12 durch die Signalleitung Al 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 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 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 O-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 dem 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 Al5 ausgesendete Anforderungswählsignal "1" , weshalb die ODER-Schaltung 375 eine "1" erzeugt, wodurch eine Anforderung ausgegeben wird. Während dem zweiten bis zum vierten Zyklus wird das Register 9-4 mit 0 geladen, 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 sechsen Zyklus werden die Inhalte des Registers 301 0 und die Erfassungsschaltung 320 erzeugt einen 0-Ausgang, so daß das Anforderungsausgaberegister 8 nicht langer 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 Sobald das MS-Startsignal vom MS-Startregister 13 zum Hauptspeicher 100 über die Signalleitung $19 übertragen ist, wird das entsprechende Vorsignal vom Hauptspeicher 100 über die Signalleitung Λ22 gesendet und in das Vorregister nach dem fünf Zyklen vergangen sind, gesetzt (obwohl bei diesem Ausführungsbeispiel fünf Zyklen vergehen, ist die vorliegende Erfindung 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 423 und •&4 geladen. Nachdem das Vorsignal in das Vorregister 16 gesetzt ist (d.h. das Vorregister 16 wird auf "1" gesetzt), setzt die Datenwandlersteuerschaltung das Schreibsignal in das Schreibflaggenregister 20 und das Schreibendesignal in das Schreibende-Flaggenregister 21, wenn nötig auf der Basis des in das Auftrags-
register 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 425 und Ϊ26 übertragen. Das Schreibsignal wird über die Signalleitung i28-l im Vektorregister 200-4 übertragen, so daß es zum Setzen der auf der Signalleitung -i27 übertragenen Schreibdaten verwendet wird. Wenn die Vektorregisterschreibschaltung 23 das Schreibendesignal auf der Signalleitung 126 (im zwölften Zyklus in Fig. 6(a) empfangen hat, übertragt sie das Endesignal zur VIC über die Signalleitung ftl nach Beendigung ihrer Schaltungsverarbeitung im darauffolgenden Zyklus.
Die Datenwandlerschaltung 19 ordnet die Vektordatenelemente bezüglich ihrer Anordnung im Wort vom Hauptspeicher, das aus diesem ausgelesen und dem Datenregister 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 Vektorelemente 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 eines Datenregisters 18 bildet, ein Register 18-2, das die letzten 4 Byte des Datenregisters
18 bildet, das Schreibflaggenregister 20, das Schreibendeflaggenregister 21, ein Register 22-1, das die ersten vier Byte eines 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.
ORIGINAL
•14-
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. Zur selben 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 i25 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 &7 ü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 erzeugtes 4-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 tie im zwölften Zyklus ausgesendet.
Im folgenden wird der Betrieb beim Auslesen von Vektordaten D(l-5) aus dem Hauptspeicher 100 und beim Einschreiben dieser Daten in das Vektorregister 200-4, wie in Fig. 3 dargestellt, anhand der Schaltpläne von Fig. 4, 7 und 8 und der Zeittafel vonFig. 6(b) beschreiben. 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 5 , das Vektorregister, das die ausgelesenen Daten speichert, ist das Vektorregister 2-1, die Anfangselementadresse der Vektordaten ist 0100, das Adressin krement 4 und das Datenformat jedes Vektordatenelements ist 4 Byte. Entsprechend wird das in Fig. 7 gezeigte Register 301, das die Anzahl der zu verar-
- : : :":.': J J J 8 J 4
•ti"
beitenden Elemente speichert, mit 5 geladen; das Register 302 wird auf 1 gesetzt, was angibt, daß das Datenformat A Byte beträgt; das Register 303 wird auf 1 gesetzt, was angibt, daß das Adressinkrement A ist, das Register 3OA wird auf 0 gesetzt, was angibt, daß die Adresse des Anfangselements nicht an der A Byte-Grenze liegt (sondern an der 8 Byte-Grenze); und das Register 305 wird auf 1 gesetzt (es wird auf 0 zurückgesetzt sobald eine Anforderung über die Signalleitung -ft.1 ausgeschickt wird).
Zuerst wird anhand er Fig. 6(b) und 7 die Verarbeitung der 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 3A5. Ein 4-Ausgang des Registers 305 wird über die ODER-Schaltung 376 der UND-Schaltung 3A5 zugeführt, die ebenfalls von der UND-Schaltung 3AO eine "I1' erhält, wodurch die UND-Schaltung 3A5 durch die drei 1-Eingänge freigegeben wird und ein 4-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 -fi.1 ausgegeben. Gleichzeitig wird ein 4-Ausgangssignal von der UND-Schaltung 3A6 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 3A3 wird über die ODER-Schaltung 373 und die UND-Schaltung 3A5 in das Register 9-3 gesetzt, das somit Bit 3 des Auftrags enthält. Zusätzlich wird das Register 9-OxUm die Bitstelle 0 des Auftrags zu erhalten,mit 0 geladen (immer 0, da der Anforderer verwendet wird); das Register 9-1 wird mit 1 geladen, damit die Bitsteile i des Auftrags ausgefüllt ist und das Register 9-4 wird mit 0 über die ODER-Schaltung 374, die ein O-Ausgangssignal von den Erfassungsschaltungen 321 und 322 erhält, geladen und enthält somit Bit A 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 35A 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 Elemente, 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 -fl5 für die im ersten Zyklus der
Z& ORIGINAL
Prioritätsschaltung 12 übertragenen Anforderung. Im Unterschied zu dem in Fig. 6(a) dargestellten Fall erzeugt die UND-Schaltung 344 jedoch keinen l-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 EinVAusgangssignal 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 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 gesetzt. 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 O-Ausgangssignal ein "O"-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 ober 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 sechsen 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 Ü22, der Auftrag über die Signalleitung ^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 ?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 !-Signal, das das Register 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 Torschaltung 441 und 442 bleiben gesperrt und das 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 4 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 £>5 der Vektorregisterschreibschaltung 23 im achten und neunten Zyklus zugeschickt, gleichzeitig die ersten vier Byte der ausgelesenen 8 Byte-Daten im achten Zyklus , während die neun ten 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 &7 in das Register 200-1 eingeschrieben.
᎔ ORIGINAL
-IS-
,2Q-
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
ein O-Ausgangssignal, das das Register 450 auf 0 setzt. Gleichzeitig erzeugt die UND-Schaltung 415 für die Torschaltung 440 über die ODER-Schaltung ein 1-Ausgangssignal , wodurch der Inhalt des Registers 18-1 in das Register 22-1 gesetzt wird. Die Torschaltung 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 ^26 der Vektorschreibschaltung 23 zugeschickt.
Schließlich wird der Betrieb beim Auslesen von Vektordaten E(l-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 ist die Anzahl der zu verarbeitenden Vektordatenelemente 5, die Anfangselementadresse 0100, das Adressinkrement 20 und das Datenformat jedes Vektordatenelements 4 Byte. Dann wird das Register 301 mit dem Wert 5, der die Anzahl der zu verarbeitenden Vektordatenelemente 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 wird auf 0 gesetzt, was angibt, daß die Anfangselementadresse nicht an der 4 Byte-Grenze (sondern an der 8 Byte-Grenze) liegt; und das Register 305 wird auf d 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 £33, falls die Adresse jedes Vektordatenelements an der 4 Byte-Grenze liegt, eine 11JL", 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 erhalten.
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 (O für das Register 17-3) von der UND-Schaltung A15 ein 1-Ausgangssignal erzeugt, das die Torschaltung AAO über die ODER-Schaltung A32 freigibt, so daß der Inhalt des Registers 18-1 in das Register 22-1 gesetzt wird. Die Torschaltung AA2 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 A17 ein 1-Ausgangssignal, das die Torschaltung AAl durch die ODER-Schaltung A33 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 Adressgeneratorschaltung 10 genau beschrieben. Fig. 9 zeigt ein Ausführungsbeispiel der Adressgeneratorschaltung 10, die einen Wähler 10-1 , Register 10-2 und 10-3, einen Ingrementvielfach-Generator 10-A und einen Addierer 10-5 aufweist. Vor der Erzeugung der Adresse wird die Anfangselementadresse in das Register 10-2 über die Signalleitung & und den Wähler 10-1 und das Adress increment für benachbarte Vektordatenelemente in das Register 10-3 über die Signalleitung fe 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 A-Byte-Datenformat und ein von vier abweichendes Adressin kement aufweist (d.h,daßA-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 In kcementvielfach-Generator 10-A ein O-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 Adressregister 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.
BAD ORIGINAL
-22=·
In einem anderen Fall, in dem jedes Vektordatenelement ein 4 Byte-Format hat (dann ist das Adressinkrement anders als 4) werden die Bitstellen 2 und 5 der Adresse über die Signalleitung 123 an die Anforderungsausgabe-Steuerschaltung ü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 Inkrementszum 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 Inkrement von 4 aufweist unterscheidet sich die Adresserzeugung, 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 die führende Elementadresse , um das Increment vermindert (vom Vielfachgenerator 10-4 werden -1 Vielfache des Increments erzeugt und dem Addierer 10-5 eingespeist). Die Adressen für die zweite und jede weitere Anforderung werden durch Addition des verdoppelten 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 O-Vielfaches des Inkrements wird vom Vielfach generator 10-4 erzeugt und dem Addierer 10-5 eingespeist). Die Adressen für die zweite und weitere Anforderungen werden durch Addition des verdoppelten Inkements zur Adresse des führenden Vektordatenelements nacheinander erhalten. In Fig. 10 sind die Inkrement-Vielfachen, die der Irkrement-Vielfachgenerator 10-4 erzeugt.
Fig. 11 zeigt ein weiteres Ausführungsbeispield er 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 Figur 3 ausführt.
: - ; ;;·:;-: JJJöJ^tO
-Xi-
Zuerst wird der Fall von Fig. 3(c) behandelt. Synchron mit dem ersten Vorblock aus dem Hauptspeicher 100 werden Daten F(I) in das Register 18-2 geladen. Es wird angenommen, daß die Beurteilung, ob der über die Signalleitung 124 übertragenen 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 einen der Ankunft des Vorblocks folgenden Zyklus wird das Datum F(I) 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(I) 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 FQ) 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(A) 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) beschreiben. Nachdem das Register 18-2 mit dem Datum G(I) synchron mit dem ersten Vorblock geladen wurde, wird das Datum G(I) ü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
BAD ORIGINAL
G(I) ü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(A) werden identisch verarbeitet, wohingegen 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 Register22-l/ohne durch das Register 500 im nächsten Zyklus zu gehen, übergeben wird und dann in das Vektorregister eingeschrieben wird.
Obwohl die Ausführungsbeispiele für die Fälle beschrieben wurden, daß der Hauptspeicher und die Vektordatenelemente 8 Byte breit und die Vektordatenelemente 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 X. -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.
-Or-
Leerseite

Claims (10)

Patentanwälte' BEETZ <St PARTNER 81-35.454P 21. Okt. 1983 Stöinsdorfstr. 1O18000 München 22 Patentansprüche
1.) Vektor-Prozessor,
—/
gekennzeichnet durch
- einen Hauptspeicher (100) der Vektordaten speichert, eine Vielzahl von Speicherbereichen hat und beginnend mit einer gekennzeichneten Adressgrenze <?,-Byte Daten auslesen kann;
- einem Vektordatenspeicher, der mehrere jeweils &-Byte aufweisende Elemente hat und die aus dem Hauptspeicher (100) ausgelesenen Vektordaten speichert;
- eine Einrichtung (1 - 15, 18 - 23), die aus dem Hauptspeicher (100) Vektordaten, die aus m-Byte-Elementen bestehen (wobei f./m eine ganze Zahl größer als 1 und größer oder gleich m ist) ausliest und ausgelesene Vektordatenelemente in getrennte, vorgegebene Speicherplätze des Vektordatenspeichers (200) einschreibt; und
- eine arithmetische Einheit (300), die für die aus dem Vektordatenspeicher (200) ausgelesenen Vektordaten eine Vektorberechnung durchführt und das Berechnungsergebnis in den Vektordatenspeicher (200) einschreibt.
2. Vektor-Prozessor nach Anspruch 1,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung enthält:
- eine Einrichtung, die Informationen; ob sich ein Vektordatenelement jeweils in einem m-Byte-Bereich eines aus dem Hauptspeicher (100) auszulesenden Datums auf der Basis des Formats des Vektordatenelements,
81-A8146-O3
- über die Anzahl der zu berechnenden Vektordatenelemente,
- über die Startadresse der im Hauptspeicher gespeicherten Vektordaten, und
- über das Adressinkrement zwischen benachbarten Vektordatenelementen, erzeugt, die entsprechend einem Vektorbefehl gesetzt wird, und
eine Einrichtung, die die Position steuert, wenn das ausgelesene Vektordatenelement in den Vektordatenspeicher eingeschrieben wird.
3. Vektor-Prozessor nach Anspruch 2,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung weiterhin aufweist:
- eine Einrichtung, die die erzeugte Information zusammen mit einer Leseanforderung dem Hauptspeicher (100) überträgt, der eine Einrichtung, die ein entsprechend der Leseanforderung ausgelesenes Vektordatenelement zusammen mit der erzeugten Information an die Lese- und Schreibeinrichtung überträgt, aufweist.
4. Vektor-Prozessor nach Anspruch 1,
dadurch gekennzeichnet, daß die Lese- und Schreibeinrichtung aufweist:
- eine Einrichtung (19, Fig. 8), die die Vektordatenelemente nacheinander jeweils in unterschiedliche Elementpositionen des Vektordatenspeichers (200), wenn die aus dem Hauptspeicher (100) ausgelesenen Daten mehrere Vektordatenelemente enthalten, einspeichert.
5. Vektor-Prozessor nach Anspruch 4,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung enthält:
- eine Einrichtung (7), die eine Information, ob ein Vektordatenelement im jeweiligen Bereich eines aus dem Hauptspeicher ausgelesenen Datums steht, oder nicht, erzeugt und dem Hauptspeicher (100) , falls das Datum η Vektordatenelemente aufweist für eine Zeitdauer von mindestens η Zyklen des Hauptspeicherauslesevorgangs nach der vorhergehender Leseanforderung keine Leseanforderung sendet, und daß
- die Einrichtung (19, Fig. 8) die die Vektordatenelemente in den Vektordatenspeicher (200) speichert η Vektordatenelemente, die in dem aus dem Hauptspeicher ausgelesenen Datum enthalten sind, abhängig von der Leseanforderung in getrennte Elemente des Vektordatenspeichers in einem Intervall von η-Zyklen einspeichert.
6. Vektor-Prozessor nach Anspruch 4,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung enthält:
- eine Einrichtung, die eine Information, ob ein Vektordatenelement
in einem m-Byte-Bereich eines aus dem Hauptspeicher (100) auszulesenden Datums, auf der Basis des Formats des Vektordatenelements, steht über die Anzahl der zu berechnenden Vektordatenelemente, über die Startadresse der im Hauptspeicher gespeicherten Vektordaten und über das Adressinkrement zwischen benachbarten Vektordatenelementen, erzeugt, die entsprechend einem Vektorbefehl gesetzt wird und
- eine Einrichtung, die die Position der aus dem Hauptspeicher ausgelesenen Vektordatenelemente beim Einschreiben in den Vektordatenspeicher steuert.
7. Vektor-Prozessor nach Anspruch 6,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung aufweist:
-A-
- eine Einrichtung, die die Information zusammen mit einer Leseanforderung dem Hauptspeicher (100) überträgt, der eine Einrichtung aufweist, die ein ausgelesenes Vektordatenelement in Abhängigkeit von der Leseanforderung zusammen mit der Information den Lese- und Schreibeinrichtungen überträgt und
- eine Einrichtung, die die Position der ausgelesenen Vektordatenelemente beim Einschreiben in den Vektordatenspeicher steuert.
8. Vektor-Prozessor nach Anspruch 1,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung aufweist:
- eine Einrichtung (19, Fig. 11) , die ein in den aus dem Hauptspeicher ausgelesenen Daten enthaltenes Vektordatenelement rettet und dieses zusammen mit einem in den darauffolgend aus dem Hauptspeicher (100) ausgelesenen Daten enthaltenen Vektordatenelement in den Vektordatenspeicher einspeichert.
9. Vektor-Prozessor nach Anspruch 8,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung aufweist:
- eine Einrichtung, die eine Information, ob ein Vektordatenelement jeweils
in einem m-Byte-Bereich eines aus dem Hauptspeicher ausgelesenen Datums steht, auf der Basis des Formats des Vektordatenelements, über die Anzahl der zu berechnenden Vektordatenelemente, über die Startadresse der im Hauptspeicher gespeicherten Vektordaten und über das Adressinkrement zwischen benachbarten Vektordatenelementen erzeugt, die entsprechend einem Vektorbefehl gesetzt wird, und
- eine Einrichtung, die die Position der aus dem Hauptspeicher ausgelesenen Vektordatenelemente beim Einschreiben in den Vektordatenspeicher steuert.
10. Vektor-Prozessor nach Anspruch 9,
dadurch gekennzeichnet,
daß die Lese- und Schreibeinrichtung enthält:
- eine Einrichtung, die die erzeugte Information zusammen mit einer Leseanforderung dem Hauptspeicher (100) zusendet, der eine Einrichtung aufweist, die ein entsprechend der Leseanforderung ausgelesenes Vektordatenelement zusammen mit der Information den Lese- und Schreibeinrichtungen überträgt, und
- eine Einrichtung, die die Position der ausgelesenen Vektordatenelemente beim Einschreiben in den Vektordatenspeicher steuert.
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 true DE3338345A1 (de) 1984-04-26
DE3338345C2 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
US7159099B2 (en) * 2002-06-28 2007-01-02 Motorola, Inc. Streaming vector processor with reconfigurable interconnection switch
US7140019B2 (en) * 2002-06-28 2006-11-21 Motorola, Inc. Scheduler of program instructions for streaming vector processor having interconnected functional units
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
US7315932B2 (en) * 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands 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
US20070226469A1 (en) * 2006-03-06 2007-09-27 James Wilson Permutable address processor and method
EP2022829B1 (de) 2006-04-21 2013-06-12 Nippon Sheet Glass Company, Limited Photolumineszierendes pigment, verfahren zur herstellung des pigments und das pigment enthaltende wässrige harzzusammensetzung
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0044563A1 (de) * 1980-07-21 1982-01-27 Hitachi, Ltd. Vektorverarbeitungsgerät mit Vektorregistern

Family Cites Families (13)

* 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 株式会社日立製作所 デ−タ処理装置
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0044563A1 (de) * 1980-07-21 1982-01-27 Hitachi, Ltd. Vektorverarbeitungsgerät mit Vektorregistern

Also Published As

Publication number Publication date
GB8327931D0 (en) 1983-11-23
US4825361A (en) 1989-04-25
JPH0425582B2 (de) 1992-05-01
JPS5975365A (ja) 1984-04-28
DE3338345C2 (de) 1989-03-30
GB2130767B (en) 1986-05-08
GB2130767A (en) 1984-06-06

Similar Documents

Publication Publication Date Title
DE3338345A1 (de) Vektor prozessor
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2353258C2 (de) Datenverarbeitungsanlage
DE3210816C2 (de)
DE1915818C3 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2354521C2 (de) Verfahren und Einrichtung zum gleichzeitigen Zugriff zu verschiedenen Speichermoduln
DE2758830A1 (de) Rechenvorrichtung
DE2126206A1 (de) Datenverarbeitungsgerat
DE2712224A1 (de) Datenverarbeitungsanlage
DE3741953A1 (de) Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen
DE2036729A1 (de) Digital Datenverarbeiter
DE2912287A1 (de) Datenverarbeitungsgeraet
DE2332971C2 (de) Mikroprogrammsteuereinrichtung
DE1499206C3 (de) Rechenanlage
DE3043653A1 (de) Datenverarbeitungsanlage
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2625113C2 (de) Speicherschutzeinrichtung
DE2063195C2 (de) Verfahren und Einrichtung zur Operationssteuerung einer Anzahl von externen Datenspeichern
DE19722803A1 (de) Schaltung zur Verschiebung von Daten zwischen entfernten Speichern und ein diese Schaltung enthaltender Rechner
DE2617485C3 (de) Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2245284A1 (de) Datenverarbeitungsanlage
DE68903280T2 (de) Vektorschlange in computern mit vektorregister.
DE2824711A1 (de) Steuereinrichtung fuer speicherzugriffe
DE3931505C2 (de) Speichersteuerung in einer Datenverarbeitungsanlage
DE1774421B1 (de) Mehrprogramm 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