DE2433436A1 - Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer - Google Patents

Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer

Info

Publication number
DE2433436A1
DE2433436A1 DE2433436A DE2433436A DE2433436A1 DE 2433436 A1 DE2433436 A1 DE 2433436A1 DE 2433436 A DE2433436 A DE 2433436A DE 2433436 A DE2433436 A DE 2433436A DE 2433436 A1 DE2433436 A1 DE 2433436A1
Authority
DE
Germany
Prior art keywords
memory
address
program
data
bits
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.)
Pending
Application number
DE2433436A
Other languages
English (en)
Inventor
Charles P Disparte
Jun Warren L Hall
Kenneth N Isaac
C Howard Mock
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of DE2433436A1 publication Critical patent/DE2433436A1/de
Pending 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

Xerox Square, Rochester, New York 14603, USA
Verfahren und Anordnung zum Mehrfachverzweigen des Programms in einem digitalen Computer
Die Erfindung "bezieht sich auf ein Verfahren zum Mehrfachverzweigen des Programms und Erreichen einer bestimmten Adresse in einem digitalen Computer sowie auf eine Anordnung zur Durchführung des Verfahrens -
Mit Hilfe des Verfahrens soll eine Programmverzweigung zu jeden einer vorgewählten Vielzahl von beliebigen Speicherplätzen während eines einzigen Befehlsausführungszyklus entsprechend des Inhaltes eines Datenregisters vorgenommen werden.'
Bei einem typischen, in Maschinensprache vorliegenden Programm wird eine von einer Bedingung abhängende Verzweigung mit Hilfe eines die Verzweigung angebenden Befehls, gefolgt von einer Speicherplatzadresse durchgeführt. Der Verzweigungsbefehl beobachtet einen bestimmten Hardware-Zustand, z.B. eine Überlaufanzeige, wobei entsprechend dieser Anzeige entweder zu dem angegebenen Speicherplatz gegangen wird oder die nächste Zeile des Programms übersprungen und es dann fortgesetzt wird. Dieses ist ein^Beispiel für eine Zweiweg-Verzweigung, bei der das Programm sich entweder zu dem angegebenen Speicherplatz ver-
509809/0701
zweigt oder das Programm weiterführt, wobei die Entscheidung entsprechend eines Datenbits, vorgenommen wird.
Dreiweg-Verzweigungen werden bei in Maschinensprache vorliegenden Programmen gewöhnlich als Vergleichsbefehle angesehen. So wird z.B. ein Wort in einem Speicher als Bezugswert benutzt, mit dem die Inhalte des-Akkumulators verglichen werden. Typischerweise folgen diesem Befehl zwei Adressen, wobei das Programm an die erste Adresse sich verzweigen wird, wenn der Bezugswert größer ist, und an die zweite Adresse sich verzweigen wird, wenn der Bezugswert kleiner ist. Sind die beiden Werte einander gleich, so wird das Programm weitergeführt.
Das Problem, mit diesen beiden Arten von Verzweigungsbefehlen liegt darin, daß die Befehle die Daten Bit für Bit abfragen. 1st die Datengruppe lang und komplex, so benötigt diese Technik eine Vielzahl von Verschiebe- und Prüfbefehlen, die das Programm verlangsamt und eine hohe Speicherkapazität erfordert.
Bei einigen Anwendungen, bei denen eine hohe Geschwindigkeit erforderlich und eine große Speicherkapazität zur Verfugung steht, wird eine Tabellenüberwachungs-Methode benutzt, bei der die Daten selbst die niedrigstwertigen Bits des Adressenfeldes werden. Wird in einem System z.B. ein Datenfeld mit acht Bit benutzt, wobei ein Speicherplatz eine 16-Bit-Adresse hat, so können die höchstwertigen 8 Bit des Adressenfeldes zusammengefaßt werden und die 8 Bits der Daten als die niedrigstwertigen 8 Bits des Adressenfelds benutzt werden. Eine Verzweigung zu dieser Adresse würde sofort jede getrennte Datenbit-Konfiguration mit einem bestimmten Speicherplatz versehen, zu dem die Verzweigung führen soll. Jeder dieser 256 Speicherplätze enthält andererseits einen bedingungslosen Verzweigungsbefehl zu jedem Speicherplatz im.
50980 9/0701
~7
Speicher. Jede Kombination von Bits zwingt daher das Programm an einen anderen und unabhängigen Speicherplatz. Das Problem bei diesem System besteht natürlich darin, daß 256 Worte des Speichers immer dann benutzt werden müssen, wenn diese Verzweigungstechnik angewendet wird.
Eine Hardware-Abwandlung dieser Methode wird bei mikroprogrammierbaren Computern benutzt, um zu dem Teil des Mikroprogramms im Steuerspeicher sich zu verzweigen, das der Ausführung des jeweiligen Operationscodes dient. Bei einem Zahlenbeispiel wird angenommen, daß der Operationscode in dem in Maschinensprache vorliegenden Programm als 8 Bit-Feld vorliegt und daß alle Programmschritte zum Benutzen des gesamten Operationscode-Vortschatzes in den ersten tausend Worten des Mikrocodes angeordnet sind. In diesem Fall kann eine 8 χ 10-Bit-Matrix zur Umwandlung des 8 Bit umfassenden Operationscodes unmittelbar in eine 10 Bit umfassende Adresse benutzt werden. Eine geeignete Hardware für eine unmittelbare Verzweigung zu der auf diese Weise erzeugten Adresse hat die gewünschte Folge, daß unmittelbar zu einem aus einer Vielzahl vorgewählter Speicherplätze entsprechend des Inhaltes des Operationscode-Feldes abgezweigt wird. Jedoch ist, selbst wenn diese besondere Mehrfachverzweigungsmöglichkeit für die Verarbeitung von Operationscode vorgesehen ist, in den übrigen Teilen des Programms, bei denen zahlreiche Verzweigungen entsprechend komplexen Datenfeldern vorgenommen werden müssen, der Programmgeber dazu gezwungen, daß eine Verschiebung und Prüfung Bit für Bit vorgenommen oder aber die Tabellen-Methode benutzt wird.
Aufgabe der Erfindung ist es, ein neues Verfahren und eine Anordnung zur Durchführung dieses Verfahrens anzugeben, mit denen Mehrfachverzweigungen eines Programms während nur eines Befehlsausführungs-Zyklus vorzunehmen sind.
509809/0701
Bei einem Verfahren der genannten Art ist diese Aufgabe gemäß der Erfindung dadurch gelöst, daß in ein Datenregister eine Datengruppe eingegeben wird, daß das Ausgangssignal des Datenregisters über Adressenleitungen an mehrere adressierbare Speichereinrichtungen gegeben wird, die Speicheradressen enthalten, daß das Ausgangssignal einer einzelnen Speichereinrichtung angewählt wird und daß eine ,Programmverzweigung zu der so ausgewählten Adresse erzwungen wird.
Mit Hilfe dieses Verfahrens kann bei einer Programmverzweigung in jedem beliebigen Satz von Variablen, der vom Programmgeber ausgewählt wird, die Speicherkapazität und die Verarbeitungszeit zur Durchführung des Computerprogramms so klein wie möglich gemacht werden.
Gemäß einer Weiterbildung der Erfindung wird eine Anordnung zur Durchführung dieses Verfahrens angegeben, die sich auszeichnet durch mehrere adressierbare Speichereinrichtungen zum Speichern beliebiger Adressen für die Speicherplätze des Hauptspeichers, durch mit den Sp eicher einrichtungen gekoppelte logische Schaltungen, die zum Auswählen und Einschalten einer der Speichereinrichtungen von dem Programm gesteuert sind, wobei in das Datenregister unter Programmsteuerung eine Datengruppe eingebbar ist, deren Bits als Adressenbits an die Speichereinrichtungen gegeben, und durch von dem Programm gesteuerte Verzweigungsschaltungen, die auf das die Adresse eines Hauptspeicherplatzes angebende Ausgangssignal der eingeschalteten Speichereinrichtung ansprechen, um eine Programmverzweigung zu dem ausgewählten Hauptspeicherplatz vorzunehmen.
Bei dieser Anordnung wird jedes interessierende Datenfeld in das Datenregister eingegeben, dessen Ausgangsleitungen als Adressenleitungen zu einer Vielzahl von nur auslesbaren
509809/0701
Speichereinrichtungen führen» Jede Speichereinrichtung enthält einen Satz von beliebigen Speicheradressen« Unter Programmsteuerung wählen die logischen Schaltungen eine der Speichereinrichtungen aus und schalten diese ein, wodurch eine Adresse erzeugt wird. Schließlich erzwingen Verzweigungsschaltungen unter der Programmsteuerung eine Programmverzweigung zu einem Speicherplatz, 'dessen Adresse erzeugt wurde. Durch geeignetes Programmieren der nur auslesbaren Speiehereinrichtungen und des Computers werden einer Vielzahl von Sätzen von Datenfeldern Verzweigungen zu einer Vielzahl von Sätzen von Speicherplätzen zugeordnet, wodurch der Programmgeber die Möglichkeit hat, zu jedem einzelnen der Vielzahl von Speicherplätzen innerhalb eines einzelnen Befehlsausführungs-Zyklus entsprechend der Abfrage eines beliebigen Datenworts sich zu verzweigen.
Das Datenfeld wird also dazu benutzt, die Adressenleitungen der Speichereinrichtungen zu aktivieren, wobei das Programm eine der Speichereinrichtungen einschaltet und das Ausgangssignal dieser Speichereinrichtung unmittelbar als die Adresse benutzt wird, zu der die Verzweigung vorgenommen werden soll. Um die Anzahl und Größe der· adressierbaren Speichereinrichtungen klein zu halten, werden bestimmte Annahmen gemacht. Zuerst kann die Anzahl der Datenbits auf 8 begrenzt werden, da ein mikrocodiertes Datenfeld gewöhnlich nicht länger als 8 Bit ist, wobei bei einer bevorzugten Ausführungsform der Erfindung Austauscheinrichtungen vorgesehen sind, um die 8 interessierenden Bits in die niedrigwertige Hälfte des 16 Bits umfassenden Datenwortes anzuordnen. Zweitens braucht die Anzahl der Adressenbits in dem Ausgangssignal der Speichereinrichtungen nur gleich 4 sein, da der Mikroprogrammgeber in typischer Weise nur an einen von mehreren verschiedenen Speicherplätzen im gleichen Bereich des Speichers ab-
509809/0701
zweigt. Das Mikroprogramm selbst gibt fünf höherwertige Bits und zwei niedrigwertige Bits an das Adressen-Ausgangssignal der Speichereinrichtungen, wodurch jeder Speicherplatz innerhalb eines 64- Worte umfassenden Fensters innerhalb eines 2000 Worte umfassenden Speichers durch irgend-XiTeiche 8 Bits der Daten in irgendeiner von einer 16-wegigen Verzweigung unmittelbar adressiert werden kann.
Eine weitere Verkleinerung der erforderlichen Hardware zur Durchführung des erfindungsgemäßen Verfahrens wird durch die Benutzung der gleichen Anordnung für verschiedene Anwendungen in dem Mikroprogramm erreicht. So kann die gleiche Anordnung in verschiedenen Teilen des Programms benutzt werden, indem unterschiedliche höher- und niedriger-wertige Bits aus jeder individuellen ünterroutine zugeführt werden, während das gleiche, 4- Bit umfassende Ausgangssignal von der adressierbaren. Speichereinrichtung benutzt wird. Bei einem bevorzugten Ausführungsbeispiel der neuen Anordnung reichen daher 16 adressierbare Speichereinrichtungen für 2000 Worte des Mikrocodes aus.
Die Ausrichtung des Mikroprogrammgebers mit der Möglichkeit, bis zu 16-wegige Verzweigungen bei jeden 8 Bits von Daten vornehmen zu können, hat verschiedene Vorteile. Die Geschwindigkeit der Anlage wird vergrößert, da eine vielwegige Verzweigung hinsichtlich der Ausführungszeit schneller ist als die entsprechenden Verschiebe- und Prüfoperationen, die bei anderen Systemen erforderlich sind. Die erforderliche Speicherkapazität wird vermindert, da die Tabellen-Methode und die herkömmlichen, von Bedingungen abhängigen Verzweigungstechniken, die erhebliche Speicherkapazität benötigen, weniger anzuwenden sind. Schließlich sind die Programme leichter zu schreiben, wenn der Programmgeber eine 16-wegige Verzweigung unmittelbar angeben kann, wodurch die zum .
509809/0 701
Schreiben und Durchprüfen eines Programms erforderliche Zeit so klein wie möglich wird» Mit der neuen Anordnung können also in einem digitalen Computer Datenworte in Sätze von Adressen für Hauptspeicherplätze umgewandelt werden und diese Speicherplätze durch entsprechende Yerzweigungen erreicht werden.
Weiterbildungen der neuen Anordnung sind in den Unteransprüchen angegeben.
Die Erfindung wird anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. Im einzelnen zeigen:
Pig. Λ ein Blockschaltbild einer die neue Anordnung benutzenden Datenverarbeitungsanlage,
Fig. 2 die vier Austauschmöglichkeiten beim Einspeichern des I-Registers,
Fig. 3 die Formate der Adressenteile des gerade laufenden Befehls und die Adresse des nächsten' Befehls,
Fig. 4 ein vereinfachtes, schematisches Schaltbild der Anordnung für die Mehrfachverzweigung, und
Fig. 5 ein Flußdiagramm eines die Mehrfachverzweigung benutzenden Mikroprogramms.
Die zur Durchführung der Mehrfachverzweigung erforderliche Hardware ist als Blockschaltbild in Fig. 1 gezeigt und kann allgemein als ein Computer mit einem mikroprograminierten Steuerspeieher bezeichnet werden. Maschinenbefehls-Code sind in Adressen des Steuerspeichers übersetzte Hardware und werden zum Aufrufen der verschiedenen Mikroprogramme benutzt, die in dem St euer spei eher vorhanden sind.
509809/0701
Der in Fig. 1 gezeigte Computer ist um eine 16-Bit-logische Rechenschaltung 1 herum gebaut, die alle erforderlichen rechnerischen oder logischen Punktionen durchführt. Zwei Eingangshauptleitungen, die A-Leitung 2 und die B-Leitung 3» und eine Ausgangsleitung, die S-Leitung 4-, erstrecken sich durch den Computer. Links- und Rechtsv er Schiebungen von Daten werden gewöhnlich durch Eingangssignale ZE oder F/2 an einen SA-Schalter 7 bewirkt. Ein SV-Schalter 6 steuert das Ein- oder Ausspeichern eines W-Registers von der S-Leitung oder dem SA-Schalter 7-
Der SA-Schalter 7 ist ein Multiplexschalter, der bestimmt, welche Funktion auf der 16-Bits führenden Α-Leitung ausgeführt werden soll. Die wichtigen Eingangsfunktionen sind in folgender Weise bestimmt: 3? ist das Ausgangssignal einer Registriereinrichtung 9· F/2 ist das Ausgangssignal der Registriereinrichtung, um einen Platz nach rechts verschoben, das in Verbindung mit der Hardware-Vervielfachung benutzt wird. 23? ist das Ausgangssignal der Registriereinrichtung, um einen Platz nach links verschoben, das in Verbindung mit der Hardware-Teilung benutzt wird. PSV ist das Programm-Zustandswort, das die Überlauf- und Übertragsanzeigen enthält. I ist das Aus gangs signal des I-Registers 10. Das Eingangssignal DIO wird von einem Satz von Datenleitungen von einer Eingangs-Ausgangs-Verarbeitungsanlage 18 erhalten. Das Eingangssignal FCA ist die Adresse des gegenwärtigen Mikrosteuer-Vortes plus 1, das gewohnlich für Mikrounterroutine-Aufrufe "verzweige und bewahre" benutzt und als Rückkehradresse in der Registriereinrichtung 9 oder dem I-Register 10 gespeichert wird.
Ein SB-Schalter 8 ist ein weiterer Multiplexschalter, der bestimmt, welche Funktion auf der 16 Bits führenden B-Leitung 2 auszuführen ist, die als weitere Eingangsleitung
509809/0701
für die Recheneinheit 1 dient. MBR ist dabei das Dateneingangssignal vom Hauptspeicher 11. SD ist der niedrigere Wortteil der MBR-Daten mit dem Zeichen des Wortteils (Bit 8), das sich über das obere Wortteil ausdehnt. Dieses wird zur Berechnung der tatsächlichen Operantenadresse benutzt. D ist der untere Wortteil der MBR-Daten mit jeweils binären O1en im oberen Wortteil. Dieses wird ebenfalls für Berechnungen der tatsächlichen Operantenadresse benutzt. W sind die Daten vom W-Register 5· CM1 ist das Ausgangssignal eines 8-Bit-Hardware-Zählers 15» der in dem Computer enthalten ist.
Die Registriereinrichtung 9 kann von bipolaren Speicherchips mit freiem Zugriff gebildet werden und hat eine Kapazität von 32 16-Bit-Worten. Die ersten 8 Worte haben die folgenden besonderen Funktionen: Z ist eine Null-Quelle. P ist die Adresse des gerade laufenden Befehls im Hauptspeicher-Programm. L ist die Verbindungsadresse. T dient zur zeitweisen Speicherung. X ist das Indexregister Nr. 1, das für ein nachträgliches Indizieren benutzt wird. B ist das Indexregister Nr. 2, das für ein vorheriges Indizieren benutzt wird. E ist die Verlängerung des Akkumulators und A ist der Akkumulator. Die übrigen 24 Speicherplätze können von dem Mikroprogrammgeb er als Arbeitsspeicherplätze benutzt werden und werden als Fächer 8 bis 31 bezeichnet. Das MBW-Register 13 speichert Daten, die in den Hauptspeicher einzuschreiben sind. Das MBR-Register 12 speichert Daten, die aus dem Hauptspeicher ausgelesen wurden. Das MA-Register 14 speichert die Adresse der Speicherstelle im Hauptspeicher, an der gerade zugegriffen wird.
Der Steuerspeicher 20, der aus nur auslesbaren Speicherchips gebildet ist, enthält das gesamte Mikroprogramm. Ein die nächste Adresse erzeugender Generator 19 erhält die
509809/070 1
Adresseninformation vom Steuerspeicher und bestimmt die nächste im Steuerspeicher aufzurufende Adresse entweder unmittelbar aus den Eingangssignalen des Steuerspeichers oder aber durch Zwingen einer Verzweigung an die Adresse, die durch die Daten vom I-Eegister 10 bestimmt ist.
Das I-Register 10 kann durch den I-Mul tip lexer 16 von einer von vier Quellen her gespeichert werden, nämlich dem I-Register, dem MBR-Register, der S-Leitung oder dem V-Register. Die Daten können in das I-Register in einer von vier Weisen, wie dieses in Fig. 2 gezeigt ist, eingespeichert werden, wodurch sich eine Hardware-Konfiguration ergibt, die Datenworte und Hexadezimale Daten innerhalb einer sehr geringen Ausführungszeit bearbeiten kann. So kann z.B. eine Vortvertauschung durch ein ringförmiges Verschieben von 8 Bits nach rechts und ein Auswechseln hexadezimaler Information durch eine Folge von Verschiebe- und Abdeck-Folgen. bewirkt werden. Bei dieser Ausführungsform wird jedoch ein Austauschen hexadezimaler Information und von Wortteilen unmittelbar durchgeführt, wobei Computerzeit und Programmieraufwand eingespart wird.
Fig. 3 zeigt vier ühterfelder (FA,FB,FG und FD) die das 16-Bit-Adressenfeld des gegenwärtig laufenden Befehls bilden, das seinerseits Teil eines 60-Bit-mikrocodierten Befehlsformates ist, das in der bevorzugten Ausführungsform der neuen Anordnung benutzt wird. Diese Figur zeigt auch, wie die Adresse des als nächsten auß*ufuhrenden Befehls gewöhnlich aufgebaut wird. Das FA-FeId ist ein 4-Bit-Feld, das zur Bestimmung der Quelle des niedrigstwertigen Bits der Adresse des nächsten Befehls benutzt wird. Mit diesen vier Bits kann der Programmgeber aus einer Liste von Hardware-Funktionen, die 0, 1, das Zeichenbit der S-Leitung, den Übertragsanzeiger und andere Hardware-Funktionen umfassen
509809/0701
könn«*i, auswählen. Da das FA-PeId das niedrigstwertige Bit der Adresse des nächsten Befehls bestimmt, kann dieses Feld bestimmen, ob die Adresse gerade oder ungerade ist. Das ZB-PeId ist ein weiteres 3"BXt-PeId zur Bestimmung des zweitniedrigsten Bit der Adresse des nächsten Befehls. Die durch dieses PeId auswählbaren Funktionen sind 0,1, der Überlaufanzeiger und weitere Hardware-Punktionen. Die Bits 5 bis 8 der nächsten Adresse sind entweder das Ausgangssignal der neuen Anordnung oder die Inhalte des PG-Peldes, abhängig von einem Verzweigungscode, der in einem weiteren Teil des laufenden Befehls angeordnet ist. Wird eine unmittelbare Adressierung benutzt, so werden die vier Bits des PC-Feldes als die vier Bits für die nächste Adresse benutzt. Eine nähere Erläuterung der Mehrfachverzweigungs-Methode zum Erzeugen der vier Bits findet sich weiter unten. Schließlich werden die höchstwertigen 5 Bits der nächsten Adresse von PD-PeId erhalten, wodurch sich eine Adresse mit 11 Bits ergibt, mit der Adresse einer jeden Speicherstelle in einem 2000 Worte umfassenden Speicher angegeben werden kann.
Pig. 4 zeigt eine vereinfachte, schematische Darstellung der neuen Anordnung für die Mehrfachverzweigung. Das I-Register 202 ist eia 16-Mt-Register j das von verschiedenen Quellen her eingespeichert v/erden kann und den Austausch von Datenworten und hexadezimaler Information ermöglicht. Die 8 niedrigstwertigen Bits des I-Registers werden über Leitungen 204 an 16 programmierbare, nur auslesbare Speichereinrichtungen 206 gegeben. Jede Speichereinrichtung hat eine Kapazität von 256x4 Bits und erfordert daher 8 Adressenleitiangen, die von den 8 Ausgangsleitungen 204 des I-Registers angesteuert werden.
509809Λ0701
Die 16 Speichereinr ich tungen 204- sind in vier Gruppen von jeweils vier Sp ei eher einrichtung en unterteilt. Zwei Leitungen vom FG-FeId 208 mit den Bits 5 und 6 sind mit jeder Gruppe von vier Speichereinrichtungen verbunden und so codiert, daß jeweils eine Speichereinrichtung einer jeden Gruppe eingeschaltet wird« An dieser Stelle ist zu erkennen, daß vier Worte mit jeweils vier Bits an den v"ier-zu-eins-Hultiplexer 210 gegeben sind. Zwei weitere Leitungen von dem PC-Feld 212 mit den Bits 7 und 8 sind an den Vier-zueins-Multiplexer 210 geführt, um eines der vier Worte auszuwählen, das schließlich als Bits 5 "bis 8 der Adresse des nächsten Befehls benutzt wird.
Während des Betriebs arbeitet diese Anordnung in der folgenden Weise. Zuerst schreibt der Mikroprogrammgeber eine getrennte Unterroutine für jedes Datenmuster, das ervvoraussichtlich verarbeiten wird. Ein Beispiel für eine solche Anwendung ist in Fig. 5 gezeigt, bei dem 12 getrennte Unterroutinen für verschiedene Indexarten geschrieben werden. Als zweites programmiert der Mikroprogrammgeber ein lediglich auslesbares Speicherchip, so daß alle Elemente des Datensatzes, der in den !-Register enthalten ist, die Erstellung des Satzes von Adressen bex-iirkt, der die Verzweigungen zu den entsprechenden Teilen des Mikroprogramms veranlaßt. Schließlich gibt der Mikroprogrammgeber beim Mikrooode des jeweils laufenden Befehls die geeigneten Bits in dan FA-, FB- und FD-Feld, um die erforderlichen Bits in der nächsten Adresse zuzuführen und das FC-Feld zu codieren, um das gerade programmierte Speicherchip auszuwählen. Sind κ.B. bei der in Fig. 5 gezeigten Darstellung die Daten in dem l-l?ef;iijter Q(X)O, bo erzeugt das nur auslesbare Speicherchip in Verbindung mit dem Adressenfeld des gegenwärtig laufenden Befehls
509809/0 7 01 BAD ORIGINAL
-43-
die nächste Adresse "FR0X6". Auf diese Weise führt die Ausführung des gegenwärtig laufenden Befehls, während dem sich die geeigneten Daten in dem I-Register befinden, zu einer erzwungenen Abzweigung zu der geeigneten Adresse. .
Fig. 5 bildet ein in Einzelheiten dargestelltes Flußdiagramm einer Unterroutine, die eine wahlweise Mehrfachverzweigung benutzt. Jeder Kasten stellt ein Wort in dem Programm dar. Über jedem Kasten ist der symbolische Speicherplatz des Befehls und innerhalb des Kastens eine symbolische Wiedergabe des Datenflusses eingetragen, der bei der Ausführung des Befehls bewirkt wird.
In Fig. 5 ist der Speicherplatz XI der Startpunkt für die Verarbeitung aller Befehle. An diesem Punkt enthält das KBR-Register die erste Hälfte eines Befehls, der Wortteilmäßig in das I-Register ausgetauscht wird. Außerdem wird der Programmzähler um eins weitergezählt und in dem MA-Register für eine spätere Benutzung für den Zugriff die zweite Hälfte des Befehlswortes gespeichert und auch in dem W-Register für eine spätere Benutzung aufgehoben. An diesem Punkt wird eine Abzweigung entsprechend des Inhaltes des I-Registers vorgenommen. Geben die-Bits 0 bis 7 eine hexadezimale Information 10 in diesem besonderen Beispiel an, so verzweigt sich das Programm zum Speicherplatz FRD4X2. Für andere Befehlscode verzweigt sich das Programm woandershin. Am Speicherplatz FRD4X2, werden die Daten des I-Registers auf das Vorliegen einer veränderlichen Feldadressierung in diesem Beispiel überprüft und ist eine solche nicht .vorhanden, so verzweigt sich das Programm auf eine Fehlerroutine. Die nächsten drei Befehle verschieben die Daten des I-Registers und speichern das Ergebnis in einer Registriereinrichtungsstelle 10 für eine spätere Benutzung. Schließlich werden die Inhalte des MBR-Registers wortteilmäßig in
509809/0701
das I-Register ausgetauscht und werden an einer Registriereinrichtungsstelle 11 ebenfalls gespeichert. Eine 12-wegige Abzweigung wird Jetzt entsprechend den Inhalten I^o bis ^15 vorgenommen, die allen im Programmgeber erhältlichen Index-Wahlmöglichkeiten entsprechen. . .
Selbstverständlich ist die vorstehend beschriebene Anordnung lediglich als ein mögliches Ausführungsbeispiel des neuen Prinzips zu verstehen. So kann z.B. das neue Verfahren und auch die neue Anordnung in einem Computer benutzt werden, der nicht mikroprogrammierbar ist, indem die neue Anordnung zur Erstellung einer tatsächlichen Hauptspeicheradresse anstelle einer Steuerspeicheradresse benutzt wird. Das Prinzip der Mehrfachverzweigung kann in mikroprogrammierten digitalen Systemen Jeder Art benutzt werden, bei der logische Entscheidungen aufgrund von Daten erforderlich sind. Außerdem kann die neue Anordnung mit einigen oder allen der adressierbaren Speichereinrichtungen, die in Echtzeit programmierbar sind, vorgesehen werden, so daß die Betriebsparameter des Systems und das Op er at ions co de- Vokabular sich unter dynamischer Programmsteuerung befindet.
Obwohl die Erfindung anhand eines Ausführungsbeispiels erläutert wurde, können alle Merkmale der Beschreibung und auch der Patentansprüche für sich und in verschiedener Kombination erfindungswesentlich sein.
509809/0701

Claims (10)

  1. Pat ent ansprü ehe
    (i/ Verfahren zum Mehrfachverzweigen des Programms und Erreichen einer "bestimmten Adresse in einem digitalen Computer, dadurch gekennzeichnet » daß in ein Datenregister eine Datengruppe'eingegeben wird, daß das Ausgangs signal des Datenregisters über Adressenleitungen an mehrere adressierbare, Sp ei eher einrichtungen gegeben wird, die Speicheradressen enthalten, daß'das Ausgangssignal einer einzelnen Speichereinrichtung ausgewählt wird und daß eine Programmverzweigung zu der so aus- * gewählten Adresse erzwungen wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet , daß bei nur Teiladressen enthaltenden Speichereinrichtungen zu der ausgewählten Teiladresse zum Erstellen einer vollständigen Speicheradresse die übrigen Bits hinzuaddiert werden.
  3. 3· Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet , daß der digitale Computer mikrοprogrammiert wird und als Speicher ein Steuerspeicher benutzt wird.
  4. 4-. Anordnung zum Mehrfachverzweigen eines Programms und zum Erreichen einer bestimmten Adresse entsprechend des Inhalten eines Datenregisters in einem von einem in einem Hauptspeicher gespeicherten Programm gesteuerten digitalen Computex1, insbesondere zur Durchführung des Verfahren» nach einem der Patentansprüche 1 bis 3» gekennzeichnet durch mehrere adressierbare Speichereinrichtungen (206) zum Speichern beliebiger Adressen für die Speicherplätze des
    509809/07 0 1 BAD ORIGINAL
    Hauptspeichers (Ή), durch mit den Speichereinrichtungen gekoppelte logische Schaltungen (208,210), die zum Auswählen und Einschalten einer der Speichereiririchtungen von dem Programm gesteuert sind, wobei in das Datenregister (10*202) unter Programmsteuerung eine Datengruppe eingebbar ist, deren Bits als Adressenbits an die Speichereinrichtungen gegeben werden, und durch von dem Programm gesteuerte Verzweigungsschaltungen, die auf das die Adresse eines Hauptspeicherplatzes angebende Ausgangssignal der eingeschalteten Speichereinrichtung ansprechen, um eine Programmverzweigang zu dem ausgewählten Hauptspeicherplatz vorzunehmen«
  5. 5. Anordnung nach Anspruch 4, dadurch gekennzeichnet , daß ein Teil des Datenregisters (10,202), das einen Teil der Datengruppe enthält, mit den Speichereinrichtungen (206) gekoppelt ist und diesen die erforderliche Adresseninformation zuführt.
  6. 6. Anordnung nach Anspruch 4 oder 5, dadurch gekennzeichnet , daß das Datenregister (10,202) Austauscheinrichtungen umfaßt, mit denen Datenwort- und hexadezimale Teile der Datengruppe während eines Befehlszyklus austauschbar sind, wodurch die interessierenden Daten-Bits innerhalb des Teils des Datenregisters anzuordnen sind, der mit den Speiehereinrichtungen (206) gekoppelt ist.
  7. 7· Anordnung nach einem der Ansprüche 4 bis 6, dadurch g ekennzeieb.net , daß mit den Speichereinrichtungen (206) Teiladressen der Speiehersteilen speicherbar sind und daß Adressiereinrichtungen zum Zuführen der übrigen Teile der Adressen der ßpeicherstellen vorgesehen sind, die im i-.usairuaens.eset a ten Zustand rdt den Teiladressen der
    509809/0701
    Speicheradressen eine vollständige Adresse für den Hauptspeicher angeben, wobei die Adressiereinrichtungen mit den "Verzweigungsschaltungen verbunden sind.
  8. 8. Anordnung nach einem der Ansprüche 4 bis 7» dadurch gekennzeichnet , daß der Hauptspeicher ein Steuerspeicher ist, in dem ein den Computer steuerndes Mikroprogramm gespeichert ist, wobei mit diesem Mikroprogramm die logischen Schaltungen (208,210) das Datenregister (10,202) und die Verzweigungsschaltungen steuerbar sind, und eine Mikroprogramm-Verzweigung zu einem Speicherplatz des Steuerspeichers vornehmbar ist.
  9. 9« Anordnung nach einem der Ansprüche 4- bis 8, dadurch gekennzeichnet , daß außer dem ersten Datenregister (10,202) ein zweites Datenregister vorgesehen ist, in das unter Programmsteuerung eine Speicherplatzadresse einspeicherbar ist, wobei die Bits dieser Datengruppe zur Benutzung als Eingangsdaten-Bits an die Speichereinrichtungen (206) gebbar sind, und daß von dem Programm gesteuerte Einspeichereinrichtungen vorgesehen sind, die mit den Speichereinrichtungen (206) verbunden sind, um. die Adresseninformation von dem zweiten Datenregister in die jeweilige Speichereinrichtung einspeicherbar ist, die von den logischen Schaltungen (208,210) eingeschaltet und von dem ersten Datenregister bestimmt ist.
  10. 10. Anordnung nach einem der Ansprüche 4- bis 9? dadurch gekennzeichnet , daß die Speiehereinrichtungen (206) lediglich auslesbare Speicher sind, daß die logischen Schaltungen (208,210) auf eine Untergruppe des gegenwärtig vorliegenden Mikroprogrammbefehls ansprechen und daß ein Adressenregister zum Zusammenfassen der Teiladressen des Steuerspeichers, die von der eingeschalteten
    509809/0701
    Speichereinrichtung zur Verfügung gestellt werden, mit von dem Mikroprogramm zur Verfügung gestellter Adresseninformation vorgesehen ist3 um eine vollständige Adresse für den Steuerspeicher zusammenzustellen.
    509809/0701
DE2433436A 1973-08-06 1974-07-11 Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer Pending DE2433436A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/385,949 US3979725A (en) 1973-08-06 1973-08-06 Multi-way program branching circuits

Publications (1)

Publication Number Publication Date
DE2433436A1 true DE2433436A1 (de) 1975-02-27

Family

ID=23523556

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2433436A Pending DE2433436A1 (de) 1973-08-06 1974-07-11 Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer

Country Status (5)

Country Link
US (1) US3979725A (de)
JP (1) JPS5072551A (de)
CA (1) CA1015455A (de)
DE (1) DE2433436A1 (de)
GB (1) GB1475136A (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2617485C3 (de) * 1976-04-22 1980-09-18 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
US4070703A (en) * 1976-09-27 1978-01-24 Honeywell Information Systems Inc. Control store organization in a microprogrammed data processing system
US4087857A (en) * 1976-10-04 1978-05-02 Honeywell Information Systems Inc. ROM-initializing apparatus
IT1134780B (it) * 1980-12-18 1986-08-13 Honeywell Inf Systems Unita' di controllo microprogrammata con rete di salti multipli
JPH0668739B2 (ja) * 1985-01-28 1994-08-31 株式会社日立製作所 データ処理装置
US4933847A (en) * 1987-11-17 1990-06-12 International Business Machines Corporation Microcode branch based upon operand length and alignment
US4972342A (en) * 1988-10-07 1990-11-20 International Business Machines Corporation Programmable priority branch circuit
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
US5371862A (en) * 1991-02-27 1994-12-06 Kabushiki Kaisha Toshiba Program execution control system
JP3453938B2 (ja) * 1995-07-24 2003-10-06 三菱電機株式会社 演算回路および演算方法
US5956047A (en) * 1997-04-30 1999-09-21 Hewlett-Packard Co. ROM-based control units in a geometry accelerator for a computer graphics system
US6184902B1 (en) 1997-04-30 2001-02-06 Hewlett-Packard Company Centralized branch intelligence system and method for a geometry accelerator
US6219779B1 (en) * 1997-06-16 2001-04-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
EP0992890A3 (de) * 1998-10-06 2000-04-19 Texas Instruments Inc. Prozessor
US6851046B1 (en) 2000-11-14 2005-02-01 Globespanvirata, Inc. Jumping to a recombine target address which is encoded in a ternary branch instruction
US10901908B2 (en) 2019-01-16 2021-01-26 International Business Machines Corporation Storing data into a memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3562713A (en) * 1967-03-17 1971-02-09 Burroughs Corp Method and apparatus for establishing a branch communication in a digital computer
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
DE1914575C3 (de) * 1969-03-21 1978-10-05 Siemens Ag, 1000 Berlin Und 8000 Muenchen Programmgesteuerte Datenverarbeitungsanlage, insbesondere für die Abwicklung von Vermittlungsvorgängen in einer Fernsprechvermittlung
US3623157A (en) * 1969-10-29 1971-11-23 Sanders Associates Inc Branch control of electromechanical devices and display information
US3634883A (en) * 1969-11-12 1972-01-11 Honeywell Inc Microinstruction address modification and branch system
US3693162A (en) * 1970-10-14 1972-09-19 Hewlett Packard Co Subroutine call and return means for an electronic calculator
US3713108A (en) * 1971-03-25 1973-01-23 Ibm Branch control for a digital machine
US3699526A (en) * 1971-03-26 1972-10-17 Ibm Program selection based upon intrinsic characteristics of an instruction stream
US3753236A (en) * 1972-03-31 1973-08-14 Honeywell Inf Systems Microprogrammable peripheral controller

Also Published As

Publication number Publication date
GB1475136A (en) 1977-06-01
US3979725A (en) 1976-09-07
CA1015455A (en) 1977-08-09
JPS5072551A (de) 1975-06-16

Similar Documents

Publication Publication Date Title
DE1499193C3 (de) Speicher-Adressierschaltung
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE2746505C2 (de)
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE2926322C2 (de) Speicher-Subsystem
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE1191145B (de) Elektronische Zifferrechenmaschine
DE3121046C2 (de)
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE2403669A1 (de) Spezialcomputer
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2235883C3 (de) Datenverarbeitungseinrichtung
DE3344340A1 (de) Datenprozessor mit einem steuerteil, der einen adressgenerator zum erzeugen von adressen enthaelt, die aus charakteristischen adressteilen zusammengesetzt sind
DE1222289B (de) Datenverarbeitungseinrichtung
DE1806464A1 (de) Adressengenerator fuer einen Digitalrechner
DE1296429B (de) Datenbearbeitungsanlage
DE3101270A1 (de) Rechnersystem zur kombinierten wortverarbeitung und bitverarbeitung
DE2204680B2 (de) Mikroprogramm-steuereinrichtung
DE2735874C2 (de)
DE1424756B2 (de) Schaltungsanordnung zum fehlergesicherten Einführen oder Wiedereinführer, von Programmen in den Hauptspeicher einer datenverarbeitenden Anlage
DE2219070C3 (de) Anordnung zur Steuerung von Programmverschiebungen und zur Wiedereingabe von Unterprogrammen bei einer mit Multiprogrammierung arbeitenden digitalen Datenverarbeitungsanlage
DE2419837B2 (de) Schaltungsanordnung zur adressierung eines mikroprogramms in datenverarbeitungseinrichtungen und verfahren zur durchfuehrung von sprungbefehlen
DE1524264B2 (de) Einrichtung zur Erzeugung einer Bildaufzeichnung
DE2502005C2 (de) Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee