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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
1984
- 1984-06-05 US US06/617,531 patent/US4654780A/en not_active Expired - Lifetime
-
1985
- 1985-05-31 JP JP11964385A patent/JPS6134630A/ja active Pending
- 1985-06-04 DE DE85303930T patent/DE3587517T2/de not_active Expired - Fee Related
- 1985-06-04 EP EP85303930A patent/EP0164995B1/de not_active Expired - Lifetime
- 1985-06-04 CA CA000483114A patent/CA1235230A/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0164995B1 (de) | 1993-08-11 |
| CA1235230A (en) | 1988-04-12 |
| JPS6134630A (ja) | 1986-02-18 |
| EP0164995A2 (de) | 1985-12-18 |
| DE3587517D1 (de) | 1993-09-16 |
| EP0164995A3 (en) | 1989-09-13 |
| US4654780A (en) | 1987-03-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3587591T2 (de) | Mikroprozessor für Forth-ähnliche Sprache. | |
| DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
| DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
| DE2554652C3 (de) | Modulare Signalverarbeitungseinrichtung | |
| DE2716369C2 (de) | ||
| DE2714805C2 (de) | ||
| DE1900141C3 (de) | HilfsSteuerwerk für eine Datenverarbeitungsanlage | |
| DE2934971A1 (de) | Datenverarbeitungssystem | |
| DE3789490T2 (de) | Steuerungssystem für ein Vektorprozessor. | |
| DE2505384A1 (de) | Steuerteil fuer eine elektronische 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. | |
| DE2739525C2 (de) | Rechner | |
| DE2548720C2 (de) | Mikroprogramm-Steuerwerk | |
| DE69521464T2 (de) | Paralleler Prozessor | |
| DE3107568A1 (de) | Datenverarbeitungseinrichtung | |
| DE2227761B2 (de) | Speichersystem | |
| DE2747304C3 (de) | Einrichtung zur Mikrobefehlssteuerung | |
| 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 |