DE3587517T2 - Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden. - Google Patents

Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden.

Info

Publication number
DE3587517T2
DE3587517T2 DE85303930T DE3587517T DE3587517T2 DE 3587517 T2 DE3587517 T2 DE 3587517T2 DE 85303930 T DE85303930 T DE 85303930T DE 3587517 T DE3587517 T DE 3587517T DE 3587517 T2 DE3587517 T2 DE 3587517T2
Authority
DE
Germany
Prior art keywords
registers
processor according
cell
node
test device
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.)
Expired - Fee Related
Application number
DE85303930T
Other languages
English (en)
Other versions
DE3587517D1 (de
Inventor
Bruce Cecil Bolton
Gary Lee Logsdon
Mark Robert Scheevel
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.)
Unisys Corp
Original Assignee
Unisys Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unisys Corp filed Critical Unisys Corp
Application granted granted Critical
Publication of DE3587517D1 publication Critical patent/DE3587517D1/de
Publication of DE3587517T2 publication Critical patent/DE3587517T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Devices For Executing Special Programs (AREA)

Description

    HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
  • Diese Erfindung betrifft einen parallelen Registertransfermechanismus für einen Digitalprozessor, der Programme auswertet, die als binär gerichtete Graphen dargestellt sind, und insbesondere einen Prozessor, der derartige Graphen durch fortlaufende Substitutionen von gleichwertigen Graphen auswertet.
  • Beschreibung des Standes der Technik
  • Die meisten Digitalcomputer auf dem heutigen Markt sind noch von der Art, die zunächst durch John von Neumann postuliert wurde, und arbeiten Befehle sequentiell ab. Die ersten höheren Sprachen zur Programmierung von Computern wie z. B. FORTRAN und COBOL berücksichtigten diese Organisation und überließen die Verantwortlichkeiten des Speichermanagement und des Steuerflußmanagement sowie den Aufbau des vom Computer zu implementierenden Algorithmus dem Programmierer. Reine Anwendungssprachen wie z. B. LISP unterscheiden sich von den Befehlssprachen dadurch, daß sie dem Programmierer von diesen Managementverantwortlichkeiten entlasten.
  • Eine Alternative zum reinen LISP ist die Saint-Andrews- Static-Language oder SASL, welche von David A. Turner entwickelt wurde (SASL Language Manual, University of St.
  • Andrews, 1976). Durch Einführung einer Anzahl von "Kombinatoren" genannten Konstanten kann diese Sprache in eine variablenfreie Notation transformiert werden (D.A. Turner, "A New Implementation Technique for Applicative Languages", Software - Practise and Experience, Vol. 9, S. 31-49, 1979). Diese Notation ist insbesondere zur Handhabung von Funktionen höherer Ordnung (die Funktionen als Argumente und Rückkehrfunktionen als Ergebnisse nehmen können) und von nicht genauen Funktionen (die ein Ergebnis zurückführen, sogar wenn ein oder mehrere Argumente undefiniert sind).
  • Die von Turner entwickelte Implementationstechnik verwendet eine Gruppe von Grundfunktionen wie Plus, Minus usw. und eine Gruppe von Kombinatoren, die nicht strikte Funktionen höherer Ordnung sind. Diese Operatoren werden durch Substitutionsregeln formell definiert, von denen einige Beispiele wie folgt sind:
  • S f g x → f x (g x)
  • K x y → x
  • I x → x
  • Y h → h (Y h)
  • C f x y → f y x
  • B f g x → f (g x)
  • cond p x y → x, falls p richtig ist,
  • y, falls p falsch ist,
  • plus m n → r, wobei m und n bereits auf Zahlen reduziert worden sind und r die Summe von m und n ist.
  • Andere Kombinatoren und ihre Definitionen sind in der zuvor angegebenen Turner-Veröffentlichung zu finden.
  • Diese Kombinator-Notation kann in geeigneter Weise als ein binär gerichteter Graph dargestellt werden, in welchem jeder Knoten die Anwendung einer Funktion auf ein Argument repräsentiert. (Diese Graphen sind als SK-Graphen aus den Namen der ersten zwei Kombinatoren bekannt) Die Substitutionsregeln können dann als Graphentransformationsregeln interpretiert werden, und diese Graphen (und deshalb die Programme, die sie repräsentieren,) können in einem als Reduktion bekannten Prozeß von einem Prozessor von ziemlich einfacher Art ausgewertet werden. Ein solcher Reduktionsprozessor ist in der EP-A-0 069 313 mit dem Titel "Reduction processor for executing programs stored as treelike graphs employing variable-free applicative language codes" beschrieben.
  • In einer Druckschrift mit dem Titel "The switched network approach to high-speed communications", veröffentlicht von L. Klos in Proceedings IEEE 1984 National Aerospace and Electronics (NAECON 1984) wird vorgeschlagen, das geschaltete Netzwerkkommunikationssysteme eine attraktive Alternative zu Systemen mit einer Multiplexbus-Struktur bilden. Der Hauptvorteil besteht darin, daß mehrfache Transfers simultan erfolgen können.
  • Einzelheiten des Reduktionsverfahrens können aus der Turner-Druckschrift entnommen werden, jedoch ist ein kurzes Beispiel hilfreich. Die Fig. 1A bis D illustrieren die Reduktion eines Graphen, der das SASL-programm repräsentiert.
  • Nachfolger 2
  • WOBEI
  • Nachfolger x = 1+x
  • Dieses Programm wird in den Kombinator-Ausdruck
  • C I 2 (plus 1)
  • übersetzt (kompiliert), welche durch den Graphen in Fig. 1A repräsentiert wird. Nachfolgende Transformationen dieses Graphen ergeben
  • I (plus 1) 2 unter Verwendung der C-Regel (Fig. 1B)
  • plus 1 2 unter Verwendung der 1-Regel (Fig. 1C)
  • 3 unter Verwendung der Plus-Regel (Figur 1D)
  • Die zur Reduktion eines Graphen durchgeführten Substitutionen erfordern die Handhabung einer Anzahl von unterschiedlichen Datenelementen wie z. B. Zeigern und Kombinator-Codes, welche von einer Stelle zu einer anderen in eine Registerdatei verschoben werden. Bei der in der zuvor erwähnten Anmeldung von Bolton et al. beschriebenen Ausführung erforderte jeder Graphenreduktions-Schritt eine Reihe von Registerdatei-Transfers. In vielen Fällen konnten jedoch die erforderlichen Transfers zwischen den Registern mit einem Anstieg der Geschwindigkeit simultan durchgeführt werden.
  • Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verarbeitungssystem zur Auswertung von binär gerichteten Graphen durch eine Reihe von Substitutionen zu schaffen.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen derartigen Prozessor zu schaffen, bei welchem jede Substitution durch eine Anzahl von simultanen Register- Transfers erzielt werden kann.
  • Es ist eine noch weitere Aufgabe der vorliegenden Erfindung, eine verbesserte Registerdatei für einen solchen Reduktionsprozessor zu schaffen, der den simultanen Transfer von Registerinhalten zwischen den zugehörigen Registern übernimmt, welche die Datei vervollständigen.
  • ABRISS DER ERFINDUNG
  • Gemäß der Erfindung ist vorgesehen ein Graphenreduktionsprozessor mit einer Speichereinrichtung zum Empfangen und Speichern von Zwei-Zellen-Knoten eines binär gerichteten Graphen, die einen Ausdruck in einem variablenfreien Anwendungssprachencode repräsentieren, wobei einige dieser Zellen die Speicheradresse eines anderen Knotens enthalten und andere dieser Zellen einen variablenfreien Operatorcode enthalten, der eine Funktionssubstitution spezifiziert, dadurch gekennzeichnet, daß die Speichereinrichtung eine Registerdatei mit mehreren Registern, die eine eine Art eines Knotens spezifizierende Information enthalten, die linke Zelle eines Knotens enthaltenden Registern und die rechte Zelle eines Knotens enthaltenden Registern aufweist, wobei einige dieser Register außerdem Felder aufweisen, und daß die Speichereinrichtung außerdem Querverbindungsmittel mit mehreren Quernetzwerken zur Verbindung von Feldern von einigen dieser Register mit entsprechenden Feldern von anderen dieser Register und zum parallelen Transfer ihrer Inhalte aufweist.
  • Ein Merkmal der vorliegenden Erfindung besteht in einem Parallelregistertransfermechanismus für einen Reduktionsprozessor, der Anwendungssprachenprogramme auswertet, die als binär gerichtete Graphen dargestellt sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die zuvor erwähnten und weitere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden deutlich aus der nachfolgenden Beschreibung in Verbindung mit den Zeichnungen, in welchen:
  • die Fig. 1A, B, C und D binär gerichtete Graphen derjenigen Art zeigen, die für die vorliegende Erfindung verwendet werden sollen;
  • Fig. 2 ein System zeigt, das die vorliegende Erfindung benutzt;
  • Fig. 3 ein Schaltbild der Graphenmanagersektion der vorliegenden Erfindung ist;
  • Fig. 4 ein Schaltbild der Datensektion der vorliegenden Erfindung ist;
  • Fig. 5 ein Schaltbild des Bedingungskonzentrators der vorliegenden Erfindung ist;
  • Fig. 6 ein Diagramm des Formates eines Knotens der Art ist, aus denen die Graphen gebildet sind;
  • Fig. 7A bis F Diagramme sind, die den Registertransfermechanismus der vorliegenden Erfindung im einzelnen darstellen.
  • ALLGEMEINE BESCHREIBUNG DER ERFINDUNG
  • Das die vorliegende Erfindung verwendende System ist in Fig. 2 dargestellt. Das Hauptelement ist der Graphenmanager 10, der eine Datensektion enthält, welche einige der Knoten eines Graphen, der zu reduzieren ist, als Cache- Speicher abspeichert und für diese zu handhabenden Knoten die Reihe von für die Graphenreduktion erforderlichen Substitutionen durchführt. Das System enthält einen Systemspeicher 11, der einen Speicher für sämtliche Knoten des Graphen bildet, und einen Zuordner 12, der den Systemspeicher für nicht benutzte Worte abfragt, deren Adressen er für eine Verwendung durch den Graphenmanager in eine Warteschlange einreiht. Der Zuordner hält ebenfalls einen Zählwert der Anzahl von Adressen in einer Warteschlange. Ein Service-Prozessor 13 unterstützt eine breite Vielfalt von Datentransfers zu einem (nicht dargestellten) Host- Prozessor; er bietet ebenfalls die Möglichkeit einer Fließ-Arithmetik.
  • Ein besonderes Problem mit der Graphenreduktionstechnik der Systeme des Standes der Technik kann besser wieder anhand der Fig. 1A bis D wieder dargestellt werden. Es sei darauf hingewiesen, daß bei der Transformation des Graphen in Fig. 1A zu dem von Fig. 1B die Inhalte der rechten Zelle eines Knotens b zur rechten Zelle eines Knotens a, die rechte Zelle eines Knotens c zur linken Zelle eines Knotens f und die rechte Zelle eines Knotens a zur rechten Zelle eines Knotens f transferiert werden müssen. Bei den Reduktionsprozessoren des Standes der Technik wurde diese Reihe von Transfers sequentiell ausgeführt, und eine ähnliche Reihe von Transfers wurde ausgeführt, um den Graphen von Fig. 1B auf den von Fig. 1C usw. zu reduzieren. Es ist der Zweck der vorliegenden Erfindung, einen Parallelregistertransfermechanismus zu schaffen, durch welchen jede Sequenz von Registertransfers simultan durchgeführt werden kann, wodurch das Reduktionsverfahren beschleunigt wird.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Ein Graphenmanager 10 von Fig. 2 ist etwas detaillierter in Fig. 3 mit seinen Verbindungen mit einem Zuordner 12 dargestellt. Der Graphenmanager enthält eine Datensektion 20, einen Bedingungskonzentrator 21 und eine Steuersektion 22.
  • Die Datensektion 20 speichert einen Abschnitt des reduzierten Graphen und ermöglicht einen gleichzeitigen Transfer zwischen verschiedenen darin enthaltenen Registern. Wehte von einigen dieser Felder werden an den Bedingungskonzentrator 21 aus nachfolgend noch zu beschreibenden Gründen gesandt. Diese Datensektion ist im einzelnen in Fig. 4 gezeigt, und ihre Registerdatei ist im einzelnen in den Fig. 7A bis F gezeigt.
  • Die Steuersektion 22 ist eine einfache Zustandsmaschine mit einem schreibbaren Steuerspeicher 22b, in dem das Mikroprogramm für die Zustandsmaschine gespeichert wird. Mikroinstruktionsadressen werden durch Verkettung des vom Bedingungskonzentrator 21 empfangenen Distanzfeldes mit dem Feld der nächsten Adresse im Steuerregister 22a erzeugt, welches wiederum die ausgewählte Mikroinstruktion empfängt.
  • Die in Fig. 4 gezeigte Organisation der Datensektion 20 von Fig. 3 umfaßt eine Registerdatei 30, bei welcher es sich um den Hauptmechanismus für einen parallelen Transfer zwischen den Registern zur Durchführung einer Graphensubstitution handelt. Ebenfalls gezeigt ist in Fig. 4 ein Pfadpuffer 50, bei welchem es sich um einen Stapelspeicher handelt, der zur Speicherung von Vorläufern der in der Registerdatei 30 gespeicherten Knoten verwendet wird. Sowohl die Registerdatei als auch der Pfadpuffer werden nachfolgend unter Bezugnahme auf die Fig. 7A bis F beschrieben. Eine Arithmetiklogikeinheit 32 von Fig. 4 führt einfache arithmetische Operationen aus, und eine Businterfaceeinheit 31 kommuniziert mit dem Systemspeicher und anderen Einheiten des Systems. Der Bedingungskonzentrator 21 von Fig. 3 ist im einzelnen in Fig. 5 gezeigt. Der Bedingungskonzentrator erhält Eingangswerte von der Registerdatei 30 sowie von der Arithmetiklogikeinheit 32, dem Zuordner 12 und dem Service-Prozessor 13. Diese Eingangswerte werden zur Erzeugung eines Distanzwertes verwendet, d?er, wie zuvor angedeutet wurde, mit dem Feld der nächsten Adressen aus dem Steuerregister 22a von Fig. 3 verkettet wird, um die Adresse der nächsten Mikroinstruktion im Steuerspeicher 22b zu erzeugen.
  • Wie in Fig. 5 dargestellt ist, enthält der Bedingungskonzentrator 13 Schutzgeneratoren 40A bis M, von denen jeder eine Gruppe von Eingangstermen, als "Bedingungsgruppe" bezeichnet, auf eine Gruppe von "Schutzelementen" abbildet. Ein Schutzelement besteht in einfacher Weise aus einer booleschen Summe von Produkten der ausgewählten Therme. Es wird beispielsweise eine Bedingungsgruppe betrachtet, die die Terme A, B und C als ihre Elemente besitzt. Die Schutzelemente, die aus dieser Gruppe generiert werden könnten, umfassen
  • A UND B UND C
  • A ODER B ODER C
  • (A UND B) ODER (A UND C)
  • (/A UND /B) ODER /C
  • Jeder Schutzgeneratorausgang ist an eine von sechzehn Leitungen im Schutzbus 41 angeschlossen. Der Steuereingang an jeden Schutzgenerator vom Steuerregister 22a wählt die zu erzeugenden Schutzelemente und die freizugebenden Ausgänge aus. Wie zuvor angedeutet wurde, sind die Eingangstermbedingungen von anderen Systemeinheiten; ihre genaue Natur ist für diese Druckschrift nicht relevant. Die Kombinationsgleichungen für die Schutzelemente in jedem Generator sind eine Funktion des spezifischen Mikroprogramms im Einsatz und werden bestimmt, wenn das Mikroprogramm kompiliert wird.
  • Der Schutzbus 41 besteht aus einem 16-Line-Open-Kollektor- Bus, von dem jede besondere Leitung durch mehr als einen Schutzoperator gleichzeitig getrieben werden kann. Der Schutzbus 41 ermöglicht augenblicklich eine logische ODER- Funktion zwischen den Schutzelementen aus unterschiedlichen Schutzgeneratoren. Dies gibt dem Mikroprogrammierer die Gelegenheit, Schutzelemente zu spezifizieren, die die Summe von Schutzelementen aus unterschiedlichen Bedingungsgruppen bilden.
  • Der Schutzbus 41 bildet den Eingang an einen Prioritätenkodierer 42. Der Ausgang des Prioritätenkodierers ist 4 Bit breit und identifiziert das richtige Schutzelement mit der höchsten Priorität, wobei das Schutzelement auf der Leitung 0 die höchste Priorität und das auf der Leitung 15 die niedrigste besitzt.
  • Knotenformat
  • Wie zuvor angedeutet wurde, zeigt Fig. 6 das Format, in dem sich die Knoten des SK-Graphen im Systemspeicher 11, in den verschiedenen Registern der Registerdatei 30 und im Pfadpuffer 50 befinden. Jeder Knoten enthält ein Knotenartenfeld (NT) von 4 Bit und Links- und Rechtszellenfelder (LC und RC), jeweils von 30 Bit. Die Links- und Rechtszellenfelder werden außerdem in ein Zellartenfeld (CT) von 2 Bit, ein Unterartenfeld (ST) von 4 Bit und ein Speicherinhaltsfeld (C) von 24 Bit unterteilt. Die verschiedenen SK- Operatoren und -Werte werden als Kombination von bestimmten Werten dieser Felder kodiert.
  • Parallel-Register-Transfer-Mechanismus
  • Die Registerdatei der in Fig. 4 gezeigten Datensektion ist im einzelnen in Fig. 7A zusammen mit einer schematischen Darstellung des Querverbindungsnetzwerkes 59 gezeigt. Diese Darstellung ist wegen der Komplexität des Netzwerkes 59 schematisch, welches an sich aus vier Kreuzschienennetzwerken besteht, die zur Bildung des gesamten Querverbindungsnetzwerkes überlappend angeordnet sind. Die Fig. 7C bis F sind Tabellen, die die augenblicklichen Quellen und das Ziel für jedes einzelne Kreuzschienennetzwerk angeben, und Fig. 7B ist eine Tabelle, die eine Zusammensetzung dieser Netzwerke darstellt, wie sie nachfolgend im einzelnen noch beschrieben wird.
  • Mit Ausnahme der Register R, F und NNA sind die Register von Fig. 7A so aufgebaut, daß sie Knoten der in Fig. 6 gezeigten Art halten. Pufferregister B0 bis B3 (Register 51a bis c, 52a bis c, 53a bis c, 54a bis c) speichern jeweils einen Knoten und enthalten gewöhnlich einen Redex des reduzierten Graphen. Ein Register T (55a bis c) speichert ebenfalls einen Knoten und wird als vorübergehender Speicher während komplizierter Transformationen benutzt. Wie zuvor erwähnt wurde, handelt es sich bei dem Pfadpuffer (50a bis c) um einen Stapelspeicher, der zum Halten von Knoten benutzt wird, die die Vorläufer der Knoten in der Datensektion sind. Dieser Pfadpuffer kann maximal 2048 Knoten halten.
  • F und R (Register 56 und 57) speichern jeweils eine Zelle und werden hauptsächlich während der Verschiebung des Graphen verwendet, NNA (Register 58) speichert die Adresse eines nicht benutzten Knotens und ist 24 Bit breit.
  • Zusätzlich zu diesen Registern sind verschiedene Busse in die und aus der Registerdatei vorgesehen und diese Busse sind ebenfalls in den Fig. 7b bis f dargestellt. Der Pufferport (BP-Bus 60) ist ein bidirektionaler Port, der zum Transfer eines Knotens vom Pufferregister B3 zum Pfadpuffer benutzt wird. Der BP-Bus 60 wird ebenfalls zum Transfer von Knoten vom Pfadpuffer zu den B3- oder T-Registern benetzt. Während eines Zyklus kann der BP-Bus 60 Daten in die und aus der Datensektion übermitteln, jedoch nicht beides ausführen.
  • Der Datenport (DP-Bus 61) ist ein bidirektionaler Port, der zum Transfer von Knoten zwischen dem externen Datenbus und der Registerdatei benutzt wird. Die über diesen Port laufenden Datentransfers sind dieselben wie die Datentransfers mit einem Register, mit der Ausnahme, daß der Datenport nicht gleichzeitig eine Quelle und ein Ziel sein kann. Der Datenport 61 dient u. a. als Port für den Systemspeicher.
  • Der Adressenport (AP-Bus 62) ist ein unidirektionaler Port, der zum Transfer eines Speicherinhaltsfeldes an den Adressenbus benutzt wird. Die Daten in diesem Port werden zur Adressierung des Systemspeichers verwendet. Die über diesen Port laufenden Datentransfers sind dieselben wie die Datentransfers mit einem Register, mit der Ausnahme, daß der Adressenport nur ein Ziel sein kann.
  • Der neue Knotenport (NNP-Bus 64) ist ein unidirektionaler Port, der zum Füllen des NNA-Registers 58 mit vom Zuordner versorgten Adressen verwendet wird. Dieser Port kann nicht von einem anderen Register in der Datensektion zugegriffen werden.
  • Die Funktion des Querverbindungsnetzwerkes 59 besteht natürlich darin, die Register und Ports der Datensektion miteinander zu verbinden. Wie zuvor erläutert wurde, bildet Fig. 7a eine schematische Darstellung insoweit, als daß das Netzwerk 59 an sich aus vier Querschienennetzwerken besteht, von denen jedes seine eigene Gruppe von Quellen, Zielen und Steuerungen besitzt. Jedes Ziel in einer dieser Kreuz schienen ist mit seinem Eingang an einen n- Eingangs-Multiplexer angeschlossen, wobei n gleich der Anzahl von möglichen Quellen für dieses Ziel ist. Eine separate Steuerinformation für jeden Multiplexer wird durch das Steuerregister 92a zur Verfügung gestellt. Auf diese Weise kann jedes Ziel ihren Speicherinhalt simultan empfangen, und jedes Register kann eine Quelle für mehr als ein Ziel sein.
  • Bei den vier Kreuzschienennetzwerken, die das Querverbindungsnetzwerk bilden, handelt es sich um das Knotentyp- Netzwerk (Fig. 7C) Zelltyp-Netzwerk (Fig. 7D), Untertyp- Netzwerk (Fig. 7E) und Speicherinhalt-Netzwerk (Fig. 7F). Fig. 7B enthält eine Zusammensetzung dieser vier Netzwerke. Diese Figuren zeigen das Verbindungsmuster jedes Netzwerkes. Die Ziele sind in Spalten angeordnet und am oberen Rand der Tabelle bezeichnet. Die Quellen bilden die Reihen der Tabelle und sind am linken Rand bezeichnet. Die X bezeichnen die Verbindungen zwischen Quellen und Zielen. Beispielsweise kann man in Fig. 7B beim Herunterlesen der NNA-Spalte ermitteln, daß das NNA-Register 58 von Fig. 7A nur eine Quelle besitzt, nämlich den NNP-Bus 64. Umgekehrt kann (können) durch Lesen quer über eine Reihe das erlaubte Ziel (die erlaubten Ziele) für eine bestimmte Quelle ermittelt werden.
  • NACHWORT
  • Ein Parallel-Register-Transfer-Mechanismus zur Verhinderung für die Auswertung von Ausdrücken einer als binär gerichteten Graphen gespeicherten variablen freien Anwendungssprache ist zuvor beschrieben worden. Der Ausdruck wird durch eine Reihe von Transformationen reduziert, bis man ein Ergebnis erhält. Während des Reduktionsverfahrens übermittelt der Prozessor Knoten an einen und von einem Speicher und führt verschiedene Operationen an diesem Knoten durch. Der Prozessor kann ebenfalls neue Knoten im Speicher erzeugen und nicht benutzte löschen. Mit der vorliegenden Erfindung kann jede Reduktion mit weitaus weniger Schritten als mit den Systemen des Standes der Technik durchgeführt werden.

