DE2433436A1 - Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer - Google Patents
Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computerInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 25
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000015654 memory Effects 0.000 claims description 58
- 101100256746 Mus musculus Setdb1 gene Proteins 0.000 claims 1
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional 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)
- 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. 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· Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet , daß der digitale Computer mikrοprogrammiert wird und als Speicher ein Steuerspeicher benutzt wird.
- 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 des509809/07 0 1 BAD ORIGINALHauptspeichers (Ή), 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. 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. 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· 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 der509809/0701Speicheradressen eine vollständige Adresse für den Hauptspeicher angeben, wobei die Adressiereinrichtungen mit den "Verzweigungsschaltungen verbunden sind.
- 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« 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. 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 eingeschalteten509809/0701Speichereinrichtung 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
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)
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)
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 |
-
1973
- 1973-08-06 US US05/385,949 patent/US3979725A/en not_active Expired - Lifetime
-
1974
- 1974-05-14 CA CA199,881A patent/CA1015455A/en not_active Expired
- 1974-07-11 DE DE2433436A patent/DE2433436A1/de active Pending
- 1974-07-30 JP JP49087414A patent/JPS5072551A/ja active Pending
- 1974-08-06 GB GB3456474A patent/GB1475136A/en not_active Expired
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 |