DE1280595B - Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes - Google Patents

Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes

Info

Publication number
DE1280595B
DE1280595B DEJ28741A DEJ0028741A DE1280595B DE 1280595 B DE1280595 B DE 1280595B DE J28741 A DEJ28741 A DE J28741A DE J0028741 A DEJ0028741 A DE J0028741A DE 1280595 B DE1280595 B DE 1280595B
Authority
DE
Germany
Prior art keywords
memory
time
word
stack
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DEJ28741A
Other languages
English (en)
Inventor
Charles Visvald Freiman
Herbert Hellerman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1280595B publication Critical patent/DE1280595B/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

BUNDESREPUBLIK DEUTSCHLAND
DEUTSCHES
PATENTAMT
AUSLEGESCHRIFT
Int. Cl.:
G06f
Deutsche KL: 42 m3 -15/32
Nummer:
Aktenzeichen:
Anmeldetag:
Auslegetag:
P 12 80 595.7-53 (J 28741)
7. August 1965
17. Oktober 1968
Die Erfindung betrifft eine Anordnung zur möglichst parallelen Zuordnung der Operationen zu mehreren Verarbeitungseinheiten für die Lösung eines klammerfreien mathematischen Ausdruckes.
Die üblichen mathematischen Aufgaben bestehen aus einer großen Zahl von einzelnen Operationen, die ausgeführt werden müssen, bevor das Endergebnis ermittelt werden kann. Bei den meisten heutigen Datenverarbeitungsanlagen werden mathematische Aufgaben Schritt für Schritt, durch ein Programm gesteuert, gelöst. Das ist deshalb so, weil diese Datenverarbeitungsanlagen nur eine arithmetische Einheit haben, die jeweils nur eine Operation zu einer bestimmten Zeit ausführen kann.
Zweck der Erfindung ist es, eine Anordnung zu schaffen, die als Zusatz für eine Datenverarbeitungsanlage dienen soll, die mehrere parallel arbeitende Verarbeitungseinheiten enthält. Diese Anordnung soll die einzelnen Teiloperationen so den Verarbeitungseinheiten zuordnen, daß möglichst viele Teil-Operationen der Rechnung parallel ausgeführt werden und damit die Gesamtrechenzeit so kurz wie möglich wird. Eine solche Anordnung ist besonders vorteilhaft, wenn die Datenverarbeitungsanlage zur Lösung von Echtzeitproblemen ausgenutzt wird. Als Datenverarbeitungsanlagen kommen in Frage sogenannte Mehrfachcomputer, die also aus mehreren zusammengekoppelten einzelnen Computern bestehen, oder Datenverarbeitungsanlagen, die eine Steuereinheit und mehrere Verarbeitungseinheiten enthalten.
Die erfindungsgemäße Anordnung verwendet zwar auch wie eine der bekannten Formelübersetzer eine klammerfreie mathematische Übersetzungseinrichtung. Die Erfindung unterscheidet sich jedoch von beiden Formelübersetzern von der Aufgabe her darin von beiden, daß sie nicht nur eine Formelübersetzung ermöglicht, sondern die möglichst parallele Ausnutzung einer Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten ermöglicht.
Die Erfindung betrifft eine Anordnung zur mögliehst parallelen Zuordnung der Operationen zu mehreren Verarbeitungseinheiten für die Lösung eines klammerfreien mathematischen Ausdrucks. Gekennzeichnet ist die Erfindung durch einen Wortspeicher zur gliederweisen Speicherung des mathematischen Ausdrucks, seiner Operationssymbole, der Adressen der Operanden im Operandenspeicher und Resultate im Resultatspeicher, durch einen Kellerspeicher zur Speicherung der Adressen der Glieder in der Reihenfolge ihres Auftretens und der Operationssymbole mit einem Zeitrangmerkmal, durch eine Schaltung zur Steuerung einer ersten Operations-Anordnung zur Lösung eines klammerfreien
mathematischen Ausdruckes
Anmelder:
International Busines Machines Corporation,
Armonk, N. Y. (V. St. A.)
Vertreter:
Dipl.-Ing. A. Bittighofer, Patentanwalt,
7030 Böblingen, Sindelfinger Str. 49
Als Erfinder benannt:
Charles Visvald Freiman,
Pleasantville, N. Y.;
Herbert Hellerman,
Yorktown Heights, N. Y. (V. St. A.)
Beanspruchte Priorität:
V. St. v. Amerika vom 13. August 1964 (389 287)
folge (erster Durchlauf), wobei mittels einer Zeitvergleichsschaltung aus den genannten gespeicherten Angaben für jede Operation nacheinander der früheste Zeitpunkt ihrer Ausführung ermittelbar ist und zur Steuerung einer zweiten Operationsfolge (zweiter Durchlauf), wobei für alle Operationen in umgekehrter Reihenfolge der letzte Zeitpunkt seiner Ausführung bestimmbar ist und wobei die Steuerschaltung ferner die Operationen entsprechend dem frühesten Zeitpunkt, bei gleichen solchen entsprechend dem letzten Zeitpunkt und bei gleichen frühesten und letzten Zeitpunkten der Ausführung entsprechend ihrer Reihenfolge in dem mathematischen Ausdruck den jeweils freien Verarbeitungseinheiten zuführt.
Nachstehend sollen Ausführungsbeispiele der erfindungsgemäßen Anordnung sowie Diagramme zur Veranschaulichung deren Wirkungsweise an Hand der F i g. 1 bis 15 erläutert werden. In den Zeichnungen stellt dar
Fig. IA ein Blockschaltbild eines vorzugsweisen Ausführungsbeispieles des Eingangsteiles der erfindungsgemäßen Anordnung,
F i g. 1B ein Blockschaltbild eines vorzugsweisen Ausführungsbeispiels des Ausgangsteils der erfindungsgemäßen Anordnung,
809 627/1360
3 4
Fig. 2 ein Flußdiagramm des »erstenDurchlaufs«, Rechenarbeit nötig um festzulegen, wie die Befehle in welchem die Anordnung einen mathematischen sortiert werden sollten, damit eine optimale Ausnut-Ausdruck analysiert, um die frühestmöglichen Zeiten zung der Datenverarbeitungsanlage erreicht wird.
zu bestimmen, in welchen gegebene Operationen aus- Durch die Erfindung wird die parallele Verarbeigeführt werden können, 5 tung automatisch gesteuert. Die auszuführenden Ope-
Fig. 3 ist ein Flußdiagramm des »zweiten Durch- rationen werden den Verarbeitungseinheiten derart laufs« zum Analysieren dieser Ausdrücke, wobei die zugeführt, daß eine möglichst vollkommene AusAnordnung den letztmöglichen Zeitpunkt bestimmt, nutzung der Verarbeitungseinheiten erreicht wird,
in welchem eine bestimmte Operation ausgeführt Ehe mit der Erläuterung der erfindungsgemäßen werden kann; " io Anordnung begonnen wird, ist es notwendig, die ver-
F ig. 4 A und 4 B enthalten ein Ausführungsbei- wendete klammerfreie Art der Darstellung der mathespiel für eine Schaltung zur Erzeugung der Zeit- matischen Ausdrücke zu erklären. In dem später signale; noch beschriebenen Ausführungsbeispiel der erfin-
Fig.5A und 5B enthalten in detaillierter Form dungsgemäßen Anordnung werden die mathematiden Eingangsteil der Anordnung, der den eingegebe- 15 sehen Ausdrücke in der sogenannten »Umgekehrten nen mathematischen Ausdruck analysiert und die Polnischen Notation« dargestellt. Diese Art der Darrichtige Reihenfolge für die Operationen bestimmt; stellung soll an Hand des folgenden algebraischen
Fig. 6 ist ein Schaltbild der Eingangseinheit, über Ausdrucks erläutert werden:
die ein mathematischer Ausdruck Zeichen für Zeichen \a*ib*(c+d)\] * \e*tf*(g+h)W fa)
eingegeben wird, um diesen zu analysieren und so L l J1 l v v /J ' v
Adressen für die Zwischenergebnisse in einem Spei- In der Gleichung (a) kennzeichnet * die Multipli-
cher zur Verfügung zu stellen; kation. Die beiden in eckigen Klammern stehenden
Fig. 7A zeigt den Ausgangsteil der Anordnung, Ausdrücke sind relativ kompliziert, und die Operader die Zuordnung der verschiedenen Operationen tionen zur Lösung dieser Ausdrücke müssen in einer zu den Verarbeitungseinheiten steuert, in detaillier- 25 bestimmten Reihenfolge vorgenommen werden. In ter Form; der Umgekehrten Polnischen Notation wird ein sol-
Fig. 7B zeigt den Inhalt der Decoder der eher Ausdruck ohne ecKige oder runde Klammern in
F i g. 7 A; der folgenden Weise geschrieben:
F ig. 8 ist ein Schaltbild der jeder Verarbeitungs- abcd + **efgh + ***:: . Cb) einheit zugeordneten Steuerungen, die bestimmt, ob 30
die Operanden einer ausgewählten Operation verfüg- In diesem Ausdruck wird :: benutzt, um das Ende bar sind und die Verarbeitungseinheit beginnen des Ausdrucks anzuzeigen. In der Umgekehrten Polkann; nischen Notation sind die Operationssymbole den
F i g. 9 zeigt ein Schaltbild des Ergebnisspeichers, links davon stehenden Operanden zugeordnet. Somit
den Kreuzschienenwähler, die verschiedenen Verar- 35 ist in dem Ausdruck (b) das erste +-Operationssym-
beitungseinheiten und die Operandenregister; bol den Operanden c und d zugeordnet und das erste
F i g. 12 zeigt ein Zeitdiagramm mit den Prüf- *-Operationssymbol als ersten Operanden dem Er-
impulsena, α-verzögert und Prüfimpuls b; gebnis von c+d und als zweiten Operanden b zu-
Fig. 13 bis 15 zeigen Beispiele mathematischer geordnet. Das zweite *-Symbol ist dem gemeinsamen
Ausdrücke in verschiedenen Darstellungen und wie 40 Ergebnis aus der vorhergehenden +- und *-Opera-
diese in der erfindungsgemäßen Anordnung verarbei- tion und als zweitem Operanden α zugeordnet. Die
tet werden. zweite Gruppe von Operanden-Symbolen, d.h. ef gh
Eine gegebene mathematische Aufgabe oder ein und die dieser Gruppe zugeordnete Gruppe von Opealgebraischer Ausdruck kann mehrere Operationen rationssymbolen + * * * sind entsprechend miteinenthalten, die zur gleichen Zeit ausgeführt werden 45 ander verknüpft. Dem letzten *-Operationssymbol, können. Die Möglichkeiten für eine solche parallele ganz rechts, sind als Operanden die zwei Gruppen-Ausführung können am besten veranschaulicht wer- ausdrücke zugeordnet, da der Ausdruck (efgh + * *) den, indem der mathematische Ausdruck als Baum einen der Operanden bildet. Dieses letzte Multiplidargestellt wird, wobei alle Ausgangsdaten in der kationssymbol entspricht dem Multiplikationszeichen oberen Reihe erscheinen und jede Operation durch 50 zwischen den zwei in eckigen Klammern stehenden einen Verzweigungspunkt dargestellt wird. Jede solche Ausdrücken der Darstellung (a). Jeder übliche alge-Verzweigung ist natürlich das Ergebnis einer Teil- braische Ausdruck kann in Umgekehrter Polnischer operation, das in einer nachfolgenden Operation wei- Form geschrieben werden. Die Polnische Notation ter benutzt werden kann. Beispiele von mathema- ist z.B. in dem Buch »A Programming Language« tischen Ausdrucken und Bäumen sind in den Fig. 13 55 von K. E. Iverson, erschienen im Verlag John bis 15 dargestellt. Die Betrachtung der Gleichungs- Wiley and Son, 1962, beschrieben,
bäume zeigt, daß man durch die Verzweigungs- Aus der obigen Beschreibung der Umgekehrten punkte horizontale Linien ziehen kann. Operationen, Polnischen Notation erkennt man, daß die Ausdie einer Horizontalen zugeordnet sind, können zur drücke auch in anderer Form geschrieben werden gleichen Zeit ausgeführt werden. Ein algebraischer 60 können, z. B. derart, daß die Operationssymbole vor Ausdruck dieser Art kann natürlich durch den Pro- den Operanden stehen. Die Erfindung ist nicht auf grammierer analysiert werden, um zu bestimmen, die Anwendung der Umgekehrten Polnischen Nqwelche Operationen parallel ausgeführt werden kön- tation beschränkt.
nen. Eine solche Analyse ist aber sehr zeitraubend, Die der Wirkungsweise der erfindungsgemäßen An-
und selbst wenn dieses Ergebnis vorliegt, ist noch 65 Ordnung zugrunde liegende Theorie besteht darin,
eine beträchtliche Programmierungsarbeit erforder- daß beim nacheinander erfolgenden Abtasten eines
lieh, ehe ein Befehl der Datenverarbeitungsanlage zu- gruppenartig aufgeteilten mathematischen Ausdrucks
geführt werden kann. Darüber hinaus ist noch viel ohne Klammern, wie z. B. der Umgekehrten Polni-
5 6
sehen Notation, aufeinanderfolgende Gruppen von liehen als auch der letztmöglichen Zeiten, zu welchen Operanden und Operationssymbolen festgestellt wer- bestimmte Operationen ausgeführt werden können, den, wobei jeweils ein Satz von Operanden einem be- In F i g. 1 ist ein Blockschaltbild des Eingangsstimmten Operationssymbol zugeordnet ist, und daß teiles der Anordnung dargestellt, welchem ein algeferner eine bestimmte Operation das Ergebnis einer 5 braischer Ausdruck in Umgekehrter Polnischer Noder vorhergehenden Operationen als einen seiner tation Zeichen für Zeichen nacheinander zugeführt Operanden benötigt. Es ist also möglich festzulegen, wird. Diese Eingangsschaltung analysiert den Ausweiche Befehle sofort ausgeführt werden müssen und druck und erstellt eine Liste mit den frühest- und den welche Befehle erst ausgeführt werden können, wenn letztmöglichen Zeiten im Datenzugriffszyklus, wähdie vorhergehenden Befehle ausgeführt sind. io rend welcher die einzelnen Operationen zur Lösung
In Fig. 13C ist ein mathematischer Ausdruck des Ausdrucks ausgeführt werden können,
in der üblichen Darstellung, in Fig. 13B in Umge- Jedes zugeführte Zeichen ist entweder eine Speikehrter Polnischer Notation und in Fig. 13A als cheradresse, in deren Speicherplatz ein Operand entBaum dargestellt. Man erkennt, daß die Additionen halten ist oder ein Operationscode. Einer der Opeinnerhalb der Klammern des Teiles 3, d. h. g+h, 15 rationscode ist der Endbefehl (::). Der Eingabeteil e+f, c+d und a+b, gleichzeitig ausgeführt wer- der Anordnung lädt den mathematischen Ausdruck den können. Dies ergibt sich aus dem Baum der in einen Wortspeicher 12 und analysiert diesen, um Fig. 13A. Die Ergebnisse dieser vier Operationen die Möglichkeiten der parallelen Ausführung zu besind, in der Baumdarstellung der Fig. 13A mit A, stimmen. Die Anordnung enthält die Eingangsschal- B, C und D bezeichnet. Die F i g. 13 B zeigt, daß die 20 tung 10, die dazu dient, einen mathematischen Aus-Operationssymbole C, B und A, die unmittelbar den druck Zeichen für Zeichen jeweils zu einer Zeit ein-Operandengruppen ghefcd und a, b folgen, die Er- zugeben und die Zeichen zu analysieren, ob sie gebnisse der Fig. 13A unmittelbar, d. h. in der Zeit Daten, d.h. eine Speicheradresse, ein Operations- tl, wie in dem Baum der Fig. 13A dargestellt, aus- symbol oder das spezielle Operationssymbol »Ende« geführt werden können. Die Operation E kann nur 25 darstellen. Die Eingangsschaltung 10 enthält außerwährend ti und die Operationen F und G können dem Steuerungen zur Eingabe des mathematischen nur während der Zeiten i3 und t\ ausgeführt wer- Ausdrucks in den Wortspeicher 12, so daß die Opeden. Aus dem Baum der Fig. 13A ergibt sich, daß rationssymbole in dem Feld/1 und die Datenadresvor der Operation E die Ergebnisse aus den Opera- sen in dem Feld B gespeichert sind, wobei im letztionen C und D vorliegen müssen. Ebenso müssen 30 teren Fall eine Null in das entsprechende ^4-FeId einvor Ausführung der Operation F die Ergebnisse der gegeben wkd. Aus der nachfolgenden Beschreibung OperationenB und E vorhanden sein. Ehe die Ope- der Wirkungsweise an Hand der Fig. 14A bis 14F, rationG ausgeführt werden kann, müssen die Er- insbesondere der Fig. 14D, erkennt man, daß die gebnisse der Operationen F und A vorliegen. Diese Eingangsschaltung 10 automatisch eine Adresse in Erkenntnisse sind aus der Umgekehrten Polnischen 35 dem Ergebnisregister 14 angibt, wenn ein Operations-Notation der Fig. 13B ablesbar, weil man sieht, daß symbol in dem A-FeId des Wortregisters 12 gespeider vor der Operation E vorangehende Operand das chert ist. Die Eingangsschaltung 10 lädt die Anord-Ergebnis der Operation C ist und daß der nächste nung mit dem rohen mathematischen Ausdruck, so Operand davor das Ergebnis der Operation D ist. daß in dem B-Feld des Wortspeichers 12 in aufein-Durch Betrachtung eines Ausdrucks in Umgekehrter 40 anderfolgenden Speicherplätzen die Daten oder Ope-Polnischer Notation ist es demnach möglich, die rationssymbole erscheinen oder genauer die Adressen Zeitspanne zu bestimmen, innerhalb der eine Ope- der Operanden im Hauptspeicher und die jedem ration ausgeführt werden muß. Operationssymbol entsprechenden Adressen im Er-
Somit sind im Beispiel der Fig. 13 die Operatio- gebnisspeicher 14. In der Fig. 14D stellen in der
nen^l, B, C und D in der ersten Zeitperiode aus- 45 Spalte J3 die kleinen Buchstaben die Adressen der
führbar, die Operation E in der zweiten Zeitperiode, Operanden im Hauptspeicher und die großen Buch-
die Operation/7 in der dritten Zeitperiode und die stäben die Adressen der Ergebnisoperanden in dem
Operation G in einer vierten Zeitperiode. Ergebnisspeicher 14 dar, die den Operationssymbo-
Eine der Aufgaben der Anordnung gemäß der vor- len zugeordnet sind, welche im ^4-Feld des Wortspeiliegenden Erfindung ist es, diese gerade genannten 50 chers 12 erscheinen. Die geeigneten Steuerungen wer-Zeitperioden, welche die frühestmöglichen Zeiten den eingestellt, wenn ein Endsymbol auftritt und von sind, zu welchen eine gegebene Operation ausgeführt der Eingangsschaltung 10 festgestellt wird. Dadurch werden kann, zu erhalten. wird nachfolgend die Analyse der Daten bewirkt.
Außerdem bestimmt die erfindungsgemäße An- Der Rest der Schaltung in Fig. IA dient dazu, Ordnung die letztmögliche Zeit, zu welcher eine ge- 55 den algebraischen Ausdruck, der gerade aus der Eingebene Operation ausgeführt werden kann. Dies ge- gangsschaltung 10 in den Wortspeicher 12 eingegeschieht dadurch, daß der mathematische Ausdruck ben wurde, zu analysieren und die verbleibenden Feiein zweites Mal analysiert wird. Aus dem Beispiel der der C, D, E und F des Wortspeichers 12 zu füllen. Fig. 13, insbesondere dem Baum der Fig. 13A, Die FelderC, D und E werden während des ersten erkennt man, daß die Operation, obwohl sie schon 60 Durchlaufs der Anordnung gefüllt. Dabei werden zur Zeit ti ausgeführt werden kann, auch zur Zeit ti hintereinander die Daten- und Ergebnisadressen aus erfolgen kann und daß sie trotzdem nicht die Aus- dem B-Feld des Wortspeichers 12 durch eine Torführung der Operation F aufhält. Ebenso kann die schaltung geschickt, und gleichzeitig bestimmt das Operation A zur Zeit ti, aber auch noch zur Zeit t3 /1-Feld des Wortspeichers, ob eine gegebene Adresse ausgeführt werden, ohne daß die Operation G zur 65 eine Daten- oder eine Operationsadresse ist. Wenn Zeit t4 verzögert wird. Die erfindungsgemäße An- Daten vorhanden sind, so werden diese nacheinordnung analysiert den Ausdruck in Polnischer No- ander in einen Kellerspeicher 16 eingegeben, bis ein tation und erstellt eine Liste sowohl der frühestmög- Operationssymbol auftritt. An dieser Stelle werden
die letzten zwei Datenadressen, die im Kellerspeicher 16 gespeichert sind, nacheinander in die Felder C und D des Wortspeichers 12 in die Adresse gebracht, die dem Operationssymbol zugeordnet ist. Zur gleichen Zeit wird die Adresse des Ergebnisspeichers 14, die im 2J-FeId des Wortspeichers 12 im Speicherplatz des Operationssymbols gespeichert ist, in den Kellerspeicher 16 gebracht und in der Spalte E, an der gleichen Adresse, als frühestmögliche Zeit eine Eins gespeichert. Auf diese Weise wird die Ergebnisadresse des jeweiligen Operationssymbols in den Kellerspeicher 16 als Adresse eines Operanden zurückgespeichert, die in Verbindung mit nachfolgenden Operationssymbolen benutzt werden.
Alle Zeichen im .B-Feld des Wortregisters 12, die Daten zugeordnet sind, bewirken, daß im ersten Durchlauf eine Null im entsprechenden 2?-Feld des Wortregisters 16 gespeichert wird. Jedesmal, wenn ein Operationssymbol festgestellt wird, wird der frühestmögliche Zeitpunkt für die Ausführung der Operation um Eins erhöht und der neue Wert in das entsprechende S-FeId des Wortregisters 12 gebracht.
Der mit Zeiten-Vergleichsschaltung bezeichnete Block 18 wird im ersten Durchlauf und im zweiten Durchlauf benutzt. Im zweiten Durchlauf werden die frühestmöglichen Zeiten, die im U-FeId des Wortregisters 12 gespeichert sind, ausgenutzt, um die letztmöglichen Zeiten zu ermitteln, in welchen eine gegebene Operation ausgeführt werden kann. Aufgabe der Zeiten-Vergleichsschaltung 18 ist es; die ermittelten frühesten und spätesten Zeiten für eine - bestimmte Operation zu vergleichen und zu bestimmen, welches die größere ist, und die richtigen Zeiten in die E- und i*-Felder des Wortregisters 12 einzugeben.
Ein Block 20, der mit Steuerung bezeichnet ist, enthält die verschiedenen Tprschaltungen, Zähler, Decoder und andere logische Schaltungen. Die Steuerung 20 hat die verschiedenen Verzweigungen auszuführen. Die Steuerung 20 liefert außerdem Steuerimpulse an den Block 22, der die Zeitsteuerung enthält. Die Zeitsteuerung 22 ist in den Fig. 4A und 4 B, die später noch beschrieben werden soll, in Einzelheiten dargestellt.
Der erste Durchlauf soll an Hand der F i g. 2, welche eine Flußtafel für den ersten Durchlauf darstellt, näher erläutert werden. Bei der Beschreibung der Fi g. 2 wird gelegentlich auf bestimmte Teile der Fig. 5A und 5B Bezug genommen. Der Kellerspeicher 16 besteht aus zwei Teilen für jeden Speicherplatz. Der erste oder Adreßteil enthält die Adresse für die Daten, wie er im B-Feld des Wortspeichers 12 gespeichert ist. Diese Adresse ist entweder eine Adresse des Ergebnisspeichers 14 oder des Hauptspeichers. Der zweite Teil jedes Speicherplatzes des Kellerspeichers 16 wird zur Speicherung der Ausführungszeit benutzt und enthält entweder die frühestmögliche oder die letztmögliche Zeit, während welcher eine Operation ausgeführt werden kann. Steuerschaltungen sind vorgesehen, um den Adressenteil eines jeden im Kellerspeicher 16 gespeicherten Wortes oder die Ausführungszeit, die in einem bestimmten Speicherplatz des Kellerspeichers 16 gespeichert ist, zusammen mit einer zugeordneten Adresse zu analysieren oder auszulesen.
In der oberen rechten Ecke jedes Blockes der Fig. 2 erscheint eine Nummer, die jeden Block kennzeichnet und in der vorliegenden Beschreibung der Einfachheit halber immer benutzt wird. Jeder der Blöcke stellt einen Schritt oder mehrere Schritte dar, welche durch die Steuerung 20 und die Zeitsteuerung 22 in Verbindung mit dem Rest der Anordnung benutzt werden, um die verschiedenen Operationen auszuführen. Block 1, der »Wortauswahlsteuerung auf Eins einstellen« bedeutet, wird durch ein Signal CL-I aus der Zeitsteuerung 22 ausgeführt, wenn ein End-Zeichen am Ende der Eingabe auftritt. Mit anderen Worten, der Block 1 zeigt an, daß der eingegebene Ausdruck zu Ende ist und in den Feldern A und B des Wortregisters 12 gespeichert ist und die Anordnung nun fertig für die Analyse dieses Ausdrucks ist. Aufgabe dieses ersten Blockes ist es, die Wortauswahlsteuerung 62 (Fig. 5C) des Wortspeichers 12 auf den ersten Speicherplatz einzustellen, oder mit anderen Worten, das erste Zeichen des Ausdrucks zu bestimmen. Der Block 2 prüft .das .4-FeId des jeweiligen Wortes in dem Wortspeicher 12, auf welches die Wortauswahlsteuerung gerade eingestellt ist. Dieser Block bestimmt, ob das darin gespeicherte Zeichen ein End- oder Operationssymbol oder ein Datenzeichen ist. Es sei zunächst angenommen, daß das im ^4-Feld des Wortspeichers 12 geprüfte Zeichen ein Datenzeichen ist; in diesem Fall wird zum Block 3 übergegangen. Dieser Block bewirkt, daß das ausgewählte 23-Feld des Wortspeichers 12 in das Adressenfeld des Eingabe-Ausgabe-Registers 68 (Fig. 5A)' des Kellerspeichers 16 gebracht
3Q wird. Gleichzeitig mit Block 3 stellt der Block 4 den Zeitzähler des Eingabe-Ausgabe-Registers 68 des Kellerspeichers 16 auf Null. Am Ende der Schritte 3 und 4 ist also eine Datenadresse im Adressenfeld des Eingabe-Ausgabe-Registers 68 des Kellerspeichers 16, und die Zeit im Eingabe-Ausgabe-Register 68 steht auf Null. Der nächste Schritt wird durch Block 5 gekennzeichnet, bei welchem die augenblickliche Information im Eingabe-Ausgabe-Register 68 des Kellerspeichers 16 in den oberen Speicherplatz des KeI* lerspeichers 16 gespeichert wird. Der Block 6 schaltet die Wortauswahlsteuerung 62 um Eins weiter und wählt somit das nächste Wort im Wortspeicher 12 aus. Es wird dann wieder zum Block 2 zurückgegangen, bei welchem das A-FeId des Wortspeichers 12 wieder gelesen wird. Es wird angenommen, daß im .(4-FeId ein Operationssymbol steht. In diesem Fall schreitet die Anordnung zum Block 7 weiter.
Dieser Block bewirkt, daß das Adressenfeld, das in den Speicherplätzen 1 und 2 des Kellerspeichers 16 gespeichert ist, nacheinander in die Felder C und D des Wortspeichers 12 in den Speicherplatz, in welchem das Operationssymbol festgestellt wurde, eingegeben wird. Gleichzeitig mit dem Block 7 wird der Block 8 wirksam, welcher zur Folge hat, daß die in den zugeordneten Zeitfeldern der Positionen 1 und 2 des Kellerspeichers 16 in die Zeitvergleichsschaltung 18 eingegeben wird. Die Zeitvergleichsschaltung 18 bestimmt, welche der Zeiten die größere ist und bewirkt, daß diese mit Block 9 in den Zeitzähler 74 eingegeben wird. Dieser Block bewirkt, daß zu dem größeren der zwei Werte in den Zeitfeldern der Positionen 1 und 2 des Kellerspeichers 16 in der laufenden Operation Eins addiert wird. Durch Block 10 wird diese erhöhte Zahl in dem is-Feld des Wort-Speichers 12 und außerdem in das Zeitfeld des Eingabe-Ausgabe-Registers 68 des Kellerspeichers 16 eingegeben. Durch Block 11 wird dann das 5-Feld des Wortspeichers 12 der Adresse, auf welche die
9 10
Steuerschaltung gerade eingestellt ist, in das Adres- des Wortregisters 12 ein Operationssymbol enthält, senfeld des Eingabe-Ausgabe-Registers 68 des KeI- Wenn die bistabile Kippschaltung t infolge eines gelerspeichers 16 gebracht. Der nächste Block 12 er- rade geprüften Operationssymbols bereits auf Eins zeugt einen doppelten Aufwärtszyklus des Keller- eingestellt wurde, so bleibt sie natürlich im Einsspeichers 16. Es folgt dann Block 5, welcher einen 5 Zustand.
Abwärtszyklus auslöst. Die Inhalte des Kellerspeichers 16 im zweiten
Nach dem Auftreten eines Operationssymbols Durchlauf sind in F i g. 14 F dargestellt. In dieser wurden die Adressen der zwei letzten Operanden, Darstellung ist besonders angegeben, wenn die biob sie nun Daten oder Ergebnisse darstellen, ge- stabile Kippschaltung t in die Eins- oder Null-Stelprüft, die Zeiten der beiden Operanden verglichen io lung eingestellt wird. Die Einstellung der bistabilen und die größere bstimmt. Auf diese Weise ist, wenn Kippschaltung t in den Eins-Zustand bewirkt, daß die größere Zeit z. B. 4 ist, dieser Operand nicht vor der Kellerspeicher 16 in den folgenden Schritten aufdem vierten Zeitzyklus verfügbar. Demzufolge kann geladen wird, bis wieder ein Datenzeichen auftritt, eine Operation, die das Ergebnis einer Operation Umgekehrt wird aus dem Kellerspeicher 16 ausgelebenutzt, welche in der Zeit 4 ausgeführt wird, nicht 15 sen, wenn die bistabile Kippschaltung t sich in dem früher als zur Zeit 5 ausgeführt werden. Somit wird Null-Zustand befindet, bis wieder ein Operationsdie Zeit 4 festgestellt und um Eins erhöht. Die Adresse symbol auftritt.
des Ergebnisses für diesen Operanden zusammen mit Es wird nun angenommen, daß sich die Anordder Zeit 5 wird im Kellerspeicher 16 gespeichert. Es nung im Zustand des Blockes 3 (F i g. 3) befindet und wird nun zum Block 6 zurückgekehrt, in welchem 20 daß ein Operationssymbol im ,4-FeId des Wortspeidie Wortauswahlsteuerung wieder zur nächsten Po- chers 12 steht; dabei wird ein Aufwärtszyklus des sition des Wortspeichers 12 fortschaltet. Danach wird Kellerspeichers 16 ausgelöst, wodurch das nächste zum Block 2 fortgeschritten, in welchem das ,4-FeId im Kellerspeicher 16 enthaltene Wort in das Einwieder geprüft wird, und diesmal soll angenommen gabe-Ausgabe-Register 68 des Kellerspeichers 16 gewerden, daß ein Endsymbol festgestellt wird. Das 25 bracht wird. Dieser Schritt wird im Block 4 voll-Auftreten dieses Endsymbols bewirkt, daß zum drit- zogen. Da diese Position des Wortspeichers 12 ein ten Teil des Eingabezyklus fortgeschritten wird, näm- Operationssymbol enthält, wird zum Block 5 weiterlich zum zweiten Durchlauf. gegangen, in welchem der Inhalt des Zeitfeldes des
Der zweite Durchlauf ist in der Flußtafel der Eingabe-Ausgabe-Registers 68 des Kellerspeichers 16
F i g. 3 dargestellt. Die Art der Darstellung der F i g. 3 30 zum Zeitzähler gebracht wird. Im Block 6 wird der
gleicht der der F i g. 2, auch hier sind die Blöcke in Zeitzähler um Eins erniedrigt, wobei angenommen
der rechten oberen Ecke mit einer Nummer gekenn- wird, daß sich die bistabile Kippschaltung t augen-
zeichnet. blicklich in seiner Null-Stellung befindet. Es wird
Wie bereits oben erwähnt, bewirkt das Auftreten zum Block 7 weitergegangen, in welchem der Inhalt eines Endsymbols in dem .4-FeId des Wortregisters, 35 des Zeitzählers in das Zeitfeld des Eingabe-Ausgabedaß der Block 1 der Fig. 3 wirksam ist. Dieser Block Registers 68 des Kellerspeichers 16 gebracht wird, stellt die bistabile Kippschaltung t der in Fig. 5B Wenn die bistabile Kippschaltung t sich im Zustand dargestellten logischen Schaltung in den Null- Eins befunden hätte, so wäre über den Block 8 wei-Zustand. Es wurde oben erwähnt, daß sich die Wort- tergegangen worden, der zuerst den vorherigen Zeitauswahlsteuerung 62 am Ende des ersten Durch- 4° stand in das Zeitfeld im Kellerspeicher 16 durch einen laufs in der Stelle des Wortspeichers 12 befindet, die Abwärtszyklus gespeichert hätte, ehe das neue Zeitdas Endsymbol des mathematischen Ausdrucks ent- feld aus dem Zeitzähler in das Eingabe-Ausgabehält. Im zweiten Durchlauf muß deshalb schrittweise Register 68 des Kellerspeichers 16 gebracht worden zum Anfang des mathematischen Ausdrucks zurück- wäre. Es wird nun zum Block 8 weitergegangen, welgegangen werden. Deshalb wird im Block 2 die Wort- 45 eher den zweiten Abtastzyklus auslöst. Wenn die biauswahlsteuerung um Eins erniedrigt. Danach wird stabile Kippschaltung t sich gerade im Null-Zustand die Einstellung der Wortauswahlsteuerung 62 über- befindet, wird zum Block 8 übergegangen, welcher prüft. Wenn die Wortauswahlsteuerung 62 auf die die bistabile Kippschaltung t in den Eins-Zustand Adresse Null eingestellt ist, so würde das bedeuten, stellt und wiederum zum Block 2 zurückkehrt. Wenn daß der zweite Durchlauf beendet ist und daß die 5° sich andererseits die bistabile Kippschaltung ί beAnordnung beginnen kann, der Mehrfachdatenver- reits im Eins-Zustand befunden hätte, so wäre unter arbeitungsanlage Befehle zuzuführen. Wenn anderer- Umgehung des Blockes 8 direkt zum Block 2 überseits die Wortauswahlsteuerung 62 nicht Null ist, gegangen worden. Man sieht also, daß immer dann, wird zum Block 3 weitergegangen. In diesem Schritt wenn ein Operationssymbol im Λ-Feld festgestellt wird die im Zeitenfeld des Eingabe-Ausgabe-Registers 55 wird, die bistabile Kippschaltung t in den Eins-68 des Kellerspeichers 16 erscheinende Zahl in das Zustand gebracht wird, außer natürlich, wenn es sich F-FeId des Wortregisters 12 eingegeben. Nach dieser schon in diesem Zustand befindet.
Operation wird geprüft, ob der augenblickliche In- Wenn man annimmt, daß sich im ,4-FeId des Worthalt des ,4-Feldes des Wortspeichers 12 eine Null registers 12 Daten befinden und die bistabile Kippenthält, d. h., das B-Feld enthält eine Datenadresse. 60 schaltung t sich im Null-Zustand befindet, wird di-Außerdem wird geprüft, ob die bistabile Kippschal- rekt vom Block 4 zurück zum Block 2 weitergegantung t auf Eins eingestellt ist. Angenommen, diese gen. Dies ist der Fall, wenn eine Folge von Daten-Bedingung besteht, so wird zum Block 3 α weiterge- kennzeichen auftreten. Die Inhalte des Kellerspeigangen, welcher die bistabile Kippschaltung t in den chers 16 werden nur hindurchgelassen und die Zeit Null-Zustand bringt, und zum Block 2 weitergegan- 65 in der höchsten Position des Kellerspeichers 16 des gen. An dieser Stelle sollte erwähnt werden, daß die davorliegenden Zeichens wird in dem F-FeId des Einstellung der bistabilen Kippschaltung t nach Eins Wortregisters für das nachfolgende Zeichen gedann stattfindet, wenn das gerade geprüfte ,4-FeId speichert.
Aus der Beschreibung der Flußtafel der Fig. 3 für den zweiten Durchlauf erkennt man, daß dieser Durchlauf mit der größten im ersten Durchlauf bestimmten Zeit beginnt. Der zweite Durchlauf bestimmt die letztmöglichen Zeiten, während welcher jede vorhergehende Operation beendet sein muß. Die Vorteile, die sich aus der Anwendung des zweiten Durchlaufes ergeben, werden durch die nachfolgende Beschreibung eines weiteren Anwendungsbeispieles,
16 wird außerdem mit dem Ausgangssignal von der Und-Schaltung70 der Fig. 5B einer Und-Schaltung 120 zugeführt, wodurch festgestellt wird, ob das .,4-FeId des Wortspeichers 12 eine Null enthält und die bistabile Kippschaltung t sich im Eins-Zustand befindet. Die Ausgangssignale der monostabilen Multivibratoren 18, 20 und 23 werden in ähnlicher Weise mit dem Ausgangssignal der bistabilen Kippschaltung t oder dem Ausgangssignal des Wortaus-
das in den Fig. 15A bis 15G dargestellt ist, ver- io wahldecoders verglichen, um festzustellen, ob ein
anschaulicht werden. Operationssymbol oder ein Datenzeichen vorliegt.
An Hand der Fig. 4A und 4B soll nun die Zeit- Diese Verzweigungspunkte der Zeitsteuerung ent-
steuerung der erfindungsgemäßen Anordnung er- sprechen den Verzweigungen im Flußdiagramm der
läutert werden. Aus diesen Figuren ergibt sich, daß Fig. 2 und 3.
die Abschnitte dieses Taktgebers aus je einem mono- 15 Bevor zum Schaltbild der Fig. 5 übergegangen stabilen Multivibrator bestehen, der über einen ersten wird, soll die Eingangsschaltung 10 der erfindungs-Ausgang einen Zeitimpuls abgibt und von dessen gemäßen Anordnung beschrieben werden, welche die zweitem Ausgang ein Zeitschaltimpuls zum Eingang Aufgabe hat, den mathematischen Ausdruck in die des nächsten Abschnitts weitergeleitet wird. Die Felder A und B des Wortspeichers 12 einzugeben, monostabilen MultivibratorenMMl bis MM3 sind 20 Diese in Fig. 6 dargestellte Schaltung enthält ein mit einer Eingangsschaltung verbunden, über welche Befehlsregister 50, dem nacheinander der algeein algebraischer Ausdruck Zeichen für Zeichen ein- braische Ausdruck Zeichen für Zeichen zugeführt gegeben wird, bis das Ende eines solchen Ausdrucks wird. Die Zeichen werden in dieses Register synchron festgestellt wird und die Taktgeberstufe MM4 erregt eingegeben, d. h., in festen Zeitabständen wird je ein wird. Die notwendige Verzweigung im Eingang des 25 Zeichen in das Befehlsregister gebracht. Mit jedem Taktgebers wird durch die Ausgangssignale des De- empfangenen Zeichen wird ein »Zeichen empfangen«- coders des Befehlsregisters gesteuert, welche zu- Signal erzeugt, das über das Verzögerungsglied 52 sammen mit den Ausschaltimpulsen des mono- (s. Fig. 4A) dem monostabilen Multivibrator MMl stabilen Multivibrators MMl den Und-Schaltungen zugeführt wird. Der Rückstelleitung R zum Befehls-30, 32 und 34 zugeführt werden. Abhängig davon, 30 register 50 werden, wie den übrigen Rückstelleitungen welche dieser Und-Schaltungen ein Ausgangssignal der logischen Schaltung, z. B. den Rückstelleitungen abgibt, wird einer der monostabilen Multivibratoren der bistabilen Kippschaltungen, jedesmal, wenn die MM2 bis MM 4 erregt. Die Erregung des mono- Anordnung neu eingeschaltet wird, Rückstellimpulse stabilen Multivibrators MM4 löst den ersten Durch- zugeführt, um sicher zu sein, daß alle Schaltungsteile lauf aus. Die Abschaltung des monostabilen Multi- 35 in den Null-Zustand zurückgestellt sind. Der Ausvibrators MMS in Verbindung mit dem Ausgangs- gang des Befehlsregisters 50 ist mit dem Befehlssignal aus dem Wortauswahldecoder bestimmt den registerdecoder 54 verbunden, der auf einer von drei Hauptverzweigungspunkt für den ersten Durchlauf. Leitungen ein Ausgangssignal erzeugt, abhängig
Der Abschaltimpuls aus dem monostabilen Multi- davon, ob ein Operationssymbol, ein Endsymbol oder vibrator MMS wird mit einem der drei Ausgangs- 40 ein Datenzeichen sich augenblicklich im Befehlssignale aus dem Wortauswahldecoder 64 den Und- register befindet. Mit 56 ist ein Ergebnisregister-Schaltungen 36, 38 und 40 zugeführt, und zwar ab- Adressengenerator bezeichnet, der die Ergebnisse hängig vom jeweiligen Ausgangssignal des Decoders. verschiedener Operationen bestimmten Speicher-Wenn im ^t-FeId ein Operationssymbol festgestellt platzen im Ergebnisspeicher 14 zuordnet. Dieser wird, so wird die Und-Schaltung 36 erregt, die eine 45 Ergebnisspeicher-Adressengenerator 56 kann zusätz-Taktimpulsfolge auslöst, die von den monostabilen lieh Speicherplätze des Hauptspeichers zuteilen. Die
Multivibratoren MM 6 bis MMH erzeugt wird. Wenn ein Datenzeichen festgestellt wird, so wird die Und-Schaltung 38 erregt, und die Impulsfolge wird über die Oder-Schaltung 42 direkt dem monostabilen Multivibrator MM12 zugeführt. Wird ein Endsymbol festgestellt, so wird die Und-Schaltung 40 er- "'" regt und direkt zum monostabilen Multivibrator MM14 übergegangen, der den ersten Zeitimpuls für den zweiten Durchlauf abgibt.
Die Zeitsteuerungen für den zweiten Durchlauf, d.h. die monostabilen MultivibratorenMM14 bis MM24, sind in Fig. 4B dargestellt. Dieser Teil der Schaltung enthält mehrere Verzweigungspunkte, z. B.
weiteren Einzelheiten der Teile der logischen Schaltung werden später an Hand der Zeitfolgetafel näher erläutert werden.
Nachfolgend sollen die wesentlichen Teile der Fig.5A und 5B erläutert werden. Es sei bemerkt, r daß alle Steuerungen im einzelnen an Hand der Zeitfolgetafel erläutert werden. Der Wortspeicher 12 enthält Speicherplätze 60 und eine Wortauswahlsteuerung 62, die einen bestimmten Speicherplatz des Wortspeichers 12 ansteuert. Der Wortspeicher 12 besteht aus sechs Speicherteilen für jeden Speicherplatz, die mit A-, B-, C-, D-, E- und F-FeId bezeichnet sind. Vor der Analyse des zu lösenden mathe
eine hinter dem monostabilen Multivibrator MM14, 60 matischen Ausdrucks werden die einzelnen Glieder dessen Ausgangssignal mit der Null-Stellung der dieses Ausdrucks im Wortspeicher 12 zwischen^ Wortauswahlsteuerung einer UND-Schaltung zugeführt wird, um festzustellen, ob sich diese Steuerung
in der Null-Stellung oder in irgendeiner anderen
gespeichert. Das -4-Feld enthält den Operationscode, der angibt, ob ein Zeichen entweder ein Datenzeichen, ein Operationssymbol oder ein Endsymbol
Stellung befindet. Dadurch wird festgestellt, ob der 65 darstellt. Das 5-Feld enthält die Adressen entweder zweite Durchlauf beendet ist oder ob der monostabile der Daten oder des Ergebnisspeichers 14, in wel-Multivibrator MM16 als nächster erregt werden muß. chem das Ergebnis einer bestimmten Operation ge-Der Abschaltimpuls des monostabilen Multivibrators speichert werden soll. Die Felder C und D enthalten
wieder Adressen, entweder von Daten oder Ergebnissen. Diese zwei Felder enthalten aber die Adressen der Operanden für eine bestimmte Operation, die im A-FeId des Wortes gespeichert ist, auf welche die Wortauswahlsteuerung 62 gerade eingestellt ist.
Das E-FeId enthält die frühestmögliche und das Feld F die letztmögliche Zeit, während welcher eine bestimmte Operation ausgeführt werden kann. Die Wortauswahlsteuerung 62 besteht im wesentlichen aus einem Zähler, der viele Ausgänge hat und dessen Inhalt durch geeignete Steuerungen erhöht oder erniedrigt werden kann. Dieser Zähler hat so viel Einstellmöglichkeiten, als Wortspeicherplätze im Wortspeicher 12 vorhanden sind, und außerdem eine Null-Position, die dazu benutzt wird, um den zweiten Durchlauf zu beenden. Der Wortauswahldecoder 64 hat im wesentlichen die gleiche Aufgabe wie der Befehlsregisterdecoder 54, der an Hand der Fig. 6 beschrieben wurde. Der Wortauswahldecoder 64 zeigt also ebenfalls an, ob ein Operationssymbol, ein Endsymbol oder ein Datenzeichen im .4-FeId des Wortspeichers 12 enthalten ist. Aus dem Beispiel der F i g. 15 erkennt man, daß der Operationscode für die Daten Null ist. Der Wortauswahldecoder 64 stellt diesen Zustand dadurch fest, daß er ein Ausgangssignal auf der zugeordneten Datenleitung erzeugt. Die bistabile Kippschaltung t wurde bereits erwähnt. Sie wird dazu benutzt, um den Zyklus des Kellerspeichers 16 zu ändern, wenn ein Operationssymobl während des zweiten Durchlaufs festgestellt wird.
Der Kellerspeicher 16 der Fig. 1 besteht eigentlich aus zwei Teilen, dem Speicher 66 selbst und dem Eingabe-Ausgabe-Register 68. Wie schon erwähnt, haben der Speicher 66 und das Eingabe-Ausgabe-Register 68 in jedem Wortspeicherplatz zwei Abschnitte, d. h., eine Hälfte ist die Adresse des Datenspeicherplatzes für bestimmte Operanden, und die andere Hälfte enthält die Zeit, zu welcher ein Operand verfügbar ist.
Die zwei Vergleichsregister 69 und 70 werden benutzt, um die Zeiten der zwei aufeinanderfolgenden Operanden, die beim Feststellen eines Operationssymbols aus dem Kellerspeicher entnommen werden, zu überprüfen. Die zwei Zeiten in diesen Registern werden in der Vergleichsschaltung 72 verglichen, die ein Signal auf einer ihrer beiden Ausgangsleitungen abgibt, abhängig davon, welche der beiden Zahlen größer ist. Diese beiden Ausgangssignale werden mit einer logischen Schaltung weiter verwertet, die nachfolgend an Hand der Zeitfolgetafel erläutert wird und welche die größere der beiden Zeiten in einen Zeitzähler 74 eingibt, in welchem diese Zeit erhöht oder erniedrigt werden kann, abhängig davon, ob sich die Schaltung im ersten oder im zweiten Durchlauf befindet. Wie auch schon bei der F i g. 6 erklärt, besteht der Rest der Schaltung der Fig. 5 aus üblichen Torschaltungen, Und-Schaltungen, Oder-Schaltungen und Invertern, deren Wirkungsweise an Hand der Zeitfolgetafel nachfolgend erläutert werden wird.
Zeitfolgetafel
Das »Zeichen empfangen«-Signal schaltet CL-I über das Verzögerungsglied ein.
CL-I Stelle Wortauswahlsteuerung nach 1. Stelle Wortspeicher nach Null. Stelle Ergebnisspeicher-Auswahlzähler nach Eins. Wenn das
Zeichen ein Datenzeichen ist: Bringe Zeichen in das S-FeId des Wortspeichers, gehe über zu CL-3. Wenn das Zeichen ein Operationssymbol ist: Bringe das Zeichen in das A-F&ld des Wortspeichers. Bringe eine Adresse aus
dem Ergebnisspeicher-Adressengenerator in das B-Feld des Wortspeichers. Gehe zu CL-2. Wenn das Zeichen ein Endsymbol ist: Bringe Zeichen in das .4-FeId des Wortspeichers, ίο Gehe zu CL-4 (nächste Phase).
CL-2 Erhöhe den Inhalt des Ergebnisspeicher-Auswahlgenerators um Eins. Gehe über zu CL-3.
CL-3 Erhöhe Wortauswahlsteuerung um Eins. Stelle Eingaberegister nach Null zurück.
Erster Durchlauf
CL-4 Stelle Wortauswahlsteuerung auf Eins, gehe über zu CL-5.
CL-5 Wenn das A-FeId des Wortspeichers Daten enthält, bringe Inhalt des B-Feldes des Wortspeichers in das Adressenfeld des Kellerspeichereingangsregisters. Stelle die Zeit im Eingaberegister des Kellerspeichers auf Null, gehe über zu CL-12. Wenn das Λ-Feld des Wortregisters ein Endsymbol enthält, gehe über zu CL-14. Wenn das A -Feld ein Operationssymbol enthält: Bringe das Adressenfeld im Eingaberegister des Kellerspeichers in das C-FeId des gerade angesteuerten Wortes. Bringe die Zeit im Eingaberegister des Kellerspeichers in das Vergleichsregister 69, gehe über zu CL-6.
CL-6 Aufwärtszyklus des Kellerspeichers, gehe über zu CL-7.
CL-7 Aufwärtszyklus des Kellerspeichers, gehe über zu CL-8.
CL-8
Bringe Adressenfeld des Eingaberegisters des Kellerspeichers in das D-Feld des Wortregisters. Bringe das Zeitfeld des Eingaberegisters des Kellerspeichers in das Vergleichsregister 70. Gehe über zu CL-9.
CL-9
Bringe den größeren Inhalt der Vergleichsregister zum Zeitzähler. Gehe über zu CL-IO.
CL-IO Addiere 1 zum Inhalt des Zeitzählers, gehe über zu CL-Il.
CL-Il Bringe D-Feld des Wortspeichers in das Adressenfeld des Eingabe-Ausgabe-Registers des Kellerspeichers. Bringe den Inhalt des Zeitenzählers in das Zeitfeld des Eingabe-Ausgabe-Registers des Kellerspeichers und in das E-FeId des Wortspeichers. Gehe über zu CL-12.
CL-12 Abwärtszyklus des Kellerspeichers. Gehe über zu CL-13.
CL-13 Wortauswahlsteuerung plus 1, gehe über zu CL-5.
Zweiter Durchlauf
CL-14 Stelle bistabile Kippschaltung t in den NuIl-Zustand. Gege über zu CL-15.
15 16
CL-15 Wortauswahlsteuerung minus 1. Nächste Schaltung hätte über die Oder-Schaltung 82 und die Phase, wenn Wortauswahlsteuerung Null ist. Torschaltung 84 dieses Symbol in das ,4-FeId des Gehe über zu CL-16, wenn Wortauswahl- Wortspeichers 12 eingegeben. Wäre ein Operationssteuerung nicht Null ist. symbol festgestellt worden, so wäre die Leitung
CL-16 Bringe Zeitfeld des Eingabe-Ausgabe- 5 >>Operationssymbol<<_ erregt worden und über eine
Registers des Kellerspeichers in das F-FeId Und-Schaltung 86 ware die Torschaltung 84 geoffne
des Wortspeichers. Gehe über zu CL-Π, wenn WOT,d&n> ™<** bewirkt, daß das Operationssymbol
das A-FeId des Wortregisters Daten enthält m das ^-FeId des Wortspeichers 12 eingegeben wird,
und die bistabile Kippschaltung t sich im fordern ware die gegenwartige Adresseneinstel-
Eins-Zustand befindet. Gehe über zu CL-18, 10 ^g des ErgebmsregKter-Auswahlzahlers 56 über die
wenn dieser Zustand nicht herrscht. I°v S^ w T -^ Oto-Schaltong 90 m das
5-Feld des Wortspeichers 12 eingegeben worden.
CL-Yl Stelle bistabile Kippschaltung t nach Null. Angenommen, daß das Zeichen ein Operations-
Gehe über zu CL-IS. symbol ist, so wird die Und-Schaltung der Fig. 4
CL-18 Aufwärtszyklus des Kellerspeichers. Gehe 1S erregt, und die Taktgeberstufe 2 würde ein Signal
über zu CL-15, wenn das ^t-FeId des Wort- abgeben. Das Ausgangssignal der Taktgeberstufe 2
Speichers Daten enthält. Gehe über zu CL-19, bewirkt, daß der Ergebnisspeicher-Auswahlzähler 56
wenn das ^4-Feld des Wortspeichers ein ™i Eins erhöht wird und daß zur Taktgeberstufe
Operationssymbol enthält. übergegangen wird. Der Impuls aus der Taktgeber-
^r «η τ. · r, . ■ -. τ. λ ι_π·* 2° stuf e 3 schaltet die Wortauswahlsteuerung um Eins CL-19 Bringe Zeit im Eingabe-Ausgabe-Register weifer und ^ das ε^^^^ aig NuU m.
des Kellerspeichers m den Zeitenzahler. ^k und bewirkt außerdem, daß das nächste Zeichen üreüe über zu CL-Z(J. gelesen wird. Dieser Vorgang wiederholt sich mit den
CL-20 Subtrahiere Eins vom Inhalt des Zeiten- Daten, die in das 5-FeId des Wortspeichers 12 einzählers. Gehe über zu CL-21, wenn die as gegeben werden, den Operationssymbolen und den bistabile Kippschaltung t sich im Eins- Adressen aus dem Ergebnisspeicher-Auswahlzähler, Zustand befindet. Gehe über zu CL-22, wenn die ebenfalls in das S-FeId des Wortregisters gegeben sich die bistabile Kippschaltung t im Null- werden, bis der ganze Ausdruck in den Wortspeicher Zustand befindet. 12 eingegeben ist und schließlich ein Endsymbol
CL-21 Abwärtszyklus des Kellerspeichers. Gehe über 3° festgestellt wird Das Auftreten dieses Endsymbols
zu CL-22 erregt die Taktgeberstufe 4.
._ . ' , , ,, , Die Taktgeberstufe 4 löst den ersten Durchlauf der
CL-22 Bringe Inhalt des Zeitzählers in das Zeitfeld Anordnung aus, indem die erste relative Zeit bedes Eingabe-Ausgabe-Registers des Keller- stimmt wird; während welcher eine gegebene Operaspeichers. Gehe über zu CL-23. 35 tion des mathematischen Ausdrucks ausgeführt wer-
CL-23 Abwärtszyklus des Kellerspeichers. Gehe über den. Während dieses ersten Durchlaufs werden zu CL-24, wenn die bistabile Kippschaltung i außerdem die Felder C und D gefüllt. Wie bereits sich im Null-Zustand befindet. Gehe über zu oben erwähnt, löst das Auftreten eines Endsymbols CL-15, wenn sich die bistabile Kippschaltung t die Taktgeberstufe 4 aus. Das Ausgangssignal dieser im Eins-Zustand befindet. 4° Stufe stellt die Wortauswahlsteuerung 62 auf den
π IA Q<-Oiiö ««,+«ΜΙ« TTi^^c^oit, „ + ™ a tr™ ersten Speicherplatz des Wortspeichers 12. Das Aus-
CL-24 Stelle bistable Kippschaltung. ί m den Ems- sdialten F des F monostabiien Multivibrators MM4
Zustand. Gehe über zu CL-15. ^^ ^ fönfte Taktgeberstufe ein. Das Ausgangs-
Die Wirkungsweise der Schaltungen gemäß den signal des monostabilen Multivibrators MM5 prüft, Fig. 5 und 6 wird nachfolgend unter Bezugnahme auf 45 ob die Operationssymbol- oder Endsymbolleitung
die Zeitfolgetafel beschrieben. Bei Beschreibung der des Wortauswahldecoders 64 erregt ist. Zunächst sei
ersten drei Taktgeberstufen wird in erster Linie auf angenommen, daß der Wortauswahldecoder 64 ein
F i g. 6 Bezug genommen. Datensymbol feststellt. In diesem Fall wird die Und-
Wenn das erste Zeichen eines algebraischen Aus- Schaltung 92 die Rückstellung des Zeitenteiles des drucks im Befehlsregister 50 empfangen wird, wird 5<> Eingabe-Ausgabe-Registers 68 des Kellerspeichers 16 auf der Leitung 51 ein Signal erzeugt, welches den nach Null stellen. Das Ausgangssignal der Undmonostabilen Multivibrator MMl über das Ver- Schaltung 92, das über die Oder-Schaltung 94 läuft, zögerungsglied 52 erregt. Das Ausgangssignal des bewirkt, daß die Torschaltung 96 geöffnet wird und Verzögerungsgliedes 52 schaltet MMl ein. MMl die Daten aus dem 5-FeId des Wortspeichers 12 in stellt die Wortauswahlsteuerung 62 auf die Adresse 55 das Eingabe-Ausgabe-Register 68 des Kellerspeichers Eins und stellt den Wortspeicher 12 und den Ergeb- 16 gebracht werden. Das Abschalten des mononisspeicher-Auswahlzähler 56 in seine Null-Position. stabilen Multivibrators MM5 in diesem Augenblick Der Befehlsregisterdecoder 54 analysiert das Zeichen erregt die Taktgeberstufe 12. Die Taktgeberstufe erim Befehlsregister 50, und wenn er ein Datenzeichen zeugt einen Abwäxtszyklus des Kellerspeichers 16 feststellt, wird die Datenleitung aktiviert. Dieses 6o und bringt das Wort, das gerade im Eingabe-Aus-Signal wird zusammen mit dem=Taktimpuls 1 einer gabe-Register 68 enthalten ist, in den ersten Und-Schaltung 76 zugeführt, ^deren Ausgangssignal Speicherplatz des Kellerspeichers. Das Abschalten eine Torschaltung 78 öffnet, durch welche das des monostabilen Multivibrators MM12 erregt die Zeichen in das B-Feld des Wortspeichers 12 gelangt. Taktgeberstufe 13. Der Taktimpuls CL-13 bewirkt, Wenn das Zeichen des Befelsregjsters 50 ein End- 65 daß die Wortauswahlsteuerung 62 um Eins erhöht symbol gewesen wäre, dann wäre durch dieses Zei- und damit die nächste Speicherposition des Wortchen und das Signal CL-I die Und-Schaltung 80 Speichers 12 überprüpft. Das Abschalten des monogeöffnet worden. Das Ausgangssignal dieser Und- stabilen Multivibrators MM13 bewirkt über die
17 18
Oder-Schaltung 98 die Wiedereinschaltung der Takt- rung 62 um Eins. Das Abschalten des monostabilen geberstufe 5. Es sei nun angenommen, daß ein Ope- Multivibrators MM15 bewirkt, daß die Einstellung rationssymbol durch den Wortauswahldecoder 64 der Wortauswahlsteuerung über die Und-Schaltunfestgestellt wird. In diesem Fall wird das Signal CL-S gen 120 und 122 überprüft wird, ob sie Null ist. die Und-Schaltung 100 erregen, welche die Tor- 5 Wenn die Und-Schaltung 122 erregt wird, bedeutet schaltung 102 öffnet und damit bewirkt, daß das das, daß der zweite Durchlauf beendet ist und daß C-PeId des Wortspeichers 12 in das Eingabe-Aus- die Anordnung fertig zur Ausführung der verlangten gabe-Register 68 gebracht wird. Die Und-Schaltung Operation ist. Wenn jedoch die Und-Schaltung 120 100 wird außerdem die Zeit im Eingabe-Ausgabe- erregt ist, wird der monostabile Multivibrator MM16 Register 68 des Kellerspeichers über die Torschaltung io erregt. Das Einschalten des monostabilen Multi-102 in das Vergleichsregister 69 bringen. Das Ab- vibrators 16 bewirkt, daß das Zeitenfeld des Einschalten des monostabilen Multivibrators MMS be- gabe-Ausgabe-Registers 68 des Kellerspeichers 16 in wirkt in diesem Fall das Einschalten des mono- das F-FeId des Wortspeichers 12 über die Torstabilen Multivibrators MM 6. Das Einschalten des schaltung 124 geleitet wird. In diesem Zeitpunkt monostabilea MultivibratorsMM6 bewirkt, daß der 15 prüft die Und-Schaltung70 in Fig. 5B die Bedin-Kellerspeicher 16 um eine Position aufwärts geschaltet gung, die durch das A -Feld definiert ist, nämlich, ob wird, und durch das Ausschalten des monostabilen das geprüfte Wort Daten enthält und die bistabile Multivibrators MM 6 wird zur nächsten Taktgeber- Kippschaltung t sich im Null-Zustand befindet. Ein stufe 7 weitergegangen. Das Einschalten des mono- Ausgangssignal auf der Leitung 71 zeigt an, daß stabilen Multivibrators 7 erzeugt einen zweiten Auf- ao dieser Zustand vorliegt. Das Ausschalten des monowärtszyklus des Kellerspeichers 16, und das Ab- stabilen Multivibrators MM16 prüft den Zustand der schalten des monostabilen Multivibrators 7 erregt die Leitung 71. Wenn diese abgeschaltet ist, erregt der Taktgeberstufe 8. Das Einschalten des monostabilen Inverter 126 die Und-Schaltung 128, so daß der Multivibrators MM 8 bewirkt, daß die Adresse im monostabile Multivibrator MM18 eingeschaltet wird. Eingabe-Ausgabe-Register 68 des Kellerspeichers as Dadurch wird ein Aufwärtszyklus des Kellerspeichers über die Torschaltung 104 in das D-Feld des Wort- 16 ausgelöst. Das Abschalten des monostabilen Speichers 12 gebracht wird und daß die Zeit aus dem Multivibrators MM18 prüft, ob das ,/4-FeId des Zeitfeld des Eingabe-Ausgabe-Registers 68 in das Wortspeichers 12 Daten oder ein Operationssymbol Vergleichsregister 70 über die Torschaltung 106 ge- enthält. Wenn das ,4-FeId ein Operationssymbol entbracht wird. Das Abschalten des monostabilen 30 hält, schaltet der Taktgeber zur Stufe 19 weiter. Multivibrators 8 bewirkt das Einschalten des mono- Diese Prüfung wird über die Und-Schaltungen 130 stabilen Multivibrators MM 9. Das Einschalten von und 132 bewirkt, welche direkt auf den mono-MM9 läßt die größere der beiden Zahlen in den stabilen MultivibratorMM18 in Fig. 4C folgen. Vergleichsregistern 69 und 70 über die Und-Schal- Die Erregung des monostabilen Multivibrators tungen 108 und 109 und den ihnen zugeordneten 35 MM19 bewirkt, daß das Zeitenfeld des Eingabe-Torschaltungen 110 und 111 über die Oder-Schaltung Ausgabe-Registers 68 über die Torschaltung 134 112 in den Zeitzähler 74 gebracht werden. Das Ab- und die Oder-Schaltung 112 in den Zeitzähler geschalten des monostabilen Multivibrators 9 erzeugt bracht wird. Das Abschalten des monostabilen den zehnten Taktimpuls. Der monostabile Multi- Multivibrators MM 19 schaltet den monostabilen vibrator 10 bewirkt, daß der Zeitenzähler 74 um 40 Multivibrator MM 20 ein. Das Einschalten des monoEins erhöht wird, und dann wird die Taktgeberstufe stabilen Multivibrators MM 20 bewirkt, daß vom
11 erregt. Durch die Täktgeberstufe 11 wird über die Inhalt des Zeitzählers 74 Eins substrahiert wird. Das Oder-Schaltung 94 die Torschaltung 96 geöffnet, Abschalten des monostabilen Multivibrators MM 20 über welche das ß-Feld des Wortspeichers 12 in das prüft den Zustand der bistabilen Kippschaltung t. Adressenfeld des Eingabe-Ausgabe-Registers 68 des 45 Wenn sich die bistabile Kippschaltung t im Eins-Kellerspeichers gelangt. Dieser Täktzyklus bewirkt Zustand befindet, wird die Und-Schaltung 136 erregt außerdem, daß der Inhalt des Zeitzählers 74 über die und zur Stufe 21 des Taktgebers weitergegangen, Torschaltung 114 in das E-FeId des Wortspeichers oder wenn die bistabile Kippschaltung t sich im
12 gelangt und außerdem in das Zeitzählfeld des Null-Zustand befindet, wird die Und-Schaltung 138 Eingabe-Ausgabe-Registers 68 über die Oder-Schal- 50 erregt und über die Oder-Schaltung 140 zum monotungllö. Das Abschalten des monostabilen Multi- stabilen Multivibrator MM 22 weitergegangen. Wenn vibratorsMM11 erregt die Taktgeberstufe 12. man annimmt, daß die bistabile Kippschaltung«
Die Tatktgeberstufe 12 löst einen Abwärtszyklus sich im Eins-Zustand befindet, dann wird die Taktgeber-
des Kellerspeichers 16 aus, und durch deren Ab- stufe 21 erregt. Das Abschalten des monostabilen
schalten wird der monostabile Multivibrator MM13 55 Multivibrators MM 21 löst einen Abwärtszyklus des
erregt. MM13 schaltet die Wortauswahlsteuerung 62 Kellerspeichers aus, und sein Abschalten bewirkt,
um Eins weiter und erregt über die Oder-Schaltung daß über die Oder-Schaltung 140 zur Taktgeber-
98 wieder den monostabilen Multivibrator MM 5. stufe 22 übergegangen wird. Das Einschalten des
Die letzte Bedingung, welche die Taktgeberstufe 5 monostabilen Multivibrators MM 22 bringt den Infeststellen kann, ist ein Endsymbol im ,4-FeId des 60 halt des Zeitzählers 74 über die Torschaltung 142 Wortspeichers 12. Wenn dieses Zeichen auftritt, ver~ und die Oder-Schaltung 142 und die Oder-Schaltung zweigt der Taktgeber zum monostabilen Multi- 116 in das Zeitenfeld des Eingabe-Ausgabe-Registers vibrator MM14 über die Und-Schaltung 40. Die 68 des Kellerspeichers 16, und sein Ausschalten Taktgeberstufe 14 bewirkt den ersten Zyklus des erregt den monostabilen Multivibrator MM 23. Der zweiten Durchlaufs. Der Taktgeber 14 stellt die 65 monostabile Multivibrator MM 23 löst einen Abbistabile Kippschaltung t nach Null und stellt den wärtszyklus des Kellerspeichers 16 aus, und sein monostabilen Multivibrator 15 ein. Der monostabile Ausschalten prüft wieder die bistabile Kippschal-Multivibrator 15 erniedrigt die Wortauswahlsteue- tung t, ob sie sich im Null-Zustand oder im Eins-
und E, die nach. Fig. 14C während der Zeit 12 ausgeführt werden können, ergibt sieh in der Spalte E der Fig. 14D als Zeit der Ausführung die Zeit ί 2. Die Wirkungsweise der erfindungsgemäßen An-5 Ordnung während des ersten Durchlaufs soll nun an Hand der Fig. 14E erläutert werden. Während des Schrittes 1, der durch die Ziffern in der oberen Reihe gekennzeichnet ist, wird das Zeichen α, ein Operand, festgestellt. Da dieses Zeichen Daten dar-
Zustand befindet, und zwar über die Und-Schaltungen 144 und 146. Wenn sich die bistabile Kippschaltung t im Eins-Zustand befindet, so wird direkt zur Taktgeberstufe 15 zurückgegangen, und wenn sich die bistabile Kippschaltung t im NuIl-Zustand befindet, wird die Taktgeberstufe 24 über die Und-Schaltung 144 erregt. Das Einschalten des monostabilen Multivibrators MM ΊΑ stellt die bistabile Kippschaltung t in den Eins-Zustand, und ihr
Ausschalten löst einen Ausgangsimpuls über die io stellt, wird es In den ersten Speicherplatz des Keller-Oder-Schaltung 148 aus und bewirkt ein Zurück- Speichers 16 mit einer Zeit Null gebracht. Im kehren zur Taktgeberstufe 15. Schritt 2 wird ein weiteres Zeichen b festgestellt,
Im folgenden soll nun die Wirkungsweise und dieses wird ebenfalls mit der Zeit Null in den einer erfindungsgemäßen Anordnung an Hand des Kellerspeicher eingegeben. Der gleiche Vorgang in den Fig. 14A bis 14F dargestellten Beispiels 15 wiederholt sich während der Schritte3 und 4 bis eines mathematischen Ausdrucks erläutert werden. zum Ende des Schrittes 4. Die vier Datenzeichen α, Fig. 14A zeigt einen typischen algebraischen Aus- b, c und d sind zusammen mit ihren Zeiten 0 im druck, der in der üblichen Klammern enthaltende Kellerspeicher 16 enthalten. Im Schritt 5 wird ein Form geschrieben und der durch die erfindungs- Operationssymbol festgestellt, und die zwei zuletzt gemäße Anordnung analysiert werden soll. In 20 gespeicherten Operanden im Kellerspeicher 16, Fig. 14B ist dieser gleiche Ausdruck in Umgekehr- d.h. d und c, werden in den Feldern C und D in den ter Polnischer Notation geschrieben. In Fig. 14C fünften Speicherplatz des Wortspeichers 12 gespeiist der obige Ausdruck als Baum dargestellt, der, wie chert. Die größte der zwei Zeiten (beide Null) wird schon an Hand der Fig. 13A erläutert, klar die um Eins erhöht, so daß sich Eins ergibt, welches in Möglichkeiten der parallelen Ausführung eines 25 das E-FeId eingegeben wird. Die Ergebnisadresse A mathematischen Ausdrucks zeigt. Fig. 14 D zeigt wird zusammen mit der Zeitenzählung 1 in den Kellerden Inhalt des Wortspeichers 60, nachdem der alge- speicher zurückgebracht, und zwar in den obersten braische Ausdruck' der Fig. 14B eingegeben und Speicherplatz.
vollständig analysiert wurde. Die erste Spalte der Im Schritt 6 wiederholt sich der gleiche Vorgang
Fig. 14B enthält die Einstellung der Wortauswahl- 30 wie beim Schritt 5 mit der Ausnahme, daß das steuerung62. Unten in Fig. 14D sind Klammern oberste Zeichen im Kellerspeicher 16 nun die angebracht, welche angeben, daß die Felder^ undB Adresseyl mit der Zeit 1 ist. Wenn diese Zeit und während des Ladevorganges gefüllt werden und die die Zeit b, die Null ist, verglichen werden, so wird Einstellung der Felder C, D und E während des festgestellt, daß die Eins größer ist, die dann um ersten Durchlaufs und die Einstellung des Feldes F 35 Eins erhöht wird, so daß eine Zwei in das E-FeId während des zweiten Durchlaufs erfolgt. Jn der Wortposition 6 des Wortregisters eingegeben
Die Fig. 14E und 14F zeigen die Inhalte des wird. Die Operanden A und B werden also in den Kellerspeichers 16 während des ersten Durchlaufs Feldern C und D dieses Speicherplatzes gespeichert, und des zweiten Durchlaufs. In Fig. 14E zeigt die Die folgende AdresseB und die Zeit 2 werden oberste Reihe die jeweilige Einstellung der Wort- 40 zurück in den obersten Speicherplatz des Kellerauswahlsteuerung 62 an. In der zweiten Reihe stehen Speichers 16 gebracht. Der Schritt 7 ist gleich dem die Zeichen des eingegebenen Ausdrucks, und die
übrigen Reihen geben die wirklichen Inhalte des
Kellerspeichers an.
Die Fig. 14F für den zweiten Durchlauf ist ahn- 45 lieh wie die Fig. 14E. Die oberste Reihe stellt
wieder die Einstellung der Wortauswahlsteuerung
dar. Die zweite Reihe enthält die Zeichen des eingegebenen Ausdrucks, und die restlichen Spalten
zeigen den Inhalt des Kellerspeichers. Man beachte, 5° schrieben wurde.. Nach der Feststellung eines daß als Inhalt des Kellerspeichers nur eine einzige Operationssymbols im Schritt 10 beginnt die Anord-Spalte von Zahlen, die Zeiten angegeben sind. Dies nung, Daten aus dem Kellerspeicher 16 in der ist deshalb, weil während des zweiten Durchlaufs Weise, wie beim Schritt 5 beschrieben, auszugeben, nur die Zeitzählungen betrachtet werden. Es wird und zwar bis zum Schritt 16, bei welchem ein Endangenommen, daß die Fig. 14A bis 14D von selbst 55 symbol festgestellt wird, welches die Steuerung ververständlich sind. Zum Baum der Fig. 14C soll anlaßt, den zweiten Durchlauf einzuleiten, jedoch erwähnt werden, daß die relativen Zeiten, An Hand der Fig. 14F soll nun erläutert wer-
während welcher die verschiedenen Operationen den, welche Werte der Kellerspeicher 16 während ausgeführt werden können, mit iO bis tA bezeichnet des zweiten Durchlaufs enthält. Dieser Durchlauf sind. Überträgt man die Lehre aus dem Baumdia- 60 beginnt mit dem Schritt 16, welches auch die Eingramm der Fig. 14C auf die Fig. 14D, so erkennt stellung der Wortauswahlsteuerung 62 ist, obwohl man, daß die durch die Ergebnisse A und D ge- dies tatsächlich der erste Schritt des zweiten Durchkennzeichneten Operationen auf der Geraden ti laufs ist, der durch das Endsymbol eingeleitet wurde, liegen. Es wird damit angezeigt, daß diese Ope- Im Schritt 15 wird ein Operationssymbol festgestellt, rationen zur Zeit ti ausgeführt werden können. In 65 welches bewirkt, daß die Zeit 4, die vorher in dem der Fig. 14D gibt die eingetragene frühestmögliche obersten Speicherplatz des Kellerspeichers 16 entZeit in der Spalte E für die Ergebnisse A und D in halten war, aus dem E-FeId für die Wortposition 15 Spalte B die Zeitil an. Auch für die Operationen B entnommen, um Eins vermindert und in den Keller-
Schritt 6 mit der Ausnahme, daß die neue Information in den siebten Speicherplatz des Wortspeichers 12 gelangt.
Im Schritt 8 wird wieder ein Datenzeichen festgestellt, und deshalb wird seine Adresse e zusammen mit der Zeit Null in den obersten Speicherplatz des Kellerspeichers 16 gebracht. Die Schritte 9, 10 und 11 sind identisch mit dem Schritt 8, der gerade be-
speicher 16 zurückgebracht wird. Im Schritt 14 wird ein weiteres Operationssymbol festgestellt, so daß sich dieser Vorgang bis zum Schritt 12 wiederholt. Es sei bemerkt, daß im Schritt 15 das Operationssymobl die Einstellung der bistabilen Kippschaltung ζ in den Eins-Zustand bewirkt. Im Schritt 11 wird die bistabile Kippschaltung t in den Null-Zustand zurückgestellt und der Abtastzyklus beendet. Im Schritt 10 mit der Feststellung eines zweiten Datenzeichens im Kellerspeicher 16 beginnt die Ausgabe der Zeiten bis zum Schritt 7, in welchem die zweite Folge von Operationssymbolen festgestellt wird und die bistabile Kippschaltung t wieder in den Eins-Zustand gebracht wird, so daß der Abwärtszyklus des Kellerspeichers 16 wieder beginnt. Man erkennt bei Betrachtung des FeldesF in Fig. 14D, daß die gespeicherten Zeiten in jedem Schritt gleich der Zahl in der obersten Speicherposition des Kellerspeichers 16 für den vorangegangenen Schritt ist.
Bei Betrachtung der Felder E und F des Wort- ao Speichers 16 in Fig. 14D erkennt man, daß in einigen Plätzen die Zahlen die gleichen und in anderen die Zahlen verschieden sind. In diesem speziellen Beispiel bleiben die Werte in den Feldern E und F für die Operationssymbole die gleichen, was in Wirklichkeit bedeutet, daß die frühestmögliche Zeit, zu welcher eine Operation ausgeführt werden kann, auch die letztmögliche Zeit ist. Deshalb ergibt sich in diesem Beispiel kein besonderer Vorteil durch die Prüfung des F-Feldes beim Auslesen. Im nachfolgenden Anwendungsbeispiel, das in den F i g. 15A bis 15 G dargestellt ist, wird dieser Vorteil der Erfindung augenscheinlich. Es sei bemerkt, daß im Beispiel der Fig. 14 der Wert im E-FeId die Zeit angibt, zu welcher die Daten verfügbar sind. So kann z. B. der Wert des Datenkennzeichens b offensichtlich schon zur Zeit Null entnommen werden. Das Zeichen wird jedoch nicht früher benutzt als in der Operation B, die während der Zeit ti ausgeführt wird. Demzufolge wäre es möglich, die Entnähme von d bis zur Zeit ti zu verzögern. Dies ist in dem Feld F für b zu erkennen, welches eine Eins enthält und damit anzeigt, daß dieser Vorgang zu dieser späteren Zeit erfolgen kann. Wie sich noch aus dem Beispiel der F i g. 15 ergeben wird, gilt dies auch hier, wo die Operation C z. B. einen Operanden erfordert, der das Ergebnis aus einem Operanden α und einem Operanden«' war. Diese Operation konnte z. B. während der Zeit ti erfolgen; da aber die Operation C nicht vor der Zeit 13 auftritt, konnte die Operation auch noch zur Zeit ti ausgeführt werden. In diesem Fall, wo die Operation die Verarbeitung von α und a' verlangt, muß im E-FeId Eins und im F-FeId Zwei stehen.
Nur die Speicherplätze des Wortspeichers 12, die ein Operationssymbol enthalten, müssen bei der Steuerung der Operationen des Datenverarbeitungssystems benutzt werden. Es ist jedoch nötig, alle Speicherplätze zu prüfen, um die notwendigen Werte ermitteln zu können. Mit anderen Worten, nur die Speicherplätze 5, 6, 7, 12,13,14,15 und 16 müssen befragt werden und werden dazu ausgenutzt, um die Operationen zu steuern, da diese Speicherplätze alle Operationssymbole, Operanden und sonstige notwendigen Werte enthalten.
Während die Werte in dem Feld F der Datenwörter (d. h. keine Operationssymbole) im vorliegenden Ausführungsbeispiel vernachlässigt werden können, können sie bei anderen Anwendungen benutzt werden, um die Zuführung der Operanden zu steuern.
An Hand des in der Fig. 15 dargestellten Beispiels soll der Vorteil erläutert werden, daß man beide Felder, E und F, für einen Befehl zur Verfügung hat oder, mit anderen Worten, daß man sowohl die frühestmögliche Zeit als auch die letztmögliche Zeit zur Ausführung einer bestimmten Operation verfügbar hat. In Fig. 15A ist ein mathematischer Ausdruck in Umgekehrter Polnischer Notation geschrieben, und in Fig. 15C ist dieser Ausdruck als Baum dargestellt. Dieses Beispiel zeigt nicht die jeweiligen Inhalte des Kellerspeichers 16 zur Bildung der Inhalte der Felder E und F des Wortspeichers. Die F i g. 15 D, 15 E und 15 F veranschaulichen die Zuordnung der verschiedenen Operationen des algebraischen Problems an die Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten. Fig. 15D zeigt, welche Zeit erforderlich ist, wenn nur das F-FeId ausgenutzt wird, und Fig. 15E die insgesamt erforderliche Zeit für eine Datenverarbeitungsanlage mit drei Verarbeitungseinheiten, wenn nur das E-FeId benutzt wird. In Fig. 15F ist gezeigt, welche Zeitverteilung sich ergibt, wenn bei der Auswahl der Verarbeitungseinheiten die in den Spalten E und F gespeicherten Werte berücksichtigt werden. Fig. 15G zeigt den Inhalt der Felder^, B, F und E des Wortspeichers 12, wobei allerdings nur die Speicherplätze angegeben werden, die ein Operationssymbol im Λ-Feld enthalten.
Bei der Erläuterung des in Fig. 15 dargestellten Beispiels sei angenommen, daß die Datenverarbeitungsanlage drei Verarbeitungseinheiten ρ 1, pi und ρ 3 enthält. Für alle drei möglichen Arten des Betriebs wird eine Sortierhaltung benutzt, die derart wirkt, daß sie, beginnend mit dem Kopf des F- und/oder Ε-Feldes, nacheinander anzeigt, welcher Speicherplatz die niedrigste Zeit enthält, wobei angenommen wird, daß in jedem Speicherplatz eine Zahl aus zwei Zeichen steht. Auf die Sortiersteuerung 11 wird in der nachfolgenden Beschreibung im Abschnitt über die Ausführung der Rechnung noch näher eingegangen werden. In F i g. 15 A ist ein algebraischer Ausdruck in Umgekehrter Polnischer Notation geschrieben. Über jedem der Operationssymbole steht ein großer Buchstabe, der das Ergebnis einer bestimmten Operation darstellt. Diese großen Buchstaben erscheinen auch als Ergebnisse von Operationen in dem Baum der Fig. 15C. In diesem Baum stellt jede Verzweigung eine bestimmte Operation dar, und jede solche Verzweigung ist mit dem entsprechend großen Buchstaben gekennzeichnet, wie er in Fi g. 15 A angegeben ist. Neben jeder Verzweigung stehen außerdem zwei Zahlen, die dem Inhalt der F- und E-Felder entsprechen. Die vertikalen Spalten in jeder der drei Fig. 15D, 15E und 15F stellen die Operationen dar, die einer bestimmten Verarbeitungseinheit zugeordnet sind, und jede aufeinanderfolgende horizontale Reihe stellt eine Zeit dar, welche notwendig ist, um eine bestimmte Operation auszuführen. Jede der einzelnen Blöcke in diesen Figuren enthält einen großen Buchstaben, der die Operation kennzeichnet.
Nachdem die Wirkungsweise der Anordnung erläutert wurde, wird es nicht nötig sein, im einzelnen zu erläutern, wie die Inhalte des Wörtregisters, die in F i g. 15 G dargestellt sind, erzeugt werden. Daß die in den FeldernF und E der Fig. 15G erscheinenden Zahlen richtig sind, erkennt man bei einer Prüfung der Fig. 15C.
Bei dem Ausführungsbeispiel der Fig. 15D sei zuerst angenommen, daß die drei Verarbeitungseinheiten in Übereinstimmung mit dem Inhalt des F-FeI-des Operationen zugeordnet werden. Wenn dies der Fall ist, so wird während der ersten Zeitperiode eine Überprüfung des F-Feldes ergeben, daß die Operationen A, B und D die drei niedrigsten Zeitwerte aufweisen und daß diese deshalb den drei Verarbeitungseinheiten zugeordnet werden. Die drei nächstniederen Operationen E, C und F werden ebenfalls wieder den drei Verarbeitungseinheiten zugeteilt. Man erkennt jedoch, daß die Operation F nicht in der zweiten Zeit ausgeführt werden kann, weil das Ergebnis der Operation E selbst ebenfalls in dieser Zeit ausgeführt wird. Deshalb muß die Operation F um eine Zeitperiode verzögert werden, bis die Operation E beendet ist. Die Schraffur in diesem Block kennzeichnet, daß die Verarbeitungsarbeit ρ 3 diesen Befehl nicht in dieser Zeitperiode ausführen kann, da einer der Operanden noch nicht verfügbar ist. Deshalb muß die Operation F bis zur dritten Zeitperiode verzögert werden. In der Zeit 3 sind die Operationen H und / die zwei nächstniederen Operationsnummern; sie werden den Verarbeitungseinheiten ρ 1 und ρ 2 zugeordnet, während ρ 3 nun die Operation F ausführt. In der Zeitperiode 4 werden die Operationen G, J und L durch die drei Verarbeitungseinheiten ausgeführt und in der Zeitperiode 5 die Operationen M und K durch die Verarbeitungseinheiten ρ 1 und ρ 2. Wenn jedoch die Operation N der Verarbeitungseinheit ρ 3 zugeordnet wird, so stellt dieser fest, daß einer der Operanden, nämlich das Ergebnis der Operation M noch nicht zur Verfügung steht, so daß die Verarbeitungseinheit ρ 3 wieder warten muß und deshalb in dieser Zeit unbenutzt ist. In der Zeit 6 wird die Operation O, die letzte Operation, der Verarbeitungseinheit ρ 1 zugeteilt, da einer ihrer Operanden, nämlich das Ergebnis der Operation?/, noch nicht verfügbar ist, da diese Operation gleichzeitig durch die Verarbeitungseinheit ρ 3 ausgeführt wird. Die Verarbeitungseinheit ρ 1 muß also während der Zeit 6 ungenutzt bleiben und die Operation O während Zeit 7 ausführen. Wenn also nur die Werte im Feld F ausgenutzt werden, sind bei drei Verarbeitungseinheiten sieben Zeitperioden notwendig, um den algebraischen Ausdruck gemäß Fig. 15A zu lösen.
Bei dem Beispiel der Fig. 15E werden nur die Werte ausgenutzt, die im S-FeId des Wortregisters stehen. Die Zuordnung der verschiedenen Operationen zu den Registern erfolgt wie im Beispiel der F i g. 13 C. Der Unterschied liegt darin, daß die Reihenfolge der Zuordnung der verschiedenen Operationen teilweise anders ist. Man erkennt, daß bis zur Zeitperiode 4 die Zeiten der Verarbeitungseinheiten optimal ausgenutzt werden oder, mit anderen Worten, daß keine Leerzeiten entstehen. In der Zeit 5 jedoch erfordert die Zuordnung der Operationen £ und O zu den Verarbeitungseinheiten ρ 2 und ρ 3, daß beide Verarbeitungseinheiten ρ 2 und ρ 3 während der Zeitperiode 5 unausgenutzt bleiben, bis die Operation G beendet ist, weil das Ergebnis daraus einen der Operanden für die Operation K bildet. In der Zeit 6 wird die Operation K ausgeführt, aber die Verarbeitungseinheit ρ 3 muß während dieser Zeit wieder still liegen, da die Operation O als einen seiner Operanden das Ergebnis der Operation K benötigt. Auch hier werden wieder insgesamt sieben Zeitperioden benötigt, um den mathematischen Ausdruck gemäß Fig. 15A zu lösen.
Fig. 15F enthält die Zuordnung der Operationen zu den drei Verarbeitungseinheiten, wenn zur Zuordnung die im Wortregister gespeicherten Felder F und E als Basis benutzt werden. Alle drei Verarbeitungseinheiten bleiben während der ersten vier Zeitperioden aktiv, und während der Zeitperiode 5 muß dieVerarbeitungseinheit 3 warten, bis die Operation K beendet ist. In der Zeitperiode 6 führt die Verarbeitungseinheit ρ 3 die Operation O aus, so daß innerhalb sechs Zeitperioden der gesamte Ausdruck berechnet ist. Die Auswertung der beiden Felder F und E bringt also eine Zeitersparnis von einer Periode.
Wenn auch diese Einsparung einer Zeitperiode im vorliegenden Ausführungsbeispiel nicht besonders wesentlich erscheint, so muß doch daran erinnert werden, daß dieses Beispiel stark vereinfacht ist und nur zur Veranschaulichung der Vorteile der Erfindung benutzt wurde. Die meisten einer Datenverarbeitungsanlage zur Lösung übertragenen Aufgaben benötigen eine wesentlich größere Anzahl von Schritten, so daß die Zeitersparnis wesentlich größer ist und die Wirtschaftlichkeit einer Maschine stark erhöht wird.
Nachdem nun die Eingabe und die Ermittlung der Zeiten für die einzelnen Operationen erläutert wurden, soll die Ausgabe und der Teil der Anordnung beschrieben werden, der die verschiedenen Operationen den Verarbeitungseinheiten der Datenverarbeitungsanlage zuordnet.
In der Fig. IB, die ein Blockschaltbild des Ausgabeteils der erfindungsgemäßen Anordnung darstellt, sind Verarbeitungseinheiten 1, 2 bis η vorgesehen. Jeder dieser Verarbeitungseinheiten 1, 2 bis η ist eine Verarbeitungssteuerschaltung 1', 2' bis n' zugeordnet. Aufgabe der Verarbeitungssteuerschaltungen 1' bis n' ist es, zunächst festzustellen, ob die zugeordnete Verarbeitungseinheit 1 bis η fertig ist, eine Operation zu übernehmen, anzuzeigen, daß sie eine Operation erhalten hat und daß sie weitere Operationen nicht übernehmen kann. Die Verarbeitungssteuerschaltung 1' bis n' muß jede Operation untersuchen, um festzustellen, ob die Verarbeitungseinheit sofort mit der Ausführung der Operation beginnen kann oder warten muß, bis einer der Operanden der zugeordneten Operation in einem vorausgehenden Schritt ermittelt werden muß. Die Verarbeitungssteuerschaltungen Γ bis ή für alle Verarbeitungseinheiten 1 bis η sind gleich. Prüfimpulse werden durch alle Verarbeitungssteuerschaltungen 1' bis n' hindurchgeschickt, um zu bestimmen, welche Verarbeitungseinheiten 1 bis η zur Ausführung einer bestimmten Operation verfügbar sind. Der Wortspeicher 12 ist derselbe, der schon in F i g. 1A gezeigt ist. Der Wortspeicher 12 ist hier in zwei Teile unterteilt, nämlich in einen Teil, der Felder A1 B, C und D enthält und einen Teil, der die Felder E und F enthält, die hier mit dem Sortierregister 11, welches bestimmt, welche der im Wortspeicher 12 gespeicherten Operationen zu einer gegebenen Zeit auszuführen sind, vereinigt. Der bereits in F i g. 1A gezeigte Ergebnisspeicher 14 wird dazu benutzt, um die Ergebnisse der einzelnen Operationen in dem durch das B-Feld des Wortspeichers 12 angezeigten Speichersatz zu speichern. Im Ergebnisspeicher 14 ist außerdem ein Speicherplatz für ein Fertig-Bit vorgesehen, welches, wie noch im einzelnen erläu-
tert werden wird, eine schnelle Prüfung erlaubt, ob ein bestimmter Ergebnisspeicherplatz sein Ergebnis bereits erhalten hat. In den Ergebnisspeicher 14 werden die Ergebnisse eingelesen und wieder ausgelesen, wenn sie in nachfolgenden Operationen benutzt werden.
Mit 13 ist ein Prüfimpulsgenerator bezeichnet, der zwei verschiedene Folgen von Prüfimpulsen erzeugt, mit Hilfe welcher festgestellt wird, ob eine Verarbeitungseinheit zum Empfang eines neuen Befehls bereit ist und ob die einer Verarbeitungseinheit zugeführte Instruktion als Ergebnis aller zugeführter Operanden fertig zur Verarbeitung ist. Der Prüfimpulsgenerator 13 in F i g. 1B entspricht in seiner Aufgabe der Zeitsteuerung 22 der F i g. 1A. Die Zeitsteuerung des Ausgabeteils der Anordnung kann somit eher als asynchron bezeichnet werden als der Eingangsteil. Die durch den Prüfimpulsgenerator 13 erzeugten Impulsfolgen sind in Fig. 12 dargestellt.
Jetzt sollen die Vorgänge und Prüfungen im Aus- ao gabeteil erläutert werden. Es sei zunächst angenommen, daß der Taktimpuls des Eingabeteils seinen Zyklus beendet hat und in der Wortauswahlsteuerung eine Null festgestellt wurde, was anzeigt, daß der zweite Durchlauf beendet ist und daß ein Befehl zur Ausführung der Operation erhalten wurde. Die erste Prüfung, die gemacht werden muß, ist, eine freie Verarbeitungseinheit 1 bis η auszumachen. Dann muß die erste Operation, die, gemäß den Werten in den F- und Ε-Feldern des Wortregisters 12, ausgeführt werden muß, ermittelt werden und diese der gerade ausgesuchten Verarbeitungseinheit zugeführt werden. In diesem Augenblick muß die Verarbeitungssteuerschaltung 1' bis n' feststellen, ob die in der Instruktion enthaltenen Operanden schon verfügbar sind. Mit anderen Worten, es muß festgestellt werden, ob Speicheradressen vorhanden sind, die die Ausgangsdaten oder -Operanden angeben, und wenn dies der Fall ist, ist es klar, daß diese Daten unmittelbar verarbeitet werden und die Operation ausgeführt wird oder ob die Operanden Ergebnisadressen sind. In diesem letzteren Fall, wenn einer der Operanden eine Ergebnisadresse darstellt, muß der angegebene Speicherplatz des Ergebnisspeichers 14 abgefragt werden, ob ein bestimmtes Ergebnis verfügbar ist. Wenn das Ergebnis nicht zur Verfügung steht, wird fortgefahren, den Ergebnisspeicher 14 mit dem Prüfimpuls zu prüfen, und sobald ein Ergebnis verfügbar ist, wird die Anordnung ein Signal erhalten, das anzeigt, daß mit der Operation fortgefahren werden soll. Nachdem die Operation beendet ist, muß das Ergebnis zusammen mit einem Fertig-Bit in den Ergebnisspeicher 14 eingegeben werden, um schnell prüfen zu können, ob ein Ergebnis verfügbar ist oder nicht.
Die gleiche Folge von Schritten wiederholt sich jedesmal, wenn eine Verarbeitungseinheit 1 bis η frei ist. Mit anderen Worten, die nächstfolgende Operation aus dem Sortierregister 11 macht die notwendigen Prüfungen und bestimmt, ob die besagte Operation sofort ausgeführt werden kann oder warten muß, bis ein Ergebnisoperand erhalten ist. Es wird ständig geprüft, um Verarbeitungseinheiten 1 bis η festzustellen, die nicht im Betrieb sind, und jedesmal, wenn eine solche Verarbeitungseinheit gefunden wird, wird die nächstfolgende Operation dieser Verarbeitungseinheit zugeordnet, bis alle Operationen zugeteilt sind, wonach dann ein Schlußsignal erzeugt wird.
Nachdem nun die Wirkungsweise der Erfindung erläutert wurde, soll im folgenden an Hand der Schaltbilder der Fig. 7A bis 11 ein spezielles Ausführungsbeispiel einer erfindungsgemäßen Anordnung beschrieben werden.
Die Fig. 7 besteht aus den Fig. 7A und 7B. Der Wortspeicher 12 ist in zwei Teile aufgeteilt, nämlich in den Abschnitt200 mit den Feldern^, B, C und D und dem Abschnitt 202, der die Felder F und E enthält. Ein Teil des Abschnittes 202 wird durch die Sortiersteuerung 11 gebildet, welche die nächstniedrige Nummer in den Feldern F und E aussucht, wobei sie am Kopf dieser Liste beginnt, jedesmal, wenn eine Anforderung für ein neues Operationssymbol erhalten wird. In der Sortiersteuerung wird jedesmal, wenn ein Auswahlsignal empfangen wird, einer bestimmten Leitung Spannung zugeführt; welche Leitung das ist, hängt davon ab, welche Zahl in den Feldern F und E die nächstniedrige ist, wobei am Kopf begonnen wird. Wenn eine bestimmte Operation durch ein Signal auf der Leitung 218 zugeordnet wurde, läuft ein Impuls über das Verzögerungsglied 219 zurück zu diesem Platz der Sortiersteuerung 11, der gerade ausgewählt wurde, und löscht diese Operation oder Wortposition aus der Operationsliste. Die Verzögerung durch 219 bewirkt, daß die Inhalte der Felder A1B1C und D aus dem Wortspeicher 12 vor dem Löschen in die Eingaberegister 224 der Verarbeitungseinheiten 1 bis η eingegeben werden können.
Das Einschaltsignal für diesen Teil der Anordnung liefert Spannung an die ganze Anordnung und löst damit den Prüfimpulsgenerator 13 aus, der alle bistabilen Kippschaltungen in den Fig. 7A bis 11 mit einem Rückstellimpuls R speist. Dieser Rückstellimpuls R veranlaßt alle bistabilen Kippschaltungen, die zugeordnete Verarbeitungseinheit zu prüfen, ob sie zur Ausführung von Operationen verfügbar ist. Wenn ein Prüfimpuls auf der Leitung 204 erhalten wird, wird dieser den Und-Schaltungen 206 und 208 zugeführt. Da die »Bereit«-Kippschaltung 210 für die Verarbeitungseinheit 1 in den Zustand »1« gebracht wurde, erzeugt die Und-Schaltung 208 einen Impuls auf der Leitung 212. Dieser Impuls läuft über die Oder-Schaltung 214 und die Leitung 216 zu der Sortiersteuerung 11 und veranlaßt deren Einschaltung.
Im Block 202 wird die Operation mit der niedrigsten Zahl in den E- und F-Feldern ausgewählt und z. B. auf der Leitung 218 ein Impuls erzeugt, der einen bestimmten Speicherplatz im Wortspeicherteil 200 auswählt. Dadurch wird aus dem Wortspeicherabschnitt 200 ein ganzes Wort über die Torschaltung 220 ausgelesen. Die Torschaltung 220 wurde durch einen Impuls aus der Und-Schaltung 208 geöffnet, der über die Leitung 212 die Operationen anfordernde bistabile Kippschaltung 222 für die Verarbeitungseinheit 1 in den Eins-Zustand bringt. Das im Abschnitt 200 des Wortspeichers 12 gespeicherte Wort wird in das Eingaberegister 224 der Verarbeitungseinheit 1 gebracht. Wenn durch die Leitung 218 ein bestimmter Wortspeicherplatz ausgewählt wird, wird ein Impuls auf der Leitung 226 auf der rechten Seite des Wortspeichers 12 erzeugt, der über die Oder-Schaltung 228 einem Verzögerungsglied 230 zugeführt wird. Diese Verzögerung ist so bemessen, daß die Zeit zur Übernahme eines Wortes aus dem Wortspeicher 12 in eines der Eingaberegister 224 der Verarbeitungseinheiten 1 bis η ausreicht. Wenn auf der
809 627/1360
Leitung 232 aus dem Verzögerungsglied 230 ein Impuls erscheint, gibt die Und-Schaltung 234 ein Signal ab, wenn sich gleichzeitig die bistabile Kippschaltung 222 im Eins-Zustand befindet. Dieser Ausgangsimpuls stellt die bistabile Kippschaltung 222 und die bistabile Kippschaltung 210 in den Null-Zustand. Die Rückstellung der bistabilen Kippschaltung 222 in den Null-Zustand öffnet die Torschaltung 220 und verhindert dadurch, daß ein weiteres ausgewähltes Wort beabsichtigt in dieses Register eingegeben wird. Die Einstellung der bistabilen Kippschaltung 210 in den Null-Zustand erzeugt einen EinstelKmpuls für die Und-Schaltung 206 und zeigt an, daß die Verarbeitungseinheit 1 gerade keine weitere Operation empfangen kann, so daß der Prüfimpuls α zur nächsten Verarbeitungseinheit, die im Augenblick nicht beschäftigt ist, in diesem Fall die Verarbeitungseinheit 2, weitergeleitet wird.
Zu diesem Zeitpunkt wurde durch den Prüfimpuls a eine Verarbeitungseinheit festgestellt, die nicht in Be- ao trieb ist. Die Operation mit dem höchsten Vorrang, der durch die Sortiersteuerung mit Hilfe der Werte in den Feldern E und F des Wortregisters ermittelt wurde, wurde ausgewählt und dem Eingaberegister 224 dieser Verarbeitungseinheit zugeführt. Die in Fig. 7A dargestellten logischen Schaltungen für die Verarbeitungseinheiten 2 bis η arbeiten in genau der gleichen Weise, wie die für die Verarbeitungseinheit 1, und aus diesem Grund werden diese Teile der Schaltung nicht noch einmal beschrieben, auch sind diese Elemente nicht mit Bezugszeichen versehen.
Die Fig. 7B und 8 enthalten die logischen Schaltungen, welche prüfen, ob die gerade im Eingaberegister 224 gespeicherten Operanden verfügbar sind oder ob die Verarbeitungseinheit warten muß, bis ein bestimmtes Ergebnis erhalten wird. Wenn die bistabilen Kippschaltungen 210 und 222 in ihren Null-Zustand zurückgestellt sind, wird auf der Leitung 236 ein Impuls erzeugt. Dieser Impuls läuft über die bistabile Kippschaltung 238 »Operation zugeordnet« und stellt diese bistabile Kippschaltung in den Eins-Zustand. Dadurch erzeugt die Und-Schaltung 240 einen Ausgangsimpuls, wenn der Prüfimpuls b auf Leitung 242 erhalten wird. Wie bereits oben erwähnt, dient der Prüfimpuls b dazu, den Zustand der Operanden, die einer bestimmten Verarbeitungseinheit zugeordnet sind, zu überprüfen und damit festzustellen, ob die Operanden zur Zeit verfügbar sind und ob die Operation somit sofort ausgeführt werden kann. Wie ebenfalls bereits vorher erwähnt, kann einer der Operanden für eine bestimmte Operation ein Ergebnis sein, und wenn das der Fall ist, muß eine Prüfung vorgenommen werden, um festzustellen, ob die bestimmte Operation bereits ausgeführt ist. Die logische Schaltung der Fig. 8 dient dazu, diese Operationen auszuführen.
Zunächst muß jedoch kurz noch auf die Fig. 7B eingegangen werden, welche zeigt, daß an den Ausgang eines Eingaberegisters 224 für eine Verarbeitungseinheit 3 Decoder 239, 241 und 243 für die Ergebnisadresse und die Datenabschnitte Nr. 1 und 2 des Eingaberegisters 224 angeschlossen sind. Die Decoder 241 und 243 haben zwei Ausgänge, die automatisch bestimmen, ob eine gegebene Operandenadresse eine Hauptspeicheradresse oder eine Adresse des Ergebnisspeichers ist. Diese zwei Leitungen sind mit MA und RA gekennzeichnet. Außerdem haben diese Decoder eine zweite Reihe von Ausgängen, von denen eine zur Auswahl einer Speicherstelle im Ergebnisspeicher erregt ist. Wenn somit ein Operand ein Ergebnis ist und dessen Adresse zu einer der zwei Datenregisteradressen, Daten Nr. 1 oder Daten Nr. 2, geschickt wird, so wird diese Adresse decodiert, und eine Leitung aus dem Decoder 241 oder 243 wird einen bestimmten Speicherplatz des Ergebnisspeichers über einen Kreuzschienenwähler auswählen, der später erläutert werden soll. Der Decoder 239 dient zum Auswählen eines Speicherplatzes im Ergebnisspeicher 14, in welchen nach Ausführung einer Operation ein Ergebnis gebracht wird und der in der gleichen Weise arbeitet wie der Decoder 241 und 243. Alle drei Decoder 239,241,243 haben so viele Ausgangsleitungen, wie Speicherplätze im Ergebnisspeicher vorhanden sind. Die Torschaltungen an den Ausgängen aller drei Decoder 239, 241 und 243, von denen die mittlere mit 262 bezeichnet ist, lassen die Auswahlimpulse aus den Decodern zu einer ganz bestimmten Zeit hindurch. Es soll nun mit der Beschreibung der F i g. 8 fortgefahren werden. Wie bereits erwähnt, prüft die Schaltung der F i g. 8, ob die Daten verfügbar sind, und nachdem die Prüfung erfolgreich war, gibt sie ein Signal ab, daß die Verarbeitungseinheit mit der Operation beginnen kann, wenn die Und-Schaltung 240 erregt ist und ein Ausgangssignal auf der Leitung 242 erscheint.
Es sei zunächst angenommen, daß beide der Operanden in den Datenadreßteilen des Eingaberegisters 224 eine Hauptspeicheradresse und keine Adresse des Ergebnisspeichers 14 enthalten. In diesem Fall werden folgende Schritte vollzogen. Die Decoder 241 und 243 erzeugen jeweils einen Impuls auf den Leitungen MA, die der Anordnung der F i g. 8 über die Leitungen 244 und 246 zugeführt werden. Der Impuls auf der Leitung 244 wird zusammen mit dem Impuls auf der Leitung 242 einer Und-Schaltung 248 zugeführt, die auf der Leitung 250 einen Impuls erzeugt. Dieser wird zusammen mit einem Impuls auf der Leitung 246 einer weiteren Und-Schaltung 252 zugeführt.
Das Ausgangssignal der Und-Schaltung 252 läuft über die Oder-Schaltung 254, deren Ausgangssignal anzeigt, daß beide Operanden unmittelbar verfügbar sind und daß die Verarbeitungseinheit mit der Operation beginnen kann. Gleichzeitig mit diesem Signal wird ein Rückkopplungssignal auf der Leitung 256 erzeugt, welches die bistabile Kippschaltung 238 in ihren Null-Zustand zurückstellt und damit verhindert, daß durch den Prüfimpuls b auf der Leitung 242 ständig geprüft wird. Da beide Operanden verfügbar sind und die Verarbeitungseinheit mit der Operation beginnt, ist es nicht länger nötig, daß die Prüfung mit dem Prüfimpuls b wiederholt wird.
Wenn man nun annimmt, daß der Datenteil Nr. 1 des Eingaberegisters 224 der Verarbeitungseinheit eine Ergebnisadresse enthält, so geschieht folgendes: Der Impuls auf der Leitung 242 erzeugt ein Eingangssignal für die Und-Schaltung 258, deren anderer Eingang von der Leitung RA vom Decoder 241 herrührt. Der Ausgangsimpuls von der Und-Schaltung 258 erzeugt einen Registerleseimpuls für die Registertorschaltung 262, der über die Leitung 264 zugeführt wird. Dieser Impuls veranlaßt die Ergebnisadresse in den Datenadressenteil Nr. 1 des Eingaberegisters 224 den richtigen Speicherplatz im Ergebnisspeicher 14 auszuwählen und den Inhalt desselben in das Datenregister 400 für die Verarbeitungseinheit 1 in F i g. 9
29 30
abzugeben. Der Impuls auf Leitung 264 läuft über die Speicher nicht in die Datenregister 400 und 402
Oder-Schaltung 266 und wird in der Verzögerungs- gebracht, ehe das »Verarbeitungseinheitfortfahren«
anordnung 268 verzögert und liefert ein Eingangs- Signal erhalten wird, da die Daten in diese Register
signal für die Und-Schaltungen 270 und 272. Da die vor dieser Zeit nur gebracht werden, um prüfen zu
Leitung 260 Spannung führt, ist die Und-Schaltung 5 können, ob das Fertig-Bit für das bestimmte Ergebnis
270 erregt und erzeugt somit ein Eingangssignal für eingestellt wurde oder nicht. In dem Ergebnisspeicher
die Und-Schaltung 274. Die Und-Schaltung 274 prüft, 14 und in den beiden Datenregistern 400 und 402 ist
ob ein Fertig-Bit in dem Datenregister 400 für die je ein Speicherplatz für das Fertig-Bit vorgesehen.
Verarbeitungseinheit 1 vorhanden ist, und wenn dies Zu Beginn jedes Zyklus werden alle Fertig-Bits im
der Fall ist, wird die Leitung 273 erregt, was anzeigt, io Ergebnisspeicher 14 nach Null gestellt. Wenn im
daß das Ergebnis erhalten wurde. Die Und-Schaltung Ergebnisspeicher 14 ein Ergebnis aus der zugeord-
274 wird erregt und liefert somit einen Impuls über neten Verarbeitungseinheit eingespeichert wird, so
die Oder-Schaltung 276 in die Und-Schaltungen 278 wird der Fertig-Bit-Speicherplatz automatisch in den
und 280. Die Und-Schaltungen 278 und 280 prüfen, Eins-Zustand gebracht. Der Kreuzschienenwähler
ob der Datenteil Nr. 2 des Eingaberegisters 224 eine i5 401, der benutzt wird, um Informationen in den Er-
Hauptspeicheradresse oder eine Ergebnisspeicher- gebnisspeicher 14 einzuspeichern oder aus diesem
adresse enthält. Wenn eine Hauptspeicheradresse ent- auszulesen, ist bereits bekannt,
halten ist, wird die Und-Schaltung 280 durch die Lei- Dieser Kreuzschienenwähler besteht aus mehreren
tung 246 erregt und liefert somit einen Impuls über Eingangsleitungen, einem einzigen Satz von Aus-
die Oder-Schaltung 254, das der Verarbeitungseinheit ao gangsleitungen und mehreren Und-Schaltungen, die
anzeigt, daß das Ergebnis, dessen Adresse in dem zwischen beiden Leitungen eingeschaltet werden, in
Datenteil Nr. 1 des Eingaberegisters 224 gespeichert einer Weise, wie es später noch an Hand der Fig. 10
ist, gerade verfügbar ist, und daß die Adresse, die im und 11 beschrieben wird. In der Darstellung der
Datenteil Nr. 2 des Eingaberegisters 224 gespeichert Fig. 9 sind die Überkreuzungsstellen der Leitungen
ist, eine Speicheradresse und somit verfügbar ist, so 35 jedes Registers in jedem Wortspeicherplatz dunkel
daß die Anordnung fertig ist, mit der zugeteilten dargestellt. Die dunklen Flächen bilden eine Matrix.
Operation zu beginnen. Jede beliebige Fläche kann ausgewählt werden, um
Wenn die Ergebnisadresse in dem Datenteil Nr. 2 das richtige Ergebnisregister und eine bestimmte
anstatt im Datenteil Nr. 1 erscheint, findet eine ahn- Wortadresse darin mit dem Decoder 239 der Fig. 7 B
liehe Folge von Schritten statt, bei welcher die Und- 30 auszuwählen. Die mit VE IA gekennzeichnete dunkle
Schaltung 282 durch den Prüfimpuls b und einen Im- Fläche zeigt an, daß dies die Matrix ist, welche das
puls auf der Leitung 284 vom Decoder 243 der Ergebnis aus der Verarbeitungseinheit 1 in den Spei-
Fig. 7B erregt wird, so daß diese Und-Schaltung cherplatz A des Ergebnisspeichers 14 bringt. Entspre-
einen Impuls auf der Leitung 286 erzeugt. Dieser Im- chend ist die dunkle Fläche, die mit VEWA gekenn-
puls läuft durch die Schaltung, bis er schließlich die 35 zeichnet ist, der Schalter, der die Übernahme des
Und-Schaltung 288 erreicht, welche bestimmt, ob ein Ergebnisses der Verarbeitungseinheit η in den Spei-
Fertig-Bit mit dem Ergebnis im Datenregister 204 der oherplatz A des Ergebnisregisters steuert. Die gleiche
F i g. 9 vorhanden ist. Terminologie ist für die Bits angewandt worden. So
Wesentliches Merkmal der Schaltung der Fig. 8 sind z. B. in der linken unteren und der rechten obe-
ist, daß, ausgelöst durch den Priifimpuls b, das Er- 40 ren Ecke des Kreuzschienenwählers dunkle Flächen
gebnisregister 14 ständig ausgelesen und die Werte mit VEl oder VEn gekennzeichnet. Ein typisches
in die Datenregister 400 und 402 der F i g. 9 einge- Ausführungsbeispiel für ein einzelnes Matrixelement
schrieben werden und daß deren Inhalte mittels des eines Kreuzschienenwählers zum Einschreiben ist in
Fertig-Bits so lange geprüft werden, bis ein solches Fig. 10 dargestellt. Die vertikalen Leitungen stellen
Bit erscheint. Solange kein Fertig-Bit auftritt, wird 45 Eingangsleitungen von einem bestimmten Ergebnis-
auch kein Impuls über die Oder-Schaltung 254 auf register dar. Es sind zwar nur acht Leitungen gezeigt,
die Leitung 256 übertragen, welcher anzeigt, daß die es ist jedoch klar, daß für jede Matrixposition so viel
Verarbeitungseinheit weiterarbeiten kann. Wie eben- Leitungen wie nötig vorgesehen sein können, um die
falls schon erwähnt, wird die bistabile Kippschaltung Zahl der Zeichen, die in einem bestimmten Ergebnis
238 »Operation zugeordnet« in den Null-Zustand 50 vorhanden sind, sowie das Fertig-Bit darzustellen. Es
zurückgestellt, wenn ein Signal auf der Leitung 256 sind ebensoviel horizontale Ausgangsleitungen wie
erscheint. In diesem Fall wird die Prüfung mit dem vertikale Eingangsleitungen vorhanden. Die vertikalen
Priifimpuls b für diese Verarbeitungseinheit unter- Leitungen bilden einen der Eingänge zu mehreren
brochen, bis eine neue Operation zugeteilt wird. Und-Schaltungen, die zwischen die Eingangs- und
Es folgt nun eine kurze Beschreibung der Art und 55 Ausgangsleitungen eingeschaltet sind. Eine bestimmte Weise, auf welche die Ergebnisse in das Ergebnis- Gruppe von Und-Schaltungen wird erregt und gibt register 14 nach dem Abschluß einer bestimmten somit ein Ausgangssignal ab, wenn die Leitung 300 Operation durch eine Verarbeitungseinheit zurück- einen Schaltimpuls führt. Dieser Impuls wird autogebracht werden. Dazu soll auf die F i g. 9 Bezug matisch empfangen, wenn eine Verarbeitungseinheit genommen werden. Die Datenregister 400 und 402 60 eine Operation beendet hat. Die Leitung 300 bildet und das Ergebnisregister 404 für eine gegebene Ver- jeweils einen der Eingänge zu allen Und-Schaltungen arbeitungseinheit enthalten im wesentlichen die Ar- in der Wortreihe A. Eine entsprechende Leitung ist beitsregister für die jeweilige Verarbeitungseinheit. für jeden der anderen Wortspeicherplätze vorgesehen. Die Datenregister 400 und 402 sind mit den Ausgän- Zu einer Zeit kann natürlich nur eine Wortleitung gen eines Kreuzschienenwählers 401 und des Spei- 65 erregt sein, und nur eine Verarbeitungseinheit ist in chers verbunden. Daraus erkennt man, daß die Ope- der Lage, Ergebnisse in den Ergebnisspeicher 14 einranden aus jeder der beiden Quellen bezogen werden zugeben. Andernfalls würde die Anordnung nicht können. Normalerweise werden die Daten aus dem fehlerfrei arbeiten. Die hierfür notwendigen Zeit-
Steuerungen sind nicht gezeigt, hierfür können bekannte Koinzidenzschaltungen benutzt werden. Wenn eine Wortleitung, wie z, B. die Wortleitung 300 in dem Kreuzschienenwähler zum Einschreiben erregt wird und gleichzeitig Daten im Ergebnisspeicher einer Verarbeitungseinheit vorhanden sind, so wird dieses Ergebnis in den Wortspeicherplatz des Ergebnisspeichers 14 gespeichert.
Der Kreuzschienenwähler zum Auslesen 401 ist im wesentlichen identisch mit dem Kreuzschienenwähler ίο zum Einschreiben 403, mit der Ausnahme, daß für jede Verarbeitungseinheit zwei Wortspeicherplätze vorgesehen sind. Dies ist deshalb, weil beim Einschreibzyklus nur ein Ergebnis in den Ergebnisspeicher 14 gebracht werden muß, jedoch beim Auslesen, wenn Daten in die Datenregister gebracht werden, es notwendig ist, jeweils beide Register gleichzeitig zu füllen. In der Fig. 11 stellen die vertikalen Leitungen die Ausleseleitungen dar, die zu den verschiedenen Datenregistern für die Verarbeitungseinheiten führen. Die horizontalen Leitungen sind die Signaleingangsleitungen, die von den verschiedenen Wortspeicherplätzen des Ergebnisspeichers 14 kommen. Die Und-Schaltungen in dieser Matrix entsprechen den Und-Schaltungen im Kreuzschienenwähler der Fig. 10. Die Eingänge zu den Und-Schaltungen von den Ergebnisspeichern, in diesem Beispiel das Wort^4, und das Fertig-Bit bilden einen der Eingänge der Und-Schaltungen. Ein Impuls auf der Leitung 302 vom Decoder 239 hat die gleiche Wirkung wie ein Impuls auf der Leitung 300 des Kreuzschienenwählers der F i g. 10. Auch beim Kreuzschienenwähler zum Auslesen muß eine eigene Torleitung, wie z. B. 302, für jede der Matrixplätze vorgesehen sein, um ein doppeltes Auslesen zu vermeiden, das auftreten könnte, wenn alle vertikalen Matrixpositionen miteinander verbunden werden, wie in dem Kreuzschienenwähler zum Einschreiben. Wie bereits oben erwähnt, hat jede Verarbeitungseinheit zwei Matrixpositionen, um ein gleichzeitiges Einlesen von Daten in beide Datenregister zu ermöglichen. Der Matrixplatz für die Daten Nr. 2 ist der gleiche wie der in Fig. 11 für die Daten Nr. 2 gezeigt wird, außer daß die Erregungsleitung, wie z. B. 302, in diesem Beispiel vom Decoder 241 der Verarbeitungseinheit 1 ausgeht und natürlich irgendeine andere Wortadresse als A wäre, da diese Anordnung offensichtlich nicht zwei Operanden in der gleichen Wortposition speichern würde. Mit Hilfe der Kreuzschienenwähler für das Einschreiben und das Auslesen der Ergebnisspeicher 14 können die Daten mit einem Minimum an Zeit und anderer Hilfssteuerung eingeschrieben und ausgelesen werden. Die Leitung 304, die in Fig. 7A aus dem unteren Teil der Sortiersteuerung 202 des Wortspeichers 12 entspringt, führt ein Signal, wenn die Anordnung bestimmt, daß keine weiteren Operationen auszuführen sind. Dieses Signal ermöglicht die Beendigung der letzten Operation, wenn es um einen geeigneten Betrag verzögert wurde, und zeigt an, daß die jeweilige angeforderte Operation beendet ist, und daß das Ergebnis in dem zuletzt zugeordneten Speicherplatz des B-Feldes des Wortspeichers 12 gespeichert ist.
F i g. 12 zeigt ein Impulsdiagramm der Zeitimpulse, die im Ausgangsteil der erfindungsgemäßen Anordnung benutzt werden und die, wie bereits erwähnt, von einem Oszillator im Prüfimpulsgenerator 13 der F i g. 10 erzeugt werden. Die Impulse für beide Prüfungen α und b sind übliche Rechteckimpulse. Die Frequenz der Impulse ist wesentlich größer als ein Arbeitszyklus einer Verarbeitungseinheit, da es notwendig ist, eine Operation so früh wie möglich zu beginnen, nachdem ein Operand oder ein Operationssymbol verfügbar ist. Der mit »von Verzögerung 230« bezeichnete Impuls ist gegenüber dem Prüfimpuls a verzögert, wodurch die Übertragung der Daten vom Wortregister ermöglicht wird. Es ist nur ein Impuls gezeigt, da in jeder Verarbeitungssteuerschaltung der Prüfimpuls α nicht langer auftritt, sobald eine Verarbeitungseinheit ausgewählt und die bistabile Kippschaltung 210 »Bereit« zurückgestellt ist. Der Prüfimpuls b hat die gleiche Frequenz wie der Prüfimpuls α und ist gegenüber diesem zeitlich verschoben. Diese Verschiebung ist optimal so groß, daß diese Zeit ausreicht, um die bistabile Kippschaltung »Bereit« zurückzustellen, zu welchem Zeitpunkt jede Verarbeitungseinheit fertig ist, um die ihr zugeordnete Operation zu untersuchen.
Die Frequenz und Phasenbeziehungen zwischen den Prüfimpulsen α und b sind jedoch überhaupt nicht kritisch, da die zwei Funktionen völlig getrennt sind. Wie im vorliegenden Ausführungsbeispiel sollte jedoch die Wiederholungsfrequenz der Prüfimpulse wesentlich größer sein als die Zykluszeit der Verarbeitungseinheiten, um eine optimale Ausnutzung der Verarbeitungseinheiten zu gewährleisten.

Claims (13)

Patentansprüche:
1. Anordnung zur möglichst parallelen Zuordnung der Operationen zu mehreren Verarbeitungseinheiten für die Lösung eines klammerfreien mathematischen Ausdrucks, gekennzeichnet durch einen Wortspeicher (12; Fig. 1 A) zur gliederweisen Speicherung des mathematischen Ausdrucks, seiner Operationssymbole, der Adressen der Operanden im Operandenspeicher und Resultate im Resultatspeicher, durch einen Kellerspeicher (16) zur Speicherung der Adressen der Glieder in der Reihenfolge ihres Auftretens und der Operationssymbole mit einem Zeitrangmerkmal, durch eine Schaltung (20) zur Steuerung einer ersten Operationsfolge (erster Durchlauf), wobei mittels einer Zeitvergleichsschaltung (18) aus den genannten gespeicherten Angaben für jede Operation nacheinander der früheste Zeitpunkt ihrer Ausführung ermittelbar ist und zur Steuerung einer zweiten Operationsfolge (zweiter Durchlauf), wobei für alle Operationen in umgekehrter Reihenfolge der letzte Zeitpunkt seiner Ausführung bestimmbar ist und wobei die Steuerschaltung (20) ferner die Operationen entsprechend dem frühesten Zeitpunkt, bei gleichen solchen entsprechend dem letzten Zeitpunkt und bei gleichen frühesten und letzten Zeitpunkten der Ausführung entsprechend ihrer Reihenfolge in dem mathematischen Ausdruck den jeweils freien Verarbeitungseinheiten (1 bis n; F i g. 1 B) zuführt.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der mathematische Ausdruck in Umgekehrter Polnischer Notation zugeführt wird.
3. Anordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß zur Analyse der einzelnen Glieder des mathematischen Ausdrucks ein Wortspeicher (12) vorhanden ist, in dessen
Speicherplätze je ein Glied des mathematischen Ausdrucks eingegeben wird, daß in einen ersten Teil (/4-FeId) jedes Speicherplatzes des Wortspeichers (12) Operationssymbole und einen zweiten Teil (ß-Feld) die Hauptspeicheradressen der Operanden und die Adressen eines Ergebnisspeichers (14) eingegeben werden.
4. Anordnung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß zur Bestimmung der frühestmöglichen Zeit der Ausführung einer Operation die Adressen der Glieder des mathematischen Ausdrucks in der Reihenfolge ihres Auftretens zusammen mit einem Zeitfeld in einen Kellerspeicher (16) eingegeben werden, daß den Datenzeichen jeweils die Zeit Null zügeordnet wird und daß vor Eingabe der Adresse eines Operationssymbols die zwei vorher eingegebenen Adressen ausgegeben und gespeichert werden, und daß die mit der dem Operationssymbol zugeordneten Adresse in den Kellerspeicher ao eingegebene Zeit gegenüber der größeren der beiden vorher aus dem Kellerspeicher ausgegebenen Zeiten um Eins erhöht ist.
5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, daß zwei Vergleichsregister (69,70) zur Aufnahme der den beiden aus dem Kellerspeicher (16) entnommenen Adressen zugeordneten Zeiten und eine Vergleichsschaltung (72) zur Bestimmung der größeren der beiden Zeiten vorhanden ist.
6. Anordnung nach Anspruch 3 und 4, dadurch gekennzeichnet, daß die Adressen nacheinander aus dem Wortspeicher (12) in den Kellerspeicher (16) eingegeben und die bei Feststellung eines Operationssymbols aus dem Kellerspeicher ausgegebenen beiden Adressen in einen dritten und vierten Teil (C- und D-Feld) und die frühestmögliche Zeit in einen fünften Teil (is-Feld) des dem Operationssymbol zugeordneten Speicherplatzes des Wortspeichers (12) eingegeben werden.
7. Anordnung nach einem der Ansprüche 3 bis 6, dadurch gekennzeichnet, daß die Eingabe der Glieder des mathematischen Ausdrucks in den Wortspeicher (18) und die Bestimmung der frühestmöglichen Zeiten der Glieder des mathematischen Ausdrucks bei Feststellung eines Endsymbols beendet wird.
8. Anordnung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Zeit in der obersten Speicherstelle des Kellerspeichers (16) die letztmögliche Zeit bei Feststellung eines Operationssymbols abgespeichert und die nun um Eins verminderte Zeit in das Zeitfeld des obersten Speicherplatzes des Kellerspeichers gebracht wird und daß bei der Feststellung eines Datenzeichens außer dem ersten einer Folge von Datenzeichen ein Aufwärtszyklus des Kellerspeichers vollzogen wird.
9. Anordnung nach Anspruch 3 und 8, dadurch gekennzeichnet, daß die letztmögliche Zeit jeweils in einen sechsten Teil (F-FeId) des Speicherplatzes des jeweiligen Operationssymbols im Wortspeicher (12) eingegeben wird.
10. Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß eine bistabile Kippschaltung (t) vorhanden ist, die beim Auftreten eines ersten einer Folge von Datenzeichen in den NuIl-Zustand und beim Auftreten eines ersten einer Folge von Operationssymbolen in den Eins-Zustand geschaltet wird.
11. Anordnung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß jeder Verarbeitungseinheit (1 bis n) eine bistabile Kippschaltung (210) zugeordnet ist, deren Zustand anzeigt, ob die zugeordnete Verarbeitungseinheit (1 bis n) zur Ausführung einer Operation bereit ist.
12. Anordnung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß zum Einschreiben der Operanden aus dem Ergebnisspeicher (14) in die Datenregister (224) der Verarbeitungseinheiten (1 bis ti) und der Ergebnisse aus den Ergebnisregistern (404) der Verarbeitungseinheiten (1 bis n) in den Ergebnisspeicher (14) je ein Kreuzschienenwähler (401,403) vorhanden ist.
13. Anordnung nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß im Ergebnisspeicher (14) in jedem Speicherplatz ein Bit zur Speicherung eines Fertig-Bits vorgesehen ist, das eine schnelle Prüfung erlaubt, ob ein Speicherplatz ein Ergebnis bereits erhalten hat.
Hierzu 7 Blatt Zeichnungen
809 627/1360 10.68 © Bundesdruckelei Berlin
DEJ28741A 1964-08-13 1965-08-07 Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes Withdrawn DE1280595B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US389287A US3343135A (en) 1964-08-13 1964-08-13 Compiling circuitry for a highly-parallel computing system

Publications (1)

Publication Number Publication Date
DE1280595B true DE1280595B (de) 1968-10-17

Family

ID=23537632

Family Applications (1)

Application Number Title Priority Date Filing Date
DEJ28741A Withdrawn DE1280595B (de) 1964-08-13 1965-08-07 Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes

Country Status (3)

Country Link
US (1) US3343135A (de)
DE (1) DE1280595B (de)
GB (1) GB1104975A (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3521238A (en) * 1967-07-13 1970-07-21 Honeywell Inc Multi-processor computing apparatus
US3461434A (en) * 1967-10-02 1969-08-12 Burroughs Corp Stack mechanism having multiple display registers
US3525077A (en) * 1968-05-31 1970-08-18 Sperry Rand Corp Block parity generating and checking scheme for multi-computer system
US3611306A (en) * 1969-02-05 1971-10-05 Burroughs Corp Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
US4149240A (en) * 1974-03-29 1979-04-10 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of data structure operations
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US4145733A (en) * 1974-03-29 1979-03-20 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
GB1540299A (en) * 1975-02-15 1979-02-07 Mathematik Datenverarbeitung G Computer employing reduction language
US4021783A (en) * 1975-09-25 1977-05-03 Reliance Electric Company Programmable controller
DE2656086C2 (de) * 1976-12-10 1986-08-28 Siemens AG, 1000 Berlin und 8000 München Rechenanlage
US4319321A (en) * 1979-05-11 1982-03-09 The Boeing Company Transition machine--a general purpose computer
US4323966A (en) * 1980-02-05 1982-04-06 The Bendix Corporation Operations controller for a fault-tolerant multiple computer system
US4342083A (en) * 1980-02-05 1982-07-27 The Bendix Corporation Communication system for a multiple-computer system
US4379326A (en) * 1980-03-10 1983-04-05 The Boeing Company Modular system controller for a transition machine
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4502118A (en) * 1981-07-07 1985-02-26 Burroughs Corporation Concurrent network of reduction processors for executing programs stored as treelike graphs employing variable-free applicative language codes
US4447875A (en) * 1981-07-07 1984-05-08 Burroughs Corporation Reduction processor for executing programs stored as treelike graphs employing variable-free applicative language codes
JPS6165336A (ja) * 1984-09-07 1986-04-03 Hitachi Ltd 高速演算方式
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
US11841822B2 (en) 2019-04-27 2023-12-12 Cambricon Technologies Corporation Limited Fractal calculating device and method, integrated circuit and board card
WO2020220935A1 (zh) 2019-04-27 2020-11-05 中科寒武纪科技股份有限公司 运算装置
CN111860799A (zh) * 2019-04-27 2020-10-30 中科寒武纪科技股份有限公司 运算装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3047228A (en) * 1957-03-30 1962-07-31 Bauer Friedrich Ludwig Automatic computing machines and method of operation
US3200379A (en) * 1961-01-23 1965-08-10 Burroughs Corp Digital computer
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
US3293616A (en) * 1963-07-03 1966-12-20 Ibm Computer instruction sequencing and control system

Also Published As

Publication number Publication date
GB1104975A (en) 1968-03-06
US3343135A (en) 1967-09-19

Similar Documents

Publication Publication Date Title
DE1280595B (de) Anordnung zur Loesung eines klammerfreien mathematischen Ausdruckes
DE1200581B (de) Programmunterbrechungssystem fuer eine elektronische Rechenmaschine
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE1901343B2 (de) Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen
DE1474062B2 (de) Datenverarbeitungsanlage mit einer anzahl von pufferspeichern
DE2855673A1 (de) Anordnung zur handhabung des direkten zugriffs auf den speicher einer datenverarbeitungsanlage
DE2919440A1 (de) Schaltungsanordnung fuer einen wahlweise modifizierbaren satzspeicher fuer eine schreibmaschine
DE1499190C3 (de) Elektronische Datenverarbeitungsanlage
DE2854782A1 (de) Datenverarbeitungssystem
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE1805992C3 (de) Einrichtung zur Adressierung von Zwischenspeichern beim Sortieren/Mischen von vorsortierten Datenfolgen
DE1524151B1 (de) Schaltung zur Steuerung der Zugriffsrangfolge in einer Datenverarbeitungsanlage.
DE1115488B (de) Datenverarbeitungssystem
DE1191145B (de) Elektronische Zifferrechenmaschine
DE2245284A1 (de) Datenverarbeitungsanlage
DE1180171B (de) Zahlenrechner
DE1193279B (de) Elektronen-Ziffernrechner mit eingespeichertem Programm
DE1250489B (de) I Schaltungsanordnung zur Einspei cherung von Leerstellen-Kennworten in einen assoziativen Speicher
DE1808678B2 (de) Verfahren und schaltungsanordnung fuer elektronische daten waehlvermittlungsanlagen mit einem zentralen speicher
DE2644180A1 (de) Datenverarbeitungssystem
DE1524264C3 (de) Einrichtung zur Erzeugung einer Bildaufzeichnung
DE2419836B2 (de) Schaltungsanordnung zur durchfuehrung von unterprogramm-sprungbefehlen in datenverarbeitungsanlagen
DE2451984C2 (de) Datenverarbeitungsanlage
DD243128A5 (de) Verfahren und schaltungsanordnung zum ausbilden einer reihenfolgesteuerschaltung
DE1549582B1 (de) Anordnung zur bestimmung der niedrigstwertigen bit position

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977
EHJ Ceased/non-payment of the annual fee