Claims (11)

1. Graphenreduktionsprozessor (10) mit einer Speichereinrichtung (20) zum Empfangen und Speichern von Zwei-Zellen-Knoten (a bis f) eines binär gerichteten Graphen (Fig. 1A bis D), die einen Ausdruck in einem variablenfreien Anwendungssprachencode repräsentieren, wobei einige dieser Zellen die Speicheradresse eines anderen Knotens enthalten und andere dieser Zellen einen variablen freien Operatorcode enthalten, der eine Funktionssubstitution spezifiziert, dadurch gekennzeichnet, daß die Speichereinrichtung (20) eine Registerdatei (30) mit mehreren Registern, die eine eine Art eines Knotens (51a bis 55a) spezifizierende Information enthalten, die linke Zelle eines Knotens (51b bis 55b) enthaltenden Registern und die rechte Zelle eines Knotens (51c bis 55c) enthaltenden Registern aufweist, wobei einige dieser Register außerdem Felder aufweisen, und daß die Speichereinrichtung (20) außerdem Querverbindungsmittel (59) mit mehreren Quernetzwerken (Fig. 7B bis 7F) zur Verbindung von Feldern von einigen dieser Register mit entsprechenden Feldern von anderen dieser Register und zum parallelen Transfer ihrer Inhalte aufweist.
2. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß er mehrere Pufferregister (50a bis 50c) zur Speicherung von Knoten von Abschnitten des reduzierten Graphen enthält, wobei diese Knoten nicht in der Registerdatei abgelegt sind.
3. Prozessor nach Anspruch 2, dadurch gekennzeichnet, daß die Pufferregister (50a bis 50c) in einer Last-In-First-Out-Verbindung angeordnet sind, um einen Stapelspeicher zu bilden, dessen Eingabe und Ausgabe stets vom obersten Register des Stapelspeichers erfolgen.
4. Prozessor nach Anspruch 3, dadurch gekennzeichnet, daß die Quernetzwerke ebenfalls Verbindungen (60) mit dem obersten Register des Stapelspeichers enthalten.
5. Prozessor nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß er eine mit verschiedenen Feldern der Register in der Registerdatei (30) verbundene Bedingungstesteinrichtung (21) enthält, um festzu-stellen, welche Funktionssubstitution durchzuführen ist, und um eine Distanzadresse demgegenüber zu erzeugen.
6. Prozessor nach Anspruch 5, dadurch gekennzeichnet, daß die Bedingungstesteinrichtung (21) eine Gruppe von booleschen Logikschaltkreisen enthält, von denen jeder an ausgewählte Register ange-schlossen sind, um mehrere unterschiedliche Informationssignale zu empfangen und verschiedene boolesch-logische Kombinationen der Informationserfassungssignale auf von einem Steuerspeicher (22b) empfangene Steuersignale zu erzeugen.
7. Prozessor nach Anspruch 6, dadurch gekennzeichnet, daß die Bedingungstesteinrichtung (21) eine Gruppe von Signalleitungen (41) aufweist, die in einer Reihenfolge von einer Leitung mit dem Signal höchster Priorität zu einer Leitung mit dem Signal niedrigster Priorität angeordnet sind, wobei jede der Signalleitungen an ausgewählte Gruppen der booleschen Logikschaltkreise angeschlossen ist.
8. Prozessor nach Anspruch 7, dadurch gekennzeichnet, daß die Bedingungstesteinrichtung (21) an die Signalleitungen (41) angeschlossene Prioritätscodiermittel (42) enthält, um die eine Gruppe von Signalen von einem oder mehreren der booleschen Logikschaltkreise empfangende Signalleitung mit dem höchsten Prioritätssignal zu erfassen und eine Distanzadresse (44) in der Form eines Ranges der von einem oder mehreren der booleschen Logikschaltkreise aktivierten Leitung mit dem höchsten Prioritätssignal zu erzeugen.
9. Prozessor nach Anspruch 8, dadurch gekennzeichnet, daß die Steuerspeichereinrichtung (22) an die Zustandstesteinrichtung (21) für einen Empfang der Distanzadresse (44) angeschlossen ist, um eine Gruppe von Steuersignalen abzurufen, um einen Transfer zwischen den Registern zur Erzielung der Funktionssubstitution zu aktivieren.
10. Prozessor nach Anspruch 9, dadurch gekennzeichnet, daß jede Zelle ein Zellartenfeld aufweist, das angibt, ob diese Zelle einen variablen freien Operatorcode enthält, und wobei die Bedingungstesteinrichtung (21) an diese Zellartenfelder angeschlossen ist, um einen variablenfreien Operatorcode zu erfassen.
11. Prozessor nach Anspruch 10, dadurch gekennzeichnet, daß jede Zelle ein Inhaltenfeld besitzt, und wobei die Bedingungstesteinrichtung (21) an das Inhaltenfeld angeschlossen ist, um die Art eines Operators in einem dieser Inhaltenfelder festzustellen.
DE85303930T 1984-06-05 1985-06-04 Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden. Expired - Fee Related DE3587517T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/617,531 US4654780A (en) 1984-06-05 1984-06-05 Parallel register transfer mechanism for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Publications (2)

Publication Number Publication Date
DE3587517D1 DE3587517D1 (de) 1993-09-16
DE3587517T2 true DE3587517T2 (de) 1993-11-25

Family

ID=24474013

Family Applications (1)

Application Number Title Priority Date Filing Date
DE85303930T Expired - Fee Related DE3587517T2 (de) 1984-06-05 1985-06-04 Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden.

Country Status (5)

Country Link
US (1) US4654780A (de)
EP (1) EP0164995B1 (de)
JP (1) JPS6134630A (de)
CA (1) CA1235230A (de)
DE (1) DE3587517T2 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4644464A (en) * 1984-06-05 1987-02-17 Burroughs Corporation Graph manager for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4734848A (en) * 1984-07-17 1988-03-29 Hitachi, Ltd. Combination reduction processing method and apparatus
JPS61262922A (ja) * 1985-05-17 1986-11-20 Fujitsu Ltd レジスタデ−タの高速スタツク回路
US5109524A (en) * 1985-07-02 1992-04-28 Vlsi Technology, Inc. Digital processor with a four part data register for storing data before and after data conversion and data calculations
US4980821A (en) * 1987-03-24 1990-12-25 Harris Corporation Stock-memory-based writable instruction set computer having a single data bus
US5053952A (en) * 1987-06-05 1991-10-01 Wisc Technologies, Inc. Stack-memory-based writable instruction set computer having a single data bus
US5161216A (en) * 1989-03-08 1992-11-03 Wisconsin Alumni Research Foundation Interprocedural slicing of computer programs using dependence graphs
US5175843A (en) * 1989-10-30 1992-12-29 General Electric Company Computer-aided design method for restructuring computational networks to minimize shimming delays
IL97315A (en) * 1990-02-28 1994-10-07 Hughes Aircraft Co Multi-group signal processor
US6185516B1 (en) * 1990-03-06 2001-02-06 Lucent Technologies Inc. Automata-theoretic verification of systems
SE9002558D0 (sv) * 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1268283A (en) * 1970-04-02 1972-03-29 Ibm Connect module
US4447875A (en) * 1981-07-07 1984-05-08 Burroughs Corporation Reduction processor for executing programs stored as treelike graphs employing variable-free applicative language codes
JPS60119642A (ja) * 1983-11-30 1985-06-27 Ricoh Co Ltd 光情報記録再生装置
US4615003A (en) * 1984-06-05 1986-09-30 Burroughs Corporation Condition concentrator and control store for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4644464A (en) * 1984-06-05 1987-02-17 Burroughs Corporation Graph manager for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Also Published As

