DE1934441A1 - Schnellrechenverfahren sowie Rechner zu dessen Durchfuehrung - Google Patents

Schnellrechenverfahren sowie Rechner zu dessen Durchfuehrung

Info

Publication number
DE1934441A1
DE1934441A1 DE19691934441 DE1934441A DE1934441A1 DE 1934441 A1 DE1934441 A1 DE 1934441A1 DE 19691934441 DE19691934441 DE 19691934441 DE 1934441 A DE1934441 A DE 1934441A DE 1934441 A1 DE1934441 A1 DE 1934441A1
Authority
DE
Germany
Prior art keywords
arithmetic
computer
channel
ppu
unit
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
DE19691934441
Other languages
English (en)
Other versions
DE1934441C3 (de
DE1934441B2 (de
Inventor
Watson William Joseph
Stephenson Charles Melvin
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE1934441A1 publication Critical patent/DE1934441A1/de
Publication of DE1934441B2 publication Critical patent/DE1934441B2/de
Application granted granted Critical
Publication of DE1934441C3 publication Critical patent/DE1934441C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5355Using iterative approximation not using digit recurrence, e.g. Newton Raphson or Goldschmidt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

Die Erfindung betrifft ein Rechenverfahren zur Durchführung mindeste^nl einer vorzugsweise mehrere aufeinanderfolgende Rechenschritte umfassenden Rechenoperation an vorsortierten Daten als Operanden entsprechend den Instruktionen eines Programms,sowie einen Digitalrechner zur Durchführung dieses Verfahrens mit einer die Rechenoperationen durchführenden, arithmetischen Rechenvorrichtung mit. .Operanden-Eingabekanälen zur gleichzeitigen Eingabe der miteinander gemäss der Rechenoperation zu verknüpfenden Operanden in die Rechenvorrichtung.
Bis jetzt wurden die Operationsgeschwindigkeiten in Daten verarbeitenden Computersystemen seit dem Erscheinen der in der
909883/1549
A 37 442 b Kl - 137 7.7-69
US-Patentschrift 3,12o,6o6 offenbarten Eniac-Maschine laufend erhöht. Dies führte insbesondere als Folge unterschiedlicher Portschritte in der Technologie der Computerbauteile dazu, dass nicht mehr die Computerschaltbauteile die Computergeschwindigkeit begrenzen, sondern die Verbindungskanäle zwischen den Bauteilen und Baugruppen des Computers, insbesondere dann, wenn man zu letzteren die Speicher hinzurechnet.So konnte man die Schaltzeit zur Verarbeitung einer logischen Operation oder gewisser arithmetischer Operationen auf eine Spanne von weniger als loo Nanosekunden herabsetzen. Auf diese Weise verbraucht eine in einem Rechner durchgeführte arithmetische oder logische Operation wesentlich weniger Zeit als der Verbindungskanal vom und zum Datenspeicher und letzterer selbst, indem ein Abruf von Daten aus dem Speicher zum Rechner sowie ein Vorgang des Einschreibens von durch den Rechner erstellten Daten in den Speicher mehr Zeit als die Verarbeitungszeit im Rechner selbst benötigt.
Aufgabe der Erfindung ist nun, einen Rechner zu entwickeln, der unter Beibehaltung höchstmöglicher Verarbeitungsgeschwindigkeiten soviele von den die durchschnittliche Verarbeitungsgeschwindigkeit bisher verlangsamenden Kanalfunktionen übernimmt, dass deren Geschwindigkeit an die des Rechners optimal angepasst ist.
Ausgehend von einem Verfahren der eingangs erwähnten Art wird diese Aufgabe gemäss der vorliegenden Erfindung dadurch gelöst, dass mehrere Operanden entsprechend den Instruktionen in der Instruktionsfolge gleichzeitig, jedoch unterschiedlich verarbeitet werden, um eine vorgegebene Folge von Rechenschritten an jedem Operanden durchzuführen. Ein Rechner der eingangs erwähnten Art wird deshalb zweckmässigerweise so ausgebildet,
909883/1S49
A 37 M2 b · · - %-
kl - 137 1
7.7.69
dass die Rechenvorrichtung in mehrere, vorzugsweise ein-■■' schrittige Recheneinheiten aufgeteilt ist, denen jeweils unterschiedliche Rechenschritte zugeordnet sind, und dass entsprechend dieser Rechenoperation ausgewählte Recheneinheiten in Serie miteinander verbindbar sind.
Durch die Erfindung wird der Vorteil erzielt, dass eine durchschnittliche Verarbeitungsgeschwindigkeit für arithmetische Operationen im Computersystem die Verarbeitungsgeschwindigkeit dee Rechners selbst erreichen kann.
tweckmässigerweise enthält das digitale Datenverarbeitungs-•ystem einen Rechnerkanäle für Instruktionen und Daten aufweisenden Rechner, der eine Vielzahl arithmetischer vorzugsweite einschrittig arbeitender Untereinheiten hat, die jeweils gepuffert und für die Lösung spezieller arithmetischer Aufgaben vorgesehen sind, wodurch eine gleichzeitige Verarbeitung einer Vielzahl von Operanden in einer Vielzahl verschiedener Verarbeitungsschritte entsprechend eine Vielzähl ▼on Instruktionen innerhalb desselben Rechners möglich wird. Der Rechner ist zweckmässigerweise für eine gleichzeitige Verarbeitung zweier Einzellängenoperandenpaare oder eines Doppellängenoperandenpaars in zwei Teile aufgeteilt.
Durch den Rfechner wird es möglich, in einer Art Fliessbandverfahren vorzugsweise einschrittig, d.h. mit jedem Taktpuls ankommende neue Operanden und Instruktionen fliessend zu verarbeiten und wieder abzuspeichern. Der vorliegende Rechner eignet sich insbesondere auch für Daten, die iterativ in gleicher oder ähnlicher Weise wiederholt durch den Rechner hindurchgeführt werden müssen. Er vermag insbesondere grosse Datenblöcke mit vorsortierten Daten zu verarbeiten, wobei die erzielte Verar-
909883/1549
A 37 M2 b
kl - 137 It
7.7.69 T
beitungsgeschwindigkeit gleich der Rechengeschwindigkeit werden kann
Der erfindungsgemässe Rechner kann Teil eines Computers sein, der neben den vorerwähnten Eigenschaften auch konventionelle Verarbeitungsformen aufweist. Der Computer ist vorzugsweise für die Verarbeitung wissenschaftlicher Daten geeignet, die höchste Verarbeitungsgeschwindigkeiten zweckmässig erscheinen lassen, was durch die erfindungsgemäss erzielte Optimierung zwischen dem Zeitverhalten von Speicher und Rechner sowie der sie verbindenen Kanäle realisiert werden kann.
Ein mit dem erfindungsgemässen Rechner versehener Computer vermag insbesondere komplexe Vektoroperationen in höchst wirkungsvoller Weise zu bearbeiten. Ein solcher Computer enthält zweckmässigerweise ei^en zentralen Datenverarbeiter9 in welchem der Rechner enthalten ist, an dessen Ein- und Ausgängen je ein Pufferkanal vorgesehen ist, der zwischen dem Rechner und einem Zentralspeicher liegt. Die Pufferkanäle werden durch eine Registerdatei gesteuert, welche beispielsweise Vektorparameter in Maschinensprache speichern und durch entsprechende Instruk- ■ tionen eines Programmes aufgerufen werden kann. Zu den Pufferkanälen gehören Parameter- und Arbeitsregister zur Steuerung der Rechnerabläufe. Im Einzelnen kann mittels einer Ladevorrichtung aufgrund einer Programminstruktion der in Maschinensprache vorliegende Vektorparameter darstellende Inhalt der Registerdatei in die Parameter- und Arbeitsregister umgeladen werden, wodurch grosse Datenblöcke vorsortierter Daten, beispielsweise für komplexe Vektoroperationen, direkt und fliessend auf Maschinenebene verarbeitet werden können.
-909883/15*9
A 37 442 b - % -
kl - 137 _
7.7.69 . ζ
Der erfindungsgemässe Computer verfügt des weiteren nicht nur über einen erfindungsgemässen Rechner mit höchsten Verarbeitungsgeschwindigkeiten 9 sondern auch über einen Zentralverarbeiter, der Instruktionen mit höchster Geschwindigkeit beschaffen und weiterverarbeiten kann, indem er die oben genannten Pufferkanäle beinhaltet.
Zweekmässigerweise dienen die Untereinheiten des Rechners der Durchführung spezieller arithmetischer Rechenschritte an den eingegebenen Operanden·Programmentsprechend ausgewählte Untereinheiten können miteinander verbunden werden, indem sie in irgendeiner ausgewählten Konfiguration zur Durchführung arithmetischer Punktionen seriell kombiniert werden. Durch synchrone Arbeitsweise innerhalb des Rechners infolge der vorzugsweise generell einschrittig arbeitenden Untereinheiten können gleichzeitig verschiedene Verarbeitungsschritte aufeinander folgender, unterschiedlicher Operanden innerhalb des Rechners durchgeführt werden.
Einer solchen Kette von in verschiedenen Verarbeitungsstufen befindlichen Operanden entsprechen auch Instruktionsketten zur Steuerung der gleichzeitig ablaufenden, unterschiedlichen Operationen, welche ebenso wie die entsprechenden Operanden dem Rechner laufend zugeführt werden.
909883/1S49
A 37- 442 b . L
k-b . v
3.7.1969
Weitere Einzelheiten und Merkmale-der Erfindung können den beigefügten Ansprüchen und/oder der folgenden Beschrei bung entnommen werden, die der Erläuterung eines Inder Zeichnung dargestellten Ausführungsbeispiels der Erfindung dient. Es zeigen:
Fig. 1 Eine vorzugsweise Anordnung von Coraputereinheiten und -peripheriegeräten, welche die vorgeschlagene Erfindung enthalten,
Pig. 2 Ein Blockschaltbild zu Fig. 1.
Fig. 3 Ein Blockschaltbild zur Darstellung einer Gefügeschaltung zwischen einem Zentralverarbeifcer und ei nem Peripherieverarbeiter der Pig» 1 und 2,
Fig. 4 Ein stärker detailliertes Blockschaltbild zur Darstellung der Gefügeschaltung der Fig. 3»
Fig. 5 Ein Diagramm zur Darstellung einer Betriebsweise ' des Zentralverarbeiters geaäS Fig. 1-4.
Fig. 6 ^ Eine Puffereinheit zur geeigneten Einströmung beispielsweise von Vektordaten in einen Rechner.
Fig. 7 Sin Blockschaltbild des Zentralverarbeiters gemäS Fig. 1.-4.
Fig. 8 Einen Zwei-Kanal-Rechner im Eentralverarbeiter.
Fig. 9 Bauteile innerhalb des Zentralverarbeiters zur führung der Gefüge schaltung gemäß Fig. 3 und 4.
9 098 83/H4
BAD ORIGINAL j
A 37 442 b
3.7.1969
Fig« 10 Ein Zeitteilverfahren zwischen Yirtualverarbeitern innerhalb Mes Peripherieverarbeiters geaäß Pig. 12nd 2. '
Pig. 11 Ein Blockschaltbild, des. Peripherieverarbsiters.
'Pig. 12 Ben Zugang zu Zellen in einen Kommunikationsregister der Pig. 11.
Fig. 13 Einen Zuordner der Fig. 11.
Zum genauen Verständnis der hier vorliegenden Erfindung wird es erforderlich, das Ooraputersystem zur vorzugsweisen Verarbeitung naturwissenschaftlicher Daten, an dem die hier vorliegende Erfindung Anteil hat, zuerst allgemein und dann in seinen einzelnen Baugruppen und Bauteilen so weit zu beschreiben, daß die Tragweite der Erfindung insbesondere im Zusaiaiaenspiel mit anderen Einheiten innerhalb des gesagten Cospiitersystens richtig erkannt werden kann.
Zu Fig. 1ϊ
Das^Conputersystera weist einen Zentralverarbeiter CPU 10 (Central Processing Unit) sowie einen Peripherieverarbeiter PPU 11 (Peripheral Processing Unit) auf. Sin Zentralspeicher CSSf 12-15 (Central Kenory) besteht aus vier Dünnschichtspeiclier-üjitereinheiten 12-15 mit 160 ITano - Sekunden Zykluszeit bei 100 ITano-Selamden durchschnittlicher Zugriffzeit und hat beispielsweise ein löschendes Speicherverhalten bein Auslesen. Der CEII 10-15 ist an die CP'J 10 und an die PPI? 11 angeschlossen und kann von konventioneller Bauart sei rs«
909883/1549
A 37 442 b
3.7.1969
Jede der Untereinheiten 12-15 hat eine 16K Wortkapazität von 16384 Worten. Ein Wort hat 32 Bits. .256 Bits = -. 8 χ 32 Bits = 8 Worte heißen "Wortgruppe", was "bedeutet, _j., daß 2048 Wortgruppen ä 256 Bits in einer Zentralspeicher- ' Untereinheit liegen.
Eine Zentralspeichersteuerung MCU 18 (Memory Control Unit) stellt die Lese-Schreibsteuerung für den CEM 12-15 und damit das im allgemeinen notwendige Zwischenstück zwischen dem CEM 12 - 15 einerseits und der CPU 10 bzw. der PPU 11 andererseits dar. Das MCU 18 hat Puffereigenschaften sowie Vorrichtungen zur Ein- und Ausblendung (Gating), Kartierung (Mapping) und zum Speicherschutz der Baten im CEM r ' . ' 1.2 - 15. ■.;".."
CPU 10, PPU 11, MCU 18 und CEM 12 bis 15 laufen synchron miteinander. Sin CPU-Takt erscheint alle 50 Hanp-Sekunden, ein PPU-Takt alle 65 Nano-Sekunden. Weitere Speicherein- _heiten bilden Plattenspeicher DS 16, 17 (disc, storages) mit einer durchschnittlichen Zugriffszeit von etwa 16 Millisekunden; Bandspeicher TS 21 - 26 (Tape storages), von. ; denen vorzugsweise die TS 21 , 22 Einzollbänder und die TS ! 23 - 26 Halbzollbänder verarbeiten, wobei alle Bandspeicher zu Arbeitsspeicher- wie auch Sin/Ausgabe zwecken verwendet werden können. Ein Kartenleser CR 19 (card reader) dient zur Eingabe von auf lochkarten gespeicherter Information und ein Kartenstanzer CP 20 (card Punch) zur Ausgabe von Information auf gestanzte Lochkarten; ein Zeilendrucker LP 27 (line printer) ist als Druckerausgabegerät vorgesehen. * · '
Als v/eiteres EinAusgabe-Gerät dient eine Bildschirmkohsole OC 28 (oszilloscope console). Zwei Bedienungspulte sind
909883/ 154 9
A 37 442 b
3.7-.1969
mit zwei beispielsweise Zweistrählverhalten aufweisenden Bildschirmen und der PPU 11 gekoppelt. Letztere "bildet nicht nur die Steuerungseinheit für den OG 28, sondern gleichermaßen auch für die CR 19, CP--20, LP 27 und TS 21 bis 26. Ein Bediener vermag über die OC 28 Befehle in das Computersystem einzugeben, die Prüfzwecken dienen hinsichtlich hardware oder software; gleichermaßen können über die OC Programmunterbrechungen an bestimmten Stellen durchgeführt werden, die es erlauben, den Fortgang einer Operation zu überprüfen und aufgrund der erzielten Portschritte in ih- ' rem weiteren Ablauf zu beeinflussen. Letzteres kann bedeuten, daß man die Operation auf dem eingeschlagenen Weg weiterlaufen oder auf andere Wege mit eventuell anderen Daten verzweigen läßte
Wie bei Computersystemen üblich, verfügt der Computer der Pig. 1 über mehrere Speicherhierarchien, beispielweise über die folgenden vier: die GPU 10 mit dem schnellsten Speicher, die CEM 12-15 mit dem etwas weniger schnellen, die DS 16, 17 mit dem noch langsameren und die TS 21-26 mit dem Speicher, der im Vergleich zu den vorerwähnten die größte mittlere Zugriffszeit hat, falls von ihm keine entsprechend vorsortierten Daten abgerufen werden.
Das Computersystem der Pig. 1 verfügt über mehrere Untersysteme, die neu sind und eine bemerkenswerte Steigerung der Verarbeitungskapazität speziell für die Pälle aufweisen, bei denen eine große Anzahl vorsortierter, in bestimmten Gruppen geordneter Daten zur Verarbeitung anfallen.
Eine erstes solches Untersystem besteht in einer automatischen Gefüge schaltung zwischen der CPU 10 und der PPU 11
909883/tS49 /
1J34441
A 37 442 k-b
3.7.1969
des Comptitersystems, in welchem, mehrere ■ Programme gleichzeitig ablaufen und verarbeitet werden können»
Ein weiteres solches Untersjstem ist in der GPü 10 enthalten, welches es ermöglicht, Bä"&en zur Eingabe in einen Rechner so zu speichern, zu gruppieren und dem Reohner in solcher Reihenfolge anzubieten, öaS damit die Verarbeitungs— geschwindigkeit des Computers wesentlich erhöht t/erden
kann.
Ein nächstes solches TJntersystem betrifft einen Parallelrechner hoher Yerarbeitungsgesefawindigkeit und Flexibilität, in welchem die Operanden in einer Art von Fließbandverfahren verarbeitet werden.
Ein weiteres solches Untersystem schließlich betrifft ein verbessertes time sharing-lFerfahren einer Vielzahl von
Virtualverarbeitern innerhalb der PPU 11.
Zu Jig. 2: -
Die Systemorganisation des Computers der Pig. 1 ist durch eine.Besprechung der im Blockschaltbild der Pig. 2 aufgezeigten Datenkanäle des Computers leicht zu umreißen. Ein Kanal 29 verbindet die MGU 18 mit einer puffernden Platten- und Trommelsteuerung DCU 30 (druin/disc control unit), von der ein Kanal zur DS 16 und ein anderer zur BS 17 weiterführen. Die DCU 30 ist. ein einfacher, fest verdrahteter
Einzweckcomputer zur alleinigen Bewerkstelligung (Synchronisierung) des Datentransports zwischen des nit der HCU verbundenen Zentralspeicher GEM 12-15 und den Platten-
909883/1S49 BADOR1G1NA1;
A 57 442 b k-b 3.7.1969
speichern BS 16, 17 ober d.en Kanal 29 nach Erhalt eines diesbezüglichen Peripheriebefehlsf
soeben erwähnten Kanäle sind hidirektrional, wobei in äem zwischen 33S 16 oder 17 und. BC 30 liegenden Kanal nur je Wort pro Taktzeit befördert wird· Im.Kanal 29 werden dagegen gleichzeitig 8 Worte, also eine Wortgruppe, zwischen der MGU 18 und der BGXJ 30 transportiert.
Der Anschluß eines Trommelspeichers BS 31 (magnetic drum storage) an die 33CU 30 zur Erhöhung der Speicherkapazität mittlerer 2&griffszeiten wäre über einen weiteren bidirektionalen Kanal möglich.
Ein weiterer- 256 Bits simultan übertragender Kanal ist der zwischen der MGU 18 und der PPU 11 liegende bidirektionale Kanal 32S der je eine Wortgruppe zwischen dem Zentralspeicher CEK 12 - 15 und dem Peripherieverarbeiter PPU 11 über die KCU 18 befördert.
Wie weiter oben bereits angedeutet, dient die PPU 11 als Yielzweefceoisputer, dein u.a. die Steuerung des Datenflusses zu allen anderen Peripheriegeräten außer den DS 16, 17, 31 obliegt und an welchen deren Batenfcanäle angeschlossen sind.
Beim niehtzerstörungsfreien Auslesen aus dem Zentralspeiclier CEM müssen die ausgelesenen Baten regenerativ wieder eingespeichert werden, während nur eines der acht Worte einer Wortgruppe in der PPU 11 verarbeitet wird. Dies erweist sich schon deshalb als notwendig, da von der PPU 11 infolge der mehr oder weniger langsam arbeitenden Peripheriegeräte nur jeweils ein Wort aus der Achwortgruppe (maximal) benötigt wird. Ein gängiger Umschlagswert für den
909883/1S4S
A 37 442 b if
k-b MK
3.7.1969 ■
Umschlag von Daten innerhalb der PPU 11 für ein Peripheriegerät liegt nämlich bei etwa 100 000 Worten pro Sekunde.
Die PPÜ 11 enthält acht Virtualvörarbeiter» deren Mehrzahl so programmiert werden kann, daß jeder beliebige Virtualverarbeiter mit j-edem beliebigen Peripheriegerät gekoppelt werden kann. .Die PPU 11 arbeitet mit Hilfe der Virtualverarbeiter gemäß dem im CEM gespeicherten Programm wobei diese außerdem das in der CPU 10 laufende Programm überwachen. · ·
Ein Kanal 33 verbindet die CPU 10 mit der MCU 18, die ja ihrerseits durch Datenkanäle mit dem Zentralspeicher GM-""/, 12 bis 15 gekoppelt ist. Im Gegensatz zu dem oben über, die PPU 11 gesagten kann die CPU 10 alle acht Worte eine? Wiortgruppe aus dem CETi 12 - 15 verwerten, wobei sie überdies die Fähigkeit besitzt, eine beliebige Kombination dieser acht Worte zu lesen oder zu schreiben. Im Kanal 33 werden vorzugsweise alle 50 Hano-Sekunden drei Worte transportiert, indem zwei Worte in die CPU 10 eingehen und ein Wort zur MCU 18 gelangt. ·
In späteren Abschnitten wird beschrieben, wie die COT TO Vektor op era tionenen direkt und ohne Übersetzung über irgend* einen Compiler durchführen kann, wodurch lange Befehls- . ketten vermieden werden, da die CPU 10 solche aufgrund eines einzigen Makrobefehls intern durchführt. Me CPtJ 10 hat diese Fähigkeit insbesondere deshalb, weil zwischen der MCU 18 und dem Rechner innerhalb der CPU 10 Puffer liegen» -, welche solche zur Bildung der erforderlichen Befehlsketten benötigten Microbefehle enthalten oder zu bilden gestatten. Zusätzlich enthält die CPU 10 den als sogenannten Schlauchrechner ausgebildeten Rechner.
909883/1S49
A- 37 442 b -
3.7.1969 "
Ein"Kanal 34 am Ausgang der MCU-18 ist zur Erweiterung der Computerkapazität vorgesehen") falls weitere CPU's oder dergleichen zusätzlich angeschlossen werden müssen.
Jeder der Kanäle 29 und 32 bis 34 hat über die MCU 1§ direkten Zugriff in jede Untereinheit 12 bis 15 des Zentralspeichers CEM. Zur Erhöhung der Verarbeitungsgeschwindigkeiten werden im Computer und insbesondere im Zentralspeicher zeitlich vorzugsweise einander überlappende Arbeitszyklen verwendet. In der MCU 18 ist eine Vorrangsteuerung mit vorzugsweise festen Zuordnungen vorgesehen, um Anfragen an den Zentralspeicher in einer gewünschten Reihenfolge beantworten zu können. So werden Anfragen von den an die Kanäle 29, 32, 33, 34 unmittelbar angrenzenden Einheiten vorzugsweise in dieser Reihenfolge sowie vorrangiger behandelt als solche von Einheiten, die jeden nachgeschaltet sind, wobei Möglichkeiten vorgesehen wurden, die Prioritätsordnung beliebig abzuändern.
Zu Pig. 3: '
In einem Blockschaltbild wird eine automatische Gefügeschaltung (context switching) gezeigt, welche eine Verbindung zwischen der PPU 11 und der CPU 10 darstellt und es ermöglicht, daß der Zeithaushalt der CPU 10 vorsorglich so eingeteilt werden kann, daß zeitraubende Dialoge zwischen ihr und der PPU 11 vermieden werden. Die Wirkungsweise der Schaltung basiert darauf, daß in der CPU 10 echt oder vor- " zugs\tfeise quasi-gleichzeitig mehrere Benutzerprogramme a"blaufen können (-multiprogramming) und daß andererseits die PPU 11 periphere Anfragen von Seiten dieser Programme zu "~ erledigen hat, wodurch nun der PPU 11 die Aufgabe zukommt, den Ablauf der in der CPU 10 wirksam werdenden Benutzer-.programme planerisch festzulegen.
909883/1S49
A 37 442 b Ml -
k-b IiT
5.7.1969
Durch zweierlei Befehle können die in der GPU 10 ausgeführten Benutz er programme von der PPU 11 periphere Dienstlers- tungen anfordern. Ein erstes solches Kommando lautet SCP (system call and proceed), ein zweites SOW (system call and wait). Der Befehl SCP kommt dann im Benutzerprogramm vor, wenn es möglich ist, daß in der Yerarbeituhg dieses Programms ohne ein Abwarten" auf den Vollzug der angeforderten peripheren Dienstleistung von Seiten der PPU 11 veitergegeschnxtten werden kann; die PPU 11 wird also auf Grund der entsprechend gestellten Anforderung Daten, Adressen oder gin ganzes Programm sicherstellen bzw. zusammenstellen, welche im weiteren Ablauf des innerhalb der GPU weiterver-arbei— · teten gleichen Benutzerprogramms erforderlieh werden. Die PPU 11■ Überstellt dann das angeforderte Informationsmateriial bei passender Gelegenheit. Der Befehl SCP wird in Fig. 3 über eine Leitung 41 von der GPU 10 an die PPU 11 geführt;
Der Befehl SCV/ wird dagegen dann von einem Benutzerprogramm ausgegeben, wenn es letzterem nicht möglich, ist weiterzusehreiten, ohne die von der PPU 11 angeforderte peri^ phere Dienstleistung erhalten zu Iiaben. Der Befehl SG¥ wird über eine leitung 42 aus der ÖPU 10 an die in Fig. 3 zwischen der CPU 10 und der PHi 11 gelegene eigentliche Gefügeschaltung geführt. ErfindungsgeinäS analysiert die PPU laufend diejenigen Programme innerhalb der CPU 10, die augenblicklich festliegen und niciit weiterverarbeitet werden, um festzustellen, welches Programm davon als nächstes von der CPU 10 weiterverarbeitet weräen sollte. Hat sie ein solches Programm gefunden und selektiert, setst die PPU 11 unmittelbar eine Schaltfajme 44 (automatic switching flag), die hier durch ein Flip-Flop dargestellt wird. Wird nun in der GPU 10 bei Ablauf eines in ihr verarbeiteten Benutzer-
909883/fi4f
A 37 k-b 3.7.1969
ein" SGW-Befehl gefundens entsteht über ein Und-Gatter 43 ein Signal "Umschalten" ajif einer^ Leitung..^5* vorausgesetzt, daß auch die Schaltfahne kk gesetzt ist. Bas Signal "Umschalten" aber verursacht in der CPU 10 die Durchführung der erforderlichen Umschaltung von dem auf den-SCW-Befehl aufgelaufenen Benutzerprogramm
90S883/1SÜ9
A 37 442 b
3.7.1969
" *j!U jenem Programm, das yon der PPU 11 aue der 2ahl 'der* in Reserve befindlichen Programme als näehstkommenäes · selektiert worden war· < . ....·,
■ ■ * Γ . i
Hehr im einzelnen betrachtet spielt sich also folgendes
ab: ist die Sehaltfanne 44 gesetat, kann bei Aufkommen «ines
Befehls SCW von Seiten der OPU 10 über das Und-*Öat1»er
der Befehl '· Umschalten " auf der leitung 45 aur ÖttT langen und damit der CPU anaeigiji|ff dafc sie 4ie M$ iat, s*aiit 4es auf den Befehl SÖt aufgeltufenen.
vorerst in Wartestellung, befindlichen frogiö res, bisher in Reserve befindliohes Progarümm
;teil weiterzubearbeiten. Sie wi^ leijitiri* auto
und ohne Verzögerung aufnehmen und ^etreiben, inde durch Rückfrage bei der PPtJ Vi V0h ditfft^^dtb Programm oder Programmteil angezeigt Wurde« beispielsweise die PPU 11 - etwa /bei fr testellung befindlicher tetriebebtreitt solche Anzeige zu machen, wird sie auch nicht > fahne gesetzt haben, wodurch von vornherifn. ein des Signals "Umschalten" unmöglich gemacht trardej Bern Fall beendet bei Aufkommen dee Signale SCW djUH zwar ebenso die Weiterverarbeituhg des *^f 43Qföf nen Benutzerprogramms, behält dieses je|ooh so von Seiten der PPU 11 die Sohaltfahne 44gesetzt Er sehe inen des Signals "Umschalten" wird dann da· fahne 44 realisierende Flip-Flop rückgesetzt,
Durch die so ausgeführte automatische Gefügesohtltuhg wird , ein sonst üblicher zeitraubender Dialog zwischen dem ,sen-' tral- und dem Peripherieverarbeiter (CPU und PPtt) dadurch, vermieden, daß die PPU 11 vorsorglich eämtliohe in Reeerre befindlichen Programme innerhalb der CPU 10 auf EinsaiÄ-' bereitsohaft, d.h. die Möglichkeit sofort weiterverarbeitei;
909883/1
BAD
A 37 442 b
b-b > If
37Τ969 #If
zu werden, prüft und registriert. Ein weiterer Vorteil /entsteht dadurch, daß der Zentralverarbeiter keine Schaltkreise, zur Durchführung des sonst üblichen Dialogs mehr benötigt . . .
Zu Mg. 4:
Pig. 4 stellt ein Blockschaltbild dar, in welchem ein wesentlicher erster Teil der Gefügeschaltung der Pig. 3 noch stärker detailliert ist, so daß das Zusammenspiel zwischen CPU 10, PPTJ 11 und MCU 18 deutlicher wird. In Fig.. 4 wird der betreffende wesentliche Teil der automatischen Gefügeschaltung als zur PPU 11 gehörig gezeichnet, indem er als Ausgangsteil (interface section) der PPU 11 in Richtung CPU 10 und MCU 18 dargestellt wird. Die PPU 11 enthält also in Fig. 4 links einer gestrichelten, senkrechten Linie die Gefügeschaltung als ein Ausgangsteil der PPU und rechts der gestrichelten Linie die die PPU eigentlich charakterisierenden Schaltkreise, von denen jedoch nur Anschlüsse zu erkennen sind.
Die Signalleitungen 41 und 42 für die Signale SCP und SCW führen von der CPU 10 zur PPU 11, indem die Eingänge eines Oder-Gatters 50 Signal SCP sowie Signal SCW aufnehmen, die Eingänge eines anderen Oder-Gatters 51 jedoch Signal SCW und ein Fehlersignal auf einer Leitung 53, die ebenfalls aus der CPU 10 kommt. Die Signale SCP, SCW und Fehler ,entstehen aufgrund bestimmter Progranimbefehle im Benutzerprogramm, wobei im Falle der zwei letzteren Befehle ein Umschalten vom bisherigen Benutzerprogramm zu einem nächsten Programm gewünscht werden kann.
•Ein grundsätzlich kurze Zeit nach Erscheinen der Signale
909883/1549 :
A. 37 442 b k-b 3.7.1969
'SCP oder SGW oder Fehler aufkommender Tastpuls auf einer leitung 54· verläßt die GPU 10 in Richtung PPU 11, um dort ein Flip-Flop I 73 (C/S loading strobe time) zu setzen. Es sei.bemerkt, daß der Tastpuls und das von ihm getastete Flip-Flop L 73 entfallen könnten, wie auch die im folgenden besprochene Schaltung der Fig. 4 anders aufgebaut werden könnte, ohne von dem in Fig. 3 gezeigten Prinzip abzuweichen.
Ein Signal auf einer der Leitungen 41,42 dient als Anfrage seitens der CPU 10 an die PPU 11 um Erlaubnis, daß die CPU
10 einen bestimmten Teil* aus dem von ihr augenblicklich ausgeführten Programm über den Kanal 33 und die MCU 18 in eine bestimmte, vorzugsweise reservierte Stelle des Zenträlspeichers CEIi 12 bis 15 einspeichern darf» Dabei erstreckt sich die Zeitspanne, innerhalb derer diese Stelle jenen bestimmten Teil des in diesem Augenblick.von der CPU 10 verarbeiteten Programms enthalten soll, über die Zeit, welche die PPU 11 benötigt, diesen Programmteil abzufragen und aufgrund des vorgefundenen Informationsinhalts eine dementsprechende Instruktionsfolge ablaufen zu lassen." In dem hier vorliegenden Ausführungsbeispiel der Erfindung wird für eine solche Steueroperation einer Gefügeschaltung eine Wortstelle im CETi 12 bis 15 reserviert. Ein auf einer Leitung 55 aus der CPU 10 zur PPU 11 geschicktes Signal CCC (CPU call complete) meldet der PPU 11, daß ein mit dem Signal SCP oder SCW begonnener Ablauf beendet ist.
Auf einer Leitung 56 erreicht ein Befehl "Betriebserlaubnis" oder R (run) aus der PPU 11 die CPU 10,welcher, wie nachher .erläutert wird, dazu verwendet werden kann, den Ablauf innerhalb der CKF 10 abzustoppen, sobald innerhalb der PPU
11 bestimmte Betriebsbedingungen auftreten.
cms ffr tr i
C * t tr t * r Γ f*
19344t?
A 37 442 b . · .'·'·"
3.7.1969
J1
Auf einer Leitung 57 wird ein Signal FSC (CPU switch complete) als Quittiersignal, von" der 0ΡΊΡ 10 zur FPU 11 aufgrund eines vorausgegangenen 8Ctf- oder Fehrersignals .gesandt. Die FFU 11 lö^ eins Oparationoreihe aus, vermittels, der die ab einem Funkt aufgelaufene UFIjT, an dem sie vorerst nicht weiterachreiten kann, veranlaßt wird, einen bestimmten Informationscode ine CSi ku transferieren, welcher den u , i,; Gesamt zustand des Programm te ils der OPU 10 charakterisiert, # -liei welchem,ei6 die Verarbeitung des Programms unterbrechen ^6. Nach solcher Abspeicnerijhg wird nun die CFU 10 in ei-„ ien gänzlich neuen Zustand versetzt, aus dem ßie heraus ein neues Programm ausführen kann. Dieses Programm beginnt 1bei dem Äuständ, der dem Informationsoode entspricht, mit •4em die CFU Äun versehen wurde« Erscheint also ein solches ■Signal PSC Auf der Leitung 57i kann die FFU 11 wiederum V'* auf den Leitungen 41» 42 oder 53 nachfolgend erseheinende / Signale SCP1 SCW oder "Fehler" beantworten· Vie nooh gezeigt λ wird, registriert die FFV 11 tee auf der Leitung 57 er-. '"' acheinende Signal und bringt dementsprechend das nächste !-frograttm sowie die .von der. CPU 10 tut verarbeitende Information in Bewegungt sobald ein SC\/- oder Pehlereignal als ; nächst es auf den Leitungen 42 bzw. 53 erscheint.
Die Leitung 45 der Pig. 3 und 4 zeigt durch ihr Signal ^. «Umschalten" oder FS (Proceed!with switching) der CPU an, daß letztere die Umschaltung von dem einen zu einem andern Benutzerprogramm vornehmen kann.
Un auf der Leitung 58 von der PFU IT zur CPU 10 gesandtes .' Signal "Anrufen" oder^FO (prooeed with call) sagt letzterer, daß die bestimmte Stelle im CBH verfügbar ist.
Sin.Signal HSC auf einer Leitung 59 zeigt, die HCU 18 be-
009883/1145
1S344*1
A 57 442 1)
3.7.1969
treffend, an, da8 ein Schaltbefehl durchgeführt wurde?· das Signal-geht von der MCU 18 zur PPU 11 und auf ein Und-Gatter 64, dessen zweiter Eingang die das Signal PSC ftihrende Leitung 57 bildet. Bei erfüllter Und-Bödingung an diesem Und-Gatter wird die PPU 11 in die Lage versetzt, einen nächsten Zustandswechsel für die CPU vorzubereiten* line von der PPU 11 zur MGU 18 weisende Leitung 60 führt dasselbe Signal * Umschalten" wie die obengenannte Leitung 45; das Signal zeigt der MCU 18 an, daS sie den Schaltbefehl ausführen kann.
Wie bei der Besprechung der Fig. 2 bereits erwähnt, portieren die Kanäle 32 und 33 insbesondere acht Worte 256 Bits gleichzeitig zwischen der PPU und MCU bzwf und MGU, d.h. jeweils einen ganzen Wortblock.
Wie ebenfalls erwähnt, hat die PPU 11 ein zur :0*4Üg«0el)*l·- tung gehöriges Ausgangsteil. Zu letzterem gehören nach Fig. 4 zehn Flip-Flops, das ist ein Flip-Flop C 71 (call von der CPU), ein Flip-Flop S 72 (switch request von der CPU), das Flip-Flop L 73 (C/S loading strobe tiraöJi. #i» Flip-Flop CC 74 (call completed) ein Flip-Flop R 75 order für CPU), das Flip-Flop AS 44 (automatic flag), ein Flip-Flop AC 77 (automatic calling flag) ,sin, Flip-Flop SC 78 (switch completed), ein Flip-Flop PS (proceed a switch operation) und schließlich ein Flip-Flop PC 80 (proceed a call operation). Weiterhin gehören: zum Ausgangsteil die Oder-Gatter 50, 51, die, Und-Gsirbejr 43, 64, weitere Und-Gatter 61, 62, 63, 65, 66, 67 sowie ein weiteres Oder-Gatter 68. - . ;..?-:
Die Flip-Flops können einfache gleichstromgekoppelte BS-Flip-Flops sein, deren Setzeingang durch S,
909883/1549
I t
ORIGINAL JNSFfKTTED
λ 37 442 b
k-b ft I ·
3.7.1969 · M ■■"■".-
. gang durch R, Ja-Ausgang durch 1 und STein-Ausgang durch Ö gekennzeichnet sei. Die Ja-Ausgahge tragen die Bezeichnung des Flip-Flops, beispielweise C auf einer Leitung 81 als Ja-Ausgang des Flip-Flops C 71. -
Der.Ausgang des Oder-Gatters 50 führt an einen Eingang des Und-Gatters 61. Der Ausgang des Und-Gatters 61 bildet den Setzeingang für das Flip-Flop C 71. Der Hein-Ausgang des letzteren ist mit einem zweiten Eingang des Und-Gatters 61 sowie mit je einem Eingang der Und-Gatter 62 und 63 verbunden. Der Ausgang des Oder-Gatters 51 ist mit dem zwei-, ten Eingang des Und-Gatters 62 verbunden, de'ssen Ausgang den Setzeingang des Flip-Flops S 72 bildet. Der Nein-Aus- · gang des letzteren ist mit je einem Eingang der Und-Gatter 61 bis 63 verbunden. Der Tastpuls der Leitung 54 bildet !den Setzeingang für das Flip-Flop L 73, dessen Ja-Aus- ■ gang an je einen der Eingänge der Und-Gatter 61 bis.63 führt. .
Die Wirkungsv/eise der aus den Flip-Flops 71 bis 73, den Und-Gattern 61 bis 63 und den Oder-Gattern 50 bis 51 bestehenden Baugruppe ist die, daß auf einer Ausgangsleitung 81 dann" ein Signal erstellt wird, wenn ein "Anruf" auszuführen ist, daß andererseits.auf einer.Ausgangsleitung des Ja-Ausgangs des Flip-Flops S 72 dann ein Signal S erscheinen soll, wenn eine Sehaltfunktion durchzuführen ist. Die Flip-Flops C 71· und S 72 können erst dann gesetzt werden, wenn auf der Leitung 54 der Tastpuls erscheint, wodurch bei Zwischenschaltung des Flip-Flops L 73 dessen Ja-Ausgang in Form eines' Zeitblendesignals L an je einem Eingang der Und-Gatter 61, 62 wirksam wird. Das den "Anruf" . kennzeichnende Flip-Flop C 71 -kann nur dann gesetzt werden, wenn es selbst und das Flip-Flop.S 72 bisher auf Aus wa-
.&08883/1S49
A Sl 442 Td 3.7.T969
ren. In gleicher Weise wird das-Signal S auf der Leitung 82 als der Sin-Zustand des Flip-Flops S 72 nur dann zustande kommen, falls es selbst sowie das Flip-Flop C 71 vorher auf AUS waren.
Eine Rücksetzleitung 83 führt zu den Rücksetzeingängen der Flip-Flops C 71 und S 72, wobei diese Leitung Signale entsprechend dem in der PPTJ 11 laufenden Programm führt, wodurch nach Beendigung einer Anruf- oder Schaltfunktion ein solches Rücksetzsignal für diese Flip-Flops erscheint.
Es ist zu "beachten, daß die Leitungen 81 und 82 an Anschlüssen 84 a und 84b führen, die zu einer Gruppe von An-Schlüssen 84 gehören, welche sämtlich programmziigänglich oder-abhängig sind. So führt der Ja-Ausgang des Flip-Flops
' 00 74 auf einen entsprechenden Anschluß 84d, der Ja-Ausgang des Flip-Flops R 75 auf einen Anschluß 84e, der Ja-Ausgang des Flip-Flops AS 44 auf einen Anschluß 84f, der Ja-Ausgang des Flip-Flops AC 77 auf einen Anschluß 84g sowie der Ja-Au3gang des Flip-Flops SO 78 auf einen Anschluß 84h; sämtliche Anschlüsse 84a bis 84h sind also programmzugänglich, was weiter unten näher erläutert wird, soweit dies für eil} Verständnis einer die Ge füge schaltung betreffenden Operation erforderlich ist.
Signal GCO auf Leitung 55 bildet den Setzeingang des Flip-Flops CC 74, welches nach Beendigung eines Anrufs auf EIH geht und durch Signal CO am Anschluß 84d dies, der PPTJ meldet, wonach letztere über eine Leitung 85< das Flip-Flop CC 74 rücksetzt. .
Bine dem Programm zugängliche Leitung 86 führt zum Setz-, 909581/1149
A 31 442
5,7,1969
llöps H ?So lessen Ja«=»iLmsgaa,g ©rseiagt ia -Hall® ä'3-3 Sizi«g'As;i;esdss fies flip-fisfs sisi B-Signal
84© II
efi.e.ai; WQ^äöalsaaso le sollte
das flätxMjattei1 68 ©la ÄKegaagsssigaal Jimismieija So- ist alse di© 22U 11 ia lQ2?.lage9 fei InstaM fies Plip H 75 sa
;>_iti -flip-Msp AS 44 hat einen Setz- tinet einen Rücksetisein- · gßStt^-D 'älQ Wqqt leitungen 87 "bzw. 88 dem ^rogramia zugang- ." iic& g#sai'3-i5;,-fi sind. Der Hein-Ausgang des Hip-Plops ist mit ■stnera Bingfi-sgVdes Und-Gatters 66 verbunden, während der Jalusgang äem% ?lip-ELops einerseits zum Anschluß 84f führt, welclier programmabfragbar ist9 und andererseits Über eine leitung 89 ait einem Eingang des Und-Gatters 43 verbunden iet. Der Ausgang des Und-Gatters 66 führt zu einem Eingang Aa* Oder-Gatters 68, dessen zweiter Eingang mit dem Ausgang des Und-GatterS 67 verbunden ist· Sin Eingang des Und-Gfttters 67 wird aus dem 3Jein-Ausgang des Plip-Plops AC 77 gespeist, während ein zweiter Eingang.des Und-Gatters über die Iieitung 81 Verbindung mit dem Ja-Ausgang des Flipilops C 71 hat· Eine programmabhängige Eingäbeleitung 91 ; führt zum Setzeingang des Plip-Plops AC 77, während eine j entsprechende Leitung 92 an den Rücksetzeingang des Plip- j Plops angeschlossen ist. Die Wirkungsweise der Plip-Plops ■ AS 44 und AC 77 sowie der ihnen direkt zugeordneten Schal- I ter ist die, daß mit ihrer Hilfe dem in der PPU 11 befindlichen Programm ermöglicht wird, entsprechend den zuvor gesetzten Plip-Plops C 71 und S 72 die den weiteren Ablauf bestimmenden Weichen zu stellen.
\ Das Plip-Plop SC 78 ist zur Abfrage für die PPU 11 vorge-
909883/T549
ORIGINAL
A 37 442 b
3.7.1969 ' Vt
sehen, wodurch ihr ermöglicht v/erden soll, zu bestimmen, , wann eine Schaltoperation beendet ist. Das Flip-Flop PS 79 erstellt an seinem Ja-Ausgang, d.h. auf den Leitungen 45 und 6O' das Signal "Umschalten" oder PS, wodurch der CPU 10 und der MCU 18 angezeigt wird, daß beide die Ausführung' des Schaltbefehls in Angriff nehmen sollen. Der Ja-Ausgang des Flip-Flops PC 80 erstellt auf der Leitung 58 ein Signal "Anrufen" (PC), welches der CPU anzeigt, die Ausführung des Anruf-Befehls in Angriff zu nehmen, wobei allerdings das Flip-Flop nur dann auf EIN geht,-wenn zuvor die Flip· Flops C 71 und AC 77 gesetzt wurden.
Durch die bisherigen Erläuterungen wurde die Art dargestellt, in welcher eine Umschaltung von einem zu einem anderen Programm innerhalb der CPU 10 automatisch durchgeführt wurde unter Berücksichtigung der innerhalb der CPU bestehenden Bedingungen und in Abhängigkeit von der durch die PPU durchgeführten Steuerung. Der Ablauf soll als Operation einer Gefügeschaltung bezeichnet werden, deren Boole'sehe Gleichungen als Kurzform der obigen Diskussion in der Tabelle I wiedergefunden werden.
Die Besonderheiten der im Ausgangsteil zwischen der CPU 10 und der eigentlichen PPU 11 realisierten Schaltung zur entsprechenden Verarbeitung von SCW-, SCP- und Fehlersignalen sind:
a) Eine CPU-Anfrage kann sein:
1. Eine durch Fehler verursachte Anfrage an die Gefügeschaltung.
2. ein SCP-Anruf oder
3. ein SCTi-Schaltbefehl.
b) Eine CPU-Anfrage wird in einer Taktzeit verarbeitet.
90988-3/1549
193U41
A 37 442 b -
k-b. . .
3.7.1969
c) Die Programmumschaltung und/oder Erledigung eines Anrufs erfolgt automatisch, ohne die eigentlichen Schaltkreise der PPU zu beanspruchen, indem von der eigentli-
■ chen PPU getrennte· "Sehaltfahnen"-Elemente für Anruf und Umschaltung "benutzt werden.
d) Eine bestimmte Speicherstelle des GEM wird bei Durchführung einer SCP- und SGW-Konmunikation verwendet.
e) Bei einem SGW-Befehl werden getrennte Erfüllungssignale für Anruf und Schalten verwendet, wodurch es möglich wird, die Anrufoperation vor der Schaltoperation und unabhängig von dieser zu Ende zu führen.
f.) Eine Steuerung für die Betriebserlaubnis und das Stoppen der CPU wurde vorgesehen.
g) Unterbrechung für die PPU, sobald automatisch gesteuerte CPU-Anfragen, erledigt sind. Diese Unterbrechung kann entschleiert werden (mas-ked off).
Es werden insgesamt zehn Flip-Flops für das Ausgangsteil verwendet und in Tabelle I gemäß der in Fig. 4 gezeigten Schaltung aufgef;Jhrt. Wie später anhand der Fig. 11 erläutert wird, stellen diese zehn Flip-Flops als sogenannte "CR-Bits" solche Bits dar, die in einem oder mehreren Worten eines Kommunikationsregisters 431 (Fig. 11) enthalten sind. ' ·
Um schließlich die bei der Gefügeschaltung vorkommenden Operationen darzustellen, werden in den Tabellen II und III zv/ei repräsentative Ablaufbeispiele aufgezeichnet, indem in beiden Fällen die Möglichkeiten "nur Anrufen" (Befehl SCP), "nur Schalten" ("Fehler"meldung), wie auch "Anruf und Schalten" (Befehl SCW) betrachtet werden.
909883/1549
A 37 442 b
3.7.1969 ***
Zu Pig. 5: . ·
Das Computersystem der hier vorliegenden Erfindung eignet sich nicht nur für skalare Operationen, sondern insbesondere auch zur Verarbeitung laufend veränderlicher, vektorieller Daten (streaming vector data), welche dem Rechner insbesondere wriederholt zugeführt v/erden; das Computer syst em weist also eine besondere Eignung für Vektorpperationen auf.
Eine typische Vektoroperation ist die Addition zweier Vektoren Ä+B=C (mit A, B und C als n-dimensionalen, linearen Gebilden) in Form einer Addition ihrer Komponenten a.+b-=c.. Die Vektoren A und B werden durch Kanalrechner so hindurchgeführt, daß die entsprechenden Komponenten addiert werden; auf diese Weise ergibt sich der Vektor C.
Eine weitere häufig benutzte· Operation innerhalb des Computersystems ist die Bildung eines skalaren Produkts (A«3) =ü oder eines Vektorprodukts [AxBJ=G. Das Resultat wird wiederum so gewonnen, daß die Vektoren in ihre Komponenten zerlegt und gemäß
c = SZT ,a, b.
arithmetisch errechnet werden, wobei der Cosinus oder Sinus des Winkels zwischen A und 3 berücksichtigt wird.
Dies kann auf eine Multiplikation von Determinanten oder Matrizen erweitert werden. Heißt die eine Determinante A, die andere B, so folgt für die resultierende Determinante 0 im Falle eines dreidimensionalen Raums: ·
909883/1549
A 37 442 b
3.7.1969
a11 a12 a13 a2i a22 a23 a31 a32 a33
b12 b13
b22 b23
b32 b33
C31 C32
mit beispielsweise und allgemein
21
a13 b31
5Z
k=1
wobei ρ der Grad der Determinante ist.
Die Erzeugung des Elementes C11 kann man als eine Multiplikation der ersten Reihe der Determinante A mit der err. sten Spaltender Determinante B durchführen. Ein Element C12 kann als Multiplikation der ersten Reihe der Determinante A mit der zweiten Spa—lte der Determinante B entsprechend erzeugt werden; ein Element C1-, aus der Multiplikation der ersten Reihe der Determinante A mit der dritten Spalte der Determinante 3.
Velctoriell ausgedrückt kann man so sagen: der Reihenvektor 1 der Determinante A dient als Operandenvektor für drei Vektoroperationen mit dem Spaltenvektor 1 oder 2 oder 3 der Determinante B zur Erzeugung des Reihenvektors 1 der resultierenden Determinante C. In solcher Weise wird nun noch zweimal verfahren. Ein erstes Kai, indem jetzt statt des Reihenvektors 1 der Reihenvektor 2 der Determinante A und ein zweites Mal, indem jetzt der Reihenvektor 3 der De-
terminante A zur Erzeugung der Reihenvektoren 2 bzw. 3 Resultierenden Determinante C verwendet wird.
Eine solche skalare Vektormultiplikation in Form einer Matrixmultiplikation kann demnach so durchgeführt v/erden, daß zwei verschiedene Schleifen mehrmals durchlaufen werden.
909883/1549
A 37 442 b k-b.
3.7.1969
Diese Schleifen seien als innere "bzw. äußere Schleife' ..*■ "bezeichnet, -Pur das Beispiel der Matrixmul Implikation sei .die innere Schleife zur Indiz,ierung yon Element 0U Element, innerhalb einer Reihe der Matrix: C vorgesehen, die äußere Schleife dagegen zum Fortschreiten von Reihe zu Reihe in- · nerhalb der Matrix C. V
Die in Fig. 5 hinsichtlich ihrer Ablaufschleifen skizzier- -ten Operationen werden in einer gemäß Fig. 6 aufgebauten :' CPU in problemorientierter, optimierter ¥eise realisiert. \-
Zu Fig. βί
Bei dem hier beschriebenen Computersystem weist die CHF 10 eine hohe Datenverarbeitungskapazität auf, wobei .ihre Verarbeitungsgeschwindigkeit wesentlich über der Geschwindigkeit liegt, mit der Daten aus einem Speicher ausgelesen und in diesen wieder eingespeichert werden können. TJm nus, die hohe Verarbeitungsgeschwindigkeit innerhalb der GPJJ 10 zur Bearbeitung großer, vorsortierter Datenblöcke, wie bei Vektoroperationen, ausnutzen zu können, wurde |ur diesbezüglichen Anpassung zwischen dem Rechner und dem Speicher ein Zwischenstück geschaffen, das speziell der Förderung auf höchste Verarbeitungsgeschwindigkeit Rechnung trägt. Das Zwischenstück-wird im folgenden als Puffer MBtJ 100 (memorybuffer unit) bezeichnet und ist· in Fig. 6 als das zwischen der MCTJ 18 und dem Rechner 101 befindliche Teil erkennbar. Es wird als zur CPTJ 10 gehörig betrachtet und hat über den Kanal 33 Verbindung mit der MCTJ 18; andererseits führen ■ ' zwei Datenkanäle 100a und 100b von der ItBU 100 zum Rechner 101, der hier als Vektorrechner bezeichnet werden kann, sowie ein Datenkanal 100c vom Rechner 101 zur MBTJ 100. Aus den Kanälen 100a und 100b werden Operanden zum Rechner
909883/1549
■ · ' * 1334441
' A "37 442 b Cl ft
k-b · W
3.7.1969
geschafft, während der Kanal 10Oc das in letzterem erstellte Resultat zur MBU 100 zu transportieren gestattet, von wo es beispielsweise über die MOU 18 zum ΜΞΜ 12 bis 15 gelangen kann.
Zu Pig. 7: .
Das anhand der Pig. 6 über den in der OPU 10 enthaltenen Puffer ICBU 100 Gesagte kann anhand der die OPU stärker detaillierenden Pig. 7 in seinem Zusammenspiel betrachtet werden, um die Hochgeschwindigkeitskommunikation zum und vom Rechner 101 zu erläutern. Wie anfangs erwähnt, befinden sich im Zentralspeicher CEM Wortgruppen von 256 Bits d 32 Bit-Worten, wobei jeweils eine Wortgruppe gleichzeitig ausgelesen oder eingeschrieben werden kann. Die Wortgruppen werden aus dem OEM über die MOU 18 und den Kanal 33 zu einer Toreinheit MEG 18a (memory bus gating) gebracht. Der MBG 18a ist die 14BU 100 nachgeschaltet. Wie anhand der Fig. 6 gezeigt, liegen zwischen letzterer und dem Rechner 101 drei Kanäle 100a, 100b und 100c. Der Kanal 100a ist der Ausgangsteil eines Operand A Registerkanals 102, 103, welcher zwei in Serie geschaltete Puffer A' und A enthält. In gleicher Weise'ist der Kanal 100b Ausgangskanal eines Operand B Registerkanals 105, 106 aus zwei-seriengeschalteten Puffern B1 und B. Kanal 100c dagegen bildet den Eingangskanal für einen Resultat 0 Registerkanal 108, 107 aus zwei seriengeschalteten Puffern ö. und C1» Die Register-
, ö A und ΊΒ puffern dxe Operancren kanäle^rür die Operanden/auf dem Weg zwischen CEM und Rech-« ner. Der Resultatregisterkanal dagegen puffert die vom Rechner 101 ausgegebenen Ergebnisse, bevor sie beispielsweise in Wortgruppen gesammelt zum OEM 12" bis 15 zurückgeschafft werden. . · '
. Der Puffer 102 ist so gebaut, daß er insbesondere mit jeder
909883/
193AA41
A 37 442 Id k-b · 3.7.1969
achten Taktzeit auf einmal eine aus acht Worten "bestehende Wortgruppe enpfangen und abspeichern kann. Synchron mit dem Puffer 102"wird jede Gruppe zum Puffer 103 weitergeschafft. -32 Bit-Worte werden vom Puffer 103 zum Rechner101 so transferiert, daß ein" Wort pro Taktpuls bewegt wird. Es sollte beachtet werden, daß je nach Art der Operation, die der Rechner 101 auszuführen hat, zu jeder Taktzeit ein vom Rechner erstelltes Resultat aus den Puffern 108 und 107 • zum 0ΞΜ gebracht werden kann. Das Oomputersystem vermag ebenso hochwirksame Operationen auszuführen wie auch solche mit geringer Befehlsgeschwindigkeit. Ein Beispiel höchster Befehlswirksamkeit bei einer Operation der MBU 100 und des Rechners 101 bietet die Addition von Vektoren, bei der die zwei Operanden aus den Puffern 103 und 106 zu jeder Taktzeit zum Rechner 101 geführt werden, und wo vom Rechner 101 zu jeder Taktzeit eine Summe erstellt wird, welche unmittelbar vom Puffer 108 aufgenommen wird.
In der CPTJ 10 befindet sich weiter eine allgemeine Datei 120 bis 125, welche Register zur Aufnahme von Adressen bzw, adressierbare Register enthält;es sind dies Basisregister 120, 121, Generalregister 122, 123, ein Indexregister 124 sowie eine Register enthaltende Vektorparameter-Datei 125. Jedes Register 120 bis 125 hat zum Rechner 101 Zugang Über einen gemeinsamen Komiaunikationskanal 104 und eine Einheit OPS 126 (operand fetch/store unit), welche insbesondere als Durchgangskanal für Operanden in beiderlei Richtung vorgesehen ist. Eine Einheit CCTJ 127 (CPU context switching control unit) dient unter anderem der Steuerung des Rechners' 101, indem sie ihre Steuersignale aufgrund der von einer Einheit IBTJ 127a (instruötion buffer unit) gelieferten Kommandos bildet. Die Einheit IBTJ 127a dient der Pufferung von Befehlen, die aus einer Instruktions-Datei IFU 128 (instruc-
§09883/1549
193AA41
A 37 422 b 3.7.1969
tion fetch unit) stammen. Die IFU 128 beliefert nicht nur ■· die IBU. 127a mit Befehlen, sondern außerdem eine Index-'.adreesiereinheit IAUvI26a mit Adressen, wobei der Ausgang , . der IAU 126a zur OPS 126 führt. Instruktionsüateien 129
und 130 bilden puffernde Kanäle für einen Instruktionsfluß ; vom CBM.12 bis 15 zur instruktionsdatei IFU 128.
. Eine Steuereinheit SSH 131 (statur storage and retrieval gating) hat zu allen in Fig. 7 gezeigten Einheiten, außer ■ den Dateien 129 und 130, Verbindung, wozu auch eine Leitung - sswischen ihr und der MBG/gehört. Zur Aufgabe der SSR 131 gehört, aufgrund eines Befehls SCW oder "Fehler" (Fig. 4) »den gesamten augenblicklichen Zustand der CPU 10 vorzugsweise zum OEM 12 bis 15 zu schaffen und dafür einen neuen Zustand in die CPU einzuführen, so daß der Ablauf eines neuen Programms begonnen werden kann.
Die MBU 100 enthält eine MBU-Datei aus einer Parameter-Datei 132 und einer Arbeits-Datei 133f welche vorzugsweise
Register enthalten. Die Parameter-Datei 132 hat über einen Kanal 134 und den Kommunikationskanal 104 Verbindung zur Vektorparameterdatei 125. Der Inhalt der Vektorparameter-Datei 125 wird in die Parameter-Datei 132 übertragen, so- , bald eine spezielle Vektorinstruktion z.3. aus dem CEM zur Instruktions-Datei IFU 128 kam. Viird also beispielsweise von der IFU 128 eine solche Vektorinstruktion aufgenommen, erfolgt unmittelbar in Maschinensprache eine Übertragung der Parameter-Daten aus der Datei 125 zur Datei 132. Die Ausführung der daraufhin erfolgenden Operationen erfolgt nach einen Kanalverfahren vermittels der Einheiten IAU
. 126a, IBU 127a sovrie OFS 126 und CGU 127. Dies bedeutet im einzelnen, daS während der Zeitspanne, in v^elcher der
'.Rechner 101 eine bestimmte Operation durchführt, die Ein-
909883/1549
A 37 442'b . ■ λα - '
3.7.1969 ■ . . -..'. ·
heiten OPS 126 und CCU 127 die nächste nachfolgende Opera·* ,, ,. tion Kur Durchführung im Hechner 101 vorbereiten* In der- ·..!■-"-selben,Zeitspanne bereiten auch die Einheiten lAÜ I26ä .■ ' und IBU 127a die nächstnachfolgende ?Opetati6n'vor* Söhlließ-:, ' ;■ lieh* nimmt während derselben Zeitspanne die Ihstruktioiipdli^ : tei IPU 128 die daraufhin folgende Instruktion auf« ie^sstei-'::';■ re Instruktion wird somit im Heohner 1.01 drei Operationen . später als die augenblicklich wirksame Instruktion auage^r '; . ' führt. Bei solcher Kanalstruktur werden aldo vier Instruktionen gleichseitig verarbeitet, indem ^ede von ihnen ilis 1 einer verschiedenen Verarbeitungsstufe gegenüber der ande-. ren liegt, wie dies, in Pig. 4 durch die Zeiten 11» 52 und T3 und T4 angedeutet wird. . ' . , ,
Es sei darauf hingewiesen/ daß die Kombination aus der(Vek- ' torparameter-Datei 125 und der Pärameter-Datei 132 die Kar
pazität des Computersystems dahingehend erhöht, daß mit ' ''\
hoher Geschwindigkeit komplexe Vektoroperationen in Maschi- <'<j
nensprache aufgrund des Programms durchgeführt werden k#n- '■·#
neu. .-,""■ ;
Die in der Parameter-Datei 132 und der Arbeits-Datei. >1-33. /f vorkommenden Abkürzungen sind in Tabelle IV aufgeführt und, erklärt» · \ · :'.-: ■.--'V ·
Die Parameter werden vorzugsweise aus dem CSM in die Ee- ■ · gister vor Ausführung einer Yektroinstruktion eingeladen« Die Vektoren werden im Pließverfahren gemäß den in .der GPU enthaltenen Parametervier ten durch den Rechner Jiindüroh '. gesehleußt. . .;'.■- -
Im folgenden wird das durch die eingangs angegebenen Grlei-
909883/1S4S
■ · : . 1334441
"A 37 442 b V»
k-b OJ
3.7.1969 .
chungen beschriebene Beispiel einer Determinantenmultipli-. kation durchgeführt, wobei als erstes durch Tabelle V eine Zuordnung zwischen Speicherstellen und den Elementen -der Determinanten A, B, O (auch "Vektoren" genannt) gegeben ist.
Aus Tabelle VI wird schließlich die Adressenfolge und die Art der Vektorrechnung für den Vektor A ersichtlich.
Die Vektoren B und C werden in ähnlicher Weise bearbeitet. Die Adressenfolge des Vektors B gleicht der Adressenfolge des Vektors A1 außer daß 1 statt k Startadresse ist. Die Adressenfolge des Vektors C ist m, m+1 . . . ra+8. Die Erzeugung der Adressenfolge ist jeweils von der speziellen .Vektorinstruktion abhängig. Das obige Beispiel gilt für eine 1skalare Multiplikation von Vektoren. Der entsprechende Vektorcode wird zwecks dieser Bestimmung in die MBU 100 eingegeben. - *
Zu Fig. 8
Durch die obige Beschreibung wurde ersichtlich, daß das der hier vorliegenden Erfindung zugrundeliegende Computersystem gestattet, vorsortierte Daten mit hoher Geschwindigkeit anzuliefern. Es. wird somit wünschenswert, daß der die- \ se Daten verarbeitende Rechner 101 so ausgelegt ist, daß ; die angelieferten Daten mit derselben Geschwindigkeit j verarbeitet werden, die durch die oben beschriebene T1IBtT 100 j (Pig. 6 und 7) realisiert werden kann^ L
In Fig. 8 wird ein Rechner gezeigt, der eine Anzahl Untereinheiten 'aufweist, die auf bestimmte Rechenoperationen .spezialisiert sind, an verschiedenen, ausgewählten Stellen
909883/1549
tvw * . it ■ ■
3.7.1969
eines kanalförmigen Gebildes angordnet und in verschiedener Weise miteinander verknüpft*werden können. Der hier vorliegende Rechner 101 besteht aus zwei einander im wesentlichen gleichen kanalförmigen'Teilen, von denen jede Untereinheit über eigene Zwischenspeicher verfügt. Der Rechner verwendet MultipliJaiereinheiten, die gestatten, ein Produkt in einem Taktpuls zu bilden. Im Rechner -101 werden grundsätzlich Verzögerungen vermieden, die bei iterativen Multiplikationsverfahren sonst üblich sind.
Der Rechner enthält zwei parallele Kanäle 300A und 300B die symmetrisch zu einer Mittellinie 300 angeordnet gezeichnet sind. Die Operandeneingangslcanäle wurden mit Bezugszeichen 300a bis 30Od versehen,
Der Rechnerkanal 300A enthält einen Exponenten-Subtrahierer 302, zu dem über einen Kanal 303 ein Ausrichter 304 in Reihe geschaltet ist. Dem Ausrichter 304 ist" über einen Kanal 305 ein Addierer 506 nachgeschaltet; ein Ausgang des Addierers 306 führt über einen Kanal 307 zu einem Normalisierer 308, .dessen Ausgang über einen Kanal 309 zu einer Ausgangsstufe 310 verbunden ist.
Die Operandeneingangskanäle 300a und 300c sind weiterhin über einen Vornormalisierer 311 mit einer Multipliziereinheit 3I2 verbunden, dessen Ausgang über einen Kanal 313 an einen weiteren Eingang des Addierers 306 führt. Ein Akkumulator 314 hat einen ersten Eingangskanal 315 aus f einem weiteren Ausgang des Ausrichters 304 sowie einen zweiten Eingang über einen Kanal 316 aus einem zweiten Ausgang des Addierers 306, Ein Kanal 317 verbindet überdies den Akkumulator 314 mit einem spiegelbildlich angeordneten Akkumulator.-345 des Rechnerkanale 300B. Ein erster Ausgangs-
809883/1149·
193444?*
A 37 442 b ' Λ~>
k-b If
5.7.1969 .
318 aus clem Akkumulator 314 führt an einen weiteren "Eingang des txponentensubtrahierers 302, während ein zwei- -Mk :iAU9gang des Akkumulators 514 Über einen Kanal 319 mit ;"eiäem gsvreiten Singang-der Ausgangsstufe 310 verbunden ist.
ar:Expönen$ensübtrahierer 302 hat an seinem Ausgang einen ■ ' ^ώ^ΐ!6^6*3.Kanal 320, der es gestattet, direkt an den ersten ; längahg der Ausgangsstufe 310 zu gelangen. In gleicher Weifi.;_ - '-''/Be »sind aUöh die Ausgänge des Atisrichters 304 sowie des ψ ..ij^aierert 306 an den Kanal 320 angeschlossen. Ein Kanal iinfm weiteren Ausgang des Addierers 306 verbindet die^- init einein vierten Eingang des Exponentensubtrahierers i Der Addierer 306 verfügt üb^r einen dritten Eingang/
322 mit dem Ausgang einer Multipli-
■ |r|5|%;|*einheit 341 Terbunäea l?$t .die im Eechnerkanal 300B [Isipiegelbiiaiieh sur Mulisipliziereinheit 312 des Hechner-
'kh
'kahals ^C5OA angeordnet ist*
äsn Zweikäimlrschner ist die Tatsache hervorzuheben, daß die Operandenkanäle 30Oe und 300c über Kanäle 325 bzw. 324 direkt an jede Untereinheit des Röchnerkanals 300A herangeführt sind, wobei lediglich der Akkumulator 314 eine "Ausnahme maeht. Im einzelnen führen die Kanäle 323 und 324 also üb©r Kanäle 325 an die Multipliziereinheit 312, über Kanäle1 326 an den'Ausriehter 304, übe? Kanäle 327 an den Addierer 306, über Kanäle 328 an den lormalisierer 308, sovri.e schließlich direkt an die Ausgangsstufe 310. Torschaltungen öffnen oder schließen die Reehnerkanäle des Zweikanalreehners aufgrund irgendwelcher Maschinen oder Prograraminetruktionen.
Der Rechnerkanal 300B ist entsprechend dem Rechnerkanal 300A aufgebaut. Es entsprechen ein Exponentensubtrahierer
909883/1S4S
1 "> 1 11 -> O
A-37 442 t>, 3.7.1969
330 dem Exponentens'ubtrahierer 3.02, ein Ausrichter 332. . » den Ausrichter 304, ein Addierer 334 dem Addierer 306,- ein ^ ITormalisierer 336 dem Normalisierer 308, eine Ausgangsstufe 338 der Ausgangsstufe 310, ein Vornorm'alisierer dem Vornormalisierer 311, die Multipliziereinheit 341 \ der Multipliziereinheit 312 und der Akkumulator 345 dem Akkumulator 314. ' ' ."'"'.
Ebenso entsprechen sich die folgenden Kanäle: 300b dem Kanal 300c, 30Od den Kanal 300a, 331 dem Kanal 303, 333 dem Kanal 305, 335 dem Kanal 307, 337 dem Kanal 309, '-342 dem Kanal'324, 343 dem Kanal 323, 346 dem Kanal 318, 348 dem Kanal 318, 353 dem Kanal'313, 344 dem Kanal 316, 352 dem Kanal 321, 351 dem Kanal 320 und 347 dem Kanal 319«/ Überdies führt ein Kanal 350 vom Exponentensubtrahierer 330 zum Exponentensubtrahierer 302 sowie ein Kanal 355 von der Ausgangsstufe 338 zur Ausgangsstufe 310. ",
Wie bereits erwähnt, verfügt jede Untereinheit, der zwei Rechnerkanäle 3OQA und 300B über eigene Zwischenspeicher, wie dies am Beispiel der Ausgangsstufe 310 durch das Kenn- , zeichen 310a angedeutet ist, Addierer und Exponentensubtrahierer haben eine Bit-Kapazität von 32 Bits, die Multipliziereinheiten dagegen 64 Bits* · ,
Der hier vorliegende Rechner 101 enthält also eine Vielzahl von Spezialeinheiten zur Durchführung einer speziellen arithmetischen Operation. Jede Untereinheit mit Ausnahme des Akkumulators hat eigene Operandeneingänge. Durch Programm- oder Haschineninstruktionen können die Untereinheiten in der verschiedensten Weise miteinander verknüpft werden, so daß eine Vielzahl voneinander verschiedener arithmetischer Besiehungen realisiert werden können. Sind die
909883/1549
A 37 442 b ' , ' 3Ϊ- ·
k-b "
3..7.Ί969
Verarbeitungswege festgelegt, können die zu verarbeitenden. Daten so durch die beiden Rechnerkanäle hindurch geschickt werden, daß beispielsweise während einer Taktzeit unterschiedliche Operanden je eine Untereinheit, also "einschrittige11 Untereinheiten durchlaufen, wodurch ermöglicht wird, daß mehrere A- und B-Operandeiiworte aufeinanderfolgend durch den Rechnerkanal hindurchströmen, indem sie beisOielsweise vier .Verarbeitungsstufen innerhalb eines jeden Rechnerkanals unterzogen werden. Ein solches Fließverfahren mittels zweier einander parallel geschalteter Rechnerkanäle mit speziellen Rechenuntereinheiten, die in jeder denkbaren V/eise untereinander verknüpft werden können, gewährleistet eine durchschnittlich sehr schnelle Datenverarbeitung innerhalb des Rechners bei entsprechend gleich- ;schnell angelieferten und abfließenden Datenmengen.
Zur Erklärung der Wirkungsweise ist vorauszubemerken,, daß Gleitkomma-Addition eine der im Computer am meisten benötigten Operationen ist, und daß diese in vier Schritten durchgeführt werden muß: in einer Subtraktion der zwei Exponenten des A- und B-Operanden, in einer Ausrichtung der Mantissen vorzugsweise nach rechts, in einer Addition der Mantissen, sowie in einer eventuellenotwendigen Hachnormalisierung des Resultats, beispielsweise in Form einer Iiinksverachiebung. Diese Schritte werden in Tabelle 7 dargestellt.
Bei der Addition zweier Zahlenreihen oder Vektoren ist -zu Beginn (Zeit tQ) jede Untereinheit des Zweikanalrechners leer. Zu einer nächsten Zeit t., wird das erste Zahlenpaar a.j und b- der Exponentensubtraktion unterzogen, die a.la erstes durchgeführt werden muß. In einer nächsten Zeit tg
909883/1549
A 3?> 442 b /ι.
3.7.1969
wird ein zweites Zahlenpaar a„ und b dieser Exponentensubtraktion unterzogen, während das erste Zahlenpaar a^ und b- eine zweite Stufe in Form der Mantissenausrichtung durchläuft. Dieses Fließverfahren wird in gleichem Sinne fortgeführt, wobei bereits zu einer Zeit t* der Rechnerlcanal dergestalt "angefüllt" ist, daß jede Untergruppe bei jedem Schritt ein Zahlenpaar verarbeitet.
Der Zweikanalrechner 101 ist grundsätzlich .64-Bit-orientiert·. Alle Untereinheiten der Fig. 8 außer den Multipliziereinheiten 312 und 341 empfangen 32 Bits und geben 32 Bits an ihren Ausgängen ab.; die Multipliziereinheiten geben dagegen^ 64 Bits ab. Mit Ausnähme einer Multiplikation und Division benötigen alle Funktionen dieselbe Verarbei-.tungszeit sowohl für Einzel- als auch Doppellängenoperanden.
Featkommazahlen werden vorzugsweise im Zweierkomplement dargestellt, während Gleitkommazahlen als -Exzess-64-Zahl nach Vorzeichen, Mantisse und Exponent erscheinen.
. Ein hervorstechendes Merkmal des Rechners ist sein eine fließende Verarbeitung ermöglichender Aufbau nach Art eines Verarheitungskanal^ die insbesondere in Anwendung auf Vektorinstruktionen besonders günstige Eigenschaften hat. Die Anordnung zweier parallel liegender Rechnerkanäle gestattet, daß zu jeder Taktpulszeit an jeder Ausgangstufe und- 338 ein Resultat erscheint. Jeder Rechnerkanal kann Teile anderer Instruktionen verarbeiten. Jeder Schlauch i enthält Untereinheiten, wodurch insbesondere die Additionsze.it für Gleitkomma-Addition verkürzt werden kann# Die zueinander insbesondere spiegelbildlichen TJritereinheiten der zwei Rechnerkanäle können jeweils miteinander kombiniert werden? dies gilt allerdings nicht für die MultiplizsiereiR-
3.7.1969 .· '
j heiten. Die Exponentensubtrahierer 302, 330 können eine ' solche .Verarbeitungsstufe bildeil, die in sich getrennt - oder miteinander gekoppel arbeitet, indem sie in letzterem .Falle ein Doppellängenwort verarbeitet. 1^
Die Ausrichter 304, 332,können für SechtsverSchiebungen bei ,Gleitkomma-Addition verwendet werden. Die Horraalisierer 308, 336 dienen allen üTormalisierungsf.brdernissen und also auch !Linksverschiebungenβ Die Addierer 306, 334 werden vorzugsweise für Hochgeschwindigkeitsoperationen (second level look ahead operation) zur Ausführung von Gleit- oder Pestkomma-Addition verwendet. Sie finden überdies Verwendung : zur Addition der sogenannten Pseudosumme mit dem sogenannten PseudoÜberlauf, welche aus der Multipliziereinheit kommen.
Bei der Verarbeitung von Vektoren ist Gleitkomma-Addition zur Anpassung an einen großen dynamischen Bereich wünschenswert. Obzwar der Rechner 101 sowohl Pest- als auch Gleitkomma-Addition durchführen kann, wird seine wirtschaftliche Arbeitsweise hinsichtlich Zeitverbrauch und Bauteileaufwand besonders bei der Gleitkomma-Addition nach Tabelle 7· erkennbar.
Die Multipliziereinheit 312 vermag eine Multiplikation von 32 Bits mit weiteren 32 Bits in einer Taktzeit durchzuführen und stellt also vorzugsweise ein einschrittiges Multiplizierwerk dar. Die Multipliziereinheiten 312 und341 entsprechen vorzugsweise dem in den folgenden Veröffentlichungen beschriebenen Typ eines schnellen einschrittigen Multiplizierwerks für Parallelnaschinen. Die Veröffentlichungen sind: Wallace "Suggestion for a Past Multiplier" in IEES SC 13, S. 14 bis 17, Februar 1964, sowie Speiser "Digitale Hechenanlagen" 1967, Seite 188 bis 190 (Abb. 183).
909883/1549
1I η *i ·> jt
A 37 442 b k-b \ 3.7.1969
Solche Multipliziereinheiten gestatten die Ausführung-ei-* ner Multiplikation während' einer einzigen iTaktzeitf wodurch« diese Untereinheit mit den übrigen Untereinheiten im Ein-klang steht, indem die Verarbeitungszeiten' grundsätzlich*1 , gleich sind. ' : v ; (
ii
Die Multipliziereinheiten bilden gleichzeitig die , beitungseinheiten für eine Division. DoppellängeiitsperatiO6· nen für Multiplikation oder Division erfordern, mehrere1 r; -,'" Iterationen über die Multipliziereinheit j bevor das-Riüiul«-' tat erhalten wird. Festkomma-Multiplikationen, und Einzel-,; längengleitkomma-Multiplikationen werden nach nur g'iitiejij ; ^. Durchgang durch die Multipliziereinheit, gewonnen. Der Ausgang der Multipliziereinheit 312 bildet zwei Doppeliängefcr worte, von 3'e 64 Bits in Form einer Pseudosumme und «Ines PseudoÜberlaufs; aus diesen Worten ausgewählte Bits werden . \ im Addierer 306 miteinander addiert, umein linwortlängen-, produkt zu erhalten. Soll mit einer Einzellängenmul'tiplikation ein Doppellängenprodukt gewonnen werden» erzeugt die Multipliziereinheit 341 eine 64 Bit-Paeudosumrae und einen 64 3it-PseuäoUberlauf, welche dann in den Addierern 306 und-334 addiert werden, wodurch das Doppellängenprodukt gewonnen wird. Eine Dpppellängenmultiplikation kann so durchgeführt werden, "daß drei Schritte in der richtigen' Reihenfolge durchgeführt werden j Multiplikation in der Multipliziereinheit 341, Addition in den Addierern 306 und 334 sowie Saldierung in den Akkumulatoren 314 und 345» Die Akkumulatoren 314, 345 gleichen den Addierern und werden für spezielle Zwecke verwandt, in denen eine laufende Saldierung erforderlich wird. ■ .
Eine Doppellängenmultiplikation erfordert eine solöhe lau-
909883/1549
ORlGfNAL INSPECTED
A 37 442 b 3.7.Ί969
fende Saldierung, da vier getrennte 32 χ 32 Bit-Multiplikationen durchzuführen sind, wonach deren Zwischenergebniase (Partialsummen) stellenrichtig in den Akkumulatoren aufaddiert werden. Eine Ddppellängenraultiplikation erfordert deshalb 8 Taktzeiten, bis das richtige Ausgangssignal erscheint, während eine Einzellängenmultiplikation nur vier Taktzeiten benötigt. Eine Doppellängenmultiplikation bedeutet zwei 64-Bit-Gleitkommasahlen (56 Bit-Mantisse), die miteinander"multipliziert werden, um ein 64 Bit-Resultat zu erhalten, wobei die niedrigstwertigen Bits nach der Nachnormalisierung abgeschnitten sind. Eine Festkommanultiplikation bedeutet eine Multiplikation von 32 χ '32 Bits und ergibt ein 64 Bit—Resultat.
Eine Division ist die umfangreichste der vom Rechner 101 durchzuführenden Operationen, wobei die Fähigkeit einer schnellen Multiplikation von Vorteil ist. Nach einer Anzahl iterierender Multiplikationen ist der Quotient mit der gewünschten Genauigkeit erstellt. Da dieses Divisionsverfahren keinen Rest als Resultat der zuvorgehendsn Multiplikation erstellen kann, wird es erforderlich, hardwaremäßig weiterzurechnen, um den Rest zu bestimmen, falls dieser gewünscht wird. War die Lösung x/y= Q, kann der Rest aus der Beziehung R = x-yQ gewonnen werden, d.h.» durch Multiplikation y»Q und anschließende Subtraktion von x. Der Rest wird bis auf so viele Bits genau, als der Divfdent χ solche enthält. Die erforderliche Zeit zur Bildung des Rests wird direkt zu der Zeit addiert, die zur Bildung des Quotienten erforderlich war. Die Divisionszeit für ' Einzellängen wächst von 12 Taktzeiten bis zu 16 Taktzeiten bei Erstellung eines Rests. Der Divisionsalgorhithmus erfordert, daS der Divisor normalisiert wird, bitweise bei Festkommaarihmetik oder die höchststellige Hexade ζ iiaaizif--
909883/1549
A 37 442 b
3.7.1969
fer bei Gleitkommaarithmetik mit Ausnahme von Null.
Die Ausgangsstufe 310, 338 dient der Sammlung der Ausgan'gsdaten aus allen Untereinheiten sowie zur Ausführung einfacher Datenverschiebungen, Bool1scher Beziehung u.s.w., zu deren Durchführung nur eine Taktzeit im Rechner 101 benö-" tigt wird.
Die Speichermöglichkeit in jeder Untereinheit des Rechnerkanals ermöglicht eine wirksame Trennung der einzelnen, in den verschiedenen Untereinheiten getrennt verarbeiteten Daten. Der Rechner arbeitet#synchron, indem er eine gemeinsame Taktzeit für alle Schaltkreise anwendet. Deshalb
sind in jeder Untereinheit Speicherregister wie das Regis- ;ter 310a enthalten.
IZu Fig. 9:
Nach einer Beschreibung der Gefügeschaltung anhand der Fig.3 und 4 sowie einer Beschreibung der CPU 10 anhand der Mg.5 bis 8 folgt zweckmässigerweise in einer Beschreibung der
Pig. 9 die Darstellung des Zusammenspiels zwisehen CPU 10, PPU 11 und MCU 18 von Seiten der CPU 10 aus, den Teil der Gefügeschaltung betreffend, welcher in der CPU 10 angeordnet ist. Die Pig. 9 und 4 betreffen also beide die Gefügeschaltung, wobei Pig. 4 den PPU-seitigen Teil und Fig. 9
den CPU-seitigen Teil der Gefügeschaltung zeigt, welche
durch die Kanäle 41, 42 und 53 bis 58 miteinander verbunr den sind. .
In Fig. 9 weist die Instruktionsdatei IFU*128 ein Ausgangsregister 128a auf, das in einer vorzugsweisen Ausführung Speicherbits hat. Das Register ist in mehrere Abschnitte
, 909803/1849
A 37 442 b
3.7.1969
,unterteilt; ein erster Abschnitt 128b'mit 8 Bits enthält yflen Operationscode, ein nächster Abschnitt 128c ein Adressen-Mkl von 4 Bits und ein weiterer Abschnitt 128d aus 4 Bits enthält normalerweise Daten zum Betrieb des Rechners 10tι mit denen ein Hegister bestimmt wird, das nicht zur '^βfugeschaltung gehört, weshalb also Über diesen Abschnitt
gesagt »fcu werden braucht ι schließlich ist Abööhnitt 128e von 16 fiits ein Adressenfeld einge-
Böiia-tiorfflalen Operationsablauf vollführt die Index-Adressier-.einh#i|f|ÄlJ 126a» welche ein Ausgangsregister 126b hat, ei« ; den Schritt im Äeitablauf Ϊ1 bis T4. Bei einigen Operationen Vwird dtirch sie im Ausgangsregister 126b ein i/ort erstellt·, d&s'äer Sum^e aus dem Code im Adressenfeld I28e und dein Oode iie indexregister 124 entspricht, wobei letzterer durch das Mfessenmerkmal im Abschnitt 128c aufgerufen wurde; eine solche "Indexoperation" entspricht also der bei Computern ' üblichen Adressenmodifikation mittels Indizierungj Die Adresse aus dem. Ausgangsregister 126b beaufschlagt deswei~ teren zur Steuerung des Operandenflusses zum und vom Rechner 101 die Einheit OFS 126.
S : :- ■"■-■■.■. '■ ■ . ■ · ■
Sobald andererseits im Abschnitt 128b ein Operationscode SCW oder SCP erscheint, beginnt ein hinsichtlich der anderen Opierationscod&s verschiedener Operationsablauf. Zuerst wird der 8-Bit-Code aus dein Abschnitt 128b in die Instruktionspuffereinheit IBU 127a übertragen, wonach sie in einem Ausgangsregister 127b der I3TJ 127a erseheint. Anschließend wird dieser 8-Bit-Code über einen Kanal 200 zur Steuerein- ·" heit CCU 127 gebracht.
■ In der CCU 127 verarbeitet ein Entschlüssler 201 diesen
9 09883/1549
A 37 442 b ·
k-b UJL
3.7.1969 TT
8-Bit-Cod; enthielt letzterer einen SCW-Befehl, erscheint % auf einer Leitung 202 und damit auf der Leitung 42 ein SCVi Signal; enthielt dagegen der 8-Bit-Code einen SCP-Be-'fehl, wird eine Leitung 203 und damit die Leitung 41 entsprechend mit einem SCP Signal "beaufschlagt.
Fühlt nun die PPTJ 11 gemäß Fig 4 ein Signal auf der Leitung 41 oder 42 ab, wird sie nach einer bestimmten Zeit über die Leitung 58 an die CCU 127 das Signal "Anrufen" (PC) senden, welches es der CCU 127 ermöglicht, ihrerseits ein Signal auf eine Leitung 204 zum Rechner 101 zu schicken. Letzteres Signal, wird auch im folgenden veranlassen, daß eine in einem Register 126d des "OFS 126 befindliche Adresse oder Codierung in eine vorbestimmte Speicherstelle übertragen wird. Diese Übertragung geschieht über einen Kanal 205» über einen Weg 206 innerhalb des Rechners 101, einen Kanal 207, einen Zwischenspeicher 126e, sowie über den Kommunikationskanal 104 zum Speicher.
Die abzuspeichernde Codierung aus dem Register I26e wird in jene Speicherstelle des Speichers eingeschreiben, welche, durch den Inhalt eines Festadressenspeichers 208 bestimmt ist. Der Inhalt dieses Festadressenspeichers kennzeichnet eine Speicheradresse, die vorzugsweise nicht anderweitig benutzt wird und eigens für solche Zwecke vorgesehen ist. Dies kann" also durch einfache Festverdrahtung innerhalb des Computers erreicht werden. Die Adresse aus dem Pestadressenspeicher 208 wird bei Beaufschlagung eines Gatters 209 ve-rmittels des auf der Leitung 204 wirksamen Signals ausgegeben.
Die CCU 127 ist im einzelnen so aufgebaut, daß die Signalleitungen 202 und 203 je an Eingänge eines Oder-Gatters geführt sind, dessen Ausgang über eine Yerzögerungseinhei+
909883/1S49
193 44 4^
A 37 442 b . k-b .
3.7.1969 -
210 den Taktpuls auf der Leitung 54 erzeugt, welcher in der PPTJ 11 nach Setzen des Flip-Flops L 73'die Beladung .der flip-Flop G 71 und/oder S 72 ermöglicht (Fig. 4). Vorzugsweise führt die Fehlerleitung 53 an einen dritten, in Fig. 9 nichtgezeichneten Eingang des Oder-Gatters 211 sowie nach Eingehen einer Undbedinguäg mit der PG Signal führenden Leitung 58 an einen ersten ebensowenig gezeichneten Eingang eines OderrGatters 213, Das Oder-Gatter 213, dessen Ausgangsleitung 204 ist, ist an zwei Eingängen mit den Ausgängen von Uhd-Gatter 212, 214 verbunden. Das Und-Gatter 212 hat zwei Eingänge, dessen einer über die Leitung 202 dus SCW Signal und dessen zweiter über die Leitung 58-das Signal "Anrufen" (PC) erhält. Das Uhd-Gatter 214 ist entsprechend durch die Koinzidenz aus den Signalen SCP und "Anrufen" (PC) aussteuerbar.
Um also ein Signal auf der Leitung 204 und damit eine Abspeicherung der im Register 126d befindlichen Codierung in die durch den Inhalt des Speichers 208 bestimmte Speicherstelle zu-erzielen, muß außer dem Auftreten der Signale "Fehler"- SCW oder SCP das Signal "Anrufen" (PC) von Seiten der PPU vorhanden sein. Fur bei. entsprechendem Signalzustand auf den Leitungen 56, 57, 45,. 58, 55, 53 wird also eine solche Abspeicherung erfolgen können. Der gesamte CPU-Betrieb kann auf diese Weise, unterbrochen werden; andererseits kann der Betrieb während einleitender oder sonstwie vorbereitender Operationen in Teilen des Computersygtems außerhalb der CPU 10 aufrecht erhalten werden. Diese Entscheidung hängt von dem im Ausgangsregister 128a der IFU 128 . befindlichen Instruktionsgehalt ab, ob nämlich in dessen Abschnitt 128b der Operationscode SC¥, SCP oder anders heißt. .'
Die Leitung 53 der Fig. 4 und 9 führt dann das Signal
909883/154*'
A 37 442 b
3.7.1969
"Fehler", wenn innerhalb der'CPU 10 ein Fehler entdeckt wurde. In Fig. 9 wird deshalb durch ein Oder-Gatter 220, dessen Ausgangsleitung 53 ist, angedeutet, daß Fehler innerhalb der CCU-Steuerung über eine, leitung 221 oder innerhalb des Rechners ein solches Signal erzeugen können. Eine Feh·*- lerquelle könnte eine Überlaufanzeige im Rechner 101 sein, eine andere Fehleranzeige könnte bei einer Undefinierten Codierung innerhalb der COTJ 127 auftreten. Durch eine dritte Eingangsleitung 222 am Eingang des Oder-Gatters wird angedeutet, daß noch weitere'Prüfkreise zur Erzeugung des Fehlersignals herangezogen werden können. Die Einheit SSR 131 (Fig. 7) steuert die so beschriebene Umschaltung der CPU, welche veranlaßt, daß der bisherige Inhalt der ι CPU abgespeichert und stattdessen neue Daten in diese eingegeben werden.
Zu Fig. 10: -
Aus den bisherigen Angaben über die PPU 11 wird ersichtlich, daß dieser eine bedeutende Rolle in der Aussteuerung der CPU 10 zugeteilt wurde. Die PPU 11 ist gemäß der Erfindung in der Lage, im allgemeinen im voraus die Anforderungen der CPU 10 und anderer Komponenten des Systems zu ermitteln, indem ein spezielles Zeitzuteilverfahren (time shearing) zwischen einer Vielzahl von Virtualverarbeitern .in der PPU 11 angewandt wird. Es werden nämlich von einer Gruppe von Virtualverarbeitern innerhalb der PPU 11 Pro-' gramme verarbeitet. Wo nun die Programme stark variieren, ist es vorteilhaft, von einer fest zugeordneten Zeitzuteilung zwischen den Virtualverarbeitern abzugehen.
In der in Fig. 10 gezeigten Anordnung ist es möglich, daß
909883/15A9
A 37 442 b It*
k-b Tf
3.7.1969
einige Virtualverarbeiter weit mehr Zeit zubemessen erhalten/als andere. Weiterhin sind Vorkehrungen getroffen, die !Zeitzuordnungen zwischen den Verarbeitern häufig und dras- · tisch zu ändern.
Aus Fig. 10 wird ersichtlich, daß. Virtualverarbeiter PO bis P7 der PPÜ 11 von einem PPU-Rechner ARU 400 (Arithmetic Unit) der PPU 11 versorgt werden.
Das allgemeine Time Sharing Prinzip einer ZeitZuteilung, in welchem ein Rechner und Virtualarbeiter zusammen arbeiten, wird als bekannt vorausgesetzt. Die erfinderische Leistung liegt jedoch in einer höchst flexiblen Zuordnungsmöglichkeit der Elemente des Zeitteilverfahrens und in seiner besonderen Steuerung. Die Virtualverarbeiter PO bis P7 können von der Art sein, wie sie beispielsweise in der US-Patentschrift 3 337 854 beschrieben werden, worin den Virtualverarbeitern feste Zeitspannen zyklisch zugeordnet sind. Pur die hier vorliegende Erfindung ist es dagegen kennzeichnend, daß die zeitlichen Zuordnungen von der Natur der vorzugsweise durch Pragranme gestellten Aufgaben abhängen und' somit fließend·und steuerbar sind.
Von dßn acht Virtualverarbeitern PO bis P7 der PPU 11 (Fig. 10) kann während einer Taktzeit nur je ein Virtualverarbeiter über den Rechner APJT 400 verfügen, d.h. nur jeweils .ein Virtualverarbeiter ist während jeder Taktzeit mit dem ARu 400 verbunden. Die Auswahl unter den Virtualverarbei-
--tern trifft ein Zuordner 401, der in Fig. 10 durch einen rotierenden Schalter dargestellt wird. Mit jedem Taktpuls wird der Schalter um eine Schaltstellung weiterbewegt, wobei jede Schaltstellung eine Verarbeitungszeitspanne
■ von der Lvnge eines Taktimpulses darstellt; insgesamt
909883/1549
A 37 442 b hf
k-h · TO
3.7.1.969
16 verschiedene Schaltstellungen bezeichenen Zeitspannen * •0 bis 15; der ARtJ 400 wird dabei jeweils .mit demjenigen Vir-..tualver arbeit er verbunden, der durch den Code (beispielsweise 0 bis 7) bestimmt ist, welcher durch den Schaltfinger des Schalters abgefühlt wird. In einem Extremfall wird-über den ganzen Zyklus nur ein bestimmter Virtualverarbeiter mit dem ARU 400 unter Ausschluß aller übrigen verbunden, im anderen Extremfall werden alle Virtualverarbeiter in gleichen periodischen Zeitabschnitten und Zuord- nungsanteilen mit dem ARU 400 gekoppelt. Das eine solche Vielseitigkeit erlaubende Sjrstem wird in den Pig. 11 bis 13 im Detail beschrieben."
Zu Fig. 11 : ■ .
Der Aufbau der PPU 11 wird aus Fig. 11 ersichtlich. Der Zentralspeicher OSM 12-15 i3t mit seiner Steuereinheit MCU 18 und diese über den Kanal 32 mit der PPU 11 verbunden. Die Virtualverarbeiter PO bis P7 weisen einen zum ARU 400 gehenden Ausgangskanal 402 sowie einen-vom ARU 400 zu ihnen führenden Eingangskanal 403 auf. Überdies sind sie über Kanäle 410 bis 417 mit einem Kommunikationskanal 408 verbunden.· Eine Puffereinheit 419 der PPU 11 verfügt über acht einzelne Pufferregister 420 oder SWB 0 bis 427 oder SWB 7; dabei ist ein solches,ein einzelnes Wort aufnehmendes Register ausschließlich jeweils einem der Virtualverarbeiter PO bis P7 zugeordnet« Die Virtualverarbeiter PO bis P7 sind mit einer Zuordnersteuerung 418 versehen, welche die Realisierung eines Teils des in Fig. 10 als Schalter dargestellten Zuordners 401 darstellt. Die Steuerung 418 wird durch Taktpulse betrieben. Dei Puffereinheit 419 wird durch eine Puffersteuerung 428 ausgesteuert. Ein Kanal erstreckt sich zwischen den Kanal 408 und dem ARU 400.
909883/1549
r ■ ·
A 37 442 b TJ
k-n -
3.7.1969
Die Yirtuaiverarbeiter P O Ms P 7 sind ferner mil; einem Festwertspeicher ROH 430 (read only memory) versehen. In einem bevorzugten Ausführungsbeispiel der Erfindung ist der Speicher 430 aus festverdrahteten Diodenanordnungen für schnellen Zugriff aufgebaut.
Kommunikationsregister 431 sind zur Kommunikation zwischen dem Kommunikationskanal 408 , den Peripheriegeräten und * weiteren Steuer- und Datenkanälen vorgesehen. Bei dem hier vorliegenden Ausführungsbeispiel enthält die durch die Kennziffer 431 ausgewiesene Einheit insgesamt 64 Kommunikationsregister.
Die an der Zeitzuteilung eigentlich "beteiligten Baugruppen sind der ARU 400, der Festwertspeicher ROM 430, die Einheit 431 mit den Kommunikationsregistern CR 0, OR 1...und die Puffereinheit 419 mit den Einwortpufferregistern SWB 0 Ms SWB 7, wobei die Einheit 419 die ,Verbindung zwischen PPU 11 und dem Zentralspeicher CEM 12 bis 15 herstellt.
Das ROM430 enthält einen bestimmten Programmvorrat, der nur zugänglich wird, wenn ihn Programmzähler der Virtual— verarbeiter erschließen. Der Vorrat enthält ein Grundausführungsprogramm und wenigstens ein Steuerprogramm für jedes Peripheriegerät, das an den Computer angeschlossen ist. Das ROM 430 hat eine Zykluszeit von 20 Nanosekunden und einen Befehlsvorrat von 32 Bit Instruktionen für die Virtualverarbeiter P 0 bis P 7. Das ROM umfaBt insgesamt 1 024 .· Worte für die Programme. Es ist in 256 Wortbaugruppen unterteilt, so daß es möglich ist, Programm abzuändern, ohne das gesamte ROM neu herzustellen oder insgesamt umbauen zu müssen.
Die Peripherieprogramme enthalten Steuerfunktionen für
909883/1549
A 37 442 b 5*0
k-b. ·
3.7.1969
einzelnen Peripheriegeräten zugehörige Pufferspeicher sowie Datenübertragungsfunktionen. Auf solche V/eise können ' mechanische Bewegungsabläufe in den Per.ipheriegeräten direkt .durch Programme gesteuert werden und benötigen nicht
eine Jeweils speziell für jedes PerxOheriegerät eigens
andere
durchgeführte/IPestverdrahtung. Durch das Arbeitsprogramn können Parameter zur Variation eines Grundprogramms vorgesehen werden. Solche Parameter werden im Zentralspeicher CSM 12 "bis 15 geführt oder auch in Akkumulatorregistern der Virtualverarbeiter, welche das Programm ausführen.
Die Instruktionsquelle für die Virtualverarbeiter kann entweder das ROM 430 oder der Zentralspeicher CEM 12-15 sein. Der vom Programmzähler eines Virtualverarbeiters addressierte Speicher wird durch die Adressierart gesteuert, welche durch Verzweigungsinstruktionen oder durch löschung des Systems modifiziert xverden kann. Jeder Virtualverarbeiter wird in die ROM Betriebsweise eingestellt, wenn das System gelöscht ist.
Erhält man eine Programmfolge vom Zentralspeicher, so wird diese von der Puffereinheit 419 aufgenommen. Da dies derselbe Zwischenspeicher ist, der für Datentransporte zu und vom Zentralspeicher benutzt wird, und da der Zentralspeichcher größere Zugriffzeiten als der ROM-Speicher hat, werden also die Verarbeitungszeiten günstiger, wenn das Programm vom ROM 430 empfangen wurde.
Ein Zeitabschnitt 0 kann einem der acht Virtualverarbeiter durch einen Schalter auf einem 3βάχβη^^3ρμ1ΐ zugeordnet werden. Diese Zuordnung kann durch das Programm nicht kontrolliert werden. Die restlichen Zeitabschnitte sind anfänglich nicht zugeordnet. Deshalb arbeitet am Anfang nur
909883/tS*9
A 37 442 b . 3.7.1969
der Virtualverarbeiter, der durch diesen Schalter bestimmt wurde. Da weiterhin die Pr'ograminzähler aller Virtualverarbeiter P 0 "bis P 7 ursprünglich auf Null standen, beginnt der ausgewählte Virtualverarbeiter sein Programm von der
Adresse Null des ROM 430 an auszuführen; letztere aber enthält ein Einleitungsprogramm. Der Zahlschalter auf dem Bedienungspult bestimmt ebenso, welches der acht Bits des
·. Kommunikationsregisters 431 durch' ein vom Bediener erzeugtes Sinleitungssignal gesetzt wird.
Die Puffereinheit 419 ermöglicht, daß die Virtualverarbeiter zum Zentralspeicher CEIi 12-15 Zugriff haben. Die Puffereinheit 419 besteht aus acht 32-Bit-Datenregistern,
acht 24-Bit-Adressenregistern und entsprechenden Steuerkreisen. Vom Standpunkt eines einzelnen Virtualverarbeiters aus erscheint die Einheit 419 lediglich als ein einzelnes . Datenregister und als .ein einzelnes Adressregister.
Zu irgendeiner Zeit kann die Puffereinheit 419 bis zu acht Speicheranfragen enthalten, und zwar von jedem Virtualverarbeiter eine. Die Anfragen v/erden vorzugsweise so verarbeitet, da3 eine feste Prioritätssteuerung sowie eine
Prioritätssteuerung nach dem Prinzip "v/er zuerst kommt, wird zuerst abgefertigt" (first in-first out) kombiniert werden. Vorzugsweise werden vier Prioritätsebenen festgelegt; v/erden aber "zwei oder mehr Anfragen aus derselben Prioritätsebene gestellt, werden sie in der Reihenfolge bearbeitet, in der sie zeitlich erscheinen.
Kommt zur Puffereinheit 419 eine Anfrage, so hat sie auto- ·matisch eine Prioritäskennung, die durch den Zentralspeicher CEI-I 12-15 bestimmt ist; Prioritäten werden in einem ■ der Register431 festgehalten. Die Prioritäten werden ent-
909883/1549
A 37 442 b · S*.
k-b
3.7.1969 ■.■·■■■
sprechend der lfuramer des jeweiligen Virtualverarbeiters angeordnet; alle Anfragen von Seiten eines bestimmten Verarbeiters erhalten die. Prioritätskennung, welche in zwei . Bits des Prioritätenspeichers (Register 431) verschlüsselt ist. Der Inhalt dieses Speichers wird durch das Ausführungsprogramin bestimmt; die Priorität skennung für jeden Virtualverarbeiter wird durch das auszuführende Programm bestimmte' Zusätzlich zu diesen zwei Prioritäts-Bits kann eine Zeitkennung mitverwendet werden, um die Fälle gleicher Priorität zu lösen. '
Die Register 431 enthalten je 32 Bits. Jedes Register 1st von Seiten der Virtualverarbeiter adressierbar und kann von der Einheit ausgelesen oder beschrieben werden, mit.der es verbunden ist. Die Register 431 sind Verbindungsglieder zu allen Peripheriegeräten einschließlich der Konsole» indem sie Steuerungsbefehle sowie Daten zwischen Speichern! welche die Verbindung zwischen den Peripheriegeräten,dem Übrigen Teil der PFU und der GPU herstellen. Einige Parameter zur Steuerung der Systemfunktion werden ebenfalls in solchen Kommunikationsregistern 431 gespeichert, von welchen die Steuerung durchgeführt wird. '
Zur Pig. 12:
Im Register 431 sind vorzugsweise als Flip-Flops CR realisierte Zellen enthalten, welche gem. Fig.· 12 awed Eingangskanäle aufweisen. Ein Eingangskanal ist mit der FPUH verbunden, während der andere Kanal einem Peripherie-Gerät zur Verfügung steht. Daten von Seiten der PPU -werden synchron mit dem Taktpuls des Systems in die Zelle eingege-" ben. Eine Eingabe von Daten od. dgl. in die Zelle von Sei-
909883/154 9 T* wsp«TCt>
A 37 442 b k-b 3-7-1969
ten eines Peripherie-Geräts kann durch Zwischenkreise zwi-" sehen diesem und der Zelle erfolgen, und zwar nicht notwendigerweise synchron mit dem System-Taktpuls.
Zur Pig. 13:
In Pig. 13 wird eine Anordnung gezeigt, mit Hilfe derer es möglich wird, Zeiten schwerpunktmäßig auf nur einen oder mehrer der Virtualverarbeiter P bis P 7 zu verlagern, · indem diese den anderen vorgezogen werden, oder umgekehrt Zeitabschnitte auf alle Virtualverarbeiter gleichmäßig aufzuteilen.
Die Steuerung der Verteilung der Zeitabschnitt-Zuordnungen an die einzelnen Verarbeiter P bis P 7 erfolgt mittels zweier Kommunikationsregister 431n und 431m aus der Gesamtzahl der Kommunikationsregister 431. Diese Register enthalten 32 Bits, welche in acht Segmente von je vier Bits je Segment unterteilt sind. So hat beispielsweise ein Segment 440 des Registers 43in vier Bits a - d, welche jeweils an die"Eingänge von Und-Gattern 441 - 444 geführt sind. Ein Segment 445 desselben Kommunikationsregisters hat ebenfalls vier Bits a - d, welche mit Eingängen von Und-Gattern 446 _ 449 verbunden sind. Das erste Und-Gattef am Ausgang jedes Segments, an welches_Bit a geführt ist, beispielsweise die Und-Gatter 441, 446, führt an den Eingang eines Oder-Gatters 450. Entsprechend sind alle Und-Gatter 442, 447 ·■»>, welche durch Bit-b der Segmente gespeist werden, ausgangsmäßig mit den Eingängen eines Oder-Gatters 451 verbunden. " In gleicher Weise erhält ein Oder-Gatter 452 Signale aus den Und-Gattern 443, 448..., welche mit den Bits c der Segmente verbunden sind» Schließlich gelten für ein Oder-Gatter 453 die gleichen Beziehungen hinsichtlich de.r von Bit d
— - ■■■■■ ' 909883/tS4§
1934741
A 37 442 b
3.7.1969 * - .
gespeisten Und-Gatter 444, 449... ·
Die Ausgänge der Oder-Gatter 450-453 führen zu einem Re-· gister 454, dessen Ausgang mit einem Dekodierer455 verbunden ist. Acht Dekoder-Ausgangsleitungen 460-467 steuern jeweils die Ein- und Ausgänge der Virtualverarbeiter P bis P7. *
Die Zuordnersteuerung 418 erhält über einen Kanal 460 Taktimpulse. Sie arbeitet vorzugsweise als Ringzähler mit 16 Stufen, wobei von jeder Stufe eine Ausgangsleitung wegführt. Eine erste Ausgangsleitung 461 aus der ersten Stufe des Ringzählers führt zu dem zweiten -Eingang der Und-Gatter 441 bis 444. In gleicher Weise ist eine zweite Ausgangsleitung 462 aus der zweiten Stufe des Ringzählers mit den zweiten Eingängen der Und-Gatter 446 bis 449 verbunden. Die restlichen 14 Ausgangsleitungen aus der Steuerung sind entsprechend mit jeweils 4 weiteren Und-Gattern im selben Sinne verbunden.
Drei von den vier Bits des Segments 440, nämlich die Bits b| c, und d kennzeichnen einen der Virtualverarbeiter P0 bis P 7 durch ein entsprechendes Signal auf einer der Αμβ-gangsleitungen aus dem Dekodierer 455« Das vierte Bit, m nämlich Bit a des Segments 440, dient zur Freigabe bzw. Sperrung der Dekodierung, so daß ein bestimmter Zeitabschnitt
frei, d.h. unbezogen bleiben kann.
Es sollte beachtet werden, daß der ARtT 400 Über Kanäle 470 mit den Registern 431m und 431η verbunden ist, mit welchen er aufgrund einer Programmsteuerung die gewünschten Zuordnungen in den Registern 431m und 431n durchführen" kann. Entsprechend den Taktpulsen auf Kanal 460 kann also
903383/1S49
A 37 44.2 b C£*
k-b '
3.7.1969
der Dekodierer 455 mit jedem Tak-tpuls von- einem Virtualverarbeiter zum nächsten umschalten. Entsprechend dem Registerinhalt der Register 431m und 43in kann die'gesamte Zeit auf einen der Virtuäiverarbeiter verlegt werden, sie kann .gleichmäßig aufgeteilt oder auch ungleichmäßig diesem zugeteilt werden, je nachdem dies die" in den Registern 431m, 431n enthaltene Kodierung bestimmt.
Wenden wir uns nun den Steuerleitungen zu, die aus dem Ausgang des Dekodierers 455 kommen» es ist dabei zu beachten, daß die zwischen den Registern 431 n, 43,1m und dem Dekodierer 455 liegenden Schaltkreise Bit-mäßig dargestellt wur- . den. Im Gegensatz dazu wird die zwischen dem Dekodierer und dem Rechner 400 liegende Schaltung zur Steuerung der Virtuäiverarbeiter und insbesondere zwischen den Virtüalverarbeitern und dem Rechner nicht bitraäßig sondern nur in
• *
Blockschaltbildern dargestellt.
Ein Fluß von Verarbeiterdaten auf Kanälen 478 kann durch entsprechende Signale auf den Leitungen 460 bis 467 freigegeben oder verhindert werden. Im einzelnen führt der Ausgangskanal 460 zu einer Koinzidenzschaltung 490, an welche ebenso der Kanal 478 angelegt ist. Eine Koinzidenzschaltung 500 nimmt erstens den Ausgangskanal des Virtualverar-"beiters P0 auf und zweitens den Kanal 460. Auf die gleiche Weise* arbeiten Koinzidenzscha'lter 491 bis 497 an den Eingängen der übrigen Virtuäiverarbeiter, sowie Koinzidenzschalter 501 bis 507 an deren Ausgängen/Schalter 500 bis 507.speisen eine Oder-Schaltung 508, deren Ausgang den Datenfluß unmittelbar in den ARII 400 schickt. Auf diese Weise arbei-
• PQ
tet jeweils nur einer der Virtualverarbeiterjbis* P 7 während einer Zeitspanne, indem die Auswahl eines bestimmten Virtualverarbeiters dem Inhalt derjenigen Segmente 440, 445·.
909883/1549 '
1S3M41
A 37 442 Td Ci ·
k-b " ef
3-7-1969 . ,
entspricht, welche nach Maßgabe-der durch die Taktpulse * "betriebenen zyklisch arbeitenden Zuordnersteuerung gerade angewählt werden.
Eine Beschreibung des Puffers MBU 100 findet man in einer anderen Anmeldung der Anmelderin (ämtl. Aktenzeichen ...).
Eine Beschreibung der Gefügeschaltung findet man in.einer weiteren Anmeldung der Anmelderin (amtl. Aktenzeichen .-·.·-%
Eine Beschreibung der Zeitzuordner gem. Fig* 10 - 13 findet man wieder in einer anderen Anmeldung der Anmelderin (amtl. Aktenzeichen ....).' ·
909883/1549
I ■
A 37 M2 b kl - 137 7.7.69
Eine ins einzelne gehende Beschreibung des Rechenpuffers findet'man in einer anderen Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...).
Eine ins einzelne gehende Beschreibung der Gefügeumschaltung gemäss Fig. 3,4,8 und 9 findet man in-einer weiteren Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...).
Ehe ins einzelne gehende Beschreibung des Zeitzuteilsystems ( Fig. Io bis 13) findet man in einer dritten Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...).
909883/1549
A 37 44? b Ί
k-35 l
I: Boole'sehe Gleichungen und Funktion des im Aus- * gangsteil der PPU gemäß Fig.4 befindlichen • - Teils der Gefügeschaltung.
PP Ii 73 C"lade*Flop, zur Zeitgabe der Setzimpulse für FPC71 und/oder FFS72): ·
Setze I = (Tastpuls), wobei (Tastpuls) = verzögertes
SCP- oder SCW- oder "Fehler^ignal. Rücksetze L = L.CS"
PP C 71 OnrufnFlop, gesetzt durch SCP+SCW, zur Anzeige der speziellen Programmsituation der CPU): Setze C = L.C(S). c1; wobei c1 = SCP + SCVi. gücksetze C von Seiten der PPU am Ende der Operation.
FF S 72 ("Schalt"Flop, gesetzt durch SGW-PFehler', zur Anzeige der speziellen Programmsituation der CPU): Setze S = L.(C).F.s1; wobei s! = SCYZ+Fehler. Rücksetze S von Seiten der PPU am Ende der Operation.
PP AC 77 ("A.nruf" Fahne): .
Setze AC von Seiten der PPU, zur Anzeige für die CPU, daß eine Anrufoperation durchführbar wäre. Rücksetze AC von Seiten der PPU, zur Anzeige für die CPU, daß eine Anrufoperation nicht möglidi ist.
PF AS 44 ("Schalt"Fahne):
Setze AS von Seiten der PPU, zur Anzeige für die CPU, dass eine Schaltoperation durchführbar wäre. Rücksetze AS von Seiten der PPU, zur Anzeige für die CPU, dass eine Schaltoperation nicht möglich ist.
PF R 75 ("Betriebserlaubnis"):
Setze R von Seiten der PPU, wenn ein Betrieb der CPU
erwünscht ist. ·
Rücksetze R = ACC+AS.S; dh:
bei (ÄC,IB).(SCP, SCW, Fehler), also bei fehlender Fahne von Seiten der PPU und Aufkommen einer entsprechenden Anfrage von Seiten der CPU wird d^e CPU inaktiv und abwartend.
PF PC 80 0»Anrufen" Flop, befiehlt den Beginn der CPU-seitigen Anrufoperation (memory call)):
Setze PC = ACC
Rücksetze PC von Seiten der PPU nach Rückstellung ■ der PlipPlops C 71 und S 72.
PF PS 71 ("Umschalten" Plop, befiäilt den Beginn der CPU-seitigen Schaltoperation):
Setze PS =AS .S
Rücksetze PS von Seiten der PPU nach Rückstellung · der PlipPlops C 7-1 und S 72.
909883/1549
k35
PP CC 74 ("Anruf ausgeführt" Plop,zur Rückmeldung an die " PPU):
Setze CC = CCC
Rücksetze CC von Seiten der PPU nach Rückstellung
der FlipPlops C 71 und S 72. " ·
\ " ■ ■
PP SC 78 ("Umschaltung ausgeführt" Plop,zur Rückmeldung an die ppü).
Setze SC = PSC . HSC; wobei
PSC die Rückmeldung "Umschaltung ausgeführt" von
Seiten der CPU und
MSC die Rückmeldung "Umschaltung ausgeführt" von
Seiten der MCU ist.
Rücksetze SC von Seiten der PPU nach Rückstellung
der PlipPlops C 71 und S 72.
909883/1549
Tabelle II AC V
PC PS R I cc SC •Umschalten" C S AC AS , PS R Neubeginn L SC PPU C S AC AS PC PS R I sowie cc SC C S
Zeit Ί AS 0 0 1 0 0 0 0 0 1 1 PC 0 1 0 0 0 0 1 1 0 0 1 O O O O "J Λ
O
I 1 1 0 o. 1 1 0 0 0 0 1 1 0 0 1 "SCP"- 1 0 0 0 1 1 0 0 1 1 O O O O
II 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 r
Anrufen"
1 0 1 1 0 0 .1 O O O 1 1
III 1 1 - 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 1 1 1 O O O 1 1
IV 1 1 1 t 0 1 0 0 1 0 1 1 1 1 1 O 1 O 1 1
V 1
co 1 0 1 1 0 0 1 0 1 1 1 1 1 1 O 1 1 1 1
σ VI 1
co
00
OO
t*%
der
-*%> ^
-»' 'BCW" Y
Z' sowie
S--*
to "Fehler"—> S CC "Anrufen" "Umschalten"
0
0
0
0
1
Ablaufdiagramm zur Gefügeschaltung am Beispiel:
Automatische Umschaltung und Anrufverarbeitung bei fortwähieid betriebener CPU.
Bedeutung der Zeiten I bis VI:
I warten auf eine CPU Anfrage "SCP", "SCW" oder "Fehler". II Tastpuls
III Beschicken der FlipFlops C 71 und/oder S 72 IV Beginn der PCU-seitigen Operation V \A.nruf ausgeführt' VI !^Umschaltung ausgeführt*
CD CO
Tabelle III: AC AS PC PS R L CC SC Il C S AC AS PC PS O R L
"K
■ - cc SC C S AC AS PC PS R L. CC SC S · /
Zeit Ί O O O 1 Ö O O O 0 1 O O O 1 O O O O O . 1 O ο · O 1 O O O C "c?
I 1 O O O 1 1 O O O 0 1 O O O 1 1 O O O O 1 O O O 1 1 O O O O
II ι O O O 1 O O O O t 1 O O O 1 O O O t O 1 O O O 1 O 0 O 0 _%.
III O ö i ό (J υ O υ 1 .1 O 1 O 1 O O O 1 O 1 O 1 1 O 0 0 O 1
IV 1 O 1 1 O 1 O 1 O 1 O 1 1 O O 1 O 1 1
V 1 O O 1 O O O 1 0 1 1 O 1 1 O O 1 t 1 1
309883 VI V
Neubeginn
der PPU .1
's» "Fehler"—
>s —^"Umschalten 1BCP".-> C-* "SCW lit sowie s—»
ti TTm η
"Anrufen"
Ab lauf diagramm zur Gefügeschaltung ain Beispiel:
Automatische Anrufverarbeitung; verhinderte automatische Umschaltung, indem die CPU nur so lange betrieben wird, bis CPUseitig auf Umschaltung angefragt wird.
Bedeutung der Spalten und Zeiten wie Tabelle II. · '
Bemerkung zu "A": Die PPU leitet eine (Pseudo) Umschaltung ein, indem das PS PlipPlop FPPS79
auf "Ein" gezwungen wird.
Bemerkung zu "B"
Zwar wird hier das PC FlipFlop FFPC80 auf die übliche Art gesetzt, wodurch eine automatische Anrufverarbeitung in Gang kommt; die PPU leitet aber infolge SS" eine (PseudoUmschaltung ein, indem das PS FlipFlop FFPS79 auf "Ein" gezwungen wird. -
CD Ca)
Tabelle IV: MBU-Datei der CPU 101 , > , ": ,V ■/Λ' ".· ". Parameter-Datei 132: · 6Jl* ■ 19344
SA Speicherstartadresse zum Ausles.en des Vektors A SB ," !«tin« B
SC" ■'■■;' *■·.- Einschreiben des Vektors C
NY Anzahl der Elemente in einer fundamentalen Vektoroperation NI Anzahl der Durchläufe in der inneren Schleife N0 Anzahl der Durchläufe in der äußeren Schleife
ί Adresseninkreiaent für die inne're Schleife Adresseninkrement für die äußere Schleife
Arbeits-Datei 133: \ ' . . ■'
AA Arbeitsadresse (laufende Adresse) für Vektor A BB n " ■ n " M B
CC n ' . ™ " n " C
VC laufende Zählung der Vektorkomponenten . . ' /
" fc " " " Innenschleifen 0C " ■ " " Außenschleifen .'. '
Tabelle V: Speicherplatzbelegung zur Durchführung einer Multiplikation, zweier Determinanten dritten Grads .
Speicherstelle für Speicherstelle für Speicherstelle für Determinante A Determinante B Determinante C
k; an. £+ie • 11
fc*l a12 £♦2;
k+2 a13* £+3 b31
k*3 £+I| b12
k+k a22* £*5 b22
**? a23. 4+jS .
• ■
·. b-32
k+6 a31 £+7 b13
W : a32 £4-8
^23
k+8 '.a3a' b33
C21 C22
m+7 C32
Die Determinante A ist reihenmäßig auf die Speicherstellen k bis k ♦ 8 verteilt; . ··..'.
die Determinante B ist spaltenmäßig auf die Speicher stellen 1 bis 1+8 verteilt; ...
die Determinante C ist reihenmäßig auf die Speicher st eilen η bis m ♦ 8 verteilt. .
Zu Beginn der Multiplikation wird: SC s m *· " N0 = 3
Tabelle VI; Adressen- und Ste^erupgs,ablau,f £ür ,die; Determinante A zur Durchführung der Multiplikation gemäß Tabelle V.
< 6
10 11
12
13
· · 15
16
Schritt . Operation
'. SA-*AA NV-l-fVC
' VC IC 0C ·· 2/ V
•-AA+1—MA •VC-1-5VÖ
NV-1->VC
XC-I-SIC • 2 · 1
• ··' ·.
X 1
• VC-1—>VC. AA+1—>AA
•SA—>AA NV-I-^VC Ip.-1-^IC
AA+1—>AA YO-1~>VC
AA+1—>AA VlWC
NI-1
VC-1—^C ÄA+l-SÄA
* NV-1*->VC
VC-1—WC
AA+1—?AA. .' * VC-1-J>VC
SA-^AA * 'NV-1—>VC C
AA+1—^AA
VC-I-
AA+1—>ÄA
NV-1—WC 2 1 .0
2::; 1
2 2 2 2
2.
1 1
0. 1 ·1
• -»
ν·-
2·. 0,1
ι Λ- ο: · ι
A Adresse k
• *
• ·
k+I ·
k+I
k+l
k*3
k+3
k+5
k+5
90988 3/1549
Tabelle VI, Forts.
Schritt Operation
19- · SA+Δ0 SA NV-I —WC
20 ■ ■: AA-M-
VC-I-
η " :'" ΑΑ41-
:—5AA,
-MC..
-XAA
■WC
"5/A
VC-1—>VC
SA—>AA NV-1—VYC
AA+1-
·' VC-I-
2i| . AA+1-
VC-i-
2Γτ ->AA
->VC :
~>vc t
" 'SA-JAA NV«2~
IC-1—>IC
->vc
AA+I—>AA VC-1—>YC
VC IC 0CA Adresse 2 * 2 O . , k+6«\ i'- 2· Ο *"k+7
21' Ό ..Jc+6 X 1 0 lc-5-7
O -10 k+8
k+6
k+5
Tabelle VIIt Beispiel für Gleitkommaadditionen im Schlauchrechner 101:
Zeit:
Subtraktion der Exponenten Ausrichtung der Mantissen /i del it ion der Mantissen Haehnormalisierung des
Resultats t b. a2, b2 a, , b, a^., bi{ a., b> a-, b- a,s b.
, b
Im selben Schlauch befinden sich z« Zt. t^, vier verschiedene Wortpaare aj, b^; i - 1 I i| in vier verschiedenen Bearbeitungsstufen!
9 0.9 883/1549

Claims (1)

  1. Patentansprüche:
    1. Rechenverfahren zur Durchführung mindestens einer vorzugsweise mehrere aufeinanderfolgende Rechenschritte umfassenden Rechenoperation an vorsortierten Daten als Operanden entsprechend den Instruktionen eines Programms, dadurch gekennzeichnet, dass mehrere Operanden entsprechend den Instruktionen in der Instruktionsfolge gleichzeitig, jedoch unterschiedlich verarbeitet werden, um eine· vorgegebene Folge von Rechenschritten an jedem Operanden durchzuführen, und dass unmittelbar vor Durchführung der Instruktionen mehrere eine arithmetische Funktion definierende Instruktionen in der Instruktionsfolge gleichzeitig, jedoch unterschiedlich verarbeitet werden.
    2. Rechenverfahren nach Anspruch 1 zur Durchführung mindestens einer mehrere aufeinanderfolgende Rechenschritte R. umfassenden Rechenoperation an vorsortierten Daten, denen die jeweils bezüglich der Rechenoperation zusammengehörenden Daten als Operandengruppen 0. aufeinanderfolgend entnommen werden, dadurch gekennzeichnet, dass gleichzeitig mit der Verarbeitung einer beliebigen Operandengruppe 0 entsprechend einem beliebigen Reehenachritb R einer beliebigen Rechenoperation die vorhergehende Operandengruppe
    0 Λ dem dem Rechenschritt R nachfolgenden Rechensehrifct n~i η
    R ,^ derselben Rechenoperation oder einem Rechenschritfc einer anderen Rechenoperation unterworfen wird, während gleichzeitig die der Operandengruppe 0 nachfolgende Operandengruppe On+1 dem dem Rechenschritt R vorhergehenden Reehensehritt Rn^1 derselben beliebigen Rechenoperation oder
    0 9 8 8 3/1549
    A 37 442 b LL
    b - 129
    7. JuIi 1969 -V
    einera Rechenschfitt einer anderen Rechenoperation unterworfen wird.
    3. Digital-Rechner, insbesondere zur Durchführung des Verfahrens nach Anspruch 2, mit einer die Rechenoperationen durchführenden arithmetischen Rechenvorrichtung mit
    Operanden-Eingabekanälen zur gleichzeitigen Eingabe der miteinander gemäss der Rechenoperation zu verknüpfenden Operanden in die Rechenvorrichtung, dadurch gekennzeichnet, dass die Rechenvorrichtung(lol) in mehrere, vorzugsweise einschrittige, Recheneinheiten (3o2,3o4,3o6,3o8,31o,311, 312,314 bzw. 33o,332,334,336,338,34o,341,345) aufgeteilt ist, denen jeweils unterschiedliche Rechenschritte zugeordnet sind, und dass entsprechend dieser Rechenoperation ausgewählte Recheneinheiten in Serie miteinander verbindbar sind.
    4. Rechner nach Anspruch 3, gekennzeichnet durch eine Parallelanordnung mehrerer solcher Gruppen von Recheneinheiten (3ooA, 3ooB).
    5» Rechner nach Anspruch 3 oder 4, gekennzeichnet durch einen Taktgeber zum Durchschieben aufeinanderfolgender Operandengruppen durch die Recheneinheiten sowie zur gleichzeitigen Verarbeitung verschiedener Operandengruppen in den verschiedenen Recheneinheiten,
    6, Rechner nach einem oder mehreren der Ansprüche 3 bis 5S insbesondere aur Verarbeitung von als Vektoren darstellbaren Daten, dadurch gekennzeichnet, dass die Rechenvor-, richtung mindestens eine Einheit (3o2) zum Subtrahieren von Exponenten verschiedener Operanden, einen Ausrichter
    9098 83/154
    A 37 Ma b if
    b - 129
    T. JuIi 1969
    zur Anpassung der Exponenten, einen Addierer (3o6) Addition der Operanden, eine Multiplizier-Einheit (312) zur Multiplikation der Operanden, einen Normali-* sxerer (3o8) zum Normalisieren der Rechenergebnisse, eine Baidiereinheit (31*0 und eine Ausgangseinheit (31o) aufweist «
    7· Rechner nach einem oder mehreren der Ansprüche 1J bis 6, dadurch gekennzeichnet, dass die Rechenvorrichtung in mehrere Stufen unterteilt ist und Zwischenverbindungen zwischen diesen Stufen zur Gleitkomma-Addition aufweist, und dass jede Stufe an zwei parallele Abschnitte(3ooA, 3oöB) aufteilbar ist, von denen jeder einen· Addierer (306,331O und eine Multipliriereinheit (3"12,JiIl)- zur Bildung einer Tseudo-Summe und eines Pseudo-Uberlaufs während eines Takts in beiden Abschnitten aufweist, und dass eine programmierbare Verbindung zwischen dem Ausgang der einen Multipliziereinheit (312) und dem Addierer (3o6) dieser: Abschnitts sowie eine solche Verbindung zwischen dem Ausgang der anderen Multipliziereinheit (3^1) und den Addierern beider Abschnitte vorgesehen sind, so dass wahlweise Einseiworte und Doppelworte miteinander multipli* fc werden können.
    8. Rechner nach Anspruch 7, gekennzeichnet, durch eine Iefehlsabrufeinheit (128), einenEefehlszvdPchenspeicher (127a) und eine Steuereinheit (l?7)j- die in Reihe gesehhl fcet tind zur gleichzeitigen Durchführung mehrerer unterschiedlicher Rechenciperationen durch entsprechend ausgewählte Recheneinheiten.
    909883/1549
DE19691934441 1968-07-09 1969-07-07 Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner Expired DE1934441C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US74357368A 1968-07-09 1968-07-09

Publications (3)

Publication Number Publication Date
DE1934441A1 true DE1934441A1 (de) 1970-01-15
DE1934441B2 DE1934441B2 (de) 1973-08-09
DE1934441C3 DE1934441C3 (de) 1974-03-28

Family

ID=24989309

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19691934441 Expired DE1934441C3 (de) 1968-07-09 1969-07-07 Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner

Country Status (7)

Country Link
JP (1) JPS505541B1 (de)
BE (1) BE735857A (de)
CA (1) CA926016A (de)
DE (1) DE1934441C3 (de)
FR (1) FR2012589A1 (de)
GB (1) GB1278102A (de)
NL (1) NL6910537A (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51115841U (de) * 1975-03-14 1976-09-20
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
GB8320362D0 (en) * 1983-07-28 1983-09-01 Secr Defence Digital data processor
GB2144245B (en) * 1983-07-28 1987-07-29 Secr Defence A digital data processor for matrix/matrix multiplication

Also Published As

Publication number Publication date
JPS505541B1 (de) 1975-03-05
BE735857A (de) 1969-12-16
DE1934441C3 (de) 1974-03-28
CA926016A (en) 1973-05-08
NL6910537A (de) 1970-01-13
DE1934441B2 (de) 1973-08-09
GB1278102A (en) 1972-06-14
FR2012589A1 (de) 1970-03-20

Similar Documents

Publication Publication Date Title
DE1934365A1 (de) Automatische Programmschaltung bei Computern mit Multiprogrammierung
DE1942005A1 (de) Zeitzuteiler fuer Multiprogrammier- und Multiprozessier-Computer
DE2724125C2 (de)
EP0048767B1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE1524103C3 (de) Datenverarbeitungsgerät
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE3127349A1 (de) Signalverarbeitungssystem mit verteilten elementen
EP0010185B1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE69025650T2 (de) Multiprozessorsystem mit Vektorpipelinen
DE3638572A1 (de) Vektorprozessor
DE2407241A1 (de) Verfahren und anordnung zur erhoehung der verfuegbarkeit eines digitalrechners
DE2556617C2 (de) Schiebe- und Rotierschaltung
CH644461A5 (de) Digitale multipliziereinrichtung.
EP0134831A1 (de) Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung
DE69016978T2 (de) Sicheres Datenschnellschreibverfahren für Massenspeichereinrichtung und ein dieses Verfahren ausführendes Computersystem.
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE1934441A1 (de) Schnellrechenverfahren sowie Rechner zu dessen Durchfuehrung
EP0655688A2 (de) Programmspeichererweiterung für einen Mikroprozessor
DE2902477A1 (de) Datenverarbeitungsanordnung
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE1524122A1 (de) Elektronische Datenverarbeitungsanlage mit Zeitaufteilung des Speicherzugriffs
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
DE1163579B (de) Steuerwerk einer digitalen programmgesteuerten Rechenmaschine
DE1934439A1 (de) Datenverarbeitungseinrichtung,insbesondere zur Durchfuehrung von Matrixoperationen
DE2551793C2 (de) Indirekt gesteuerte Vermittlungsanlage, insbesondere Fernsprechvermittlungsanlage, und Verfahren zu deren Betrieb

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee