-
Titel der Erfindung
-
Anordnung zur Verarbeitung von Ternärvektorlisten Anwendungsgebiet
der Erfindung Die Erfindung betrifft eine Anordnung zur Verarbeitung von Ternärvektorlisten,
bei der eine zusätzliche Verarbeitungseinrichtung an die Verbindungen zwischen einem
Universalrechner und einer Speicheranordnung angeschlossen ist. Der Zweck einer
solchen Anordnung besteht darin, Algorithmen auf Basis von Ternärvektorlisten schneller
auszuführen als dies mit einem Universalrechner allein möglich wäre.
-
Anwendungsfälle sind überall dort gegeben, ve Operationen mit Boo
leschen Gleichungen bzw. mit dem Booleschen Differentialkalkül auszuführen sind,
so z. B. bei der Minimierung Boolescher Funktionen, beim Entwurf von Steuerungen,
bei der Berechnung von Testbelegungen von digitalen Schaltungen usw.
-
Charakteristik der bekannten technischen Lösungen Die Anwendung von
Ternärvektorlisten, d. h. von Listen von Vekoren, deren Elemente nur die Werte 1,
0 bzw. "-" (don't care, neutrales Element) annehmen können, Ist umfassend in der
wissenschaftlichen Schriftenreihe der Technischen Hochschule Karl-Marx-Stadt dargestellt,
und zwar in 1. Ausgabe 1/1979: Posthoff/Steinbach: Binäre Gleichungen -Algorithmen
und Programme, 2. Ausgabe 8/1979: Posthoff/Steinbach: Binäre dynamische Systeme
- Algorithmen und Programme,
3. Ausgabe 7/1982: Fehmel/Posthoff/Steinbach:
Binäre Systeme -Rechnergestützter Schaltungsentwurf Die entsprechenden Algorithmen
werden programmtechnisch auf verschiedenen Typen von Universalrechnern realisiert.
-
Theoretisch zählen derartige Abläufe zur Klasse der sehr komplexen
Algorithmen. Der Bedarf an Ressourcen (Rechenzeit, Speicherplatz) wächst exponentiell
mit der Zahl der zu behandelnden Variablen, so daß für praktisch relevante Aufgabenstellungen
die Rechenzeiten auch auf sehr schnellen Universalrechnern oft unakzeptabel sind.
Dies trifft im besonderen für Suchabläufe zu (ist eine Ternärvektorliste von n Zeilen
mit jeder Zeile einmal zu durchmustern, so sind n2 einzelne Durchmusterungen notwendig;
wird jeweils eine Zeile entfernt, so ergeben sich n(n-1)/2 Durchmusterungen). Es
ist naheliegend, zu versuchen, diese extrem zeitkritischen Abläufe zu beschleunigen.
Bei manchen Universalrechnern ist es möglich, einen ladbaren Mikroprogrammspeicher
zur Unterbringung zeitoptimierter Mikroprogramme für diese Abläufe zu nutzen. Die
Grenzen dieses Verfahrens bestehen darin, daß die Bedingungsauswertung in üblichen
Universalrechnern nicht den besonderen Anforderungen gerecht wird. Damit die Bedingungen,
die die Hardware erkennen kann, zur Wirkung kommen, sind in der Regel mehrere Verknüpfungen
der betreffenden Ternärvel<toren erforderlich. Des weiteren kann in vielen Universalrechnern
zu einem Zeitpunkt nur eine Bedingung für Verzweigungsoperationen abgefragt werden.
Damit ist es nicht möglich, in jedem Speicherzyklus eine Nutz-Operation auszuführen.
-
Des weiteren ist es bekannt, zur Beschleunigung wesentlicher Abläufe
spezielle Verarbeitungseinrichtungen an die Verbindungen zwischen Universalrechner
und Speicher anzuschließen.
-
Derartige Einrichtungen werden von verschiedenen Herstellerfirmen
für die Beschleunigung der üblichen arithmetischen Operationen angeboten. Sie sind
somit für TVL-Operationen nicht nutzbar.
-
Weiterhin gibt es spezielle Prozessoren zur Bitverarbeitung, besonders
zum Aufbau von Steuerungssystemen. Beispiele dafür
sind in \Ne 1
lerA"Ji Ike: Programmierbare Steuereinrichtungen, Verlag Technik Berlin, 1981 (Reihe
Automatisierungstechnik, Band 195) zu finden. Derartige Prozessoren haben spezielle
Befehle für binäre Verknüpfungen. Sie eignen sich dazu, eine gegebene Boolesche
Gleichung relativ schnell für eine gegebene Variablenbelegung zu lösen, sind aber
zur Realisierung der TVL-Grundoperationen ebenfalls ungeeignet.
-
Ziel der Erfindung Das Ziel der Erfindung besteht darin, die Abarbeitung
wesentlicher Abläufe von Algorithmen auf Basis von Ternärvektorlisten mit vergleichsweise
geringem Aufwand so zu beschleunigen, daß einschlägige Probleme, die bisher nur
mit Großrechnern bzw. überhaupt nicht rechentechnisch zu behandeln sind, auf kostengünstigen
Anlagen bearbeitet werden können, deren Basis auch ein Mikrorechner oder Minicomputer
sein kann.
-
Wesen der Erfindung Die Aufgabe der Erfindung besteht darin, eine
Anordnung zur Verarbeitung von Ternärvektorlisten anzugeben, die es ermöglicht,
in Verbindung mit einem Universalrechner die Ausführung von entsprechenden Algorithmen
zu beschleunigen, so daß für die entscheidenden Abläufe in jedem Speicherzyklus
eine Nutz-Operation ausgeführt werden kann.
-
Die Mängel der bekannten Lösungen haben ihre Ursache darin, daß die
üblichen Universalrechner keine Operationen zur Behandlung von Ternärvektorlisten
haben, so daß alle Abläufe mittels Software realisiert werden müssen. Dies Ist auch
noch dann der Fall, wenn die Abläufe mit Mikroprogrammen realisiert werden.
-
Erfindungsgemäß wird die Aufgabe durch die in den Patentansprüchen
angeführten Schaltungen gelöst.
-
Ausführungsbeispiel Im folgenden Ausführungsbeispiel zeigen: Fig.
1 die Verbindung eines Universalrechners mit einem Speicher und einer zusätzlichen
Verarbe itungseinrichtung, Fig. 2 das Blockschaltbild der erfindungsgemäßen Anordnung,
Fig. 3 die Speicherung der Ternärvariablen sowie eine Adressenstruktur, Fig. 4 den
Aufbau der Bedingungszuordner, Fig. 5, 6 Details der logischen Verknüpfungen, Fig.
7 den Aufbau der Bedingungshalteschaltungen, Fig. 8 die Belegung des Modusregisters,
Fig. 9 den Aufbau der Adressengeneratorschaltung, Fig. 10 - 12 Details der Steuerschaltungen,
Fig. 13 das Impulsdiagramm dazu, Fig. 14 eine weitere Ausgestaltung des RAM-Adressenzählers,
Fig. 15 Details der Maskierungsleitungen, Fig. 16 den Aufbau des Funktionszuordners,
Fig, 17 Details aus der Adressengeneratorschaltung für den Betrieb des Funktionszuordners,
Fig. 18 eine Ausgestaltung des RAM.
-
Fig. 1 zeigt die Verbindung eines Universalrechners 1 mit einem Speicher
2 (im folgenden als RAM 2 bezeichnet) über Adressen-, Daten- und Steuerleitungen
ADRS, DAT, CTL. An diese Leitungen ist weiterhin eine zusätzliche Verarbeitungseinrichtung
3 angeschlossen. Der RAM 2 dient als Arbeitsspeicher des Universalrechners 1. Die
Aufgabe der zusätzlichen Verarbeitungseinrichtung 3 besteht darin, bestimmte Abläufe
schneller auszuführen als dies mit dem Universalrechner 1 allein möglich wäre. Dazu
muß der Universalrechner 1 in der Lage sein, Aufträge an die zusätzliche Verarbeitungseinrichtung
3 zu erteilen, Parameter und dergleichen einzustellen sowie Fertigmeldungen und
auch Resultate entgegenzunehmen. Die zusätzliche Verarbeitungseinrichtung 3 muß
in der Lage sein, direkt mit dem RAM 2 zusammenzuarbeiten und dessen Datenrate maximal
auszunutzen.
Die Gesamtaufgabe wird durch Programme des Universal rechners 1 gelöst, die für
besonders zeitkritische Abläufe die zusätzliche Verarbeitungseinrichtung 3 benutzen.
-
Besonders einfach läßt sich dieses Prinzip realisieren, wenn es sich
bei dem Universalrechner um einen Mikroprozessor oder Minicomputer handelt, an den
über ein reguläres Bussystem Speicher und andere Einrichtungen leicht angeschlossen
werden können.
-
Die grundlegenden Operationen mit Ternärvektorlisten sind In der Schrift
Posthoff/Steinbach: Binäre Gleichungen -Algorithmen und Programme dargestellt.
-
Eine Ternärvektorliste (im folgenden als TVL bezeichnet) ist eine
Anordnung von Vektoren (den Zeilen der TVL), die ihrerseits eine Aneinanderreihung
von Variablen darstellen, wobei jede die Werte O, 1 bzw. "-" (don't care, neutrales
Element) haben kann.
-
Wegen der besseren Schreibbarkeit sei das "-"-Element im folgenden
mit N (für "neutral") bezeichnet. Zur Speicherung einer Ternärvariablen sind zwei
Bits erforderlich. Eine bewährte Codierung ist 00 - N 01 - frei 10 - 0 11 - 1.
-
Das höherwertige Bit in diesem Code steuert praktisch zwischen definierter
Belegung (0/1) oder neutral um. Es soll deshalb als Erlaubnisbit E (ENABLE) bezeichnet
werden. Das niederwertige Bit gibt den Wert der Variablen an, falls dieser definiert
ist (0 oder 1, wenn E = 1). Es soll deshalb als Wertbit V (VALUE) bezeichnet werden.
-
Die wichtigsten Operationen mit TVL, für die die zusätzliche Verarbeitungseinrichtung
3 auszulegen ist, sind . Testen auf Orthogonalität bzw. Nichtorthogonalität, . Testen
auf Blockbildung, . Testen auf Blocktausch.
-
Dabei gibt es stets zwei Operanden, eine TVL und einen einzelnen Ternärvektor
mit gleicher Variablenzahl, wobei Zeile
für Zeile der TVL mit dem
Ternärvektor verglichen wird, bis entweder die Suchbedingung erfüllt oder die gesamte
TVL durchmustert worden ist.
-
Die weiteren Operationen werden auf konventionelle weise ise durch
Programme des Universalrechners 1 realisiert. Dabei erscheint es vorteilhaft, wenn
die Verarbeitungseinrichtung 3 zusätzlich in der Lage ist, typische Verknüpfungen
von Ternärvariablen auszuführen, die in Universalrechnern nicht von vornherein vorgesehen
sind. Dazu gehören die Bildung des t4arkierungsvektors für die Orthogonalisierung,
die Bildung eines Durchschnittsvektors sowie die Blockbildung.
-
Die Struktur der zusätzlichen Verarbeitungseinrichtung 3 ist zusammen
mit dem RAM 2 in Fig. 2 dargestellt. Zur Verbindung mit dem Universalrechner 1 sind
einwärtsführende Datenleitungen 4, auswärtsführende Datenleitungen 5, Adressenbusleitungen
6 und Steuerleitungen 7 vorgesehen. Diese Leitungsanordnung ermöglicht es, einfache
Ankoppelschaltungen für praktisch alle Bussysteme von Mikroprozessoren, Minicomputern
usw. vorzusehen. So ist es z. B. unproblematisch, die einwärts- und auswärtsführenden
Datenleitungen 4, 5 zu einem bidirektionalen Datenbus zusammenzufassen. Es sind
ein Maskenoperandenspeicher 8 und ein Zweitoperandenspeicher 9 vorgesehen und sowohl
mit den tinwärts- als auch mit den auswärtsführenden Datenleitungen 4, 5 verbunden.
Die drei Speicher 2, 8, 9 sind ausgangsseitig an einen ersten Bedingungszuordner
10, an einen zweiten Bedingungszuordner 11 sowie an einen Funktionszuordner 12 angeschlossen.
Dem Funktionszuordner 12 sind die auswärtsführenden Datenleitungen 5 nachgeschaltet.
Jedem der Bedingungszuordner 10, 11 ist jeweils eine Bedingungshalteschaltung 13,
14 nachgeordnet, die beide an eine Auswahlschaltung 15 angeschlossen sind.
-
Weiterhin ist eine Adressengeneratorscha Itung 16 vorgesehen, die
mit der Auswahischaltung 15, den Adressenbusleitungen 6, den Steuerleitungen 7 sowie
den Datenleitungen 4, 5 verbunden ist. Der Adressengeneratorschaltung 16 sind erste
Adressenleitungen 17 und zweite Adressenleitungen 18 nachgeschaltet.
-
Die ersten Adressenleitungen 17 sind über eine Auswahlschaltung 19
zusammen mit den Adressenbusleitungen 6 an den RAM 2 angeschlossen. Die zweiten
Adressenleitungen 18 sind zusammen mit den Adressenbusleitungen 6 über eine Auswahlschaltung
20 sowohl an den Mbskenoperandenspeicher 8 als auch an den Zweitoperandenspeicher
9 angeschlossen.
-
t'Jeiterhin ist ein tJlodusregister 21 den eingangsseitigen Datenleitungen
4 nachgeordnet und mit den Bedingungszuordnern 10, 11, dem Funktionszuordner 12
sowie der Auswahlschaltung 15 verbunden.
-
Allen Speichern 2, 8, 9 sind Ausgangsregister 22, 23, 24 nachgeordnet.
Für die Verbindungen mit den ausgangsseitigen Datenleitungen 5 sind Koppelstufen
25, 26, 27, 28 vorgesehen. Diese können z. B, mit "tri state11-Schaltkreisen realisiert
werden.
-
Alternativ dazu wäre auch ein Zusammenführen aller Datenausgänge mit
Multiplexerschaltkreisen möglich.
-
Für die weitere Beschreibung wird angenommen, daß der Universalrechner
1 eine Verarbeitungsbreite von 16 Bit hat und für Speicherzugriffe eine 24-Bit-Adresse
liefert.
-
Fig. 3a zeigt, wie ein 16-Bit-Wort mit acht Ternärvariablen belegt
ist. Eine Zeile einer TVL soll bis zu 4096 Ternärvariablen umfassen können (dies
entspricht 512 16-Bit-Worten). Die zu bearbeitenden TVL müssen vom Universalrechner
1 im RAM 2 bereitgestellt werden. Der Ternärvektor, mit dem die TVL durchmustert
werden soll, steht im Zweltoperandenspeicher (SECOND OPERAND MEMORY SOM) 9. Dieser
muß somit 4096 Ternärvariablen bzw. 512 16-Bit-UVorte aufnehmen können.
-
Zusätzlich ist es von Vorteil, bestimmte Variablenpositionen in den
TVL-Zeilen von der Bearbeitung ausschließen (maskieren) zu können. Dazu ist der
Maskenoperandenspeicher (MASK OPERAND 11EMCi5Y hOM) 8 vorgesehen. Dieser enthält
einen binären Maskenvektor (in den angegebenen Publikationen als Vorhandenvektor
bezeichnet) mit einer Bitposition pro Ternärvariable.
-
Es werden nur die Ternärvariablen berücksichtigt, für die das korrespondierende
Maskenbit = 1 ist. Der i4askenoperandenspeicher 8 muß somit 4096 Bits enthalten,
das sind 512 Worte zu 8 Bit.
-
Ist die Verarbeitungseinrichtung 3 nicht aktiv, so kann der Universalrechner
1 direkt zum RAM 2, zu den anderen Speichern 8, 9 und zu verschiedenen Registern,
Statusflipflops usw.
-
zugreifen.
-
Fig. 3b zeigt dazu die Interpretation der 24-Bit-Adresse.
-
Sind die höchstwertigen 13 Bits alle gleich Eins, so werden Zugriffe
zu den Schaltmitteln der Verarbeitungseinrichtung 3 ausgeführt, andernfalls zum
RAM 2. Bei den erstgenannten Zugriffen wählen die Adressenbitpositionen 10, 9 den
Funktionskomplex aus, z. B.
-
00: Zweitoperandenspeicher 9 01: Maskenoperandenspeicher 8 10, 11:
Register, Flipflops usw.
-
(Funktionszuordner 12, Adressengeneratorschaltung 16, #~odusregister
21).
-
Die niedrigstwertigen neun Adressenbits dienen zur Adressierung im
ausgewählten Funktionskomplex.
-
Die Decodierung der Adressen und die Erzeugung der Zugriffssteuerimpulse
(Schreibimpulse, Taktimpulse für die Ausgangsregister 22 - 24) wird nicht näher
beschrieben, da entsprechende Schaltmittel in Mikrorechnern und Minicomputern üblich
und in der Literatur ausführlich dargestellt sind (siehe z, B.
-
Kieser/Meder: Mikroprozessortechnik, Verlag Technik Berlin, 1982).
-
Der Universalrechner 1 benutzt die Verarbeitungseinrichtung 3 auf
folgende \;;leise: . Bereitstellung der TVL im RAM 2 . Transport des zweiten Operanden
(Ternärvektor) in den Zweitoperandenspeicher 9 . Bereitstellung des Maskenvektors
im Maskenoperandenspeicher 8 . Einstellen der gewünschten Funktion im Modusregister
21 . Laden der Parameter (Adressen- und Längeninformation) in die Adressengeneratorschaltung
16 Start des Ablaufs
Erwarten der Fertigmeldung Abholen von Resultaten
(Bedingung "gefundenW'/"nicht gefunden"; Adresse der betreffenden TVL-Zeile usw.).
-
Die detaillierte Ausgestaltung der Anordnung aus den Bedingungszuordnern
10, 11, den Bedingungshalteschaltungen 13, 14 und der Auswahlschaltung 15 ist in
Fig. 4 dargestellt. Die Aufgabe dieser Anordnung besteht darin, ein Bedingungssignal
(CeNDlTlON) zu liefern, wenn eine der folgenden Bedingungen erfüllt ist: a) Orthogonalität
zwischen einer TVL-Zeile im RAM 2 und dem Ternärvektor im Zweitoperandenspeicher
9. Dazu muß die Wertekornbination 1, 0 bzw. O, 1 in wenigstens einer Variablenposition
erfüllt sein.
-
b) l1ichtorthogonalität. Die MMertekombination 1, 0 bzw. 0, 1 darf
niemals auftreten.
-
c) Blockbildung ist möglich. Dazu muß die Wertekombination 1, O bzw.
O, 1 genau einmal vorkommen, und die restlichen Variabienpositionen von TVL-Zeile
und Ternärvektor müssen mit identischen Vierten belegt sein.
-
d) Blocktausch ist möglich, Dazu müssen die Wertekombinationen 0,
1 / 1, 0 sowie N, O / N, 1 / O, N / 1, N jeweils genau einmal auftreten.
-
Der erste Bedingungszuordner 10 besteht somit aus einer Gült igkeitsdetektorschaltung
29 mit nachgeordnetem ODER-Gatter 30 und Einzeldetektorschaltung 31, deren Ausgangssignale
an eine Auswahlschaltung 32 angeschlossen sind. Der zweite Bedingungszuordner 11
besteht aus einer Ungleichheitsdetektorschaltung 33, einer Austauschdetektorschaltung
34 und je einer nachgeordneten Einzeldetektorschaltung 35, 36, die beide an eine
Auswahlschaltung 37 angeschlossen sind. Die Auswahleingänge der Auswahischaltungen
32, 37 sind an das Alodusregister 21 angeschlossen.
-
Die Detektorschaltungen 29, 33, 34 realisieren jeweils variablenweise
Verknüpfungen. Diese sind in Fig. 5 für jeweils eine
Variablenposition
i dargestellt.
-
Dabei wirken die Ausgangssignale des Maskenoperandenspeichers 8 (MASK.
i) stets so, daß eine Null im Maskenvektor die Abgabe des jeweiligen Bedingungssignals
verhindert.
-
Das Bedingungssignal VALID.i wird von der Gültigkeitsdetektorschaltung
29 für jede Variablenposition abgegeben, in der die Uybrtekombination 0, 1 bzw.
1, 0 auftritt. Dazu ist eine Antivalenzverknüpfung der Wertbits aus PAM 2 (RAM.Vi)
und Zweitoperandenspeicher 9 (SOM.Vi) an eine konjunktive Verknüpfung mit den Erlaubnisbits
(RAM.Ei; SOM.Ei) und dem Maskenbit (MASK.i) angeschlossen.
-
Das Ungleichheitssignal UNEQU.i wird von der Ungleichheitsdetektorschaltung
33 für jede Variablenposition abgegeben, in der eine der Wertekombinationen 0, 1
/ 1, 0 / N, O / N, 1 / O, N / 1, N auftritt.
-
Dazu ist eine Antivalenzverknüpfung der Erlaubnisbits mit der Antivalenzverknüpfung
der Wertbits disjunktiv verbunden und eine konjunktive Verknüpfung mit dem Maskenbit
nachgeordnet.
-
Das Blocktauschsignal SWAP. i wird von der Austauschdetektorschaltung
34 für jede Variablenposition abgegeben, in der eine der \'brtekombinationen N,
O / N, 1 / O, N / 1, N auftritt, d.
-
h. wo einer N-Variablen eine "nicht-N"-Variable gegenübersteht. Dazu
ist der Antivalenzverknüpfung der Erlaubnisbits eine konjunktive Verknüpfung mit
dem Maskenbit nachgeschaltet.
-
Die Einzeldetektorschaltungen 31, 35, 36 sind in gleicher Weise gemäß
Fig. 6 aufgebaut.
-
Die Aufgabe dieser Schaltung besteht darin, ein Signal SINGLE OCCURENCE
abzugeben, wenn von den Eingangssignalen x0 x nur eines aktiv (= 1) ist. Dazu ist
eine disjunktive Verknüpfung von n konjunktiven Verknüpfungen jeweils aller Eingangssignale
vorgesehen. An jeder der n konjunktiven Verknüpfungen ist jeweils ein Eingangssignal
invertiert angeschlossen.
-
Die Bedingungshalteschaltungen 13, 14 sind beide gemäß Fig. 7 aufgebaut,
indem zwei Flipflops gemeinsam an die Bedingungsleitung CONDITION, an eine Taktleitung
HOLD CLOCK und an eine
F:ijcksctzleitung HOLD RESET angeschlossen
sind. Dabei ist die Bedingungsleitung an das zweite Flipflop unter konjunktiver
Verknüpfung mit der Ausgangsleitung des ersten Flipflop angeschlossen. Zusätzlich
ist die Ausgangs leitung des ersten Flipflop mit der invertierten Ausgangsleitung
des zweiten konjunktiv verknüpft.
-
Beide Flipflops sind selbsthaltend ausgelegt.
-
Eine TVL-Zeile besteht in der Regel aus mehreren 16-Bit-Worten, d.
h. aus Abschnitten zu je acht Variablen. Beim Durchmustern werden zu Beginn einer
jeden Zeile die Flipflops zurückgesetzt (Impuls auf der HOLD RESET-Leitung).
-
In jedem Zyklus wird nun ein Abschnitt von acht Variablen verarbeitet.
Die Variablenposit ionen werden in den Speichern 2, 8, 9 gleichzeitig adressiert.
Nach Ablauf der Zugriffszeit (einschließlich Durchlauf der Bedingungszuordner 10,
11) wird ein Takt impuls HOLD CLOCK abgegeben. Nach Durchmusterung der Zeile werden
die Ausgangssignale ausgewertet. Ist das erste Flipflop gesetzt, so ist die Bedingung
aufgetreten (OCCURP#ENCE), andernfalls ist sie nicht aufgetreten (NO OCCUflP'ENCE).
-
Das zweite Flipflop wird nur gesetzt, wenn die Bedingung in mehr als
einem Zyklus erkannt wurde. Somit ist die Bedingung nur einmal aufgetreten (SINGLE
OCCURRENCE), wenn das erste Flipflop gesetzt ist und das zweite nicht.
-
Fig. S zeigt die Belegung der niederen vier Bits des Modusregisters
21, denen die Auswahlschaltungen 15, 32, 37 nachgeordnet sind.
-
Für die einzelnen Funktionen ergeben sich folgende Belegungen: a)
0000: Suchen nach Orthogonalität. Die Auswahlschaltung 32 wählt die disjunktive
Verknüpfung (ODER-Gatter 30) aller Ausgänge der Gültigkeitsdetektorschaltung 29
für die Bedingungshaltesclialtung 13 aus. Deren OCCURRENCE-Signal wird von der Auswahlschaltung
15 ausgewählt. Damit ist die Suchbedingung erfüllt, wenn wenigstens einmal die Kombination
1, O bzw. O, 1 erkannt wurde.
-
b) 0100: Suchen nach Nicht-Orthogonalität. Dazu wird das NO OCCUfl#RENCE-Signal
der Bedingungshalteschaltung 13 von der
Auswahischaltung 15 ausgewählt
(Kombination 0, 1 1 1, 0 nicht aufgetreten).
-
c) 1001: Suchen nach Möglichkeit für Blockbildung. Auswahlschaltung
32 wählt die Einzeldetektorschaltung 31 aus; Auswahlschaltung 37 d ie Einzeldetektorschaltung
35. In Auswahlschaltung 15 wird eine konjunktive Verknüpfung der SINGLE OCCURRENCE-S
igna le beider Bed ingungsha ltescha 1-tungen 13, 14 wirksam. Die Suchbedingung
ist somit erfüllt, wenn nur in einer Variablenposition die Kombination 1, 0 / 0,
1 und nur einmal Ungleichheit festgestellt wurde (für alle anderen Variablenpositionen
außer der einen liegt folglich Gleichheit vor).
-
d) 1011: Suchen nach Möglichkeit für Blocktausch. Im Gegensatz zu
c) wählt Auswahischaltung 37 die Einzeldetektorschaltung 36 aus, so daß die Suchbedingung
erfüllt wird, wenn die Kombinationen 1, 0 / 0, 1 und N, "nicht N" / "nicht N", N
jeweils einmal erkannt wurden.
-
Zur Adressierung der Speicher während der Durchmusterungsabläufe dient
die Adressengeneratorschaltung 16, deren Struktur in Fig. 9 näher dargestellt ist.
-
Die ersten Adressen leitungen 17 zur Adressierung des RAM 2 sind an
einen RAM-Adressenzähler 38 angeschlossen, der den eingangsseitigen Datenleitungen
4 nachgeschaltet und über eine Koppelstufe mit den ausgangsseitigen Datenleitungen
5 verbunden ist. Weiterhin sind den eingangsseitigen Datenleitungen 4 ein Zeilenzähler
39 und ein Variablenanzahlregister 40 nachgeschaltet. Die zweiten Adressenleitungen
18 (für die Speicher 3, 9) sind an einen Variablenadressenzähler 41 angeschlossen,
dem ein Vergleicher 42 nachgeordnet ist, der an einige der Ausgänge des Variablenanzah
lregisters 40 angeschlossen ist. Dessen verbleibende Ausgänge sind mit einem Inhibit-Zuordner
43 verbunden. Die Schreibimpulseingänge der Zähler bzw. Register 38, 39, 40 (IMRITE
RAM RDRS, WRITE ROW COUNT, ~#lTE VAR COUNT) sind an nicht näher beschriebene Decoder
angeschlossen, die niedere Bitpositionen der Adresse gemäß Fig. 3b decodieren, so
daß der Universalrechner 1 die
Startadresse der TVL, deren Zeilenzahl
und die Anzahl der Variablen pro Zeile in die betreffenden Schaltmittel laden kann.
Weiterhin ist der Inhalt des RAM-Adressenzählers 38 über die Koppelstufe und die
ausgangsseitigen Datenleitungen 5 vom Universalrechner 1 abfragbar.
-
Der RAM-Adressenzähler 38 ist ein binärer Vorwärtszähler mit einer
Stellenzahl, die zur Adressierung des RAM 2 ausreicht (z. Bo 20 Bit für 1024 K 16-Bit-Worte).
Der Zei lenzähler 39 ist ein binärer Rückwärtszähler, der nur dann ein Ausgangssignal
abgibt, wenn er den Inhalt Null erreicht hat (ROW COUNT ZERO). Das Variablenanzahlregister
40 hat für 4096 Variable eine Breite von 12 Bit. Der Varlablenadressenzähler 41
ist ein 9-stelliger binärer Vorwärtszähler, der die maximal 512 Abschnitte zu je
acht Variablen in den Speichern 8, 9 adressiert. Der Vergleicher 42 vergleicht diese
Variablenadresse mit den höherwertigen 9 Bitpositionen des Variablenanzahl registers
40.
-
Zur Steuerung der Anordnung kann z. B. eines der an sich bekannten
Mikroprogrammsteuerwerke benutzt werden. Eine einfache Steuerschaltung ist in den
Fig. 10, 11, 12 dargestellt, Fig. 13 zeigt das zugehörige Impulsdiagramm.
-
Fig. 10 zeigt unter anderem das Aktivierungsflipflop 44 sowie ein
rückgekoppeltes Schieberegister 45, das zeitversetzte Taktimpulse T1 ... T4 abgibt.
-
Ist die Verarbeitungseinrichtung 3 nicht selbst aktiv, so ist das
Flipflop 44 rückgesetzt (IDLE-Zustand).
-
In diesem Zustand sind die Auswahlschaltungen 19, 20 so eingestellt,
daß der Universalrechner 1 direkt zu den Speichern 2, 8, 9 zugreifen kann. Nach
Bereitstellung der erforderlichen Information startet der Universalrechner 1 die
Verarbeitungseinrichtung 3 durch Signalisieren eines Start impulses (INITlATE),
der das Flipflop 44 einschaltet. Dadurch wird IDLE inaktiv. Dies steuert die Auswahlschaltungen
19, 20 so um, daß die Speicher 2, 8, 9 nun von der Adressengeneratorschaltung 16
adressiert werden. Weiterhin beginnt das Schieberegister 45 mit der Abgabe von Takt
impulsen, so daß der Durchmusterungsablauf ausgeführt wird. Der Ruhezustand (IDLE)
wird wieder
erreicht, wenn entweder die Suchbedingung erfüllt wurde
(dann wird ein STOP-Signal aktiv) oder wenn alle Zeilen der TVL erfolglos durchsucht
wurden (ROW COUNT ZERO). Der IDLE-Zustand sowie das besagte STOP-Signal sind über
eine Koppelstufe und die auswärtsführenden Datenleitungen 5 vom Universalrechner
1 aus abfragbar. Damit kann dieser mit einer Abfrageschleife auf die Erledigung
des Auftrages warten und feststellen, ob die betreffende Bedingung erfüllt wurde
oder nicht. Bei erfüllter Suchbedingung ergibt der aktuelle Inhalt des RAM-Adressenzählers
38 die Adresse der jeweiligen TVL-Zeile.
-
Fig. 11 zeigt die Bildung des STOP-Signals und des flücksetzsignals
HOLD RESET für die Bedingungshalteschaltungen 13, 14.
-
Nach der Durchmusterung des letzten Abschnittes jeder TVL-Zeile wird
ein Auswerteintervall gebildet (EVALUATION SLOT).
-
Ist die Bedingung am Ausgang der Auswahlschaltung 15 aktiv (CONDITlON),
so wird STOP eingeschaltet. Weiterhin werden in jedem Auswerteintervall die Flipflops
der Bedingungshalteschaltungen 13, 14 zurückgesetzt.
-
Eine weitere Besonderheit der erfindungsgemäßen Anordnung besteht
darin, daß TVL-Zeilen bei der Durchmusterung übersprungen werden können. Einige
wesentliche Algorithmen erfordern, daß Zeilen aus der TLL entfernt werden. Nach
Entfernung einer Zeile muß üblicherweise die TVL "zusammengeschoben" werden. Dies
ist bei großen TVL sehr zeitaufwendig.
-
Deshalb ist es vorgesehen, die "freie" Codierung 01 der Bits E, V
der ersten Variablenposition in jeder Zeile dazu zu benutzen, die betreffende Zeile
als ungültig zu erklären.
-
Wird eine solche Zeile während der Durchmusterung vorgefunden, so
wird sie übergangen, d. h. bei der Bedingungsauswertung nicht berücksichtigt.
-
Dazu ist das Signal SKIP ROW vorgesehen.
-
Dessen Erzeugung ist zusammen mit der des Auswerteintervalls (EVALUATION
SLOT) und dem Rücksetzsignal des Variablenadressenzählers 42 (RESET VAR ADRS) in
Fig. 12 dargestellt.
-
Der Vergleicher 42 aktiviert sein Ausgangssignal VAR ADRS COtPARE,
wenn der Variablenadressenzähler 41 den letzten
Abschnitt der aktuellen
Zeile adressiert. Davon wird das Auswerteintervall abgeleitet, und der Variablenadressenzähler
41 wird zurückgesetzt, so daß die Durchmusterung der nächsten TVL-Zeile beginnen
kann. Das Auswerteintervall veranlaßt weiterhin das Zählen des Zeilenzählers 39.
-
Das Signal SKIP ROWwird für die Dauer des Durchmusterns einer Zeile
gebildet, wenn in der ersten Variablenposition der betreffenden Zeile die Belegung
01 der Bits EO, VO vorgefunden wird.
-
Weitere Details sind im Zusammenhang mit dem lmpulsdiagramm Fig. 13
ersichtlich.
-
In jedem Zyklus von T1 bis T4 wird ein Speicherzugriff ausgeführt.
Die Ausgangsregister 22, 23, 24 können z. B. mit der Vorderflanke von T4 die betreffenden
Speicherbelegungen übernehmen. Daraufhin wird mit T4 der RAM-Adressenzähler 38 um
1 erhöht. Die Bedingungsauswertung erfolgt stets um einen Zyklus versetzt (HOLD
CLOCK). Deshalb ist gemäß Fig. 10 ein Flipflop EVALUATION ENABLE vorgesehen, das
veranlaßt, daß die HOLD CLOCK-ImpuIse (= T3) erst vom zweiten Zyklus nach dem Start
an abgegeben werden. Im Beispiel gem. Fig. 13 hat eine Zeile 24 Ternärvariable,
d. h. drei Abschnitte. Entsprechend liefert der Variablenadressenzähler 41 die Adressen
0, 1, 2. Bei Adresse 2 wird der Vergleicher 42 aktiv (VAR ADRS COMPARE).
-
Dies wird mit T3 in ein erstes Flipflop übernommen (COMPARE SLOT),
das mit dem folgenden T1 wieder zurückgesetzt wird. In diesem Zeit interval 1 wird
der Variablenadressenzäh 1er 41 zurückgesetzt (RESET VAR ADRS).
-
Mit einem Zyklus Verzögerung liefert ein zweites Flipflop das Auswerteintervall
EVALUATION SLOT (von T3 bis T1, so daß mit T4 das STOP-Flipflop einschalten kann).
~ Bei Aktivierung von STOP ist die aktuelle RAM-Adresse um 2 höher als die Adresse
des letzten Abschnittes der Zeile, für die die Suchbedingung erfüllt ist. Der Universalrechner
1 kann somit die Anfangsadresse der betreffenden Zeile errechnen, indem er von der
gelesenen Belegung des RAM-Adressenzählers die um 1 erhöhte Anzahl der Abschnitte,
aus denen eine Zeile besteht, subtrahiert.
-
Wegen der Überlappung der Speicherzugriffe mit der Bedingungsauswertung
wird während des Intervalls EVALUATION SLOT gerade der erste Abschnitt der folgenden
Zeile gelesen. Damit kann mit der Rückflanke von T4 SKIP ROW je nach der Belegung
der ersten Variablenposition ein- oder ausgeschaltet werden.
-
Während des Durchmusterns der weiteren Abschnitte der betreffenden
Zeile bleibt SKIP ROW aktiv (über die Pückführung) und verhindert die Bedingungsauswertung
in der betreffenden Zeile.
-
Bei Einsatz flankengetriggerter Flipflops mit Haltezeit O läßt sich
unproblematisch ein sicheres Funktionieren der Schaltung erreichen, wenn in Fig.
12 die Rücksetzeingänge der Flipflops COMPARE SLOT, EVALUATION SLOT -statt direkt
mit T1 mit der konjunktiven Verknüpfung von T1 mit dem Taktsignal des SECIP ROW-Flipflops
beschaltet werden (d. h. mit T1 & /T4). Damit ist gewährleistet, daß die Rückflanke
von T4 vor dem Rüclcsetzen der Flipflops wirksam geworden ist. In der beschriebenen
Ausführung werden gestrichene Zeilen nicht ausgewertet, aber weiterhin durchmustert
Um diese Durchmusterungszeit wirksam zu verringern (auf einen Zyklus pro gestrichene
Zeile), kann die Adressengeneratorschaltung 16 gemäß Fig. 14 modifiziert werden,
indem dem flAM-Adressenzähler 38 über eine Auswahlschaltung 46 und ein Adressenhalteregister
47 ein Addierwerk 48 vorgeschaltet ist, mit dem die Anzahl der Abschnitte einer
Zeile (NlBBLE COUNT aus dem Variablenanzahlregister 40) zur aktuellen RAM-Adresse
addiert werden kann.
-
Die Addition erfolgt im ersten Zyklus jeder Zeile, in der SKIP ROW
aktiv ist (Übernahme in das Adressenhalteregister 47 mit Vorderflanke T1, Laden
des RAM-Adressenzählers 38 mit Rückflanke von T1). Somit erfordert jede gestrichene
Zeile nur einen Zyklus bei der Durchmusterung der TVL.
-
Bei der Aufbereitung der TVL und der Vektor-Operanden werden die Variablenposit
ionen stets von der niedrigstwertigen an belegt. TVL-Zeilen bzw. Ternärvektoren
belegen stets eine gewisse Anzahl von Abschnitten. Dabei können höherwertige Positionen
des jeweils letzten Abschnittes unbenutzt bleiben.
-
Um zu vermeiden, daß dafür der Maskenvektor spezifisch aufbereitet
werden muß, ist den niedrigsten Stellen des Variablenadressenregisters 40 ein Inhibit-Zuordner
43 nachgeschaltet.
-
Fig. 15 zeigt, wie dessen Ausgangssignale INHIBIT 7 ... 0 eine zusätzliche
Maskierung der unbenutzten Positionen des letzten Abschnittes bewirken. MASK.7 ...
MASK.O sind die Maskierungssignale für die Bedingungszuordner 10, 11 und den Funktionszuordner
12. Der Maskenoperandenspeicher 8 tMCA.7 ... MOM.O) ist nicht direkt, sondern über
UND-Gatter angeschlossen, denen NAND-Gatter vorgeschaltet sind, die den INHIBIT-Leitungen
des Inhibit-Zuordners 43 nachgeordnet und gemeinsam an eine Leitung angeschlossen
sind, die den letzten Abschnitt einer Zeile signalisiert. Diese Leitung ist einem
Flipflop nachgeschaltet, das mit der Ausgangsleitung des Vergleichers 42 (VAR ADRS
COfÇARE) verbunden ist.
-
Damit werden im letzten Abschnitt jeder Zeile die NAND-Gatter aktiviert,
so daß für unbenutzte Positionen jeweils eine Null auf den lAaskierungsleitungen
MASK.7 ... MASK.O erscheint.
-
Der Inhibit-Zuordner 43 muß dazu so eingerichtet sein, daß er auf
allen Ausgangsleitungen Einsen abgibt, die bei der aktuellen Variablenanzahl unbenutzten
Variablenpositionen entsprechen, d. h. bei einer benutzten Variablen 1111 1110 zwei
benutzten Variablen 1111 1100 drei benutzten Variablen 1111 1000 usw.
-
Die entsprechenden kombinatorischen Verknüpfungen können z. B.
-
mit einem PROM-Schaltkreis realisiert werden.
-
Fig, 16 zeigt die Ausgestaltung des Funktionszuordners 12 anhand einer
Variablenposition. Die Aufgabe des Funktionszuordners 12 besteht darin, bei Lesezugriffen
des Universalrechners 1 zu TVL-Zeilen im RAM 2 bestimmte Verknüpfungen mit dem Inhalt
der Speicher 8, 9 vorzunehmen, so daß statt des jeweiligen Abschnittes der TVL-Zeile
bereits das Verknüpfungsresultat gelesen werden kann.
-
Dazu sind über die in Fig. 16 nicht dargestellten Koppelstufen 25
für jede Variablenposition zwei Auswahlschaltungen an die auswärtsführenden Datenleitungen
5 angeschlossen. Die Auswahleingänge der Auswahlschaltungen sind mit dem Modusregister
21 verbunden. Die Auswahlschaltung für das Erlaubnisbit (DAT.Ei) ist nachgeordnet:
. einer konjunktiven Verknüpfung 49 des Erlaubnisbits von PXANI 2 und des invertierten
Erlaubnisbits des ZvJeitoperandenspeichers 9, . einer disjunktiven Verknüpfung 50
des Erlaubnisbits beider Speicher 2, 9, . einer konjunktiven Verknüpfung 52 des
Erlaubnisbits von PAM 2 mit dem jeweiligen invertierten Ausgang der Ungleichheitsdetektorschaltung
33.
-
Die Auswahlschaltung für das Wertbit (DAT.Vi) ist verbunden mit: .
einem "Null"-Signal, . einer disjunktiven Verknüpfung 51 der Wertbits beider Speicher
2, 9, . einer konjunktiven Verknüpfung 53 des Wertbits von EAM 2 mit dem jeweiligen
invertierten Ausgang der Ungleichheitsdetektorschaltung 33.
-
Die Auswahlschaltungen sind weiterhin mit den jeweiligen Maskierungsleitungen
(MASK.i) beschaltet. Zur Steuerung der Auswahl dienen die Bitpositionen 5, 4 des
Modusregisters 21 (s. Fig. 8).
-
Dementsprechend sind folgende Funktionen ausführbar: a) 00: Bildung
des Markierungsvektors für die Orthogonalisierung.
-
Ist der Ternärvektor im Zweitoperandenspeicher 9 zu einer TVL-Zeile
im RAM 2 nicht orthogonal, so ist gelegentlich eine Orthogonalisierung erforderlich.
Dabei sind jene Variablenpositionen zu beeinflussen, in denen ein N-Element des
Ternärvektors einem Element O bzw. 1 der TVL-Zeile gegegenübersteht. Diese Variablenposit
ionen werden durch einen binären Markierungsvektor gekennzeichnet.
-
Für diesen Vektor werden nur die Erlaubnisbits benutzt.
-
Liegt die beschriebene Bedingung in einer Variablenpositlon vor,
so veranlaßt die konjunktive Verknüpfung 49, daß das betreffende Erlaubnisbit auf
1 gesetzt wird.
-
b) 01: Durchschnittsbildung.
-
Diese ist möglich, wenn Ternärvektor und TVL-Zeile zueinander nicht
orthogonal sind. Dabei tritt die Kombination 1, 0 / 0, 1 nie auf. Der Durchschnitt
hat in jeder Variablenposition den Wert N, wenn beide Operanden den Wert N haben.
-
Weitere Resultate: N, O / O, N: O . N, 1 / 1, N: 1 0, 0 : 0 1, 1
: 1 Dies wird durch die disjunktiven Verknüpfungen 50, 51 realisiert.
-
c) 10: Blockbildung. Dabei wird an der Variablenposition, an der die
Kombination 1, 0 / 0, 1 festgestellt wurde, ein N-Element eingetragen. Die übrigen
Positionen entsprechen dem Inhalt der TVL-Zeile.
-
Zur Identifizierung der besagten Position dient die Ungleichheitsdeteletorschaltung
33, wobei über die konjunktiven Verknüpfungen 52, 53 der Inhalt von RAM 2 entweder
weitergeleitet oder durch die Belegung 0, 0 (N-Element) ersetzt wird.
-
Für maskierte Variablenpositionen (MASK.i = 0) wird stets die Belegung
0, 0 geliefert.
-
Die Benutzung des Funktionszuordners 12 erfolgt durch spezielle Zugriffe
seitens des Universalrechners 1. Dazu müssen weitere, hier nicht näher dargestellte
Positionen des Modusregisters 21 gesetzt werden. Im wesentlichen dienen diese dazu,
die Ausgänge des Funktionszuordners 12 über die Koppelstufen 25 zu den ausgangsseitigen
Datenleitungen 5 durchzusteuern und die Adressengeneratorschaltung 16 in einem speziellen
Modus zu betreiben. Für die speziellen Zugriffe liefert der Universalrechner 1 eine
spezielle Adresse gemäß Fig. 3b.
-
Diese veranlaßt, daß die eigentliche Adressierung der Speicher 2,
8, 9 von der Adressengeneratorschaltung 16 aus erfolgt, wobei nach jedem Zugriff
die Adressenzähler 38, 41 entsprechend erhöht werden. Die beschriebene sequentielle
Steuerung (Fig. 10 - 13) wird nicht benutzt. Die schaltungstechnische Voraussetzung
dazu besteht in Auswahlschaltungen, die den Takteingängen der Adressenzähler 38,
41 vorgeschaltet und mit einem Impulsgenerator ("single shot" oder Monoflop) verbunden
sind, der an die bisher noch nicht näher beschriebenen Adressendecoderschaltungen
angeschlossen ist (Fig. 17).
-
Die Längenzählung obliegt in dieser Zugriffsart dem Universalrechner
1.
-
Der Einsatz der erfindungsgemäßen Anordnung sei im folgenden am Beispiel
der Durchschnittsbildung zweier Ternärvektorl isten veranschaulicht: 1. Der Universalrechner
1 faßt beide Ternärvektorlisten zu einer zusammen, reserviert den Speicherplatz
für die Resultat-TVL und stellt den Maskenvektor im Maskenoperandenspeicher 8 bereit.
-
2. Der Universalrechner 1 transportiert die letzte Zeile der TVL in
den Zweitoperandenspeicher 9 und reduziert die Zeilenzahl um 1 ("Streichen der letzten
Zeile").
-
3. Der Universalrechner 1 stellt Anfangsadresse, Zeilenzahl, Variablenzahl
und Modus (Suchen einer nichtorthogonalen Zeile) in der Anordnung 3 ein und startet
den Suchablauf.
-
4. Die Anordnung 3 durchsucht die TVL unter Steuerung der Adressengeneratorschaltung
16.
-
5. Der Universalrechner 1 wertet das Suchresultat aus. Wurde keine
nichtorthogonale Zeile gefunden, so wird mit Schritt 2 fortgesetzt.
-
6. Wurde eine nichtorthogonale Zeile gefunden, so errechnet der Universalrechner
1 aus dem Inhalt des RAh-Adressenzählers 38 die Anfangsadresse der betreffenden
Zeile und lädt diese in den RAM-Adressenzähler 38 zurück. Weiterhin wird die Modussteuerinformation
für die Benutzung des Funktionszuordners 12 eingestellt (für Durchschnittsbildung>.
-
7. Der Universalrechner 1 steuert den Transport der Zeile in den Speicherbereich
der Resultat-TVL. Da das Lesen der Zeile aus dem RAM 2 über den Funktionszuordner
12 geführt wird, entsteht der Durchschnitt ohne zusätzliche Rechenoperationen.
-
8. Aus der in Schritt 6 ermittelten Anfangsadresse der gefundenen
Zeile wird die Anfangsadresse der nachfolgenden Zeile errechnet (Universalrechner
1>. Damit wird das Suchen fortgesetzt. Zur Auswertung wird zu Schritt 5 verzweigt.
-
Der Ablauf wird beendet, wenn die Ausgangs-TVL bis zur letzten Zeile
reduziert wurde. Der Speicherbereich der Resultat-TVL enthält den gewünschten Durchschnitt.
(Die Verwaltung des Zeilenzählers und der anderen beschreibenden Parameter der Resultat-TVL
ist Angelegenheit des Universalrechners 1 und hier nicht näher dargestellt. Sie
entspricht voll den Prinzipien der üblichen rein softwaremäßigen TVL-Behandlung.)
Es wurde bisher angenommen, daß TVL-Zeilen bzw. Ternärvektoren gemäß Fig. 3a so
gespeichert sind, daß die Erlaubnis- und Wertbits der einzelnen Variablenposit Ionen
jeweils nebeneinander in einem Maschinenwort (des Universalrechners 1) untergebracht
sind.
-
Für die softwaremäßige Verarbeitung ternärer Information hat es sich
jedoch bewährt, Erlaubnis- und Wertbits in getrennten Maschinenworten zu speichern,
die als Erlaubnis- bzw.
-
Wertvektoren separat verarbeitet werden können.
-
So sind z. B. 16 Ternärvariable in zwei 16-Bit-Maschinenworten gespeichert,
wobei eines alle Erlaubnis- und eines alle Wertbits enthält. Die Umstellung der
erfindungsgemäßen Anordnung ist unproblematisch, es müssen lediglich dem RAM 2 zwei
Halteregister nachgeordnet werden, und die Ablaufsteuerungen müssen so ausgelegt
werden, daß je Verarbeltungsschritt zwei Speicherzugriffe ausgeführt werden (der
Übergang von paralleler zu serieller Verarbeitung ist beim Entwurf rechentechnischer
Einrichtungen seit langem üblich und bedarf keiner weiteren Erläuterungen).
-
Fig. 18 zeigt eine besondere Ausbildung des RAM 2, die den Nachteil
des Zeitverlustes (durch die mehr serielle Arbeitsweise) vermeidet. Dabei ist der
RAM 2 aus zwei Speichermoduln ausgebildet, denen jeweils ein Halteregister nachgeschaltet
ist. Beide Moduln werden parallel adressiert. Die Verarbeitung ist in der Verarbeitungseinrichtung
3 voll parallel organisiert. Alle entsprechenden Schaltmittel (Zuordner 10, 11,
12, Speicher 8, 9 usw.) sind für diese Verarbeitungsbreite ausgelegt (bei 16-Bit-Maschinenworten
also für 32 Bit bzw. 16 Ternärvariable).
-
Der Universalrechner 1 kann nur einzelne Maschinenworte lesen.
-
Deshalb ist den Koppelstufen 29 eine Auswahlschaltung vorgeordnet,
die mit der niedrigstwertigen der Adressenbusleitungen 6 verbunden ist. Somit wechseln
beim Zugriff durch den Universalrechner 1 Erlaubnis- und l^Jertvektoren einander
ab. Ähnliche Auswahlschaltungen sind den Koppelstufen 23, 24, 25 vorgeschaltet.
-
Die erfindungsgemäße Anordnung ist mit üblichen Digitalschaltkreisen
relativ einfach und kostengünstig zu realisieren. Für die parallele Verarbeitung
von acht Ternärvariablen (16 Bits gem. Fig. 3a) läßt sie sich mit Ausnahme des RAM
2 auf einer Leiterplatte von z. B. 170 x 210 mm2 unterbringen, namentlich dann,
wenn die Zuordner 10, 11, 12 mit ROM- oder PLA-Schaltkreisen realisiert werden.
Die Zykluszeit des RAM 2 läßt sich weitestgehend ausnutzen. Sie bestimmt faktisch
die interne Arbeitsgeschwindigkeit (Zykluszeiten um 100 ns bei statischen und 500
ns bei dynamischen RAM-Schaltkreisen sind möglich). Da in jedem dieser Zyklen acht
Variable der TVL durchmustert werden, ist d ie die Arbeitsgeschwindigkeit der Anordnung
einer reinen Softwarelösung extrem und naheliegenden Beschleunigungsmaßnahmen deutlich
überlegen.
-
Beispiel: Zykluszeit des Speichers 500 ns.
-
a) Die innerste Schleife eines Suchalgorithmus wird mit 20 Maschinenbefehlen
zu 2 ps angenommen.
-
b) Für eine naheliegende Beschleunigungsmaßnahme wird angenommen:
. Realisierung mit Mikrobefehlen eines mikroprogrammierten Rechners bei Ergänzung
des Rechenwerkes mit TVL-orientierten Verknüpfungsschaltungen Zeitbedarf 10 Mikrobefehle
zu 250 ns.
-
Damit ergeben sich folgende Verarbeitungsleistungen: Realisierung
Zeit für 8 Variable Variable/ps Faktor erfindungsgemäß 500 ns 2 80 a) 40 ps 0,025
1 b) 2,5 us 0,4 16