DD235744A1 - Anordnung zur verarbeitung von ternaervektorlisten - Google Patents

Anordnung zur verarbeitung von ternaervektorlisten Download PDF

Info

Publication number
DD235744A1
DD235744A1 DD27436785A DD27436785A DD235744A1 DD 235744 A1 DD235744 A1 DD 235744A1 DD 27436785 A DD27436785 A DD 27436785A DD 27436785 A DD27436785 A DD 27436785A DD 235744 A1 DD235744 A1 DD 235744A1
Authority
DD
German Democratic Republic
Prior art keywords
address
lines
ram
circuit
memory
Prior art date
Application number
DD27436785A
Other languages
English (en)
Inventor
Wolfgang Matthes
Dieter Bochmann
Bernd Steinbach
Original Assignee
Robotron Elektronik
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 Robotron Elektronik filed Critical Robotron Elektronik
Priority to DD27436785A priority Critical patent/DD235744A1/de
Priority to DE19863603320 priority patent/DE3603320A1/de
Publication of DD235744A1 publication Critical patent/DD235744A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

Gegenstand der Erfindung ist eine Anordnung zur Verarbeitung von Ternaervektorlisten, die als zusaetzliche Verarbeitungseinrichtung an einen Universalrechner und eine Speicheranordnung angeschlossen ist. Ziel ist die Beschleunigung von wesentlichen Ablaeufen von Algorithmen auf der Basis von Ternaervektorlisten bei vergleichsweise geringem Aufwand, und es wird die Aufgabe geloest, fuer die entscheidenden Ablaeufe in jedem Speicherzyklus eine Nutzoperation auszufuehren. Die Loesung besteht im wesentlichen darin, dass die zusaetzliche Verarbeitungseinrichtung ueber einen Zweitoperandenspeicher einen Maskenoperandenspeicher, einen ersten und einen zweiten Bedingungszuordner, einen Funktionszuordner und eine Adressgeneratorschaltung verfuegt. Weitere Merkmale betreffen Bedingungshalteschaltungen, ein Modusregister und die Verbindungen der genannten Baugruppen untereinander und mit den Dateneingangs-, Datenausgangs- und Adressenleitungen des Universalrechners. Fig. 2

Description

