DE3603320A1 - Anordnung zur verarbeitung von ternaervektorlisten - Google Patents

Anordnung zur verarbeitung von ternaervektorlisten

Info

Publication number
DE3603320A1
DE3603320A1 DE19863603320 DE3603320A DE3603320A1 DE 3603320 A1 DE3603320 A1 DE 3603320A1 DE 19863603320 DE19863603320 DE 19863603320 DE 3603320 A DE3603320 A DE 3603320A DE 3603320 A1 DE3603320 A1 DE 3603320A1
Authority
DE
Germany
Prior art keywords
address
lines
circuit
condition
ram
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19863603320
Other languages
English (en)
Other versions
DE3603320C2 (de
Inventor
Dieter Prof. Dr.sc.techn. DDR 9023 Karl-Marx-Stadt Bochmann
Wolfgang Dipl.-Ing. Matthes
Bernd Dr.sc.techn. DDR 9026 Karl-Marx-Stadt Steinbach
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robotron VEB
Original Assignee
Robotron VEB
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 VEB filed Critical Robotron VEB
Publication of DE3603320A1 publication Critical patent/DE3603320A1/de
Application granted granted Critical
Publication of DE3603320C2 publication Critical patent/DE3603320C2/de
Granted legal-status Critical Current

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)

Description

  • 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

Claims (14)

  1. Patentansprüche 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 Auswahischaltung (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 Adressen leitungen (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.
  2. 2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der erste Bedingungszuordner (10) so ausgebildet ist, daß einer Gültigkeitsdetektorschaltung (29) sowohl ein ODEP-Gatter (3) als auch eine Einzeldetektorschaltung (31) nachgeordnet sind, die beide an eine Auswahischaltung (32) angeschlossen sind, deren Auswahleingang mit dem Modusregister (21) verbunden ist.
  3. 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. 4. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Bedingungshalteschaltungen (13, 14) so ausgebildet sind, daß jeweils zwei Flipflops an eine Bedingungsleitung, eine Takt leitung 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 Itonjunktive Verknüpfung der Ausgangsleitung des ersten Flipflop mit der invertierten Ausgangsleitung des zweiten Flipflop vorgesehen ist.
  5. 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 (12, 14) beschaltet ist, die jeweils den konjunktiven Verknüpfungen der Ausgangsleitungen der ersten Flipflops mit den ininvertierten Ausgangsleitungen der zweiten Flipflops nachgeordnet sind.
  6. 6. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Adressengeneratorschaltung (16) so ausgebildet ist, daß die ersten Adressenleitungen (17) zur Adressierung des A (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 t4asken- und Zweitoperandenspeicher (8, 9) an einen Veriablenadressenzä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 Variablenanzahiregister (40) ausgangsseitig mit dem Vergleicher (42) verbunden ist.
  7. 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. 8. Anordnung nach Anspruch 1 und 6, dadurch gekennzeichnet, daß die Verbindungen zwischen dem tbskenoperandenspeicher (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. 9. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der Funktionszuordner (12) so ausgebildet ist, daß für jede Variablenpos it ion zwei Auswahlschaltungen an die auswärtsführenden Daten leitungen (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 invert ierten Erlaubnisbits des Zweitoperandenspeichers (9), mit einer disjunktiven Verknüpfung (so) 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. 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 Ausvahlschaltung mit den ausgangsseitigen Datenleitungen (5) verbunden sind.
  11. 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 Illertbits 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. 12. Anordnung nach Anspruch 1 und 3, dadurch gekennzeichnet, daß die Ungleichheitsdetektorschaltung (33) so ausgebildet ist, daß für jede Variablenposition eine Ant ivalenzverknüpfung der 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. 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. 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 Flipflop vorgeschaltet ist, dessen invertierte Ausgangsleitung konjunktiv mit der Ausgangsleitung der Auswahlschaltung (15) verbunden ist (Fig. 11, 12).
DE19863603320 1985-03-25 1986-02-04 Anordnung zur verarbeitung von ternaervektorlisten Granted DE3603320A1 (de)

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 (2)

Publication Number Publication Date
DE3603320A1 true DE3603320A1 (de) 1986-07-03
DE3603320C2 DE3603320C2 (de) 1988-09-15

Family

ID=5566222

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DD235743A1 (de) * 1985-03-25 1986-05-14 Robotron Elektronik Anordnung zur orthogonalisierung von ternaervektorlisten

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1582274A (en) * 1976-05-08 1981-01-07 Tokyo Shibaura Electric Co Matrix arithmetic apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1582274A (en) * 1976-05-08 1981-01-07 Tokyo Shibaura Electric Co Matrix arithmetic apparatus

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JP 58-46467(A), Patents Abstr. of Japan, P 202 June 7 1983, Vol. 7/No. 130 *
Weller/Wilke: Programmierb. Steuereinrichtungen, Verl. Technik Berlin, 1981 *
wie oben: Ausg. 7/1982: Fehmel/Posthoff/Steinbach:Binäre Systeme-Rechnergestützter Schaltungsent- wurf *
wie oben: Ausg. 8/79: Posthoff/Steinbach: Binäre dynamische Systeme-Algorithmen und Programme *
Wissenschaftl. Schriftenr. L. TH Karl-Marx-Stadt, Ausg. 1/1979, Posthoff/Steinbach: Binäre Gleichungen-Algorithmen und Programme *

Also Published As

Publication number Publication date
DE3603320C2 (de) 1988-09-15
DD235744A1 (de) 1986-05-14

Similar Documents

Publication Publication Date Title
DE2716369C2 (de)
DE2755273C2 (de)
DE69129569T2 (de) Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE3851488T2 (de) Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor.
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
EP1329816A2 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2019444A1 (de) Datenverarbeitungsanlage
DE2755616A1 (de) Asymmetrischer multiprozessor
DE3587446T2 (de) Signalverarbeitungsprozessor und hierarchische Multiverarbeitungstruktur mit mindestens einem solchen Prozessor.
DE3688806T2 (de) Instruktionsprozessor.
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.
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE69122001T2 (de) Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE3603320C2 (de)
DE69500544T2 (de) Mikrocomputer mit integrierter Haltepunktanordnung zur Erkennung von zusammengesetzten Ereignissen
DE1069910B (de) Kommandowerk mit Indexregister
DE69521089T2 (de) Vektordatenumgehungsmechanismus für einen Vektorrechner
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2727188A1 (de) Anordnung zum adressieren eines speichers
EP0195284A2 (de) Vorrichtung, um die Anzahl der 1/0 Bits in einem n-Bit Binärwort zu zahlen
EP0100460B1 (de) Anforderungsauswahlsteuerung in einem Prozessor-Speicher-Verbindungssystem
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee