CPU OF A DIGITAL MULTIBIT COMPUTER SYSTEM

Abstract: 1. Central unit of a digital multi-bit calculation system consisting of memory elements, calculation circuits, a data control block together with input and output channels whereby data from a databus (9) is fed into a memory register (10) and every instruction word contains an operations code which is entered into an operations code register (12) through an internal bus (11) which leads the addressing bits to a subsequent decoder memory (13) whose output is connected to the chargeable instruction counter (17) which itself has its output connected to the program register (19) to which is subsequently connected a pipeline register (24) for the storage of a micro-program word characterized as : that a multiple consecutive decoding is achieved avoiding data return in the micro-program in that a part of the micro-program word appearing at the output of the pipeline register (24) is led back to the input of the decoder memory (13) and there used as extra address bits.

Description: Verfahren zum Betrieb einer Zentraleinheit eines digitalen Mehrbit-Rechensystems und Zentraleinheit zur Ausführung des Betriebsverfahrens Gegenstand der Erfindung ist ein Verfahren zum Betrieb einer Zentraleinheit eines digitalen Mehrbit-Rechensystems, bestehend aus Speicherelementen, Rechenschaltkreisen, dem Steuerblock sowie Eingabe-/Ausgabekanälen, wobei die Daten von einem Datenbus aus in ein Speicherregister eingespeist werden, das für alle Datenübertragungen zwischen einem Speicher, der arithmetischlogischen Einheit und dem Steuerregister herangezogen ist und jedes Befehlswort einen Operationscode enthält, der vom Speicherregister über eine interne Busleitung einem Operationscode-Register eingegeben wird, wo das Befehlswort dekodiert und entsprechend der Dekodierung abgearbeitet (z.B. Springen, Verzweigen, Laden) wird. Die Abarbeitung von Befehlen in einem digitalen Mehrbit-Rechensystem geht folgendermassen. Das Befehlswort ist ein Wort des interpretierten Maschinencodes, des Befehlsatzes, den der Anwender-Programmierer normalerweise als Befehlssatz der Maschine ansieht. Dieser Anwenderbefehl besteht beispielsweise maschinentypisch aus 32 Bit, wobei ein OP-Code aus 8 Bit enthalten ist, ferner ein Adress-Modifikationsteil mit 4 Bit und ein Adressteil mit 20 Bit. Ein Befehlswort ist maschinentypisch, also beispielsweise 32 Bit lang, und wird von einem bestimmten Teil des Micro-Programms aus dem Speicher geholt und von einem anderen Teil des Micro Programms decodiert und in die Ausführung eingeleitet. Bekannte Rechnersystem-Architekturen verwenden eine Decodierung derart, dass entsprechend der Anzahl der OP Codes nach verschiedenen Einsprungstellen im Microprogramm verzweigt wird. Der Nachteil ist ein sehr grosses und speicherplatz aufwendiges Microprogramm und ein entsprechend grosses Microprogramm. Nimmt man beispielsweise an, dass jeder Anwenderbefehl nur vier Micro-Befehle zur Ausführung braucht, dann hat man mit 256 verschiedenen Anwenderbefehlen, die bei einem Microprogramm ohne weiteres üblich sind, schon eine Anzahl von 1.024 Microbefehlen. Damit besteht also der Nachteil, dass der Micro-Befehlssatz im Speicher zu umfangreich wird und viel Speicherplatz belegt. Die Implementierung eines solchen Programmes in einem PROM Speicher wird zu teuer, weil zu viel Speicherplatz benötigt wird. Die Erfindung hat sich die Aufgabe gestellt, die Decodierung des Befehlscodes zu lösen, dass speicherplatzaufwendige Hin- und Rücksprungadressen im Microprogramm vermieden werden. Zur Lösung der gestellten Aufgabe ist die ERfindung dadurch gekennzeichnet, dass eine mehrfache, nacheinanderfolgende (serielle) Decodierung durchgeführt wird. Die vorliegende Erfindung beschreitet also einen ganz neuen Weg in der Decodierung, weil nach dem Stand der Technik die Decodierung in anerer Weise erfolgte. Nach dem Stand der Technik gelangen verschiedene Anwenderbefehle auf eine bestimmte Decodierstufe, wo sie sofort, entsprechend der Anzahl der verschiedenen OP-Codes, in Zweige verzweigt werden. Es erfolgt also nicht ein gemeinsames Durchlaufen gleicher Micro-Befehlsfolgen, wie es bei der vorliegenden ERfindung der Fall ist. Gleiche Befehlsfolgen können bei bekannten Decodierverfahren im Stand der Technik nur mit der bekannten Unterprogrammtechnik angesprungen und durchlaufen werden. Hier entsteht aber durch die verschiedenen Hin- und Rücksprungbefehle eine grosse Speicherplatzbewegung. Bei der vorliegenden Erfindung findet die Decodierung nicht nur einmal statt (wie dies aus dem Stand der Technik bekannt ist), sondern mehrfach serienweise hintereinandergeschaltet. Bei der vorliegenden Erfindung wird also nicht nach einer vom Maschinencode vorgegebenen Rücksprung-Adresse zurückgesprungen, sondern in einen von der Decodierstufe angegebenen weiteren gemeinsamen Teil des Microprogramms. Bei dem erfindungsgemäss vorgeschlagenen Verfahren fehlen also die Rücksprünge im Microprogramm, die beim Stand der Technik vorhanden waren, weil bei der vorliegenden Erfindung eine mehrfache, nacheinanderfolgende, serielle Decodierung stattfindet, während beim Stand der Technik nur eine einmalige Decodierung stattfindet. Der Unterschied des Verfahrens nach der vorliegenden Erfindung zum Stand der Technik besteht also darin, dass unabhängig vom Absprung nur entsprechend der Decodierstufe und dem OP-Code verzweigt wird und keine Rückkehradressen wie bei der Unterprogrammtechnik verwendet werden. Eine Schaltung zur Ausführung des neuen Betriebsverfahrens sieht eine Hintereinanderschaltung eines oP- Code-Registers mit einem Decodierspeicher #or, der mehrere, von einem Micro-Befehl auswählbare Decodierstufen erlaubt und einem dahinter nachgeschalteten Befehlszähler, der die von dem Decodierspeicher ausgegebenen Informationen aufnimmt, die Verzweigungen vornimmt und auf den Programmspeicher einwirkt. Der Erfindungsgegenstand der vorliegenden Erfindung ergibt sich nicht nur aus dem Gegenstand der einzelnen Patentansprüche, sondern auch aus der Kombination der einzelnen Patentansprüche untereinander. Alle in den Unterlagen offenbarten Angaben und Merkmale, insbesondere die in den Zeichnungen dargestellte räumliche Ausbildung werden als erfindungswesentlich beansprucht, soweit sie einzeln oder in Kombination gegenüber dem Stand der Technik neu sind. Im folgenden wird die Erfindung anhand einer lediglich einen Ausführungsweg darstellende Zeichnung näher erläutert. Hierbei gehen aus der Zeichnung und ihrer Beschreibung weitere erfindungswesentlichen Merkmale und Vorteile der Erfindung hervor. Es zeigt: Fig. 1 verschiedene Anwenderbefehle mit Darstellung eines Microbefehls und des darin enthaltenen Anwendercodes Fig. 2 schematisierte Darstellung der Decodierung nach der Erfindung Fig. 3 eine nach dem Verfahren der Erfindung arbei tende Zentraleinheit; Fig. 4 und Fig. 5: Darstellung des Decodierverfahrens nach dem Stand der Technik. Die in Fig. 1 gezeigten Anwenderbefehle haben eine Gemeinsamkeit - es müssen Daten aus dem Speicher geholt werden. Erst die folgenden Micro-Befehle steuern dann die Multiplexer entsprechend an, um die entsprechenden Daten in das Rechenwerk einzuspeisen. In Fig. 1 ist ein Micro-Befehl schematisiert gezeichnet. Er besteht maschinentypisch aus 48 Bit und gibt die Ansteuerung in der Zentraleinheit an. In den Bit 1 bis 12 ist eine Sprungadresse oder ein Literal enthalten. In den Bit 25,26,27,28 ist ein Vorcode für den Multiplexer enthalten. In den Bit 20,19,18,17 ist die A-Adresse des Befehls und in den Bits 21,22,23,24 die B Adresse des Befehls und in den Bits 29 bis 39 sind Steuerbefehle für die Recheneinheit enthalten. Die letzten drei Bits sind Steuersignale für die Endaufschaltung der arthmetischen Recheneinheit und Bit 44 zeigt an, ob eine Multiplikation oder Division vorliegt. Mit Bit 41 wird die Generierung eines unmittelbaren Adresssignals zur Aufschaltung auf den Bus angezeigt, während mit Bit 22 Schreibdaten auf den Bus aufgeschaltet und mit Bit 43 eine Zyklus-Dehnung gemacht wird, das heisst, es kann der Taktzyklus der zentralen Recheneinheit gedehnt werden. Über den Datenbus 9 werden 32 bit breite Daten- und Befehlsworte übertragen. Der Anwenderbefehl wird mittels Mikrobefehlen interpretiert. Ein Anwenderbefehl besteht beispielsweise maschinentypisch aus 32 Bit, wobei ein OP-Code aus 8 Bit enthalten ist, ein Adress-Modifikationsteil aus 4 Bit und ein Adressenteil aus 20 Bit. In Fig. 2 ist die Decodierung nach dem erfindungsgemässen Verfahren dargestellt. Die Anwenderbefehle 1,2,3,4 haben alle einen gemeinsamen Micro-Programmteil 5, der aus beispielsweise 4 Befehlsfolgen von Micro-Befehlen besteht. In der Decodierstufe Null wird also der gemeinsame Micro-Programmteil 5 von allen Anwenderbefehlen gemeinsam durchlaufen. Die restlichen Befehlsfolgen sind nicht gemeinsam, so dass in der Decodierstufe 1 ein Aus sprung zu verschiedenen anderen Microbefehlsfolgen 6,7 erfolgt. Auch hier sind wiederum mehrere Befehlsfolgen gemeinsam, die dann wieder in der Micro-Befehlsfolge 8 Übereinstimmung zeigen und dort wieder zusammenlaufen, das heisst also, dort über einen normalen Sprungbefehl zusammengeführt werden. In der Decodierstufe 2 wird also die gemeinsame Microbefehlsfolge 8 wiederum von allen Anwenderbefehlen gemeinsamt durchlaufen. Die Verzweigungen bzw. das gemeinsame Durchlaufen von Microbefehlsfolgen erfolgt bis zur Decodierstufe 7. Zur Illustration der vorliegenden Erfindung sind in den Figuren 4 und 5 die Decodierverfahren nach dem Stand der Technik dargestellt. Aus Fig. 4 ist sichtbar, dass die Anwenderbefehle 1,2,3 einer gemeinsamen und einmaligen Decodierung zugeführt werden, wo sie endgültig verzweigt werden. Die nach dieser Decodierung entstandenen Microbefehlsfolgen sind also alle unterschiedlich und durchlaufen z.B. die Befehlsfolge A und die Befehlsfolge B. Wenn nun eine gemeinsame Befehlsfolge C durchlaufen werden soll, dann muss vom Ende der Befehlsfolge B aus ein Hinsprung zum Beginn der Befehlsfolge C und nach Durchlaufen der Befehlsfolge C ein Rücksprung zum Ende der Befehlsfolge Be bzw. Befehlsfolge A durchgeführt werden. Die Fig. 5 zeigt die gleichen Verhältnissse in anderer graphischer Darstellung. Zusätzlich ist in der Fig. 5 noch zu sehen, dass nach dem Rücksprung aus der gemeinsamen Befehlsfolge C eine andere Befehlsfolge B' oder A' durchlaufen wird, die wiederum unterschiedlich ist. Soll vom Ende der Befehlsfolge A' und B' wiederum ein gemeinsamer Programmteil durchlaufen werden, dann sind wiederum Hin- und Rücksprünge erforderlich. Diese Hin- und Rücksprünge werden bei der vorliegenden Erfindung gemäss der Darstellung in Fig. 2 vermieden. Bei der vorliegenden Erfindung ist eine achtfache serienweise hintereinandergeschaltete Decodierung vorgesehen. In Fig. 3 ist ein Rechenwerk zur Ausführung dieser Decodierung dargestellt. Die vom Speicher ausgegebenen Daten werden über einen Datenbus 9 einem Speicherregister 10 zugeführt, das für alle Datenübertragungen, die dem Speicher, der arithmetischlogischen Einheit (ALU) und den Steuerregistern herangezogen wird. Die in das Speicherregister 10 eingespeisten Daten gehen über die interne Busleitung 11 in das zentrale Rechenwerk, wo die Bits 25 bis 32 gesondert in das OP-Code-Register 12 geladen werden und dort als Adress-Bits für den nachgeschalteten Decodierspeicher 13 verwendet werden. Die Adress-Bits werden gemäss der Darstellung einmal über eine Datenleitung 14 auf den Decodierspeicher 13 gegeben und zum anderen werden drei Bits des Microprogramm-Wortes über die Datenleitung 15 ebenfalls auf den Decodierspeicher 13 als weitere Adressleitung geschaltet. Am Eingang des Decodierspeichers 13 steht also eine 11-Bit-breite Adresse an, die aus 8 Bit aus dem OP-Code-Register kommt und 3 Bit direkt aus dem Microprogramm-Wort, das von dem dem Programmspeicher 19 nachgeschalteten Pipeline Register 24 erzeugt wird. Entsprechend dieser 11-Bit-breiten Adresse wird aus dem Decodierspeicher 13 ein Wort ausgewählt; dieses ausge wählte Wort steht am Ausgang des Decodierspeichers 13 zur Verfügung und wird als Sprungadresse auf den Befehlszähler 17 über die Datenleitung 16 im Falle eines so ausgewählten Decodiersprunges aufgeschaltet. Nach dem Sprung entsprechend dieser Befehlsadresse setzt das Programm dann die Abarbeitung dieser Stelle fort. Der Befehlszähler 17 schaltet über seine Datenleitung 18 auf den Programmspeicher 19, und die entsprechende Verzweigung ist durchlaufen. Durch das Lden des Befehlszählers 17 mit diesem aus dem Decodierspeicher 13 kommenden 12-Bit ist die Verzweigung erfolgt, das heisst, der Microprogramrn-Befehlszähler 17 befindet sich dann auf der neuen angesteuerten Befehlsfolge. Die Befehlsfolge war in Fig. 2 mit 6 und 6 bezeichnet worden. Dort werden diese Befehls-Bit, die aus dem Programmspeicher 19 kommen, zwischengespeichert, um die ganzen Laufzeiten, die sich im System befinden, auf jewils aufeinanderfolgende Takte aufzuteilen. Der Sprungdecoder 20 wählt aus, ob überhaupt gesprungen wird, und - falls ja - nach welcher Bedingung. Es sind hier insgesamt 16 Bedingungen möglich. Nach dem Sprung wird der Befehlszähler um 1 erhöht und die Befehlsfolge setzt sich um eine um 1 erhöhte Adresse fort. In den Figuren 4 und 5 sind die Verhältnisse nach dem Stand der Technik dargestellt. Von der Befehlsfolge 1, 2,3 ausgehend erfolgt eine Decodierung in die Befehlsfolgen A und B, die verschieden voneinander sind. Soll nun die gemeinsame Befehlsfolge C durchlaufen werden, so ist ein Hinsprung erforderlich, un nach dem Durchlaufen dieser gemeinsamen Befehlsfolge C auch ein Rücksprung an das Ende der Befehlsfolge B bzw. A. Bei der vorliegenden Erfindung wird hingegen nicht nach der Rücksprung-Adresse zurückgesprungen, sondern in einen von der Decodierstufe angegebenen weiteren gemeinsamen Teil. Bei der vorliegenden Erfindung fehlen also die Rücksprünge, die beim Stand der Technik gemäss den Figuren 4 und 5 vorhanden waren, weil bei der Erfin- dung eine mehrfache, nacheinanderfolgende und damit serielle Decodierung stattfindet. Neu bei der vorliegenden Erfindung ist also, dass aus einem OP-Code-Register 12 mehrere Decodierstufen abse- leitet werden, und zwar über die Datenleitung 14 und 15 einem Decodierspeicher 13 zugeführt werden. Der Decodierspeicher 13 erzeugt an seinen Ausgängen Adressen, die in den Befehlszähler 17 eingespeist werden und damit die entsprechenden Verzweigungen ausführen. Kern der vorliegenden Erfindung ist also die Hintereinanderschaltung eines OP-Code-Registers mit einem Decodierspeicher, der mehrere, von einem Microbefehl auswählbare Decodierstufen erlaubt und einen dahinter nachgeschalteten Befehlszähler, der die vom Decodierspeicher 13 ausgegebenen Informationen aufnimmt, die Verzweigungen vornimmt und auf den Programmspeicher 19 einwirkt. In der Fig. 3 ist noch ein Multiplexer 21 (Select Instruction-Counter) vorhanden, der entweder die errechneten Sprünge für die Datenleitung 22 oder die unbedingten Sprünge für die Datenleitung 23 auswählt und dem Befehlszähler 17 zuführt. Dies ist also eine andere Art der Zuführung von Adressen zu dem Befehlszähler 17. Die vorliegende Erfindung ist nicht auf einen 32 Bit langen Anwendecode beschränkt; es ist ebenso möglich, die vorgeschlagene Rechnerarchitektur auf einem 16 Bit- oder einem 8-Bit-Rechner durchzuführen.

Claims: PATENTAN SPRÜCHE 1. Verfahren zum Betrieb einer Zentraleinheit eines digitalen Mehrbit-Rechensystems, bestehend aus Speicherelementen, Rechenschaltkreisen, dem Steuerblock sowie Eingabe-/Ausgabekanälen, wobei die Daten von einem Datenbus (9) aus in ein Speicherregister (10) eingespeist werden, das für alle Datenübertragungen zwischen einem Speicher, der arithmetisch-logischen Einheit und dem Steuerregister herangezogen ist und jedes Befehlswort einen Operationscode enthält, der vom Speicherregister (10) über eine interne Busleitung (11) einem Operationscode-Register (12) eingegeben wird, wo das Befehlswort dekodiert und entsprechend der Dekodierung abgearbeitet (z.B. Springen, Verzweigen, Laden) wird, d a d u r c h g e k e n n z e i c h n e t , dass eine mehrfache, nacheinanderfolgende (serielle) Decodierung durchgeführt wird. 2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, dass unabhängig von dem durch das dekodierte Befehlswort vorgegebenen Absprung nur entsprechend der Decodierstufe und dem OP-Code verzweigt wird. 3. Zentraleinheit zur Ausführung des Betriebsverfahrens nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, dass dem Operationscode Register (12) ein Dekodierspeicher (13) nachgeschaltet ist, der mit seinem Ausgang (Datenleitung (16)) auf einen Befehlszähler (17) geschaltet ist, der seinerseits mit seinem Ausgang (Datenleitung (18)) auf den Programm Speicher (19) geschaltet ist. 4. Zentraleinheit nach Anspruch 3, d a d u r c h g e k e n n z e i c h n e t, dass der Eingang des Decodierspeichers (13) durch die Datenleitung (14) am Ausgang des OP-Coderegisters (12) und durch eine weitere Datenleitung (15) gebildet ist, die als Ausgang eines dem Programm-Speicher (19) nachgeschalteten Pipeline-Registers (24) ausgebildet ist. 5. Zentraleinheit nach einem der Ansprüche 3 oder 4, d a d u r c h g e k e n n z e i c h n e t, dass der Eingang des Befehlszählers (17) durch den Ausgang (Datenleitung (16)) des Decodierspeichers (13) und durch einen zusätzlichen Ausgang (Datenleitung (25)) eines Auswahlbefehlszählers (21) gebildet ist.

Inventors: MULLER, OTTO, Müller, Otto
Applicants: MULLER, OTTO
Application year: 1982
Main classification: G06F9
IPC codes: G06F9