Hierzu 17 Seiten Zeichnungen
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, wo Operationen mit Booleschen Gleichungen bzw. mit dem Booleschen Differentialkalkül auszuführen sind, so z.B. bei der Minimierung Boolescher Funktionen, beim Entwurf von Steuerungen, beider Berechnung von Testbelegungen von digitalen Schaltungen usw.
Charakteristik der bekannten technischen Lösungen
Die Anwendung von Ternärvektorlisten, d.h. von Listen von Vektoren, 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 η 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ärvektoren 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ürTVL-Operationen nicht nutzbar.
Weiterhin gibt es spezielle Prozessoren zur Bitverarbeitung, besonders zum Aufbau von Steuerungssystemen. Beispiele dafür sind in Weller/Wilke: 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.
-з- 743 67
Wesen der Erfindung
Die Aufgabe der Erfindung besteht darin, eine Anordnung zur Verarbeitung von Temä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 Temä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 Verarbeitungseinrichtung, Fig. 2 das Blockschaltbild der erfindungsgemäßen Anordnung,
Fig.3 die Speicherung derTernä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 Universal rechners 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 Universalrechners 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 Temärvektorlisten sind in der Schrift Posthoff/Steinbach: Binäre Gleichungen — Algorithmen und Programme dargestellt.
EineTernärvektorliste (im folgenden als TVL bezeichnet) ist eine Anordnung von Vektoren (den Zeilen derTVL), die ihrerseits eine Aneinanderreihung von Variablen darstellen, wobei jede die Werte 0,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 dieserh 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 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 Markierungsvektors für die Orthogonalisierung, die Bildung eines Durchschnittsvektors sowie die Blockbildung.
-4- 743 S7
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 einwä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 Adressengeneratorschaltung 16 vorgesehen, die mit der Auswahlschaltung 15, den Adressenbusleitungen S, 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 Adressen leitungen 18 sind zusammen mit den Adressenbusleitungen 6 über eine Auswahlschaltung 20 sowohl an den Maskenoperandenspeicher 8 als auch an den Zweitoperandenspeicher 9 angeschlossen.
Weiterhin ist ein Modusregister 21 deneingangsseitigen 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 state"-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ärvariabien 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 sol I, steht im Zweitoperandanspeicher (SECOND OPERAND MEMORYSOM) 9. Dieser muß somit 4096 Ternärvariablen bzw. 512 16-Bit-Worte 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 MEMORY MOM) 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 Maskenoperandenspeicher 8 muß somit 4096 Bits enthalten, das sind 512 Worte zu 8Bit.
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. 3 b zeigt dazu die Interpretation der 24-Bit-Adresse. Sind die höchstwertigen 13 Bits alIe 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: Zweitoperandenspeicher9
01: Maskenoperandenspeicher 8
11: Register, Flipflops usw.
(Funktionszuordner 12, Adressengeneratorschaltung 16, Modusregister 21).
Die niedrigstwertigen neun Adressenbits dienen zur Adressierung im ausgewählten Funktionskomplex. Die Decodierung der Adressen und die Erzeugung derZugriffssteuerimpulse (Schreibimpuise, 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 Weise:
• 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 „gefunden"/„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 (CONDITION) zu liefern, wenn eine derfolgenden Bedingungen erfüllt ist:
a) Orthogonalität zwischen einer TVL-Zeüe im RAM 2 und dem Ternärvektor im Zweitoperandenspeicher 9. Dazu muß die Wertekombination 1,0 bzw. 0,1 in wenigstens einer Variablenposition erfüllt sein.
b) Nichtorthogonalität. Die Wertekombination 1, 0 bzw. 0,1 darf niemals auftreten.
c) Blockbildung ist möglich. Dazu muß die Wertekombination 1, 0 bzw. 0,1 genau einmal vorkommen, und die restlichen Variablenpositionen von TVL-Zeile und Ternärvektor müssen mit identischen Werten belegt sein.
d) Blocktausch ist möglich. Dazu müssen die Wertekombinationen 0,1/1, 0 sowie N, O/N, 1/0, N/1, N jeweils genau einmal auftreten.
Der erste Bedingungszuordner 10 besteht somit aus einer Gültigkeitsdetektorschaltung 29mitnachgeordnetemODER-Gatter30 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
-5- 743 67
nachgeordneten Einzeldetektorschaltung 35, 36, die beide an eine Auswahlschaltung 37 angeschlossen sind. Die Auswahleingänge der Auswahlschaltungen 32, 37 sind an das Modusregister 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 Wertekombination 0,1 bzw. 1,0 auftritt. Dazu ist eine Antivalenzverknüpfung der Wertbits aus RAM 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. 1 wird von der Ungleichheitsdetektorschaltung 33 für jede Variablenposition abgegeben, in der eine der Wertekombinationen 0,1/1,0/N, 0/N, 1/0, 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 dereine der Wertekombinationen N, 0/N, 1/0, N/1, IM 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 OCCURRENCE abzugeben, wenn von den Eingangssignalen X0...Xn-I nur eines aktiv (= 1) ist. Dazu ist eine disjunktive Verknüpfung von η konjunktiven Verknüpfungen jeweils aller Eingangssignale vorgesehen. An jeder der η 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 Rücksetzleitung 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 Ausgangsleitung des ersten Flipflop mit der invertierten Ausgangsleitung des zweiten konjunktiv verknüpft.
Beide Flipflops sind selbsthaltend ausgelegt.
EineTVL-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 Variablenpositionen werden in den Speichern 2, S, 9 gleichzeitig adressiert. Nach Ablauf der Zugriffszeit (einschließlich Durchlauf der Bedingungszuordner 10,11) wird ein Taktimpuls HOLD CLOCK abgegeben. Nach Durchmusterung der Zeile werden die Ausgangssignale ausgewertet. Ist das erste Flipflop gesetzt, so ist die Bedingung aufgetreten (OCCURRENCE), andernfalls ist sie nicht aufgetreten (NO OCCURRENCE).
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. 8 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 Bedingungshalteschaltung 13 aus. Deren OCCURRENCE-Signal wird von der Auswahlschaltung 15 ausgewählt. Damit ist die Suchbedingung erfüllt, wenn wenigstens einmal die Kombination 1, 0 bzw. 0,1 erkannt wurde.
b) 0100: Suchennach Nicht-Orthogonalität. Dazu wird das NO OCCURRENCE-Signal der Bedingungshalteschaltung 13 von der Auswahlschaltung 15 ausgewählt (Kombination 0,1 /1,0 nicht aufgetreten).
c) 1001: Suchen nach Möglichkeit für Blockbildung. Auswahlschaltung 32 wählt die Einzeldetektorschaltung 31 aus; Auswahlschaltung 37 die Einzeldetektorschaltung 35. In Auswahlschaltung 15 wird eine konjunktive Verknüpfung der SINGLE OCCURRENCE-Signale beider Bedingungshalteschaltungen 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 alIe 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 Auswahlschaltung 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 Adressenleitungen 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 Speichere, 9) sind an einen Variablenadressenzähler 41 angeschlossen, dem ein Vergleicher 42 nachgeordnet ist, der an einige der Ausgänge des Variablenanzahlregisters 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 (WRITE RAM ADRS, WRITE ROW COUNT, WRITE VAR COUNT) sind an nicht näher beschriebene Decoder angeschlossen, die niedere Bitpositionen der Adresse gemäß Fig. 3 b 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. B. 20 Bit für 1 024K 16-Bit-Worte). Der Zeilenzä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
-6- 743 67
12 Bit. Der Variablenadressenzähler 41 ist ein 9stelliger binärer Vorwärtszähler, die 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 Variablenanzahlregisters 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 Taktimpuise 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 Startimpulses (INITIATE), 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 Taktimpulsen, 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 COUNTZERO). 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 33 die Adresse der jeweiligen TVL-Zeile.
Fig. 11 zeigt die Bildung des STOP-Signals und des Rü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 (CONDITION), so wird STOP eingeschaltet. Weiterhin werden in jedem Auswerteintervall die Flipflops der Bedingungshaiteschaltungen 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 TVL 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 (RESETVAR ADRS) in Fig. 12 dargestellt.
Der Vergleicher 42 aktiviert sein Ausgangssignal VAR ADRS COMPARE, 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 ROW wird für die Dauer des Durchmusterns einer Zeile gebildet, wenn in der ersten Variabienposition der betreffenden Zeile die Belegung 01 der Bits EO, VO vorgefunden wird.
Weitere Details sind im Zusammenhang mit dem Impulsdiagramm 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ähier 3-3 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-Impulse (= T3) erst vom zweiten Zyklus nach dem Start an abgegeben werden. Im Beispiel gem. Fig. 13 hat eine Zeile 24Temärvariable, d.h. drei Abschnitte. Entsprechend liefert der Variablenadressenzähler 41 die Adressen 0,1, 2. Bei Adresse 2 wird der Vergleicher 42 aktiv (VARADRS COMPARE). Dies wird mitT3 in ein erstes Flipflops übernommen (COMPARE SLOT), das mit dem folgenden T1 wieder zurückgesetzt wird. In diesem Zeitintervall wird der Variablenadressenzähler 41 zurückgesetzt (RESET VAR ADRS).
Mit einem Zyklus Verzögerung liefert ein zweites Flipflop das Auswerteintervall EVALUATION SLOT (von T3 bisT1, 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 vonT4 SKIP RCW 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 Rückführung) und verhindert die Bedingungsauswertung in der betreffenden Zeile.
Bei Einsatz flankengetriggerter Flipflops mit Haltezeit 0 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 SKIP ROW-Flipflops beschaltet werden (d.h. mitT1 & T4). Damit ist gewährleistet, daß die Rückflanke von T4 vor dem Rücksetzen 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 RAM-Adressenzähler 38 über eine Auswahlschaltung 46 und ein Adressenhalteregister47 ein Addierwerk 48 vorgeschaltet ist, mit dem die Anzahl der Abschnitte einer Zeile (NIBBLE COUNT aus dem Variablenanzahlregister 4G) zur aktuellen RAM-Adresse addiert werden kann. Die Addition erfolgt im ersten Zyklus jeder Zeile, in der SKIP ROW aktiv ist (Übernahme in das Adressenhalteregister47 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 Variablenpositionen stets von der niedrigstwertigen an
-7- 743 67
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-Zuordner43 nachgeschaltet. Fig. 15 zeigt, wie dessen Ausgangssignale INHIBIT7...0 eine zusätzliche Maskierung der unbenutzten Positionen des letzten Abschnittes bewirken. MASK.Ί... MASK.0 sind die Maskierungssignale für die Bedingungszuordner 10,11 und den Funktionszuordner 12. Der Maskenoperandenspeicher8 (MOM.7...MOM.0) 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 Flipfiop nachgeschaltet, das mit der Ausgangsleitung des Vergleichers 42 (VAR ADRS COMPARE) verbunden ist.
Damit werden im letzten Abschnitt jeder Zeile die NAND-Gatter aktiviert, so daß für unbenutzte Positionen jeweils eine Null auf den Maskierungsleitungen MASK.7...MASK.0 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 RAM 2 und des invertierten Erlaubnisbits des Zweitoperandenspeichers 9,
• einer disjunktiven Verknüpfung 50 des Erlaubnisbits beider Speicher 2, 9,
• einer konjunktiven Verknüpfung 52 des Erlaubnisbits von RAM 2 mit dem jeweiligen invertierten Ausgang der Ungleichheitsdetektorschaltung 33.
Die Auswahlschaltung für das Wertbit (DAT.Vi) ist verbunden mit:
• einem „NulT-Signal,
• einer disjunktiven Verknüpfung 51 der Wertbits beider Speicher 2, 9,
• einer konjunktiven Verknüpfung 53 des Wertbits von RAM 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 derTernärvektor im Zweitoperandenspeicher9zu 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 0 bzw. 1 der TVL-Zeile gegenübersteht. Diese Variablenpositionen werden durch einen binären Markierungsvektor gekennzeichnet.
Für diesen Vektor werden nur die Erlaubnisbits benutzt. Liegt die beschriebene Bedingung in einer Variablenposition 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: 0
• N,1/1,N: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 Ungleichheitsdetektorschaltung 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. 3 b.
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
-8- 743 57
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ärvektorlisten 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 Adressengeneratorschaitung 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 RAM-Adressenzählers 38 die Anfangsadresse der betreffenden Zeile und lädt diese in den RAM-Adressenzäh!er 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ähiers 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. Ternarvektoren gemäß Fig.3a so gespeichert sind, daß die Erlaubnis- und Wertbits der einzelnen Variablenpositionen 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. 16Temärvariable in zwei 16-Bit-Masch inen Worten 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 Verarbeitungsschritt 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 Haiteregister nachgeschaltet ist. Beide Moduln werden parallel adressiert. Die Verarbeitung ist in der Verarbeitungseinrichtung 3 voll parallel organisiert. Alle entsprechenden Schaltmittel (Zuordner 10,11,12, Speichere, 9 usw.) sindfür diese Verarbeitungsbreite ausgelegt (bei 16-Bit-Maschinenworten also für 32 Bit bzw. 16Ternärvariab(e).
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 Wertvektoren einander ab. Ähnliche Auswahlschaitungen sind den Koppeistufen 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 achtTernärvariablen (16 Bits gem. Fig. 3 a) läßt sie sich mit Ausnahme des RAM 2 auf einer Leiterplatte von z. B. 170 χ 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 500ns bei dynamischen RAM-Schaltkreisen sind möglich). Da in jedem dieser Zyklen acht Variable der TVL durchmustert werden, ist die Arbeitsgeschwindigkeit der Anordnung einer reinen Softwareiö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/xs 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 Zeitfür8Vanable Variable/jLts Faktor
erfindungsgemäß 500 ns 2 80
a) 40 με 0,025 1
b) 2,5 us 0,4 16

Claims (14)

1. Anordnung zur Verarbeitung von Ternärvektorlisten, bei der eine zusätzliche Verarbeitungseinrichtung an die Verbindungen zwischen einem Universalrechner und einer Speicheranordnung (RAM) angeschlossen ist, dadurch gekennzeichnet, daß die zusätzliche Verarbeitungseinrichtung (3) einen Zweitoperandenspeicher (9), einen Maskenoperandenspeicher (8), einen ersten Bedingungszuordner (10), einen zweiten Bedingungszuordner (11), einen Funktionszuordner (12) sowie eine Adressengeneratorschaltung (16) umfaßt, daß beide Bedingungszuordner (10,11) sowie der Funktionszuordner (12) dem Zweitoperandenspeicher (9), dem Maskenoperandenspeicher (8) sowie dem RAM (2) nachgeordnet sind, daß jedem der Bedingungszuordner (10,11) jeweils eine Bedingungshalteschaltung (13,14) nachgeschaltet ist, die beide an eine Auswahlschaltung (15) angeschlossen sind, die mit der Adressengeneratorschaltung (16) verbunden ist, daß beide Bedingungszuordner (10,11), der Funktionszuordner (12) sowie die Auswahlschaltung (15) an ein Modusregister (21) angeschlossen sind, daß die Adresseneingänge des RAM (2) sowohl Adressenbusleitungen (6) als auch ersten Adressenleitungen (17) der Adressengeneratorschaltung (16) nachgeordnet sind, daß die Adresseneingänge des Zweitoperandenspeichers (9) und des Maskenoperandenspeichers (8) gemeinsam den Adressenbusleitungen (6) und zweiten Adressenleitungen (18) der Adressengeneratorschaltung (16) nachgeordnet sind, daß alle Speichermittel (2,8, 9) sowie das Modusregister (21) und die Adressengeneratorschaltung (16) an Dateneingangsleitungen (4) angeschlossen sind und daß alle Speichermittel (2, 8,9) sowie der Funktionszuordner (12) und die Adressengeneratorschaltung (16) an Datenausgangsleitungen (5) angeschlossen sind.
-1- 743 67 Patentansprüche:
-2- 743 67
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet daß der erste Bedingungszuordner (10) so ausgebildet ist, daß einer Gültigkeitsdetektorschaltung (29) sowohl ein ODER-Gatter (3) als auch eine Einzeldetektorschaltung (31) nachgeordnet sind, die beide an eine Auswahlschaltung (32) angeschlossen sind, deren Auswahleingang mit dem Modusregister (21) verbunden ist.
3. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der zweite Bedingungszuordner (11) so ausgebildet ist, daß einer Ungleichheitsdetektorschaltung (33) und einer Austauschdetektorschaltung (34) jeweils eine Einzeldetektorschaltung (35, 36) nachgeordnet ist, die beide an eine Auswahlschaltung (37) angeschlossen sind, deren Auswahleingang mit dem Modusregister (21) verbunden ist.
4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Bedingungshalteschaltungen (13,14) so ausgebildet sind, daß jeweils zwei Flipflops an eine Bedingungsleitung, eine Taktleitung und an eine Rücksetzleitung angeschlossen sind, wobei am jeweils zweiten Flipflop die Bedingungsleitung mit der Ausgangsleitung des ersten Flipflop konjunktiv verknüpft ist und daß eine konjunktive Verknüpfung der Ausgangsleitung des ersten Flipflop mit der invertierten Ausgangsleitung des zweiten Flipflop vorgesehen ist.
5. Anordnung nach Anspruch 1 und 4, dadurch gekennzeichnet, daß die Auswahlschaltung (15) drei Eingänge hat, von denen der erste mit der Ausgangsleitung des ersten Flipflop der ersten Bedingungshalteschaltung (13), der zweite mit der invertierten Ausgangsleitung des besagten Flipflop und der dritte mit der konjunktiven Verknüpfung der Ausgangsleitungen beider Bedingungshalteschaltungen (13,14) beschaltet ist, die jeweils den konjunktiven Verknüpfungen der Ausgangsleitungen der ersten Flipflops mit den invertierten Ausgangsleitungen der zweiten Flipflops nachgeordnet sind.
6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressengeneratorschaltung (16) so ausgebildet ist, daß die ersten Adressenleitungen (17) zur Adressierung des RAM (2) an einen RAM-Adressenzähler (38) angeschlossen sind, der sowohl mit den eingangsseitigen als auch mit den ausgangsseitigen Datenleitungen (4, 5) verbunden ist, daß die zweiten Adressenleitungen (18) zur Adressierung der Masken- und Zweitoperandenspeicher (8,9) an einen Variablenadressenzähler (41) angeschlossen sind, dem ein Vergleicher (42) nachgeordnet ist, daß die eingangsseitigen Datenleitungen (4) weiterhin an einen Zeilenzähler (39) und ein Variablenanzahlregister (40) angeschlossen sind und daß das Variablenanzahlregister (40) ausgangsseitig mit dem Vergleicher (42) verbunden ist.
7. Anordnung nach Anspruch 1 und 6, dadurch gekennzeichnet, daß die Adressengeneratorschaltung (16) so ausgebildet ist, daß dem RAM-Adressenzähler (38) eingangsseitig über eine Auswahlschaltung (46) und ein Adressenhalteregister (47) ein Addierwerk (48) vorgeschaltet ist, das mit den ersten Adressenleitungen (17) und mit Ausgangsleitungen des Variablenanzahlregisters (40) beschaltet ist.
8. Anordnung nach Anspruch 1 und 6, dadurch gekennzeichnet, daß die Verbindungen zwischen dem Maskenoperandenspeicher (8) und den Zuordnern (10,11,12) so ausgebildet sind, daß für jede Leitung ein UND-Gatter vorgesehen ist, dem jeweils ein NAND-Gatter vorgeordnet ist, das mit der jeweiligen Ausgangsleitung eines Inhibit-Zuordners (43) verbunden ist, der dem Variablenanzahlregister (40) nachgeschaltet ist, und daß alle besagten NAND-Gatter einem Flipflop nachgeschaltet sind, das an die Ausgangsleitung des Vergleichers (42) angeschlossen ist.
9. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Funktionszuordner (12) so ausgebildet ist, daß für jede Variablenposition zwei Auswahlschaltungen an die auswärtsführenden Datenleitungen (5) angeschlossen sind, deren Auswahleingänge mit dem Modusregister (21) verbunden sind, daß jede erste Auswahlschaltung mit einer konjunktiven Verknüpfung (49) des jeweiligen Erlaubnisbits des RAM (2) und des invertierten Erlaubnisbits des Zweitoperandenspeichers (9), mit einer disjunktiven Verknüpfung (50) der Erlaubnisbits beider Speicher (2, 9) sowie mit einer konjunktiven Verknüpfung (52) des Erlaubnisbits des RAM (2) mit dem jeweiligen invertierten Ausgang der Ungleichheitsdetektorschaltung (33) beschaltet ist und daß jede zweite Auswahlschaltung mit einer disjunktiven Verknüpfung (51) der Wertbits beider Speicher (2, 9) sowie mit einer konjunktiven Verknüpfung (53) des Wertbits des RAM (2) mit dem jeweiligen invertierten Ausgang der Ungleichheitsdetektorschaltung (33) beschaltet ist.
10. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der RAM (2) so ausgebildet ist, daß zwei Speichermoduln vorgesehen sind, die parallel an die eingangsseitigen Datenleitungen (4) und an die ersten Adressenleitungen (17) angeschlossen sind und daß die Speichermoduln ausgangsseitig parallel mit den Zuordnern (10,11,12) sowie über eine Auswahlschaltung mit den ausgangsseitigen Datenleitungen (5) verbunden sind.
11. Anordnung nach Anspruch 1 und 2, dadurch gekennzeichnet, daß die Gültigkeitsdetektorschaltung (29) so ausgebildet ist, daß für jede Variablenposition eine Antivalenzverknüpfung der Wertbits aus dem RAM (2) und dem Zweitoperandenspeicher (9) an eine konjunktive Verknüpfung mit den Erlaubnisbits aus den besagten Speichern (2, 9) sowie dem jeweiligen Maskenbit angeschlossen ist (Fig. 5).
12. Anordnung nach Anspruch 1 und 3, dadurch gekennzeichnet, daß die Ungleichheitsdetektorschaltung (33) so ausgebildet ist, daß für jede Variablenposition eine Antivalenzverknüpfung des Erlaubnisbits aus den Speichern (2, 9) mit der Antivalenzverknüpfung der Wertbits verbunden und einer konjunktiven Verknüpfung mit dem jeweiligen Maskenbit vorgeschaltet ist (Fig.5).
13. Anordnung nach Anspruch 1 und 3, dadurch gekennzeichnet, daß die Austauschdetektorschaltung (34) so ausgebildet ist, daß für jede Variablenposition die Antivalenzverknüpfung der Erlaubnisbits aus den Speichern (2, 9) an eine konjunktive Verknüpfung mit dem jeweiligen Maskenbit angeschlossen ist (Fig. 5).
14. Anordnung nach Anspruch 1 und 6, dadurch gekennzeichnet, daß die Adressengeneratorschaltung (16) so ausgebildet ist, daß eine konjunktive Verknüpfung des invertierten Erlaubnisbits und des Wertbits der ersten Variablenposition des RAM (2) einem Fiipflop vorgeschaltet ist, dessen invertierte Ausgangsleitung konjunktiv mit der Ausgangsleitung der Auswahlschaltung (15) verbunden ist (Fig. 11,12).
DD27436785A 1985-03-25 1985-03-25 Anordnung zur verarbeitung von ternaervektorlisten DD235744A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DD27436785A DD235744A1 (de) 1985-03-25 1985-03-25 Anordnung zur verarbeitung von ternaervektorlisten
DE19863603320 DE3603320A1 (de) 1985-03-25 1986-02-04 Anordnung zur verarbeitung von ternaervektorlisten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DD27436785A DD235744A1 (de) 1985-03-25 1985-03-25 Anordnung zur verarbeitung von ternaervektorlisten

Publications (1)

Publication Number Publication Date
DD235744A1 true DD235744A1 (de) 1986-05-14

Family

ID=5566222

Family Applications (1)

Application Number Title Priority Date Filing Date
DD27436785A DD235744A1 (de) 1985-03-25 1985-03-25 Anordnung zur verarbeitung von ternaervektorlisten

Country Status (2)

Country Link
DD (1) DD235744A1 (de)
DE (1) DE3603320A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3603319A1 (de) * 1985-03-25 1986-07-10 VEB Kombinat Robotron, DDR 8010 Dresden Anordnung zur orthogonalisierung von ternaervektorlisten

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4150434A (en) * 1976-05-08 1979-04-17 Tokyo Shibaura Electric Co., Ltd. Matrix arithmetic apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3603319A1 (de) * 1985-03-25 1986-07-10 VEB Kombinat Robotron, DDR 8010 Dresden Anordnung zur orthogonalisierung von ternaervektorlisten

Also Published As

Publication number Publication date
DE3603320C2 (de) 1988-09-15
DE3603320A1 (de) 1986-07-03

Similar Documents

Publication Publication Date Title
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE68914172T2 (de) Datenverarbeitungssystem und Videoverarbeitungssystem mit einem derartigen Datenverarbeitungssystem.
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE2716369C2 (de)
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2953861C2 (de)
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2357003A1 (de) Programmierbarer prozessor
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
DE1499206B2 (de) Rechenanlage
DE1935944B2 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE3587517T2 (de) Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden.
DE2245284A1 (de) Datenverarbeitungsanlage
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE3603320C2 (de)
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2727188A1 (de) Anordnung zum adressieren eines speichers
DE3603319C2 (de)
EP0100460B1 (de) Anforderungsauswahlsteuerung in einem Prozessor-Speicher-Verbindungssystem
DE2440627C2 (de) Mikroprogrammierter Rechner
DE1549483A1 (de) Schaltungsanordnung zur Durchfuehrung logischer und arithmetischer Grundoperationen
DE2234192C2 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
ENJ Ceased due to non-payment of renewal fee