DE3338345A1 - Vektor prozessor - Google Patents
Vektor prozessorInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
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 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 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.
-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)
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 L· 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:
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:
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:
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,
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:
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:
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.
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)
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)
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)
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 |
-
1982
- 1982-10-22 JP JP57184553A patent/JPS5975365A/ja active Granted
-
1983
- 1983-10-19 GB GB08327931A patent/GB2130767B/en not_active Expired
- 1983-10-21 DE DE19833338345 patent/DE3338345A1/de active Granted
-
1987
- 1987-03-02 US US07/021,590 patent/US4825361A/en not_active Expired - Lifetime
Patent Citations (1)
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 |