Publication number Publication date
EP0164995A3 (en) 1989-09-13
EP0164995B1 (de) 1993-08-11
JPS6134630A (ja) 1986-02-18
EP0164995A2 (de) 1985-12-18
CA1235230A (en) 1988-04-12
US4654780A (en) 1987-03-31
DE3587517D1 (de) 1993-09-16

Similar Documents

Publication Publication Date Title
DE2819571C2 (de)
DE3587591T2 (de) Mikroprozessor für Forth-ähnliche Sprache.
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE2714805C2 (de)
DE1900141C3 (de) HilfsSteuerwerk für eine Datenverarbeitungsanlage
DE2934971A1 (de) Datenverarbeitungssystem
DE2505384A1 (de) Steuerteil fuer eine elektronische datenverarbeitungsanlage
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE1549523B2 (de) Datenverarbeitungsanlage
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
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.
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE2556617A1 (de) Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes
DE3688806T2 (de) Instruktionsprozessor.
DE2548720C2 (de) Mikroprogramm-Steuerwerk
DE2739525C2 (de) Rechner
DE69521464T2 (de) Paralleler Prozessor
DE3107568A1 (de) Datenverarbeitungseinrichtung
DE2227761B2 (de) Speichersystem
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE2245284A1 (de) Datenverarbeitungsanlage
DE2136210A1 (de) Zentraleinheit fur eine EDV-Anlage

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee