DE1934365A1 - Automatische Programmschaltung bei Computern mit Multiprogrammierung - Google Patents
Automatische Programmschaltung bei Computern mit MultiprogrammierungInfo
- Publication number
- DE1934365A1 DE1934365A1 DE19691934365 DE1934365A DE1934365A1 DE 1934365 A1 DE1934365 A1 DE 1934365A1 DE 19691934365 DE19691934365 DE 19691934365 DE 1934365 A DE1934365 A DE 1934365A DE 1934365 A1 DE1934365 A1 DE 1934365A1
- Authority
- DE
- Germany
- Prior art keywords
- signal
- program
- computer
- central computer
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 67
- 230000002093 peripheral effect Effects 0.000 claims description 59
- 238000003860 storage Methods 0.000 claims description 33
- 238000000034 method Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 51
- 239000000872 buffer Substances 0.000 description 36
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 238000007667 floating Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 5
- 230000000712 assembly Effects 0.000 description 4
- 238000000429 assembly Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000032258 transport Effects 0.000 description 3
- 108010001267 Protein Subunits Proteins 0.000 description 2
- 241000607479 Yersinia pestis Species 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000001356 surgical procedure Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100231514 Caenorhabditis elegans ceh-12 gene Proteins 0.000 description 1
- 101000713585 Homo sapiens Tubulin beta-4A chain Proteins 0.000 description 1
- 206010035148 Plague Diseases 0.000 description 1
- 101150110302 RND3 gene Proteins 0.000 description 1
- 102100036788 Tubulin beta-4A chain Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
Description
Die Erfindung betrifft eine Kommunikationsscjialtung^ zwischen
einem Zentralrechner und einer Peripheriesteuerung eines Multiprogramm-Computersystems mit einem Speicher zur Speiche'-rung
von Daten sowie eines laufenden Programms.
Bis jetzt wurden die Operationsgeschwindigkeiten in datenverarbeitenden
Computersystemen seit dem Erscheinen der in der US-Patentschrift 3,12o,6o6 offenbarten Eniac-Maschine laufend
erhöht. Dies führte insbesondere als Folge unterschiedlicher Portschritte in der Technologie der Coraputerbauteile dazu,
dass nicht mehr die Computerschaltbauteile den die Computergeschwindigkeit begrenzenden Faktor darstellen, sondern die
Verbindungskanäle zwischen den Bauteilen,eines Zentralrechners
009818/UeO
A 37 Mo b kl - 137
7.7.69
und weiteren Baugruppen des Computers, insbesondere dann, wenn
man zu den Kanälen 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 den Datenspeicher enthaltende Kanal vom und zum Rechner, 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.
Je umfangreicher nun eine Anlage wird, je mohr verschiedene Speicher und Peripherieorgane sie hat und je höher ihre Speicherkapazität
wird, desto häufiger kommt es vor, dass im Verlauf einer Berechnung umfangreiche Anlagenteile stillstehen,
weil eine Beendigung von Abläufen an anderen Orten abgewartet werden muss. Um nun eine grosse Anlage ebenfalls wirtschaftlich
ausnutzen zu können, indem man diese wenigstens in der Nähe ihrer Verarbeitungskapazität betreibt, welche durch die
Verarbeitungsgeschwindigkeit des Zentralrechners innerhalb des Computersystems bestimmt sei, wurden bereits Multiprogrammier-
und Multiprozessier-Computer entwickelt, welche eine gleichzeitige oder quasigleichzeitige Bearbeitung mehrer Programme
in einer zentralen Recheneinheit bzw. in mehreren Recheneinheiten durchzuführen gestatten. .
In den US-Patentschriften 3,337, 851I und 3,3^6,851 werden Hochgeschwindigkeits-Computer
beschrieben, bei welchen eine ze.ntr.ale Verarbeitungseinheit aufgrund eines in ihr ablaufenden Benutzerprogramms
periphere Dienstleistungen vermittels interner System-
009818-/U60
7.7.69 *
programme anfordern kann. Nach einer solchen Anforderung
wartet der betreffende Computer, bis das Systemprogramm antwortet, indem es dem Benutzerprogramm bzw. der zentralen Datenverarbeitungseinheit
anzeigt - und dies nach einer bestimmten Wartezeit -, dass eine Programmumschaltung in Form einer Gefügeumschaltung
( context switching ).von Seiten der zentralen Datenverarbeitungseinheit durchführbar ist.
Die Aufgabe der Erfindung ist nun, eine solche Gefügeumschaltung zu entwickeln, bei der effektiv keine Wartezeiten entstehen.
Diese Aufgabe wird für das Gerät der eingangs erwähnten Art
gemäss der vorliegenden Erfindung dadurch gelöst, dass die
Peripheriesteuerung einen Kennungsgeber aufweist zur Erstellung einer Kennung bezüglich eines nächsten im Zentral- '
rechner zu verarbeitenden Programms, insbesondere bezüglich des Vorhandenseins eines verarbeitbaren Programms sowie dessen
Auswahl, dass ferner eine den Zentralrechner umfassende Teilschaltung vorgesehen ist zur Erstellung und Weiterleitung eines
ersten Signals an die Peripheriesteuerung zur Anzeige, dass
der Zentralrechner ohne Programmänderung weiterarbeiten kann, dass eine weitere den Zentralrechner umfassende Teilschaltung
vorgesehen ist zur Erstellung und Weiterleitung eines zweiten Signals an die ,Peripheriesteuerung zur Anzeige einer erforderlichen
Programmänderung im Zentralrechner, und dass schliesslich eine auf die Kennung und das zweite Signal ansprechende
Teilschaltung vorgesehen ist zur Umschaltung des Zentralrechners auf das nächste zu verarbeitende Programm.
Durch die Erfindung wird der Vorteil erzielt, dass die durchschnittliche
Verarbeitungsgeschwindigkeit im Computersystem
009818/U60
A 37 11o b . . -V-
kl - 137 «f
7.7.69
die Verarbeitungsgeschwindigkeit des Rechners sowie der zentralen
Datenverarbeitungseinheit erreichen kann, indem von selten
einer peripheren Datenverarbeitungseinheit sämtliche augenblicklich
nicht bearbeiteten, jedoch im Computer befindlichen Programme vorsorglich und vorab daraufhin geprüft werden, ob sie
zur Weiterverarbeitung bereit und verfügbar sind.
Zwcckmässigerwcise vrird in der erfindungsgemässen Gefügeschaltung
von einer weitgehend fest verdrahteten Verknüpfung zwischen der peripheren Verarbeitungseinheit und der zentralen Verarbeitungseinheit
Gebrauch gemacht, wodurch die Kommunikationszeit zwischen beiden Einheiten soweit verringert werden kann,
dass die bisher übliche, insbesondere durch schwerfällige Programm!
erarbeit und längere Wartezeiten gekennzeichnete Kommunikationsvorrichtung vermieden wird. Die erfindungsgemässe Gefügeschaltung
ermöglicht also nicht nur die Vermeidung von Wartezeiten bei peripheren Dienstleistungsanforderungen oder
Programmumschaltungen, sondern auch infolge einer durch Hardware ersetzten umständlichen Programmierung eine zusätzliche
Einsparung von Speicherplatz.
Zweckmässigerweise lautet eine periphere Dienstleistungen anftrdernde
Benutzerinstruktion "Anruf und Warten" ( SCW = System call and wait ), welche einen Anruf eines in der zentralen
Datenverarbeitungseinheit ablaufenden und dann gestoppten Benutzerprogramms wegen peripherer Dienstleistungen auslöst.
Da nun die periphere Datenverarbeitungsoinheit vorab bereits die weiteren, innerhalb der zentralen Datenverarbeitungseinheit
in Wartestellung liegenden Programme daraufhin geprüft hat, ob sie augenblicklich weiter betrieben werden könnten, kann sich
ein aufgrund des Befehls SCW abspielender Dialog zwischen der zentralen Datenverarbeitungseinheit und der peripheren Daten-
009818/U60
A 37 Mo b ■ '
kl - 137 £
7.7.69
.Verarbeitungseinheit darauf beschränken, das nächstverfügbare
Programm zu erfahren, dieses an die Stelle des alten Programms zu setzen, sowie das bisherige alte Programm bezüglich seiner
aktuellen Daten in einem vorbestimmten Reservespeicher abzulagern, bis dessen periphere Dienstleistungsanforderung erfüllt
ist9 so dass es dann ebenfalls weiter betrieben werden
kann. Die Vorbestimmung der Reservespeicheradresse kann durch einen Pestadressenspeicher erfolgen.
Zweckmässigerweise wird durch die erfindungsgemässe Gefüge schaltung
auch eine weitere periphere Dienstleistungen anfordernde Instruktion "Anruf und Weiterverarbeitung" ( SCP =
System call and proceed ) gebildet. Dieser Befehl fordert zwar periphere Dienstleistungen für das Benutzerprogramm an, indem
auch sein aktueller Instruktionsinhalt zur Abfühlung von Seiten der peripheren Datenverarbeitungseinheit in einen eigens dafür
vorgesehenen Zwischenspeicher gelangt; der Befehl fordert jedoch nicht eine Programmumschaltung wie im Falle des Befehls
SCW. Ein dritter Befehl 'Fehler' zieht aus einem Teil der für
den Befehl SCW durchgeführten Festverdrahtung den Nutzen,indem durch sein Signal eine Programmumschaltung ohne periphere
Dienstleistungsanforderung erfolgen kann.
Zweckmässigerweise enthält das digitale Datenverarbeitungssystem einen Kanäle für Instruktionen und Daten aufweisenden Rechner,
der eine Vielzahl arithmetischer, vorzugsweise einschrittig arbeitender Untereinheiten hat, die jeweils gepuffert sind und
für die Lösung spezieller arithmetischer Aufgaben vorgesehen sind, wodurch eine gleichzeitige Verarbeitung einer Vielzahl
von Operanden in einer Vielzahl verschiedener Verarbeitungsschritte durch eine Vielzahl von Instruktionen innerhalb des-
009818/1460
193A365
A 37 Mo b kl - 137 7.7.69
selben Rechners möglich wird. Der Rechner ist zweckmässigerweise für eine gleichzeitige Verarbeitung zweier Einzellängen-Operandenpaare
oder eines Doppellängen- Operandenpaars in zwei Teile aufgeteilt ( Multiprozessierung).
Durch den Rechner wird es möglich, in einer Art Fliessbaridverfahren
vorzugsweise einschrittig, d.h. mit jedem Tastpuls ankommende neue Operanden und Instruktionen fliessond zu verarbeiten
und wieder abzuspeichern. Der Rechner vermag insbesondere grosse Datenblöcke mit vorsortierten Daten zu verarbeiten, wobei
die erzielte Verarbeitungsgeschwindigkeit gleich der Rechengeschwindigkeit werden kann. Der Rechner kann Teil eines Computers
sein, der neben den vorerwähnten Eigenschaften auch konventionelle Verarbeitungsformen aufweist. Der Computer stellt
vorzugsweise einen Computer für wissenschaftliche Daten dar, die höchste Verarbeitungsgeschwindigkeiten zweckmässig erscheinen
lassen, was durch die erfindungsgemäss erzielte Optimierung zwischen dem Zeitverhalten von Peripheriegeräten und den übrigen
Systembaugruppen realisiert werden kann.
Die erfindungsgemässe Gefügeschaltung kann jedoch auch in Zusammenarbeit
mit anderen Rechnern optimale Zeitanpassungen zwischen einer peripheren und einer zentralen Verarbeitungseinheit/anderer
Computersysteme bewirken.
009818/U60
A 37 442 b
3.7.1969
Weitere Einzelheiten und Merkmale der Erfindung können
den beigefügten Ansprüchen und/oder der folgenden Beschreibung entnommen v/erden, die der SrläuterUng eines in der
Zeichnung dargestellten Ausführungsbeispiels der Erfindung dient. Es zeigen:
Fig. 1 Sine vorzugsweise Anordnung von Conputereinheiten
.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 Zentralverarbeiter und ei-. nem Peripherieverarbeiter der Fig. 1 und 2.
Fig. 4 Ein starker detailliertes Blockschaltbild nur Darstellung
der Gefügeschaltung der Fig. 3.
Fig. 5 Sin Diagramm zur Darstellung einer Betriebsweise
'des Zentralverarbeiters gemä3 Fig. 1-4.
Fig. 6 Eine Puffereinheit zur geeigneten Einströmung beispielsweise
,von Vektordaten in einen Rechner.
Fig. 7 Ein Blockschaltbild des Zentralverarbeiters genä3
Fig. 1-4.
Fig. θ Einen Ewei-Kanai-Rechner ir. Zentralverarbeiter.
Fig. 9 Bauteile innerhalb des Zentralverarbeiters zur Durchführung
der Gefügeschaltung genH3 Fig. 3 und &.
BAD O O 9 818/U 6 O
A 37 442
3.7.1969
Pig. 10 Ein Zeitteilverfahren zwischen Virtualverarbeitern
■ innerhalb des Peripherieverarbeiters gemHß Fig. 1
und 2.
Fig. 11 Ein Blockschaltbild des Peripherieverarbeiters.
Fig. 12 Den Zugang zu Zellen in einen Koramunikationsregis-'
ter der Fig. 11.
Fig. 13 Einen Zuordnender Fig. 11.
Zum genauen Verständnis der hier" vorliegenden Erfindung wird es erforderlich} das Computersystem zur vorzugsweisen
Verarbeitung naturwissenschaftlicher Daten, an dem die hier vorliegende Erfindung Anteil hat, zuerst allgemein und dann
in seinen einzelnen Baugruppen und Bauteilen Ao weit zu beschreiben, daß die Tragweite der Erfindung insbesondere
im Zusaramenspiel mit anderen Einheiten innerhalb des gesamten Gomputersystens richtig erkannt wurden kann'.
Zu Fig. 1:
Das Computersystem v/eist einen Zentralverarbeiter CPU 10 (Central Processing Unit) sowie einen Peripherieverarbeiter
PPU 11 (Peripheral Processing Unit) auf. Ein Zentralspeicher CEM 12 - 15 (Central Kenory) besteht aus vier Dünnschichtspeicher-Untereinheiten
12 - 15 mit 160 Uano - Sekunden Zykluszeit bei 100 Nano-Sekunden durchschnittlicher Zugriffzeit
und hat beispielsweise ein löschendes Speicherverhalten bein Auslesen. Der CEM 10-15 ist an die CPU 10 und
an die PPU 11 angeschlossen und kann von konventioneller Bauart sein.
0CS9818/U60
A 37 442 b k-b 3*7.1969
Jede der Untereinheiten 12-15 hat eine 16K Wortkapazität·'
von 16384 Worten. Hin Wort hat 32 Bits. 256 Bits = ' 8 χ 32'Bits = 8 Worte heißen "Wortgruppe", was "bedeutet,
daß 2048 Wortgruppen ä. 256 Bits in einer Zentralspeicheruntereinheit
liegen.
Eine Zentralspeichersteuerung MCU 18 (Memory Control Unit)
stellt die' Lese-Schreibsteuerung für den CEIl 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 Puffereige'nschaften so-'
wie Torrichtungen zur Ein- und Ausblendung (Gating), Kartierung (Mapping) und zum Speicherschutz der. Daten im CEM
12-15. ■
CPU 10, PPU 11, MCU 18 und CEM 12 bis 15 laufen synchron
miteinander. Ein CPU-Takt erscheint alle 50 STano-Sekunden,
ein PPU-Takt alle 65 ETano-Se künden. Weitere Speichereinheiten
bilden Plattenspeicher DS 16, 17 (disc storages)
mit einer durchschnittlichen Zugriffszeit von etwa 16 Killi
Sekunden; Bandspeicher TS 21 -■ 26 (Tape storage's), von. t
denen vorzugsweise die TS 21, 22 Einzollbänder und die TS 23 - 26 Halbzollbänder verarbeiten, wobei alle Bandspeieher
zu Arbeitsspeicher- wie auch Ein/Ausgabezwecken verwendet
werden können. Ein Kartenleser CR* 19 {card reader) dient zur Eingabe von auf lochkarten gespeicherter Information
und ein Kartenstanzer CP 20 (card £uncli) zur Aus*-
gäbe von Information auf gestanzte Lochkarten; ein Zeilendrucker
t/S 27 (line printer) ist als Drüökerausgabegerftt
vorgesehen* . *
Ais weiteres Ein/Ausgabe-Gerät dient eine Bil4»chirmkonsole
G3 28 (oaailloSQOps console), !Zwei Bedienungspulte
/ *
ttt it
it
9
1 t t
• ) j * * I. I
t f » * J i t t
Ä 37 442 b k-b 3.7.1969
mit zwei beispielsweise Zweistrahlverhalten aufweisenden Bildschirmen und der PPU 11 gekoppelt. Letztere bildet nicht
nur die Steuerungseinheit für den OC 28, sondern gleichermaßen auch für die CR 19, CP 20, LP 27 und TS 21 bis 26.
Bin Bediener vermag über die OG 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 Portgang einer Operation zu
überprüfen und aufgrund der erzielten Fortschritte in ihrem
weiteren Ablauf zu beeinflussen. Letzteres kann bedeuten, daß man die Operation auf de,ra eingeschlagenen Weg
weiterlaufen oder auf andere ¥ege mit eventuell anderen
Daten verzweigen läßt.
Wie bei Computersystemen üblich, verfügt der Computer der
Pig. 1 über mehrere Speicherh.ierarch.ien, beispielsweise
über die folgenden vier: die CPU 10 mit dem schnellsten
Speicher, die CBIi 12-15 mit dem etwas weniger schnellen,
die DS 16» 17 Jftit dem noch langsameren und die TS 21 - 26
mit dem Speicher» der ia Vergleich, zu den vorerwähnten die
größte mittlere Zugriffszeit hat» falls von ihm keine entsprechend
vorsortierten Daten abgeru^
ii der fig. 1 verfügt über mehrere Untersystems»
die neu sind und eine bemerkenswerte Steigerung
der Verarbeitungskapazität speziell für die Fälle aufwei- /
füll, bfi denen eine gro,8e Anzahl vorsortierter, in bestimm*
t*n Gruppen geordneter Daten zur Verarbeitung anfallen*
erstie solches ujtierayetfna besteht in einer autoiaa«
Qdfti&esehaliamg tischen Aer ®2V 10 und der WS ti
UifQ ; ' 0RIQJNÄL INSPEGTEÖ-
A 37 442 b M
Tc-Ta *
3.7.1969
des Computersystems, in welchem mehrere Programme gleichzeitig ablaufen und verarbeitet werden können*
Ein weiteres.solches Untersystem ist in der CPU 10 enthalten,
welches es ermöglicht, Daten zur Eingabe in einen Rechner so zu speichern, zu gruppieren und dem Rechner in solcher
Reihenfolge anzubieten, daß damit die Verarbeitungsgeschwindigkeit des Computers wesentlich erhöht werden
kann.
Ein nächstes solches Untersystem 'betrifft einen Parällelrechner
hoher Verarbeitungsgeschwindigkeit und Flexibilität, in welchem die Operanden in einer Art von Fließband-·
verfahren verarbeitet werden.
Ein weiteres solches Untersystem schließlich betrifft ein verbessertes time sharing-Verfahren einer Vielzahl von
Virtualverarbeitern innerhalb der PPU 11.
Zu Fig.12:
Die Systemorganisation des Computers der Fig. 1 ist durch eine Besprechung der im Blockschaltbild der Fig. 2 aufgezeigten
Datenkanäle des Computers leicht zu umreißen. Ein Kanal 29 verbindet die MOU 18 mit einer puffernden Platten-
und Trommelsteuerung DCU 30 (drum/disc control unit), von
der ein Kanal zur DS 16 und ein anderer zur DS 17 weiterführen.
Die DCU 30 ist ein einfacher, fest verdrahteter Biiusweck computer zur alleinigen Bewerkstelligung (Synchronisierung)
des Datentransports zwischen dem Bit der HCU 18 verbundenen Zentrmlspeicher CSH 12-15 und den Platten-
009811/1460
A- 37 442 b
3.7.1969
speichern DS 16, 17 über den Kanal 29 nach Erhalt eines diesbezüglichen Peripheriebefehis.
Die soeben .erv/ähnten Kanäle sind bidirektrional, wobei in
dem zwischen DS 16 oder 17 und DC 30 liegenden Kanal nur
je Wort pro Taktzeit befördert wird. Im Kanal 29 werden dagegen
gleichzeitig" 8 Worte, also eine Wortgruppe, zwischen^ der MCU 18 und der DCU 30 transportiert.
Der Anschluß eines Trommelspeichers DS 31 (magnetic drum
storage) an die DCU 30 zur Erhöhung der Speicherkapazität mittlerer Zugriffszeiten wäre über einen weiteren bidirektionalen
Kanal möglich.
Ein weiterer' 256 Bits simultan übertragender Kanal ist der
zwischen der KCU 18 und der PPU 11 liegende bidirektionale
Kanal 32, der je eine Wortgruppe zwischen dem Zentralspeicher CEIl 12-15 und dem Peripherieverarbeiter PPU 11
über die HCU 18 befördert.
Wie vielter oben bereits angedeutet, dient die PPU 11 als
Vielzweckcomputer, dem u.a. die Steuerung des Datenflusses zu allen anderen Peripheriegeräten außer den DS 16, 17, 31
obliegt und an welchen deren Datenkanäle angeschlossen sind,
Beim nichtzerstörungsfreien Auslesen aus dem Zentralspeicher CETi müssen die ausgelesenen Daten 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 Iang3an arbeitenden Peripheriegeräte
nur jeweils ein Wort aus der Achv/ortgruppe (maximal)
benötigt wird. Ein gängiger Umschlagswert für den
009818/U60
TÖ34365
A 37 442 b
k-b "
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 PPU T1 enthält acht' Virtualverarbeiter, 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 GEM gespeicherten Programm
wobei diese'außerdem das in ier 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 CEM 12 bis 15 gekoppelt ist. Im Gegensatz zu dem oben über die
• PPU 11 gesagten kann die CPU 10 alle acht Worte einer Wortgruppe aus dem CEM 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 Uano-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 CPU 10 Vektoroperationenen direkt und ohne Übersetzung über irgendeinen
Compiler durchführen kann, wodurch lange Befehlsketten vermieden werden, da die CPU 10 solche aufgrund
eines einzigen Makrobefehls intern durchführt. Die CPU 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.
009818/U60
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 v/erden müssen.
Jeder der Kanäle 29 und 32 bis 34 hat über die MCU 18 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 Fig. 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- / zugsweise quasi-gleichzeitig mehrere Benutzerprogramme ablaufen
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.
009818/1460 '
"V?3f365
fÖ34365
A 37 442 b .
3.7.1969
Durch zweierlei Befehle können die in der CPU 10 ausgeführten Benutzerprogramme von der PPTJ 11 periphere Dienstleistungen
anfordern. Ein erstes solches Kommando lautet SGP
(system call and proceed), ein zweites SCV/ (system call and
wait). Der Befehl SCP kommt dann im Benutzerprogramm«vor,
wenn es möglich ist, daß in der Verarbeitung dieses Programms ohne ein Abwarten auf den Vollzug der angeforderten
peripheren Dienstleistung von Seiten der PPU 11 weitergegeschnit-ten
werden kann; die PPU 11 wird also auf Grund der entsprechend gestellten Anforderung Daten, Adressen oder ein
ganzes Programm sicherstellen bzw. zusammenstellen, welche im weiteren Ablauf des innerhalb der CPU weiterver-arbei- taten
gleichen Benutzerprogramms erforderlich v/erden. Die PPU 11 überstellt dann das angeforderte Informationsmaterial
bei passender Gelegenheit. Der Befehl SCP wird in Pig. 3
über eine Leitung 41 von der CPU 10 an die PPU 11 geführt.
Der Befehl SCW wird dagegen dann von einem Benutzerprogramm ausgegeben, wenn es letzterem nicht möglich ist weiterzuschreiten,
ohne die von der PPU 11 angeforderte periphere Dienstleistung erhalten zu haben. Der Befehl SCiT
wird über eine leitung 42 aus der CPU 10 an die in Fig. 3 zwischen der CPU 10 und der PPU 11 gelegene eigentliche Gefügeschaltung,
geführt. Erfindungsgenäß analysiert die PPU
laufend diejenigen Programme innerhalb der CPU 10, die augenblicklich
festliegen und nicht weiterverarbeitet werden, um festzustellen, welches Programm davon als nächstes von
der CPU 10 weiterverarbeitet werden sollte. Hat sie ein solches Programs gefunden und selektiert, setzt die PPU 11
unmittelbar eine Schaltfahne 44 (automatic switching flag), die hier durch ein Flip-Flop dargestellt wird. Wird nun in
der CPU 10 bei Ablauf eines in ihr verarbeiteten Benutzerprogramms
.
009818/1460
\A 37 k-b 3.7.1969
ein SCW-Befehl gefunden, entsteht über ein Und-Gatter 1JJ ein
Signal "Umschalten" auf einer Leitung. *l5a vorausgesetzt, daß
auch die Schaltfahne H^ gesetzt ist, Das Signal "Umschalten"
aber verursacht in der CPU 10 die Durchführung der erforderlichen Umschaltung von dem auf den SCW-Befehl aufgelaufenen
Benutzerprogramm
009818/U60
A 37 442 b
3.7.1969
•zu jenem Programm, das von der PPU 11 aus der Zahl
der in Reserve befindlichen Programme als nächstkommendes selektiert worden war.
Mehr im einzelnen betrachtet spielt sich also folgendes
ab: ist die Schaltfahne 44 gesetzt, kann bei Aufkommen eines Befehls SCW von Seiten der CPU 10 über das Und-Gatter 43
der Befehl. " Umschalten M auf der Leitung 45 zur CPU 10 gelangen
und damit der CPU anzeigen, daß sie die Möglichkeit hat, statt des auf den Befehl SCY aufgelaufenen und nun
vorerst in Wartestellung befindlichen Programms ein ande.-res, bisher in Reserve befindliches Programm oder Programmteil
weiterzubearbeiten. Sie wird letzteres automatisch und ohne Verzögerung aufnehmen und betreiben, indem ihr
durch Rückfrage bei der PPU 11 von dieser das betreffende Programm oder Programmteil angezeigt wurde. Hat nun aber
beispielsweise die PPU 11 - etwa bei Fehlen solcher in Wartestellung
befindlicher betriebsbereiter Programme - keine solche Anzeige zu machen, wird sie auch nicht die Schaltfahne
gesetzt haben, wodurch von vornherein'ein Aufkommen des Signals "Umschalten" unmöglich gemacht wurde. In diesem
Fall beendet bei Aufkommen des Signals SCW die CPU 10 zwar ebenso die Weiterverarbeitung des auf SGW aufgelaufenen
Benutzerprogramms, behält dieses jedoch so lange, bis von Seiten" der PPU 11 die Schaltfahne 44 gesetzt wird. Bei
Erscheinen des Signals "Umschalten" wird dann das die Schaltfahne 44 realisierende Flip-Flop rückgesetzt.
Durch die so ausgeführte automatische Gefügeschaltung wird
ein sonst üblicher zeitraubender Dialog zwischen dem Zentral- und dem Peripherieverarbeiter (CPU und PPU) dadurch
vermieden, daß die PPU 11 vorsorglich sämtliche in Reserve
befindlichen Programme innerhalb der CPU 10 auf Einsatzbereitschaft, d*h. die Möglichkeit sofort weiterverarbeitet
0Q9818/U60
A 37 442 b 3-7-1969
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.
entsteht dadurch, daß der Zentralverarbeiter Keine Schaltkreise zur Durchführung des sonst üblichen Dialogs mehr benötigt.
Zu Pig. 4:
Pig, 4 stellt ein Blockschaltbild dar, in welchem ein wesentlicher
erster Teil der Gefügeschaltung der Fig. 3 noch stärker detailliert ist, so daß das Zusammenspiel zwischen
CPU 10, PPU 11 und MGU 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 HCU 18 dargestellt wird. Die PPU 11 enthält also in Pig. 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.
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 HCU 18 dargestellt wird. Die PPU 11 enthält also in Pig. 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
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 SCV/
und ein Fehlersignal auf einer Leitung 53, die ebenfalls
aus der CPU 10 kommt. Die Signale SCP, SCV/ und Fehler ent- f stehen aufgrund bestimmter Programmbefehle im Benützerprograram, wobei im Falle der zwei letzteren Befehle ein Umschalten vom bisherigen 3enutzerprograam zu einen nächsten Programm gewünscht werden kann.
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 SCV/
und ein Fehlersignal auf einer Leitung 53, die ebenfalls
aus der CPU 10 kommt. Die Signale SCP, SCV/ und Fehler ent- f stehen aufgrund bestimmter Programmbefehle im Benützerprograram, wobei im Falle der zwei letzteren Befehle ein Umschalten vom bisherigen 3enutzerprograam zu einen nächsten Programm gewünscht werden kann.
Ein grundsätzlich kurze Zeit nach Erscheinen der Signale
009818/1460
A 37 442 b
3.7.1969
SCP oder SCV/ oder Fehler aufkommender Tastpuls auf einer
Leitung 54 verläßt die CPU 10 in Richtung PPU 11, um dort
ein Flip-Flop L 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 v/erden
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 den von ihr augenblicklich
ausgeführten Programm über den Kanal 33 und die MCU 18 in eine bestimmte, vorzugsweise reservierte Stelle des Zentralspeichers
CSM 12 bis 15 einspeichern darf· Dabei erstreckt sich die Zeitspanne, innerhalb derer diese Stelle
jenen bestimmten Teil des in diesen 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 denentsprechende 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 SCi/ 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 CPU 10 abzustoppen, sobald innerhalb der PPU
1t"bestinrate Betriebsbedingungen auftreten.
009818/U60
1934
A 37 442 b -k-b 3.7.1969
Auf einer leitung 57 wird ein Signal PSC (CPU switch com- .
plete) als Quittiersignal von der CPU 10 zur PPU 11 aufgrund
eines vorausgegangenen SCV7- oder Fehl er signals gesandt..
Die PPU 11 löst eine 0peration3reihe aus, vermittels der die an 'einein Punkt aufgelaufene CPU, an dem sie vorerst
nicht weiterschreiten kann, veranlaßt wird, einen bestimmten Informationscode ins CEM zu transferieren, welcher den
Gesamtzustand des Programmteils der CPU 10 charakterisiert,
bei welchem sie die Verarbeitung des Programms unterbrechen muß. Nach solcher Abspeicherung wird nun die CPU 10 in ei-.
nen gänzlich neuen Zustand versetzt, aus dem sie heraus ein neues Programm ausführen kann. Dieses Programm beginnt
bei den Zustand, der dem Informationscode entspricht, mit dem die CPU nun versehen wurde. Erscheint also ein solches
Signal PSC auf der Leitung 57, kann die PPU 11 wiederum
auf den Leitungen 41 , 42 oder 53 nachfolgend erscheinende Signale SCP, SCVi oder "Fehler" beantworten, '/ie noch gezeigt
wird, registriert die PPU 11 das auf der Leitung 57 erscheinende Signal und bringt dementsprechend das nächste
Programm sowie die von der CPU 10 zu verarbeitende Information in Bewegung, sobald ein SCV/- oder Fehlersignal als
nächstes auf den Leitungen 42 bzw. 53 erscheint.
Die Leitung 45 der Fig. 3 und 4 zeigt durch ihr Signal "Umschalten" oder PS (Proceed with switching) der CPU an,
daß letztere die Umschaltung von dem einen zu einem andern Benutzerprogramm vornehmen kann.
Ein auf der Leitung 58 von der PPU 11 zur CPU 10 gesandtes
Signal "Anrufen" oder PC (proceed with call) sagt letzterer, daß die bestimmte Stelle im GEH verfügbar ist.
Sin Signal 1-3C auf einer Leitung 59 zeigt, die MCU 18 be-
009818/U60
A 37 442 b k-b 3.7.1969
M ■ tt
treffend, an, daß ein Schaltbefehl durchgeführt wurde; das Signal geht von der IIGII 18 zur PPTJ 11 und auf ein Und-Gatter
64, dessen zweiter Singang die das Signal PSO führende Leitung 57 bildet. Bei erfüllter Und-Bedingung an
diesem Und-Gatter wird die PPU 11 in die lage versetzt,
einen nächsten Zustandsweehsel für die CPU vorzubereiten. Eine von der PPU 11 zur MOU 18 weisende Leitung 60 führt
dasselbe Signal " Umschalten" wie die obengenannte Leitung 45; das Signal zeigt der MCU 18 an, daß sie den Schaltbefehl
ausführen kann.
Wie bei' der Besprechung der Fig. 2 bereits erwähnt, transportieren
die Kanäle 32 und 33 insbesondere acht Worte = 256 Bits gleichzeitig zwischen der PPU und MCU bzw. der CPU
und MCU, d.h. jeweils einen ganzen Wortblock.
Wie ebenfalls erwähnt, hat die PPU 11 ein zur Gefügeschaltung gehöriges Ausgangsteil. ZIu letzterem gehören nach Fig.
4 zehn Flip-Plops, das ist ein Flip-Flop C 71 (call request von der CPU), ein Flip-Flop S 72 (switch request von der
CPU), das Flip-Flop L 73 (O/S loading strobe tine), ein
Flip-Flop CC 74 (call completed) ein Flip-Flop R 75 (run order für CPU), das Flip-Flop AS 44 (automatic switching
flag), ein Flip-Flop AG 77 (automatic calling flag), ein
Flip-Flop, SC 78 (switch completed), ein Flip-Flop PS 79
(proceed a switch operation) und schließlich ein. Flipr
Flop PC 80 (proceed a call operation). Weiterhin gehören zum Ausgangsteil die Oder-Qatter 50, 51, die Und-Gatter
43, 64» weitere Und-Gatter 61» 62» 63, 65,, 66, 67 sowie
ein weiteres Oder-Gatter 68«
Die Flip-Flops können einfache gleichstromgekoppelte RS«-
Flip-Flapa s,ein, de.ren Setzeingang durch S, Rüoksatzein«
A 37 442 b k-b 3.7.1969
gang durch, R, Ja-Ausgang durch 1 und He in-Ausgang durch 0
gekennzeichnet sei. Die Ja-Ausgänge tragen die Bezeichnung des Flip-Flops, beispielsweise 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 51. 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 zweiten Eingang des Und-Gatters 62 verbunden, dessen Ausgang
den Setzeingang des Flip-Flops S 72 bildet. Der iTein-Ausgang
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-Ausgang an je einen der Eingänge der Und-Gatter 61 bis 63
führt.
Die Wirkungsweise 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 erseheinen
soll, wenn eine Schaltfunktion durchzuführen ist. Die Flip-Flops 0 71 und S 72 können erst dann gesetzt werden,
wenn auf der Leitung 54 der Tastpuls erscheint, wodurch
bei Zwi seilen schaltung des Flip-Plops L 73 dessen Ja- ' Ausgang in Forin eines Zeitblendesignals L an, je einen. Sin-v
gang der Und-Gatter 61, 62 wirksam wird. Das den "Anruf" '
■kennzeichnende F,lip-?lop C 71 kann nur dann gesetzt werden,
wenn es selbst und das Flip-Flop S 72 bisher auf Aus wa-
A 37 442 b
3.7.1969
ren. In gleicher Weise wird das Signal 9' auf der Leitung
82 als der Sin-Zustand des Flip-Plops 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 PPU 11 laufenden Programm führt,
wodurch' *iach Beendigung einer Anruf- oder Schaltfunktion
ein solches Rücksetzsignal für diese Flip-Flops erscheint.
Es ist zu beachten, daS die Leitungen 81 und 82 an Anschlüssen 84 a und 84b führen, die zu einer Gruppe von Anschlüssen
84 gehören, welche sämtlich programmzugänglich oder-abhängig sind. So führt der Ja-Ausgang des Flip-Flops
CC 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 SC 78 auf einen Anschluß
84h; sämtliche Anschlüsse 84a bis 84h sind also programmzugänglich,
was vielter unten näher erläutert wird, soweit
dies für ein -Verständnis einer die Ge füge schaltung betreffenden
Operation erforderlich ist.
Signal CCC auf Leitung 55 bildet den Setzeingang des Flip-
Flops CC 74, welches nach Beendigung eines Anrufs auf 3IIT geht und durch Signal CC am Anschluß 84d dies der PPU meldet,
wonach letztere über eine Leitung 85 das Flip-Flop
CC 74 rüoksetzt.
Eine den Programm zugängliche Leitung 86 führt zum Setz-
009818/U6 0
A 37 442 b
3.7.1969
eingang des Flip-Flops R 75. Dessen Ja-Ausgang erzeugt im Falle des Ein-Zustandes des Flip-Flops ein R-Signal,
.auf der Leitung 56 sowie am Anschluß 84e, v/elcher vom Programm
abgefragt werden kann. 3s sollte beachtet werden, daß das Flip-Flop R 75 dann automatisch rückgesetzt wird,
wenn das Oder-Gatter 68 ein Ausgangssignal aufweist. Somit
ist also die PPU 11 in der Lage, den Zustand des Flip-Flops
R 75 zu bestimmen.
Das Flip-Flop AS 44 hat einen Setz- und einen Rücksetzeingang, die über Leitungen 87 bzw. 88 dem Programm zugänglich
gemacht sind* Der Hein-Ausgang des Flip-Flops ist mit einem Eingang des Und-Gatters 66 verbunden, während der Ja-Ausgang
des Flip-Flops einerseits zum Anschluß 84f führt, welcher programraabfragbar ist, und andererseits über eine
Leitung 89 mit einem Eingang des Und-Gatters 43 verbunden
ist. Der Ausgang des Und-Gatters 66 führt zu einem Eingang des Oder-Gatters 68, dessen zweiter Eingang mit dem Ausgang
-des Und-Gatter£ 67 verbunden ist. 3±n Eingang des Und-Gatters
67 wird aus dem Nein-Ausgang des Flip-Flops AC 77 gespeist, während ein zweiter Eingang des Und-Gatters über
die Leitung 81 Verbindung mit dem Ja-Ausgang des Flip-Flops C 71 hat. Sine programmabhängige Eingabeleitung 91
führt zum Setzeingang des Flip-Flops AG 77, während eine entsprechende Leitung 92 an den Rücksetzeingang des Flip-Flops
angeschlossen ist. Die '.rirkungswei3e der Flip-Flops
AS 44 und AC 77 sowie der ihnen direkt zugeordneten Schalter ist die, daß axt ihrer Hilfe den in der PPU 11 befindlichen
Programm ermöglicht wird, entsprechend den zuvor gesetzten Flip-Flop3 C 71 und S 72 die den weiteren Ablauf
bestimmenden './eichen zu stellen.
Das Flip-Flop SG 78 ist zur Abfrage für die PPU 11 vorge-
009818/ U60
A 37 442 b
3.7.1969
sehen, wodurch ihr ermöglicht werden soll, zu bestimmen,
wann eine Schaltoperation beendet ist. Das Flip-Flop PS erstellt an seinem Ja-Ausgang, d.h. auf den Leitungen 45
und 60 das Signal "Umschalten" oder PS, wodurch der CPU 10 und der MGU 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 SIN geht, wenn zuvor die Flip" Flops C 71 und AG 77 gesetzt wurden.
Durch die bisherigen Erläuterungen wurde die Art dargestellt, in v/elcher 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 Ge füge schaltung bezeichnet, v/erden, deren Boole'sehe Gleichungen als Kurzform der obigen Diskussion
in der Tabelle I wiedergefunden werden.
Die Besonderheiten der im Ausgangsteil zwischen der CPU und der eigentlichen PPU 11 realisierten Schaltung zur entsprechenden
Verarbeitung von SCV/-, SCP- und Fehlersignalen sind:
a) Eine CPU-Anfrage kann sein:
1. Eine durch Fehler verursachte Anfrage an die Gefüge
schaltung.
2. ein SCP-Anruf oder
3. ein SGtf-Schaltbefehl.
b) Eine CPU-Anfrage wird .in einer Taktzeit verarbeitet.
009818/USO ;
A 37 442 b *£
k-b ■ . . ■ <t ■
3.7.1969
c) Die Programmumschaltung iind/oder Erledigung eines Anrufs
erfolgt automatisch, ohne die eigentlichen Schaltkreise der PPU zu beanspruchen, indem von der eigentlichen
PPU getrennte "Schaltfahnen"-Slenente für Anruf
und Umschaltung benutzt v/erden.
d) Eine bestimmte Speicherstelle des CSI-I v/ird bei Durchführung
einer SOP- und SC'J-Konraunikation verwendet.
e) Bei einem SGVi-Befehl werden getrennte 3rfüllungssignale
für Anruf, und Schalten verwendet, wodurch es möglich wird, die Anrufoperation vor der Schaltoperation und
unabhängig von. dieser zu Snde zu führen.
f) Eine Steuerung für die Betriebserlaubni3 und da3 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).
Ea werden insgesamt zehn Flip-Flops für das Ausgangsteil
verwendet und in Tabelle I gemäß der in Pig. 4 gezeigten Schaltung aufgeführt. V,rie später anhand der Pig. 11 erläutert
-wird, stellen diese zehn Flip-Flops als sogenannte "CR-Bits" solche Bits dar, die in einem oder mehreren ".'/orten
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 zwei repräsentative Ablaufbeisplele aufgezeichnet., indem in
beiden Fällen die Möglichkeiten "nur Anrufen" (Befehl SCP),
"nur Schalten" „("Fehler"meldung), wie auch "Anruf und
Schalten" (Befehl SC¥) betrachtet werden. ' , '
G0S818/H60
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, vektori-eller
Daten (streaming vector data), welche den Rechner insbesondere
wiederholt zugeführt werden; das Conputersysten v/eist also eine besondere Eignung für Vektoroperationen auf.
Eine typische Vektoroperation ist die Addition zweier Vektoren ä+B=C (mit A, B und C als n-dinensionalen, 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 Cornputersystens
ist die Bildung eines skalaren Produkts (Α·3) =C oder eines Vektorprodukts jCx3j=Ci. Das Resultat
wird wiederum so gewonnen, dai? die Vektoren in ihre Komponenten
zerlegt und gemäß
c = ΣΖΓ a. b.
i=1 x x
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
C in Falle eines dreidinensionalen Raun-s:
BAD ORIGINAL
0 0981 8/ 1 460
A- 37 442 b
3.7.1969
3.7.1969
b11 b12 b13
b21 b22 b23
b31 b32 b33
a11 ai2 a13
a21 a22 a23
a31 a32 a33 U31 U32 U33 U31 U32 U33
a21 a22 a23
a31 a32 a33 U31 U32 U33 U31 U32 U33
C21 C22 C23
mit beispielsweise
und allgemein
i 3
wobei ρ der G-rad der Determinante ist.
Die Erzeugung des Elementes C11 kann man als eine Multiplikation
der ersten Reihe der Determinante A mit der err. sten Spalte der Determinante 3 durchführen. Sin Element C12
kann als Multiplikation der ersten Reihe der Determinante A mit der zweiten Spa—Ite der Determinante 3 entsprechend
erzeugt werden; ein Element C17 aus der Multiplikation der
ersten Reihe der Determinante A mit der dritten Spalte der Determinante 3.
Vektoriell ausgedrückt kann man so sagen: der Reihenvektor
1■der Determinante A dient als Operandenvektor für drei Vektoroperationen
mit den Spaltenvektor 1 oder 2 oder 3 der Determinante B zur Erzeugung des Reihenvektors 1 der resultierenden
Determinante C. In solcher ϊ/eise wird nun
noch zweimal verfahren. Ein erstes llalr 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 skaläre Vektormultiplikation in Form einer
Katrixnultiplikation kann demnach so durchgeführt v/erden,
daß zwei verschiedene Schleifen mehrmals durchlaufen werden.
009 818/U60
1934385
A 37 442 b
3.7.1969
Diese Schleifen seien als innere bzw. äußere Schleife
bezeichnet. Pur das Beispiel der Matrixmultiplikätion sei .die innere Schleife zur Indizierung von Element zu Element innerhalb einer Reihe der Matrix C vorgesehen, die äußere Schleife dagegen zum Portschreiten von Reihe zu Reihe innerhalb der Matrix C.
bezeichnet. Pur das Beispiel der Matrixmultiplikätion sei .die innere Schleife zur Indizierung von Element zu Element innerhalb einer Reihe der Matrix C vorgesehen, die äußere Schleife dagegen zum Portschreiten von Reihe zu Reihe innerhalb der Matrix C.
Die in Pig. 5 hinsichtlich ihrer Ablaufschleifen skizzierten
Operationen, werden in einer gemäß Pig. 6 aufgebauten
CPU in problemorientierter, optimierter Weise realisiert.
CPU in problemorientierter, optimierter Weise realisiert.
Zu Pig. 6:' . ■
Bei dem hier beschriebenen Computersystem weist die CPU 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. Um nun die
hohe Verarbeitungsgeschwindigkeit innerhalb der CPU 10 zur Bearbeitung großer, vorsortierter Datenblöcke, wie bei Vektoroperationen, ausnutzen zu können, wurde zur diesbezüglichen Anpassung zwischen dem Rechner und dem Speicher ein Zwischenstück geschaffen, das speziell der Forderung auf
höchste Verarbeitungsgeschiirindigkeit Rechnung trägt. Das
Zwischenstück wird im folgenden als Puffer MBU 100 (memory buffer unit) bezeichnet und ist' in Pig. 6 als das zwischen der MCU 1.8 und dem Rechner 101 befindliche Teil erkennbar. Es wird als zur CPU 10 gehörig betrachtet und hat über den Kanal 33 Verbindung mit der MCU 18; andererseits führen
zv/ei Datenkanäle 100a und 100b von der MBU 100 zum Rechner 101, der hier als Vektorrechner bezeichnet werden kann,
sowie ein Datenkanal 10Oe vom Rechner 101 zur M3U 100. Aus den Kanälen 100a und 100b werden Operanden zum Rechner
hohe Verarbeitungsgeschwindigkeit innerhalb der CPU 10 zur Bearbeitung großer, vorsortierter Datenblöcke, wie bei Vektoroperationen, ausnutzen zu können, wurde zur diesbezüglichen Anpassung zwischen dem Rechner und dem Speicher ein Zwischenstück geschaffen, das speziell der Forderung auf
höchste Verarbeitungsgeschiirindigkeit Rechnung trägt. Das
Zwischenstück wird im folgenden als Puffer MBU 100 (memory buffer unit) bezeichnet und ist' in Pig. 6 als das zwischen der MCU 1.8 und dem Rechner 101 befindliche Teil erkennbar. Es wird als zur CPU 10 gehörig betrachtet und hat über den Kanal 33 Verbindung mit der MCU 18; andererseits führen
zv/ei Datenkanäle 100a und 100b von der MBU 100 zum Rechner 101, der hier als Vektorrechner bezeichnet werden kann,
sowie ein Datenkanal 10Oe vom Rechner 101 zur M3U 100. Aus den Kanälen 100a und 100b werden Operanden zum Rechner
009819/U6Q
A 37 442 b
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 MCU 18 zum ΜΞΜ 12 bis 15
gelangen kann.
Zu Fig. 7: .
Das anhand der Fig. 6 über den in der CPU 10 enthaltenen
Puffer 11BU 100. Gesagte kann anhand der die CPU stärker detaillierenden Pig. 7 in seinem Zusaramenspiel betrachtet
werden, um die Hochgeschwindigkeitskommunikation zum und vom Rechner 101 zu erläutern. Wie anfangs erwähnt, befinden
sich im Zentralspeicher CM Wortgruppen von 256 Bits d 32
Bit-Worten, wobei jeweils eine Wortgruppe gleichzeitig ausgelesen oder eingeschrieben werden kann. Die Wortgruppen
v/erden aus dem CEM über die MCU 18 und den Kanal 33 zu einer
Toreinheit MBG 18a (memory bus gating) gebracht. Der
MBG 18a ist die ITBU 100 nachgeschaltet, 'tile 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 A1 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 C Registerkanal 108, 107
aus zv/ei seriengeschalteten Puffern C und G1. Die Reß;ister-
A und B puffern die Operanden kanäleyTü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 CSM 12" bis 15 zurückgeschafft
werden.
Der Puffer 102 ist so gebaut, da8 er insbesondere mit jeder
009 8 1 8/ U6 0
A 37 442 b
k-b ■
3.7.1969
achten Taktzeit auf einmal eine aus acht Y/orten bestehende
Wortgruppe empfangen und abspeichern kann. Synchron mit dem
Puffer 102 wird jede Gruppe zum Puffer 103 weitergeschafft.
.-32 Bit-Worte werden vom Puffer 103 sum Rechner101 so transferiert,
daß ein.Wort pro Taktpuls bewegt wird. Es sollte
Tieachtet werden, daß je nach Art der Operation, die der
Rechner 101 auszuführen hat, zu jeder Taktzeit ein vojn Rechner erstelltes Resultat aus den Puffern 108 und 107
zum.CSM gebracht werden kann. Das Coraputersystein vermag
ebenso hochwirksarae Operationen auszuführen wie auch solche mit geringer Befehlsgeschwindigkeit. Ein Beispiel höchster
Befehlswirk3ämkeit 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 10.1
zu jeder Taktzeit eine Summe erstellt wird, welche unmittelbar
vom Puffer 108 aufgenommen wird.
In der CPU 10 befindet sich weiter eine allgemeine Datei Ϊ20 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 Vektorparaneter-Datei 125.
Jedes Register 120 bis 125 hat zum Rechner 101 Zugang über
einen geneinsanen Kommunikationskanal 104 und eine Einheit OFS 126 (operand fetch/store ünit), welche insbesondere als
Burchgangskanal für Operanden in beiderlei Richtung vorgesehen
ist. Sine Einheit CCU 127 (CPU context switching control
unit) dient unter anderem der Steuerung des Rechners
101, indem sie ihre Steuersignale aufgrund der von einer Einheit IBU 127a (instruction buffer unit) gelieferten Konnandos
bildet. Die Einheit I3TJ 127a dient der Pufferung von
Befehlen« die aus einer Instruktions-Datei Ii1U 128 (instruc-
009818/14 6. Ö
A 37-422 b
3.7.1969
tion fetch unit) stanmen. Die IFU 128 beliefert nicht nur •die IBU 127a mit Befehlen, sondern außerdem eine Index-.adressiereinheit
IAU 126a mit Adressen, wobei der Ausgang der IAU 126a zur OFS 126 führt. Instrulctionsdateien 129
und 130 bilden puffernde Kanäle für einen Instruktionsfluß vom CEH 12 bis 15 zur instruktionsdatei IPU 128.
Eine Steuereinheit SSH 131 (statur storage and retrieval
gating) hat zu allen in Pig. 7 gezeigten Einheiten, außer den Dateien 129 und 13Q, Verbindung, wozu auch eine Leitung
18a
zwischen ihr und der MBG/gehört. Zur Aufgabe der SSR 131 gehört, aufgrund eines Befehls SCV/ oder "Fehler" (Fig. 4) den gesamten augenblicklichen Zustand der CPU 10 vorzugsweise zum CEM 12 bis 15 zu schaffen und dafür einen neuen Zustand in die CPU einzuführen, so daß der Ablauf eines neuen Programme begonnen werden kann.
zwischen ihr und der MBG/gehört. Zur Aufgabe der SSR 131 gehört, aufgrund eines Befehls SCV/ oder "Fehler" (Fig. 4) den gesamten augenblicklichen Zustand der CPU 10 vorzugsweise zum CEM 12 bis 15 zu schaffen und dafür einen neuen Zustand in die CPU einzuführen, so daß der Ablauf eines neuen Programme begonnen werden kann.
Die IiBU 100 enthält eine MBU-Datei aus einer Parameter-Datei
132 und einer Arbeits-Dätei 133, welche vorzugsweise Register enthalten. Die Parameter-Datei 132 hat über einen
Kanal 134 und den Kommunikationskanal 104 Verbindung zur Vektorparameterdatei 125. Der Inhalt der Vektorparainet erDatei
125 wird in die Parameter-Datei 132 übertragen, sobald
eine spezielle Vektorinstruktion z.B. aus dem CEM
zur Instruktions-Datei IFU 128 kam* V/ird 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 1.27a sowie 0?S 126 und CCU 127. Dies bedeutet
im einzelnen, daß während der Zeitspanne, in welcher der Rechner 101 eine bestimmte Operation durchführt, die Sin-
0098 1 8/ U60
A 37 442 b
3.7.1969
hexten OPS 126 und COU 127 die nächste nachfolgende Operation
zur Durchführung im Rechner 101 vorbereiten. In derselben
Zeitspanne bereiten auch die Einheiten IATJ ί 26ä
und IBU I27a die nächstnachfolgende Operation vor. Schließlich nimmt während derselben Zeitspanne die Instruktionsdatei IPU 128 die daraufhin folgende Instruktion auf. Letztere Instruktion wird somit im Rechner 101 drei Operationen
später als die augenblicklich v/irksame Instruktion ausgeführt. Bei solcher Kanalstruktur werden also vier Instruktionen gleichzeitig verarbeitet, indem jede von ihnen in
einer verschiedenen Verarbeitungsstufe gegenüber der anderen liegt, wie dies in Fig. 4 durch die Zeiten T1, T2 und · T3 und T 4 angedeutet wird.
und IBU I27a die nächstnachfolgende Operation vor. Schließlich nimmt während derselben Zeitspanne die Instruktionsdatei IPU 128 die daraufhin folgende Instruktion auf. Letztere Instruktion wird somit im Rechner 101 drei Operationen
später als die augenblicklich v/irksame Instruktion ausgeführt. Bei solcher Kanalstruktur werden also vier Instruktionen gleichzeitig verarbeitet, indem jede von ihnen in
einer verschiedenen Verarbeitungsstufe gegenüber der anderen liegt, wie dies in Fig. 4 durch die Zeiten T1, T2 und · T3 und T 4 angedeutet wird.
Es sei darauf hingewiesen, daß die Kombination aus der Vektorparameter-Datei
125 und der Parameter-Datei 132 die Kapazität des Computersystens dahingehend erhöht, daß mit
hoher Geschwindigkeit komplexe Vektoroperationen in Maschinensprache aufgrund des Programms durchgeführt werden können.
hoher Geschwindigkeit komplexe Vektoroperationen in Maschinensprache aufgrund des Programms durchgeführt werden können.
Die in der Parameter-Datei 132 und der Arhe'its-Datei 133
vorkommenden Abkürzungen sind in Tabelle IV aufgeführt und erklärt. -
vorkommenden Abkürzungen sind in Tabelle IV aufgeführt und erklärt. -
Die Parameter werden vorzugsweise aus dem CEM in die Register
vor Ausführung einer Vektroinstruktion eingeladen.
Die Vektoren v/erden im Fließverfahren gemäß den in der CPU enthaltenen Parameterwerten durch den Rechner hindurch .
geschleußt.
Die Vektoren v/erden im Fließverfahren gemäß den in der CPU enthaltenen Parameterwerten durch den Rechner hindurch .
geschleußt.
Im folgenden wird das durch die eingangs angegebenen GrIei-
009818/1460.
A 37 442 b
3.7.1969
chungen beschriebene Beispiel einer Determinantenmultiplikation durchgeführt, wobei als erstes durch Tabelle V
eine Zuordnung zwischen Speicherstellen und den Elementen der Determinanten A, B, G-(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 V/eise bearbeitet.
Die Adressenfolge des Vektors B gleicht der Adressenfolge des Vektors A, außer daß 1 statt k Startadresse ist. Die
Adressenfolge des Vektors C ist m, m+1 . . . m+8. Die Erzeugung
der Adressenfolge ist jeweils von der speziellen Vektorinstruktion abhängig. Das obige Beispiel gilt für eine
skalare Multiplikation von Vektoren. Der entsprechende Vektorcode wird zwecks dieser Bestimmung in die MBU 100
eingegeben.
Zu Pig. 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 diese
Daten verarbeitende Rechner 101 so ausgelegt ist, daß die angelieferten Daten mit derselben Geschwindigkeit
verarbeitet werden, die durch die oben beschriebene TIBU (Fig. 6 und 7) realisiert werden kann.-»"
In Fig. 8 wird ein Rechner gezeigt, der eine Anzahl Untereinheiten
"aufweist, die auf bestimmte Rechenoperationen spezialisiert sind, an verschiedenen, ausgewählten Stellen
009818/1460
A 37 442 b ai^
k-b 5»
3.7.1969
eines !canal form ig en 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. De,r Rechner
verwendet Hultipli'ziereinheiten, die gestatten, ein Produkt in einem Taktpuls zu bilden. Im Sechner 101 werden
grundsätzlich Verzögerungen vermieden, die bei iterativen Multiplikationsverfahren sonst üblich sind.
Der Rechner enthalt zwei parallele Kanäle 300A und 300B
die symmetrisch zu einer Mittellinie 300 angeordnet gezeichnet aind. Die Operandeneingangskanäle wurden mit Bezugszeichen 300a bis 30Od versehen.
Der Rechnerkanal 300A enthalt einen Sxponenten-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 306 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 Vornorraalisierer 311 mit einer Kultipliziereinheit
312 verbunden, dessen Ausgang über einen Kanal an einen weiteren Eingang des Addierers 306 führt. Sin
Akkumulator 314 hat einen ersten Eingangskanal 315 aus einem weiteren Ausgang des Ausrichters 304 sowie einen zweiten
Eingang über einen Kanal 316 aus einer, zweiten Ausgang des Addierers 306. Ein Kanal 317 verbindet überdies den
Akkumulator 31* mit einem spiegelbildlich angeordneten
Akkumulator 345 des Rechnerkanals 3003. Sin erster Ausgangs-
009818/ueo
Α· 37 442 b 7L
k-b Sb
3.7.1969
!canal 318 aus." dem Akkumulator 314 führt an einen weiteren
Eingang des Sxponentensubtrahierers 302, während ein zweiter Ausgang des Akkumulators 314 über einen Kanal 319 mit
einem zweiten Eingang der Ausgangsstufe 310 verbunden ist..
Der Exponentensubtrahierer 302 hat an seinem Ausgang einen
weiteren Kanal 320,-der es gestattet, direkt an den ersten
Eingang der Ausgangsstufe 310 zu gelangen. In gleicher V/eise sind auch die Ausgänge des Ausrichters 304 sowie des.
Addierers 306 an den Kanal 320 angeschlossen. Sin Kanal 321 an einem weiteren Ausgang des Addierers 306 verbindet diesen
mit einem vierten Eingang des Exponentensubtrahierers 302. Der Addierer 306 verfügt über einen dritten Eingang,
der über einen Kanal 322 mit dem Ausgang einer Multipliziereinheit 341 verbunden ist, die im Rechnerkanal 300B
spiegelbildlich zur Multipliziereinheit 312 des Rechnerkanals 300A angeordnet ist.
Für den Zweikanalrechner ist die Tatsache hervorzuheben, daß die Operandenkanäle 300a und 300c über Kanäle 323 bzw. 324
direkt an jede Untereinheit des Rechnerkanals 300A herangeführt sind, wobei lediglich der Akkumulator 314 eine Ausnahme
macht. Im einzelnen führen die Kanäle 323 und 324 also über Kanäle 325 an die'Multipliziereinheit 312, über
Kanäle 326 an den Ausrichter 304, über Kanäle 327 an den Addierer 306, über Kanäle 328 an den Noraalisierer 308, sowie
schließlich direkt an die Ausgangsstufe 310. Torsehaltungen
öffnen oder schließen die Rechnerkanäle des Zweikanalrechners
aufgrund irgendwelcher Maschinen oder Programminstruktionen.
Der Rechnerkanal 300B ist entsprechend dea Rechnerkanal
300A aufgebaut. 3s entsprechen ein Sxponentensubtrahierer
009818/H6Q
A 37 442 b Λ
k-b Sf
3.7.1969
330 dem Exponentensubtrahierer 302, ein Ausrichter 332
dem Ausrichter 304, ein Addierer 334 dem Addierer 306, ein Normalisierer 336 dem ITormalisierer 308, eine Ausgangsstufe
338· der Ausgangsstufe 310, ein Vornormalisierer dem Vornormalisierer 311» die Multipliziereinheit 341
der llultipliziereinheit 312 und der Akkumulator 345 dem Akkumulator 314. '.
Ebenso entsprechen sich die folgenden Kanäle : 300b dem Kanal 300c, 30Od dem 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, v-erfügt jede Untereinheit der zwei
Rechnerkanäle 300A und 3003 ü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 Speaialeinheiten zur Durchführung einer speziellen arithmetischen Operation. Jede Untereinheit mit Ausnahme
des Akkumulators hat eigene Operandeneingänge. Durch Programm- oder ITaschineninstruktionen können die Untereinheiten
in der verschiedensten Vieise miteinander verknüpft werden,
so daß eine Vielzahl voneinander verschiedener arithmetischer Beziehungen realisiert werden können. Sind die
0 0 9 8 1 87 U S Q
A 37 442 b k-b 3.7.1969
■ 3?
.Verarbeitungswege festgelegt, können die zu verarbeitenden
Daten so durch die beiden Rechnerkanäle hindurch geschickt v/erden, daß beispielsweise während, einer Takt zeit unterschiedliche
Operanden je eino Untereinheit, also "einschrittige"
Untereinheiten durchlaufen, wodurch ermöglicht wird, daß mehrere A- und B-Operandenworte aufeinanderfolgend
durch den Rechnerkanal hindurchströmen, indem sie beisüielsweise 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 Weise untereinander verknüpft werden können, gewährleistet eine durchschnittlich sehr schnelle Datenverarbeitung
innerhalb des Rechners bei entsprechend gleichschnell 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 v/erden 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 Ilachnormalisierung
des Resultats, beispielsweise in Form einer Linksverschiebung. Diese Schritte werden in Tabelle 7 dargestellt.
Bei der Addition zweier Zahlenreihen oder Vektoren ist zu Beginn (Zeit t0) jede Untereinheit des Zweikanalrechners
leer. Zu einer nächsten Zeit t* wird das erste Zahlenpaar'
a.. und b.j der Exponentensubtraktion unterzogen, die als
erstes durchgeführt werden muß. In einer nächsten Zeit t2
0 09 81 8/
A 37 442 b 3a
k-b 3.7.1969
wird ein zweites Zahlenpaar a„ und b dieser Exponentensubtraktion
unterzogen, während das erste Zahlenpaar &* und
b- eine zweite Stufe in Form der Kantissenausrichtung
durchläuft. Dieses Fließverfahren wird in gleichem Sinne
fortgeführt, wobei bereits zu einer Zeit t^ der Rechnerkanal
dergestalt "angefüllt" ist, daß jede Untergruppe bei jedem Schritt ein Zahlenpaar verarbeitet.
Der Zweikanalrechner 101 ist grundsätzlich 64-3it-orientiert.
Alle Untereinheiten der Fig. 8 außer den Kultipliziereinheiten 312 und 341 empfangen 32 Bits und geben 32
Bits an-ihren Ausgängen ab; die T-ultipliziereinheiten geben
dagegen 64 Bits ab. Hit Ausnahme einer Multiplikation
und Division benötigen alle Funktionen dieselbe Verarbeitungszeit sowohl für Einzel- als auch Doppellängenoperanden.
Festkommasahlen v/erden vorzugsweise in 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
Verarbeitungskanal^ die insbesondere in Anwendung auf
Vektorinstruktionen besonders günstige Eigenschaften hat. Die Anordnung" zweier parallel liegender Rechnerkanäle gestattet,
da3 zu jeder Taktpulsseit an jeder Ausgangstufe und 338 ein Resultat erscheint. Jeder Rechnerkanal kann
Teile anderer Instruktionen verarbeiten. Jeder Schlauch enthält Untereinheiten» wodurch insbesondere die Additionssse it für G-leitkonma-Addition verkürzt werden kann. Die zueinander
insbesondere spiegelbildlichen Untereinheiten der zwei Rechnerkan^.le können jeweils miteinander kombiniert
werden; dies gilt allerdings nicht für die I-Iultiplizierein-
0 0 9 818/1 480 ^0 ORiGlNAL
193A365
A 37 442 b
3.7.1969
heiten. Die Exponentensubtrahierer 302, 330 "können eine
solche .Verarbeitungsstufe bilden, die in sieh getrennt
oder miteinander gekoppel arbeitet, indem sie in letzterem Falle ein Doppellängenwort verarbeitet.
Die Ausrichter 304, 332,können für Rechtsverschiebungen bei
Gleitkomma-Addition verwendet werden. Die JTorraalisierer 308,
336 dienen allen Ifornalisierungsfordernissen und also auch
Linksverschiebungen. Die Addierer 306, 334 werden vorzugsweise
für Hochgeschwindigkeitsoperationen (second level' look ahead operation) zur Ausführung von Gleit- oder Festkomma-Addition
verwendet. Sie finden überdies Verwendung zur Addition der sogenannten Pseudosumme mit dem sogenannten
P3eudoü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 Fest- 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 Kultipliziereinheiten 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 Fast Multiplier" in
I3ES EG 13, S. 14 bis 17, Februar 1964, sowie Speiser "Digitale
Rechenanlagen" 1967, Seite 188 bis 190 (Abb. 183). ■
009818/USO
A 37 442 b
3.7.1969
Solche. Multipliziereinheiten gestatten die Ausführung einer Multiplikation während einer einzigen Taktzeit, v/o durch
diese Untereinheit mit den übrigen Untereinheiten in Einklang steht, indem die Verarbeitungszeiten grundsätzlich
gleich sind.
Die Multipliziereinheiten bilden gleichzeitig die Verarbeitungseinheiten
für eine Division. Doppellängenoperationen für Multiplikation oder Division erfordern mehrere
Iterationen über die Multipliziereinheit, bevor das Resultat erhalten wird. Festkomma-Multiplikationen und Einzellangengleitkomraa-Multiplikationen
werden nach nur einem Durchgang durch die Multipliziereinheit gewonnen. Der Ausgang
der Multipliziereinheit 312 bildet zwei Doppellängen-•worte,
von je 64 Bits in Form einer Pseudosumme und eines PseudoÜberlaufs; aus diesen Worten ausgewählte Bits werden
im Addierer 306 miteinander addiert, um ein Einwortlängenprodukt zu erhalten. Soll mit einer Einzellängenmultiplikation
ein Doppellängenprodukt gewonnen werden, erzeugt die Multipliziereinheit 341 eine 64 Bit-Pseudosumme und
einen 64 Bit-Pseudoüberlauf, welche dann in den Addierern
3Q6 und 334 addiert werden, wodurch das Doppellängenprodukt
gewonnen wird. Eine Doppellängenmultiplikation kann so durchgeführt werden, "daß drei Schritte in der richtigen
Reihenfolge durchgeführt werden: Multiplikation in der Multipliziereinheit 341, Addition in den Addierern 306 und
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 solche lau-
■ ., ■ - BAD
0098187 UtO
A 37 442 b k-b 3.7.1969
. fende Saldierung, da vier getrennte 32 χ 32 Bit-Hultiplikationen
durchzuführen sind, wonach deren Zwischenergebnisse (Partialsuramen) stellenrichtig in den Akkumulatoren
aufaddiert werden. Eine Doppellängenmultiplikation erfordert deshalb 8 Taktzeiten, bis das richtige Ausgangssignal
erscheint, v/ährend eine Sinzellängenmultiplikation nur vier
Taktzeiten benötigt. Eine Doppellängennultiplikation bedeutet zv/ei 64-Bit-Gleitkommazahlen (56 Bit-Mantisse), die
miteinander multipliziert werden, un ein 64 Bit-Resultat zu erhalten, wobei die niedrigstwertigen Bits nach der
Nachnormalisierung abgeschnitten sind. 3ine Pestkommamultiplikation
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. iTach einer Anzahl
iterierender Multiplikationen ist der Quotient mit der gewünschten Genauigkeit erstellt. Da dieses Divisionsverfahren
keinen Rest als Resultat der zuvorgehenden Multiplikation erstellen kann, wird es erforderlich, hardware-
mäßig weiterzurechnen, um den Rest zu bestimmen, falls die
ser 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 Divident χ 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
festicomnaarihme-fcik oder die höohststellige Hexadezimalzif-
Λ 37 442 Id
3.7.1969
fer bei Gleitkommaarithmetik mit Ausnahme von JIuIl.
Die Ausgangsstufe 310, 338 dient der Sammlung der Ausgangsdaten
aus allen Untereinheiten sowie zur Ausführung einfacher Datenverschiebungen, Bool'scher Beziehung u.s.w,, zu
deren Durchführung nur eine Taktzeit im Rechner 101 benö-'
tigt v/ird.
Die Speichermöglichkeit in jeder Untereinheit des Rechnerkanals ermöglicht eine v/irksame Trennung der einzelnen, in
den verschiedenen Untereinheiten getrennt verarbeiteten Da-
ten. Der Rechner arbeitet synchron, indem er eine gemeinsame
Taktzeit für alle Schaltkreise anwendet. Deshalb sind in jeder Untereinheit Speicherregister wie das Register
310a enthalten.
Zu Pig. 9:
Nach einer Beschreibung der Se fügeschaltung anhand der Fig.3
und 4 so\^e einer Beschreibung der CPU 10 anhand der Fig.5
bis 8 folgt zweckmässigerweise in einer Beschreibung der Fig. 9 "die Darstellung des Zusannenspiels zwischen 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 Fig. 9 und 4 betreffen also ,beide die Gefügeschaltung, wobei Fig. 4 den PPU-seitigen Teil und Fig. 9
den GPU-seitigen Teil der Gefügeschaltung zeigt, welche
durch die Kanäle 41, 42 und 53 bis 58 miteinander verbunden
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
009818/H60
934365
A 37 442 b UU
k-b ^
3.7.1969
unterteilt; ein erster Abschnitt 128b mit 8 Bits enthält
den Operationscode, ein nächster Abschnitt 128c ein Adressennerkmal
von 4 Bits und ein weiterer Abschnitt 128d aus 4 Bits enthält normalerweise Daten zum Betrieb des Rechners
101, mit denen ein.Register bestimmt wird, das nicht zur
Gefügeschaltung gehört, weshalb also über diesen Abschnitt
nichts/weiteres gesagt zu werden braucht; schließlich ist
in einem Abschnitt 128e von 16 Bits ein Adressenfeld einge-' lagert.
Beim'normalen Operatiorisablauf vollführt die Index-Adressiereinheit
IAU 126a, welche ein Ausgangsregister 126b hat, einen Schritt im Zeitablauf T1 bis T4. Bei einigen Operationen
wird durch sie im Ausgangsregister 126b ein Wort erstellt,
das der Summe-aus dem Code im Adressenfeld 128e und dem Code
im Indexregister 124 entspricht, wobei letzterer durch das Adressenmerkmal im Abschnitt 128c aufgerufen wurde; eine solche
"Indexoperätion" entspricht also der bei Computern üblichen Adressenmodifikation mittels Indizierung. Die
Adresse aus dem Ausgangsregister 126b beaufschlagt desweiteren zur Steuerung des Operandenflugses zum und vom Rechner
101 die Einheit OPS 126.
Sobald andererseits im Abschnitt 128b"ein Operationacode
SCW oder SCP erseheint, beginnt ein hineiahtlioh der anderen Operationscodes verschiedener Operationt*tilauf, Zuerst
wird der 8-3it-Code aus dea Abeohflltt 128b in die Inetruk-■
tionepuffereinheit IBU 127a übertragen, wonach sie in einem
Ansgangsregister 127b der IBU 127a ereohtint. AnaohlIe Send
wird dieser 8-Blt-Code über *lntn Kanal 200 IUY Steutreinheit
CCU 127 gebracht.
ta &*» ecu 127 ve?iirb*it«% üb BitacttMMltr J01
OD9S11/1410
TC- - ■
BAD ORIGINAL
at > I ■
A 37 442 b
3.7.1969
8-Bit-Cod'; enthielt letzterer einen S CYZ-Be fehl, erscheint
auf einer Leitung 202 und damit auf der leitung 42 ein SCW Signal; enthielt dagegen der 8-Bit-Code einen SCP-Befehl,
wird eine Leitung 203 und damit die Leitung 41 entsprechend mit einem SCP Signal beaufschlagt.
Fühlt nun die PPU 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 OI1S 126 befindliche Adresse
oder Codierung in eine vorbestimmte Speicherstelle über- \ tragen 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 126e wird
in jene Speicherstelle des Speichers eingesehreihen, welehe
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 einfaöhe Festverdrahtung
innerhalb des Computers erreicirt werden. Die Adresäe at^e dem
Festadressenspeicher 208 wird f>ei Beaufschlagung eines :
Gatters 209 vermittels des auf der Leitung 2Q4 wirksamen
Signals ausgegeben. ;: -v l· ;· ~ r:'_. r J\
Die CCU 127 ist im einzelnen ao aufgebaut, daß die
leitungen 202 und 203 je an Btngfisige sines Oder-Ga^ter*
geführt sind, dessen Ausgang über eine
000818/1410 ORIGINAL INSPECTED
* t -111
A 37 442 1) k-b.
3.7.1969
■210 den Taktpuls auf der Leitung 54 erzeugt, welcher in de* PPU 11 nach Setzen des Flip-Flops L 73'die Beladung
.der Flip-Flop C 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 30-wie
nach Eingehen einer Undbedingung mit der PC 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 LTnd-Gatter 212, 214 verbunden. Das Und-Gatter
212 hat zwei Eingänge, dessen einer über die Leitung 202 dus SGV/ Signal und dessen zweiter über die Leitung 58
das Signal "Anrufen" (PC) erhält. Das Und-Gatter 214 ist • entsprechend durch die Koinzidenz aus den Signalen SCP und
j "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" SGW oder SCP das Signal "Anrufen" (PC) von Seiten
der PPU vorhanden sein. Hur 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 feilen des Computersystems außerhalb
der QPU 10.aufrecht erhalten werden» Diese Entschei
dung hang"! yon dem im Ausgan^sregister 128a #er IFU 128
befindlichen Instruktionsgehali ab, ob näialiöä. in dessen
Abschnitt 128b der Qperationaoode SCVi, SCP oder anders
ι ■
«AL· INSPECTED
A 37 442 b
k-b
3*7.1969
"Fehler11, 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 Rechner» 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 CCU 127 auftreten. Durch eine
dritte Eingangsleitung 222 am Eingang des Oder-Gatters 220 wird angedeutet, daß noch weitere Prüfkreise zur Erzeugung
dee Fehiersignals 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:
^ Angaben über die PPU 11 wird ersieht-
lich, daß dieser eine bedeutende Rolle in der Aussteuerung
der CPU1 10 zugeteilt wurde» Die PPU 11 ist gemäß der Erfindung
in der Lage, im allgemeinen in voraus die Anforderungen der ,CPU 10 und anderer Komponenten des Systems zu
ermitteln, indem ein. spezielles Zeitzuteilverfahren (time
shearing) zwischen einer Vielzahl von Yirtualverarbeitern .in der PPU 11 angewandt wird. Xe werden nämlich von einer
Gruppe von Virtualveraybtitern innerhalb der PPU 11 ProgrfjffiW
verarbeitet· Wo turn dl« Programne stark variieren, let •«,vorteilhaft, von einer fest zugeordneten Zeitzuteilung
gwieohen den Virtitti&veievtoitern abzugehen.
In {ta* In flg. IQ g«««tgtsn Anordnung ist ee möglich,
A ·37 442 b
3.7.1969
einige Virtual verarbeiter v/eit mehr Zeit zubemessen erhal-,
ten als andere. Weiterhin sind Vorkehrungen getroffen, die Zeitzuordnungen zv/ischen den Verarbeitern häufig und drastisch
zu ändern. ' ■
Aus Fig. 10 wird ersichtlich, daß Virtualverarbeiter PO
bis P 7 der PPU 11 von einein 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,
Für die hier vorliegende Erfindung ist es dagegen kennzeichnend, daß die zeitlichen Zuordnungen von der Natur der
vorzugsweise durch Pragramiae gestellten Aufgaben abhängen und somit fließend und steuerbar sind.
Von den acht Virtualverarbeitern P-O bis P7 der PPU 11 (Pig. 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 Takt zeit mit dem AEu 400 verbunden. Die Auswahl unter den Virtualverarbeitern
trifft ein Zuordner 401, der in ?ig. 10 durch einen rotierenden Schalter dargestellt wird* Mit jedem Taktpuls
wird der Schalter um eine Schaltstellung weiterbewegt, wobei jede Schaltstellung eina Verarbeitungszeitspanne
von dexv-Lmige eines Takt impulses darstellt; insgesamt
009818/U6 0
A 37 4.42 b k-fc
3.7.1.969
16 verschiedene Schaltstellungen "bezeichenen Zeitspannen
-O bis 15» der ARtJ 400 wird dabei .jeweils .mit demjenigen Vir-..tualverarbeiter
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 AHU 400 unter Ausschluß aller übrigen verbunden,-im anderen Extremfall v/erden alle Virtualverarbeiter
in gleichen periodischen Zeitabschnitten und Zuordnungsanteilen
mit dem ARU 400 gekoppelt. Das eine solche .Vielseitigkeit erlaubende System wird in den Fig. 11 bis.
13 im Detail beschrieben.
Zu Fig. 11:
Der Aufbau der PPU 11 wird aus Fig. 11 ersichtlich. Der
Zentralspeicher GEH 12-15 ist 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 Pig. 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-dem Kanal 408 und dem ARU 400.
009818/1480
A 37 442 b 50
3.7.1969 ^
Die Yirtuaiverar"beiter P O bis P 7 sind ferner mit einem
Festwertspeicher ROH 430 (read only memory) versehen. In einem bevorzugten Ausführungsbeispiel der Erfindung ist der
Speicher 430 aus festverdrähteten Diodenanordnungen für
schnellen Zugriff aufgebaut.
Koramunikationsregister 431 sind zur Kommunikation zwischen
dem Komraunikationskanal 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, CR 1...und die
Puffereinheit 419 mit den Sinwortpufferregistern SV/B 0
bis 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 Virtualverarbeiter
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 ITano Sekunde η und einen
Befehlsvorrat von 32 Bit Instruktionen für die Virtualverarbeiter P 0 bis P 7. Das ROM umfaßt 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 Peripherieprogramrae enthalten Steuerfunktionen für
00381Ö/U60
A 37 442 b
3.7.1969
einzelnen Peripheriegeräten zugehörige Pufferspeicher sowie Datenübertragungsfunktiqnen. Auf solche Weise können
mechanische Bewegungsabläufe in den Peripheriegeräten direkt durch Programme gesteuert werden und benötigen nicht
eine jeweils speziell für jedes Peripheriegerät eigens
andere
durchgeführteVFestverdrahtung. Durch das Arbeitsprogramn können Parameter zur Variation eines Grundprogramms vorgesehen werden. Solche Parameter werden im Zentralspeicher OEM 12 bis 15 geführt oder auch in Akkumulatorregistern der Virtualverarbeiter, welche das Programm ausführen-.
durchgeführteVFestverdrahtung. Durch das Arbeitsprogramn können Parameter zur Variation eines Grundprogramms vorgesehen werden. Solche Parameter werden im Zentralspeicher OEM 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 CEIi 12-15
sein. Der vom Programrazähler eines Virtualverarbeiters addressierte
Speicher wird durch die Adressierart gesteuert, welche durch Verzweigungsinstruktionen oder durch Löschung
des Systems modifiziert werden 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 Zugriffzelten als der ROH-Speicher hat, werden
also die Verarbeitungszeiten günstiger, wenn das Programm vom ROH 430 empfangen wurde.
' Ein Zeitabschnitt 0 kann einen der acht Virtualverarbeiter durch einen Schalter auf einen Bedienungspult zugeordnet
werden. Diese Zuordnung l:ann durch dä3 Programm nicht kontrolliert
werden.. Die restlichen Zeitabschnitte sind anfanglieh nioht zugeordnet. Deshalb arbeitet am Anfang nur
009818/UGO
19.3 ^SS 5
A -37 442 b . £$, · · '
k-b
3.7.1969
3.7.1969
der Virtualverarbeiter, der durch diesen Sehalter bestimmt
wurde. Da weiterhin die Programmzähler aller Virtualverarbeiter P O bis P 7 ursprünglich auf UuIl 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 Wählschalter auf dem Bedienungspult bestimmt ebenso, welches der acht Bits des
Kommunikationsregisters 431 durch ein von Bediener erzeugtes Einleitungssignal gesetzt wird.
Die Puffereinheit 419 ermöglicht, daß die Virtualverarbeiter
zum Zentralspeicher CEM 12-15 Zugriff haben. Die Puffereinheit 419 besteht aus acht 32-Bit-Datenreglstern,
acht 24-Bit-Adressenregistern und entsprechenden Steu&rkreisen. 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 werden vorzugsweise so verarbeitet, da3 eine feste Prioritätssteuerung sowie eine
Prioritätssteuerung nach den Prinzip "v/er zuerst kommt, wird zuerst abgefertigt" (first in-first out) kombiniert werden.
Vorzugsweise werden vier Prioritätsebenen festgelegt; werden aber zwei oder mehr Anfragen aus derselben Prioritätsebene
gestellt, werden, sie in der Reihenfolge bearbeitet, in der
sie zeitlich erscheinen.
Könnt zur Puffereinheit 419 eine Anfrage, so hat sie automatisch eine Prioritäskennung, die durch den Zentralspei eher
GEI! 12 - 15 bestimmt ist; Prioritäten v/erden in einem
der Register431 festgehalten. Die Prioritäten werden ent-
009818/1460
" "X: . ORIGINAL WSPECTED
A 37 442 b k—b 3.7.1969
sprechend der ITumner des jeweiligen Virtualverarbeiters angeordnet;
alle Anfragen von Seiten eines "bestimmten Verarbeiters
erhalten die Pri.oritätskennung, welche in zwei
Bits des Prioritätenspeichers (Register 431) verschlüsselt
ist. Der Inhalt dieses Speichers wird durch das Ausführungsprogramm bestimmt; die Prioritätskennung für jeden Virtualverarbeiter
wird durch das auszuführende Programm bestimmt.
"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 ist von Seifen 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 PPTJ und der CPU herstellen. Einige Parameter
zur Steuerung der Systemfunktion v/erden ebenfalls in solchen Kommunikationsregistern 431 gespeichert, von
welchen die Steuerung durchgeführt wird.
Zur Fig. 12:
Im Register 431 sind vorzugsweise als Flip-Flops CR realisierte Zellen enthalten, welche gem. Fig. 12 zwei Eingangskanäle aufweisen. Ein Eingangskanal ist mit der PPU 11 verbunden,
während der andere Kanal einem Peripherie-Gerät zur Verfugung 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-
009813/U60
19343&Ϊ
A 37 442 b k-b 3-7-1969
ten eines Peripherie-Geräts "kann durch Zv/ischenkreise zwischen
diesem und der Zelle erfolgen, und zwar nicht notwendig
erweise synchron mit den System-Taktpuls.
Zur Fig. 13:
-In Fig. 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 de.n 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 Eommunikationsregister 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 431n vier Bit3 a - d, welche jeweils an
die"Eingänge von Und-Gattern 441 - 444 geführt sind. Sin
Segment 445 desselben Kommunikationsregisters hat ebenfalls vier Bits a - d, welche mit Eingängen von Und-Gattern 446
- 449 verbunden sind. Das erste TJnd-Gatter am Ausgang jedes Segments, an welches^ Bit a geführt ist, beispielsweise die
TJnd-Gatter 441» 446, führtyan den Eingang eines Oder-Gatters
450. Entsprechend sind alle Und-Gatter 442, 447 .-»-.,-welche
durch Bit-b der Segmente gespeist v/erden, ausgangs- / mäßig mit den Eingängen eines Oder-Gatters 451 verbunden*
In gleicher Weise erhält ein Oder-Gatter 452 Signale aus den TJnd-Gattern 443f 448...» welche mit den Bits c der Segmente
verbunden sind. Schließlich gelten für ein Oder-Gatter
453 die gleichen Beziehungen hinsichtlich der von Bit d
ÖÖ981Ö/U60 ORIGINAL INSPECTED
A 37 442 b
k-b ^
3.7.1969 .3»
gespeis.ten Und-Gatter 444, 449...
Die Ausgänge der Oder-Gatter 450-453 führen zu einem Register 454f 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 P
bis P 7 durch ein entsprechendes Signal auf einer der Ausgangsleitungen aus dem Dekodierer 455. Das vierte Bit, m
nämlich Bit a' des Segments 440, dient zur Freigabe bzw. Sperrung der Dekodier*ung, so daß ein bestimmter Zeitabschnitt
frei, d.h. unbezogen bleiben kann.
Es sollte beachtet werden, daß der ARU 400 über Kanäle
470 mit den Registern 431m und 431n verbunden ist, mit welchen er aufgrund einer Programmsteuerung die gewünschten
Zuordnungen in den Registern 431m und 431 η durchführen kann. Entsprechend den Taktpulsen auf Kanal 460 kann also
009818/U60
Ά. 37 442 b -^
k-b ' 50
3.7.1969
der !Decodierer 455 mit jedem Taktpuls von· einem Virtualverarbeiter
zum nächsten umschalten. Entsprechend dem Registerinhalt der Register 431m und 431n kann die gesamte Zeit
auf einen der Virtualverarbeiter verlegt werden, sie kann gleichmäßig aufgeteilt oder auch ungleichmäßig diesem zugeteilt
werden, je nachdem dies die" in den Registern 431m» 431η enthaltene Kodierung bestimmt.
Wenden wir uns nun den Steuerleitungen zu, die aus dem Ausgang
des Dekodierers 455 konimenj esist dabei zu beachten,
daß die zwischen den Registern 431 n, 431 πι und dem Dekodierer
455 liegenden Schaltkreise Bit-näßig dargestellt wur- .
den. Im Gegensatz dazu wird die zwischen dem Dekodierer und dem Rechner 400 liegende Schaltung zur Steuerung der
Virtualverarbeiter vijnd. insbesondere zwischen "den Virtualverarbeitern
und dem Rechner nicht bitmäß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 nimnt erstens den Ausgangskanal des Virtualverarbeiters
P0 auf und zweitens den Kanal 460. Auf die gleiche
Weise arbeiten Koinzidenzschalter 491 bis 497 an den Eingängen, der übrigen Virtualverarbeiter, 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 ARU 400 schickt. Auf diese "tfeise arbei-
• PQ
tet jeweils nur einer der Virtualverarbeiter/fbis'P 7 während
einer Zeitspanne, indem die Auswahl eines bestimmten Virtualverarbeiters dem Inhalt derjenigen Segnente 440, 445.."·
009818/U60
A 37 442 b "*-*#■
k-b ' 5*
3-7-1969
entspricht, welche nach Maßgabe der durch die Taktpulse
betriebene-n zyklisch arbeitenden Zuordnersteuerung gerade angewählt werden.
betriebene-n zyklisch arbeitenden Zuordnersteuerung gerade angewählt werden.
Eine Beschreibung des Puffers M3U 100 findet man in einer
anderen Anmeldung der Anmelderin (ämtl. Aktenzeichen ...).
Eine Beschreibung der Gefügeschaltung findet man in.einer
weiteren Anmeldung der Anraelderin (amtl. Aktenzeichen .'..).
Eine Beschreibung der Zeitzuordner gem. Fig. 10-13 findet man wieder in einer anderen Anmeldung der Anmelderin
(amtl. Aktenzeichen ....).·
009818/U60
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 des Kanalrechners
findet man in einer weiteren Anmeldung derselben Anmelderin ( amtliches Aktenzeichen: ...)
Eine in^einzelne gehende Beschreibung des Zeitzuteilsystems
( Pig. Io bis 13) findet man in einer dritten Anmeldung derselben
Anmelderin ( amtliches Aktenzeichen: ...)
009818/U60
A 37 442 b.
Tabelle I; Boole'sehe Gleichungen und Funktion des im Ausgangsteil der PPU gemäß Fig.4 befindlichen
Teils der Gefügeschaltung.
FF l· 73 " ("Lade· Flop, zur Zeitgabe der Setzimpulse für FFG71
und/oder FFS72):
Setze L = (Tastpuls), wobei (Tastpuls) = verzögertes
SCP- oder SCV/- oder 'Fehlej/signal.
. ' Rücksetze L = L.Ü.S"
FF C 71 fAnrufFlop, gesetzt durch SCP+SCW, zur Anzeige der
speziellen Programmsituation der CPU)s Setze C = L.C(S)Lc1; wobei c1 '- SCP + SCW.
jjtücksetze C von Seiten der PPU am Ende der Operation.
FF S 72 ("Schalt"Flop, gesetzt durch SCV^Fehler', zur Anzeige
der speziellen Progranmsituation der CPU): Setze S = L. (C*).5\s·; wobei s1 = SCW+Fehler.
Rilcksetze S von Seiten der PPU am Ende der Operation.
FF AC 77 ("toiruf" Fahne):
S^tze 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.
FF 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.
FF R 75 ("Betriebserlaubnis"):
Setze R von Seiten der PPU, wenn ein Betrieb der CPU
erwünscht ist.
Rücksetze R = XÜ.C+AS.S; dh:
' bei (SU,ÄS).(SCP, SCW, Fehler), also bei fehlender
Fahne von Seiten der PPU und Aufkommen einer entsprechenden Anfrage von Seiten der CPU wird die CPU inaktiv^
und abwartend.
FF PC 80 ^Anrufen" Flop, befiehlt den Beginn der CPU-seitigen
Anrufoperation (memory call)):
Setze PC = ACC
Setze PC = ACC
Rücksetze PC von Seiten der PPU nach Rückstellung der FlipFlop8 C 71 und S 72.
PF PS 71 ("Umschalten" Flop, befählt den Beginn der CPU-seitigen
Sehaltoperation):
Setze PS =AS . S
Setze PS =AS . S
Rücksetze PS von Seiten der PPU nach Rückstellung der FlipFlops C 71 und S 72.
009818/U60
A 37 442 b
FF CO 74 ("Anruf ausgeführt" Flop.zur Rückmeldung an die
PPU):
Setze CC = CCC
Rücksetze CC von Seiten der PPU nach Rückstellung der FlipFlops C 71 und S 72.
FF SC 78 ("Umschaltung ausgeführt" Flop,zur Rückmeldung
' an die PPU): ·
Setze SC = PSC ..MSCj 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 FlipPlops C 71 und S 72.
009818/U60
II
III
IV
VI
Ί 1 ο
1 1 0
1 1 0
1 1 0
ρ ι ο
0 ί 1
0 1 1
1 1 0
Ö 0 0 0
0 0 0 0
0 0 0 1
0 0 0 1
ί 1 1
110 110 0 10 1
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | i | 0 | 0 | 1 | ρ | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | ί |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | Q | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | Ί | 1 |
Heubeginri der PPTJ
"Fehler" —* S —>
"TMs ehalt en"
"SCP"-
"Anrufen"
1SCW" -* C sowie
"Anrufen" sowie "Umschalten"
I warten auf eine CPTJ Anfrage "SCP", "SCW" oder "Fehler",
il Taetpule
IV Beginn der PCTJ-seitigen Operation V \Anruf ausgeführt'
VI : HJmschaltung ausgeführt* -
Tabelle III: | AC | AS | PC | PS | R | L | CC | SC | 1 | C | S | AC | AS | — '. | R | L | cc | SC | C | S | AC AS | 0 | PC | PS | H | L | cc | SC | - | C | S | |
Zeit | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | PC PS | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ο | 1 | 0 | 0 | 0 | 0 | o* | ||||||
-I | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | .0 | 0 | 0 | 0' | |||
II | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | •1 | V | ||||
III . | 0 | 0 | \ | t | ϋ | ϋ | 0 | ϋ | 1 | 1 | 0 | 0 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | t | 1 | 0 | 0 | 0 | 0 | 1 | is | ||||
IV | 1 | 0 | 1 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | |||||||||||||
O | V | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | ||||||||||||
Ο
ΙΟ |
VI | |||||||||||||||||||||||||||||||
«0 | • | Neubeginn | der | PPU | ||||||||||||||||||||||||||||
"Ν* | "Fehler"—»B | —»«Umschalten' | 'BCP11—* C-* | "Anrufen" | "SCW"-*C | sowie | s—> | |||||||||||||||||||||||||
"Anrufen11 | sowie | 3ha | .11 | |||||||||||||||||||||||||||||
ο | ..... | met | ||||||||||||||||||||||||||||||
Automatische Anrufverarbeitung; verhinderte automatische Umschaltung, indea 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 EPPS79
auf "Ein" gezwungen wird. -..
Bemerkung zu'"B": Zwar wird hier das PC PlipPlop PFPC80 auf die übliche Art gesetzt, wodurch : :
eine automatische Anrufverarbeitung in Gang kommt; die PPU leitet aber infolge
IS" eint (Pseudo)Umschaltung ein, indem das PS FlipFlop FFPS79 auf "Sin"
gezwungen wird.
Tabelle IV; MBU-Datei der CPU Io:
Parameter-Datei 132t
SA Speicherstartadresse zum Auslesen des Vektors A
SB " " " ' " ". . 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 äusseren Schleife
ΔΙ Adresseninkrement für die innere Schleife
60 Adresseninkrement für die iiussere Schleife
Arbeits-Datei 133», „.
AA Arbeltsadresse (laufende Adresse) für Vektor A
BB ■" " " " B
VC laufende Zählung der Vektorkomponenten IC " " ■ Innenschleifen
0C " ■ ■ " Aussenschleifen
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
m | C-11 |
m+1 | C12 |
m+2 | C13 |
m+3 | "C21 |
Bt+4 | C22 |
1B+5 | C23 |
n+6 | C31 |
m+7 | C32 |
m+8 | C33 |
k+1 a12 l yC+1
b21
k+2 a,3
k+3 a2i : ^
k+4 a22 ^+4 b22
k+5 a23 ' ^+5 b32
k+6 a3i /+6 bl3
k+7 a32 /+7 b23
k+8 a33 /+8 b33
Die Determinante A ist reihenmässig auf die Speicherstellen
k bis k+8 verteilt?
die Determinante B ist spaltenmässig auf die Speicherstellen
t bis ^+ 8 verteilt?
Die Determinante C ist reihenmässig auf die Speicherstellen
m bis m+8 verteilt.
00981S71460
Tabelle V» Fortsetzung
Zu Beginn der Multiplikation wirds
SA * ic . NV « 3 ΛΙ * 1
SB * & HI « 3 Δ0 « 3
SC « m N0 * 3
Tabelle Vt % Adressen- und Steuerungsablauf für die
Determinante A sur Durchführung der Multiplikation gemäss Tabelle V.
ehr | ltt Operation | VC | IC | 0C | A Adresse |
1 | SÄ-*AÄ NV-1—»VC . NI-I-*IC N0-1-»0C |
2 | 2 | 2 . | k |
2 | VC-1-»VC | I | 2 | 2 | k+1 |
3 | vc-fctvc | O | 2 | 2 | k+2 |
4 | SA-fcAA NV-1—WC | 2 | 1 | 2 | k |
5 | AA+1—>AA | 1 | 1 | 2 | k+1 |
• |
AA+1—AA
. VC-Ir-WC |
6 | 1 | 2 | k+2 |
7 | SA—*AA NV-I-^VC IC-1—»IC |
2 | O | 2 | k |
8 |
AÄ+1-»AA
VC-.1—WC |
1 | O | 2 | k+1 |
9 |
ΑΆ+1—ΐΑΑ
VC-I-^VC |
Ö | O | 2 | k+2 |
Io |
SA+/10-»AA , SA NV-1-~»VC
NI-1—»IC 0C~i—=>0C |
2 | 2 | 1 , | k+3 |
11 |
AA+1—iAA
ve-1—»ve |
1 | 2 | 1 | k+4 |
12 |
AA+1-^AA
VC-I-^VC |
O | 2 | 1 | k+5 |
009818/ U60 *
Tabelle Vi, Fortsetzung
schritt | operation | VC | IQ | 0C | Ä Adresse |
13 ' | 2 | X | 1 | k+3 | |
14 | vc-i—wc | 1 | X | 1 | k+4 |
15 | AA+l—iAA VC-I-WC |
0 | 1 | 1 | k+5 |
16 | SA—>AA NV-Ir-WC | 2 | 0 | 1 | k+3 |
17 | AA+1—*&Ä VC-1—WC |
1 | 0 | 1 | k+4 |
. 18 | AA+l·—sAA vc-t-wc |
0 | 0 | 1 | k+5 |
19 | SA+A0->AA, SA NV-1W< NI-1—=>1C 0C-3r-^0C |
: 2 | 2 | 0 | k+6 |
2o | AA+Ür-AA VC-1—WC |
1 | 2 | 0 | k+7 |
21 | AA+1—*AA VC-I-^VC |
0 | 2 | 0 | k+8 . |
22 | SA-^AA NV-1—WC IC-1—»IC |
2 | 1 | O | k+6 |
23 | AA+1—^AA VC-1—WC |
1 | 1 | 0 | k+7 |
24 | AA+1—^AA vc-i-wc |
Ö | 1 | 0 | k+8 |
25 | SA—*AA NV-1—WC ic-i—>ic |
2 | 0 | 0 | k+6 . |
26, | AA+1—^AA VC-1—^VC |
1 | 0 | 0 | k+7 |
27 | VC-I-^VC | 0 | 0 | 0 | k+8 |
009 8-18/U60
Claims (1)
- Patentansprüche1> Koramunikationsschaltung swiwchen einem Zentralrechner und einer Peripheriesteuerung eines Multiprogramm-Computersystems mit einem Speicher zur Speicherung von Daten sowie eines laufenden Programms,, dadurch gekennzeichnet* dass die Peripheriesteuerung einen Kennungsgeber (4*1,77) aufweist zur Erstellung einer Kennung bezüglich eines nächsten im Zentralrechner zu verarbeitenden Programms, insbesondere bezüglich des Vorhandenseins eines :- ' * -: ■'-. . ^.,.~zu verarbeitbaren Programms, sowie dessen Auswahl, dass ferner eine den Zentralrechner umfassende Teilschaltung (41) vorgesehen ist zur. Erstellung und Weiterleitung eines ersten Signals (SCP) an die Peripheriesteuerung (11) zur Anzeige, dass der Zentralrechner (lo) ohne Programmänderung weiterarbeiten kann, dass eine weitere den Zentralrechner umfassende Teiischaltung (42) vorgesehen ist zur Erstellung und Weiterleitung eines zweiten Signals (SCW) an die Peripheriesteuerung zur Anzeige einer erforderlichen Programmänderung im Zentralrechner, und dass achliesslieh eine auf die Kennung (44,77) und das zweite Signal ansprechende Teilschaltung (43,44,45) vorgesehen ist zur Umschaltung des Zentralrechners auf dasnächste zu verarbeitende Programm .2» Schaltung nach Anspruch I9 dadurch gekennzeichnet, dass mit dem Zentralrechsier (lo) eine Teilschaltung (18,33*55) ver-00981 8/ÜSQA 37 *4o b kl - 137 7.7.69bunden ist sur Erstellung eines Startbefehls CuCC) für die Peripheriesteuerüng bezüglich deren Ansprechen auf das erste oder zweite Signal ( SCP bzw. SCW) nach einer yorbe- * «tinaten Verzögerungszeit»3· Schaltung -nach Anspruch 1 oder 2, gekennzeichnet durch eine ilen Zentralrechner (lo) umfassende Tel !schaltung (53) sur Erzeugung eines Fehlersignals sowie zu dessen Weiterleitung an die Peripheriesteuerung (11) und zur Umschaltung des Zentralrechners vom laufenden auf ein anderes Programm.*U . Schaltung nach Anspruch 3» dadurch gekennzeichnet, dass in der Peripheriesteuerung mindestens teilweise derselbe Signalkanal für das zweite Signal (SCW) und das Fehlersigvorgesehen ist.Schaltung nach einem oder mehreren der vorstehenden Ansprüche, wobei der Zentralrechner eine arithmetische Einheit (lol), ein Instruktionespeicherregiater (128) zur Übermittlung von Instruktionen an die arithmetische Einheit, sowie einen Adressengenerator (126a) zur Erzeugung eines Steuercodes für die Steuerung des Einspeicherns ■nd Abrufens von Operanden zwischen Speicher und arithmetischer Einheit aufweist» dadurch gekennzeichnet, dass der Speicher eine reservierte Speicheradresse aufweist, dass die Teilschaltungen (41 bzw. 42) für die Erstellung des ersten bzw. zweiten Signals (SCP bzw. SCW) einen Decodierer (2ol) mit zwei Ausgangsleitungen (41,k2) umfassen, der mit dem Register (128) gekuppelt ist, um auf einen besonderen Code anzusprechen, der Teil der Instruktionen ist, sur Erzeugung eines Ausgangssignals, das entweder das erste Signal (SCP) auf einer ersten der beiden Ausgangsleitungen0 0 9 8 1 8 / U 6 0A 37 44o b #»' kl - 137 **7.7.69darstellt, wenn der Code einen Abruf- ttnd Weiterbearbeitungsbefehl darstellte oder das das zweite Signal (SCW) auf dem zweiten der beiden Ausgangskanäle (42) darstellt, wenn der Code einen Abruf - und Wartebefehl darstellt, dass üernss· eine Speichersteuerungseinheit (18) vorgesehen ist, die einen vom und zum Speicher führenden Kanal (33) aufweist, der zum Zentralrechner führt, um die Ausgangssignale an die arithmetische Einheit zu bringen, wenn.die reservierte Speicheradresse verfügbar ist, und dass sehliesslich eine von diesem Ausgangssignal gesteuerte Teilschaltung (45,6o) vorgesehen ist zur Weiterleitung des Steuercodes anstelle der Operanden in die reservierte Speicheradresse.6. Schaltung nach Anspruch 5$ dadurch gekennzeichnet, dass der Zentralrechner ein Adressenregister (2o3) mit insbesondere festem Inhalt aufweist, das die reservierte Speicheradresse beinhaltet, und dass ein von dem Ausgangssignal gesteuertes Satter (2o9) vorgesehen ist zur Weiterleitung des Steuereödes an die durch die reservierte Speicheradresse bestimmte Stell® des Speichers.7· Schaltung nach Anspruch 5 oder β, dadurch gekennzeichnet, dass das Ausgangsteil der Peripherie steuerung zum Zentralrechner feste Verbindungen zum letzteren aufweist, die auch die Ausgangsleitungen in Form eines Kanals zum Anlegen mindestens eines im Zentralrechner erzeugten Steuersignals an die Peripheriesteuerung und feste Leitungen zur Speichersteuerung zur Weiterleitung des Ausgangssignals an die arithmetische Einheit umfassen.009818/1460A 37 Mo b kl - 137 7.7.698· Verfahren zur Anwendung der Schaltung nach einem oder * mehreren der vorstehenden Ansprüche, dadurch gekennzeichnet, dass in den Zentralrechner eine Instruktion für die Erzeugung eines eine Programmänderung fordernden Steuersignals eingegeben wird, dass dieses Steuersignal an die Peripheriesteuerung weitergereicht wird zur Betätigung der Durchführbarkeit der Programmäiiderung, dass ferner im Speicher eine bestimmte Adresse reserviert wird zur Abspeicherung eines Programmwechselbefehls, dass im Zentrallrechner ein diese Adresse darstellender Code gespeichert wird, und dass aufgrund der Veiterreichung des Steuersignals von der Peripheriesteuerung zum Zentralrechner der Programmwechselbefehl ent- - sprechend diesem Code zum Speicher weitergeleitet wird.9· Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass vor der Weiterreichung des Steuersignals mindestens ein Bereitschaftssignal vom Zentralrechner an die Peripheriesteuerung abgegeben wird.009818/U6Ö
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74357268A | 1968-07-09 | 1968-07-09 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1934365A1 true DE1934365A1 (de) | 1970-04-30 |
DE1934365B2 DE1934365B2 (de) | 1973-08-09 |
DE1934365C3 DE1934365C3 (de) | 1974-03-28 |
Family
ID=24989305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1934365A Expired DE1934365C3 (de) | 1968-07-09 | 1969-07-07 | Umschaltanordnung für eine Multiprogramm-Datenverarbeitungsanlage |
Country Status (10)
Country | Link |
---|---|
US (1) | US3614742A (de) |
JP (1) | JPS505542B1 (de) |
BE (1) | BE735858A (de) |
CA (1) | CA932868A (de) |
DE (1) | DE1934365C3 (de) |
FR (1) | FR2012588A1 (de) |
GB (1) | GB1267384A (de) |
MY (1) | MY7300347A (de) |
NL (1) | NL172008B (de) |
SE (1) | SE364383B (de) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725864A (en) * | 1971-03-03 | 1973-04-03 | Ibm | Input/output control |
US3896418A (en) * | 1971-08-31 | 1975-07-22 | Texas Instruments Inc | Synchronous multi-processor system utilizing a single external memory unit |
US3902162A (en) * | 1972-11-24 | 1975-08-26 | Honeywell Inf Systems | Data communication system incorporating programmable front end processor having multiple peripheral units |
US4149244A (en) * | 1976-06-07 | 1979-04-10 | Amdahl Corporation | Data processing system including a program-executing secondary system controlling a program-executing primary system |
US4305124A (en) * | 1978-06-09 | 1981-12-08 | Ncr Corporation | Pipelined computer |
DE2966601D1 (en) * | 1978-06-09 | 1984-03-08 | Ncr Co | A digital pipelined computer |
US4244019A (en) * | 1978-06-29 | 1981-01-06 | Amdahl Corporation | Data processing system including a program-executing secondary system controlling a program-executing primary system |
US4409653A (en) * | 1978-07-31 | 1983-10-11 | Motorola, Inc. | Method of performing a clear and wait operation with a single instruction |
JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
JPS6043535B2 (ja) * | 1979-12-29 | 1985-09-28 | 富士通株式会社 | 情報処理装置 |
US4484274A (en) * | 1982-09-07 | 1984-11-20 | At&T Bell Laboratories | Computer system with improved process switch routine |
US4521847A (en) * | 1982-09-21 | 1985-06-04 | Xerox Corporation | Control system job recovery after a malfunction |
US4870644A (en) * | 1982-09-21 | 1989-09-26 | Xerox Corporation | Control crash diagnostic strategy and RAM display |
US4475156A (en) * | 1982-09-21 | 1984-10-02 | Xerox Corporation | Virtual machine control |
US4550382A (en) * | 1982-09-21 | 1985-10-29 | Xerox Corporation | Filtered inputs |
US4514846A (en) * | 1982-09-21 | 1985-04-30 | Xerox Corporation | Control fault detection for machine recovery and diagnostics prior to malfunction |
US4737907A (en) * | 1982-09-21 | 1988-04-12 | Xerox Corporation | Multiprocessor control synchronization and instruction downloading |
US4532584A (en) * | 1982-09-21 | 1985-07-30 | Xerox Corporation | Race control suspension |
US5023779A (en) * | 1982-09-21 | 1991-06-11 | Xerox Corporation | Distributed processing environment fault isolation |
US4698772A (en) * | 1982-09-21 | 1987-10-06 | Xerox Corporation | Reproduction machine with a chain of sorter modules and a method to perform chaining tasks |
US4689739A (en) * | 1983-03-28 | 1987-08-25 | Xerox Corporation | Method for providing priority interrupts in an electrophotographic machine |
US4589093A (en) * | 1983-03-28 | 1986-05-13 | Xerox Corporation | Timer manager |
US4509851A (en) * | 1983-03-28 | 1985-04-09 | Xerox Corporation | Communication manager |
US4562538A (en) * | 1983-05-16 | 1985-12-31 | At&T Bell Laboratories | Microprocessor having decision pointer to process restore position |
US4574348A (en) * | 1983-06-01 | 1986-03-04 | The Boeing Company | High speed digital signal processor architecture |
US5109348A (en) * | 1987-09-14 | 1992-04-28 | Visual Information Technologies, Inc. | High speed image processing computer |
US5146592A (en) * | 1987-09-14 | 1992-09-08 | Visual Information Technologies, Inc. | High speed image processing computer with overlapping windows-div |
US5129060A (en) * | 1987-09-14 | 1992-07-07 | Visual Information Technologies, Inc. | High speed image processing computer |
US4985848A (en) * | 1987-09-14 | 1991-01-15 | Visual Information Technologies, Inc. | High speed image processing system using separate data processor and address generator |
US5201039A (en) * | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
US5390329A (en) * | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
WO1992003783A1 (en) * | 1990-08-23 | 1992-03-05 | Supercomputer Systems Limited Partnership | Method of implementing kernel functions |
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US5825770A (en) * | 1996-06-06 | 1998-10-20 | Northern Telecom Limited | Multiple algorithm processing on a plurality of digital signal streams via context switching |
US7457671B2 (en) * | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3286239A (en) * | 1962-11-30 | 1966-11-15 | Burroughs Corp | Automatic interrupt system for a data processor |
US3283308A (en) * | 1963-06-10 | 1966-11-01 | Beckman Instruments Inc | Data processing system with autonomous input-output control |
US3406380A (en) * | 1965-11-26 | 1968-10-15 | Burroughs Corp | Input-output data service computer |
US3411143A (en) * | 1966-01-13 | 1968-11-12 | Ibm | Instruction address control by peripheral devices |
US3483521A (en) * | 1966-05-13 | 1969-12-09 | Gen Electric | Program request storage and control apparatus in a multiprogrammed data processing system |
US3479647A (en) * | 1966-06-03 | 1969-11-18 | Gen Electric | Data process system including means responsive to predetermined codes for providing subsystem communication |
US3421150A (en) * | 1966-08-26 | 1969-01-07 | Sperry Rand Corp | Multiprocessor interrupt directory |
-
1968
- 1968-07-09 US US743572A patent/US3614742A/en not_active Expired - Lifetime
-
1969
- 1969-06-03 CA CA053345A patent/CA932868A/en not_active Expired
- 1969-06-12 GB GB29855/69A patent/GB1267384A/en not_active Expired
- 1969-07-07 DE DE1934365A patent/DE1934365C3/de not_active Expired
- 1969-07-08 JP JP44053549A patent/JPS505542B1/ja active Pending
- 1969-07-09 FR FR6923316A patent/FR2012588A1/fr active Pending
- 1969-07-09 SE SE12940/71A patent/SE364383B/xx unknown
- 1969-07-09 NL NLAANVRAGE6910536,A patent/NL172008B/xx not_active IP Right Cessation
- 1969-07-09 BE BE735858D patent/BE735858A/xx not_active IP Right Cessation
-
1973
- 1973-12-30 MY MY347/73A patent/MY7300347A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
NL172008B (nl) | 1983-01-17 |
BE735858A (de) | 1969-12-16 |
JPS505542B1 (de) | 1975-03-05 |
SE364383B (de) | 1974-02-18 |
US3614742A (en) | 1971-10-19 |
NL6910536A (de) | 1970-01-13 |
DE1934365B2 (de) | 1973-08-09 |
GB1267384A (en) | 1972-03-15 |
FR2012588A1 (de) | 1970-03-20 |
CA932868A (en) | 1973-08-28 |
MY7300347A (en) | 1973-12-31 |
DE1934365C3 (de) | 1974-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1934365A1 (de) | Automatische Programmschaltung bei Computern mit Multiprogrammierung | |
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE1942005A1 (de) | Zeitzuteiler fuer Multiprogrammier- und Multiprozessier-Computer | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2554652C3 (de) | Modulare Signalverarbeitungseinrichtung | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE102007025397B4 (de) | System mit mehreren Prozessoren und Verfahren zu seinem Betrieb | |
DE3638572C2 (de) | ||
DE4220698C2 (de) | Verfahren zum Betreiben einer Datenverarbeitungsanlage | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE1200581B (de) | Programmunterbrechungssystem fuer eine elektronische Rechenmaschine | |
DE2457612B2 (de) | Mikroprogrammier-Steuereinrichtung | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
EP0134831A1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
DE3802025C1 (de) | ||
DE2454613C2 (de) | Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE1934441C3 (de) | Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner | |
DE1934439A1 (de) | Datenverarbeitungseinrichtung,insbesondere zur Durchfuehrung von Matrixoperationen | |
DE1774866C3 (de) | Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenen, gesuchten Information | |
DE2234192C2 (de) | Datenverarbeitungsanlage | |
DE2804575A1 (de) | Datenverarbeitungseinrichtung |
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 |