CIRCUIT ARRANGEMENT FOR A MICROCOMPUTER WITH AN INTERPRETER STORAGE

Abstract: 1. A circuit arrangement for a microcomputer with an interpreter store (5) for receiving an implemented command set in a subordinate, in particular machine-oriented, programme language and with a user programme store (4) for receiving the instructions of a user programme in a superordinate, in particular problem-oriented, programme language and with an interpreter which serves to control the processing of the instructions of the user programme in the superordinate programme language by means of command sequences in the subordinate programme language, characterised by a read-only memory (7) for receiving the entry addresses for the interpreter store (5) and by a register (8, 8a, 8b) which directly accepts the entry addresses, where the inputs of the read-only memory (7) are connected to those data lines of the bus system (1) which are occupied with the operation code of the superordinate programme language, and the outputs of the read-only memory (7) are connected to the data inputs of the register (8, 8a, 8b) which is controlled by an address decoder (6, 6') which is controlled by the bus system (1) and has load control signals (G) for transferring the entry address into the register (8, 8a, 8b) and read control signals (OE, OE1, OE2) for transferring the register content into a microprocessor (2, 3), where the address decoder (6, 6') produces a load control signal if as a result of a load command calling up a new user command, the user programme store (4) is addressed in the interpreter store (5), and produces a read control signal if the microprocessor (2) emits, in the interpreter store (5) on the address lines of the bus system (1), the programme count for a jump command (Fig. 1:j-1, j), following the load command.

Description: Schaltungsanordnung für einen Mikrocomputer Die Erfindung betrifft eine Schaltungsanordnung für einen Mikrocomputer mit einem Speicher zur Aufnahme eines implementierten Befehlsatzes in einer untergeordneten, insbesondere maschinenorientierten Programmiersprache und einem Anwenderprogrammspeicher zur Aufnahme der Anweisungen eines Anwenderprogramms in einer übergeordneten, insbesondere problemorientierten Programmiersprache, sowie einem Interpretierer zur Steuerung der Bearbeitung der Anweisungen der übergeordneten Programmiersprache mittels Befehlsfolgen der untergeordneten Programmiersprache. Bei Interpretorlösungen bei Mikrocomputern mit implementierten Befehlssätzen werden bei der Verwendung von übergeordneten, insbesondere problemorientierten Programmiersprachen, z.B. FORTRAN und untergeordneten, insbesondere maschinenorientierten Programmiersprachen, z.B. ASSEMBLER, die einzelnen Befehle der Ubergeordneten Programmiersprache durch eine Folge von Befehlen der untergeordneten Prograi=iersprache interpretiert. Jede Interpretation erfordert eine Mehrfachprogrammverzweigung, wobei in der Regel die Anzahl der Zweige der Anzahl der Befehle im Befehlsvorrat der untergeordneten Programmiersprache entspricht. Derartige Mehr- fachprogrammverzweigungen werden bisher ausschliesslich durch Software verwirklicht. Hierbei wird ein Programm- teil in der untergeoraneten Programmiersprache geschrieben, das bei der Interpretation jedes Befehls der Ubergeordneten Programmiersprache zuerst durchlaufen wird und die Anfangsadresse des Interpretorzweiges in den Prograemzähler des Mikroprozessors lädt. Ist ein derartiges indirektes Laden des Progranzählers des Mikroprozeesors nicht möglich, so wird eine Yehrfach- programmverzweigung durch eine Folge von Einfachverzweigungen nachgebildet, was einen grossen Zeitaufwand bei der Abarbeitung des Anwenderprogr & n#s durch den Mikroprozessor erfordert. Die Abarbeitung ein-er I;ehr- fachverzweigung, die ausschliesslich durch Software verwirklicht wird, benötigt somit einen erheblichen Teil der Bearbeitungszeit des Zveiges selbst. Bei der schnellen Steuerung technischer Abläufe durch einen Mikroprozessor mit implementiertem Befehlssatz wird durch derartige MehrfachprogrzEnverzweigungen didie Ab laufsteuerung unerwünscht verlangsamt. Dies kann zur Ineffizienz einer der Maschinensprache übergeordneten Sprache führen, bzw. führt allgemein bei einer hierarchischen Ordnung mehrerer Programmiersprachen zu steigender Ineffizienz in Richtung der höchsten Sprache. Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung fUr ein@ Mikroprozessor mit implemen- tiertem Befehlssatz anzugeben, die eine schnellere Realisierung einer Mehrfachprogrammverzweigung bei der Interpretation einer Ubergeordneten Programiiiiersprache durch eine untergeordnete Programmiersprache ermöglicht. Erfindungsgemäss wird diese Aufgabe gelöst durch einen Festwertspeicher zur Aufnahme der Anfangsadressen der Interpretorzweige und einen direkt Ubernehmenden Spei cher, wobei die Eingänge des Festwertspeichers an diewenigen Leitungen des Datenbus angeschlossen sind, die mit dem Operationscode der Übergeordneten Programmiersprache belegt sind und die Ausgänge des Festwert- speichers mit den Dateneingängen des direkt Ubernehmen- den Speichers verbunden sind s der von einem Adressdecoder mit Ladesteuersignalen und Losesteuersignalen gesteuert wird5 wobei der Adressdecoder ein Ladesteuersignal erzeugt, wenn der Amwenderprogrammspeicher angesprochen wird, und ein Lesesteuersignal erzeugt, wenn der Mikroprozessor den Psogranmzahlerstandfauf den Adressbus ausgibt. Bei der erfindungsgemässen Schaltungsanordnung wird die Schaltung des Mikrocomputers durch einen Festwertspeicher und ein direkt Uberne'###.endes Register ergänzt. Die Funktion dieser ergänzten Schaltungsanordnung besteht darin, dass ein Sprungbefehl in der untergeordneten Programmiersprache, der eine Ladung des Programmzählers mit konstanter Adresse beinhaltet, derart modifiziert wird, dass die Speicherzelle, die die Sprungadresse enthalten soll, mit der jeweils gewünschten Sprungadresse, die der Anfangsadresse des zu interpretierenden Befehls der übergeordneten Programmsprache entspricht, Uberschrieben wird, bevor die Sprungadresse in den Programmzähler geladen wird. Dieser Vorgang wird durch sehr wenige Befehle der untergeordneten Programmiersprache gesteuert. Der entsprechende Programmteil zur Steuerung enthält einen Befehl, der das Kriterium für die Verzweigung im Befehlscode der Ubergeordneten Sprache auf den Datenbus des Mikrocomputers ausgibt (Befehlsholen) und aus dem modifizierten Sprungbefehl, der eine Mehrfachverzweigung durch einen unbedingten Sprungbefehl bewirkt. Die Erfindung wird anhand der in der Zeichnung dargestellten Ausführungsbeispiele im einzelnen beschrieben, wobei zur besseren Ubersicht nur die zum Verständnis der Erfindung notwendigen Elemente und Verbindungen eines Nikrocomputers schematisch dargestellt sind. Es zeigen: FIG 1 eine schematische Darstellung eines ersten Aus führungsbeispieles der Erfindung, FIG 2 eine schematische Darstellung eines weiteren Aus führungsbeispieles der Erfindung. FIG 1 zeigt den Schaltungsaufbau eines Mikrocomputers. An die Busstruktur 1 des Mikrocomputers sind angeschlossen ein Mikroprozessor 2 mit einem Programmzähler 3 für die in der übergeordneten Programmiersprache geschriebenen Anweisungen eines Anwenderprogramms, ein Anwenderprogrammspeicher 4, der die Anweisungen des An uenderprogramms enthält und ein Interpretorspeicher 5, der das Interpretationsprogramm enthält. Der Interpretorspeicher 5 ist in eine Anzahl von Speicherbereiche eingeteilt. In jedem dieser Speicherbereiche ist eine Befehlsfolge in der untergeordneten, insbesondere maschinenorientierten Programmiersprache eingeschrieben, die eine Anweisung in der Ubergeordnetcn Programmiersprache interpretiert. Am Ende eines jeden Speicherbereichs des Interpretorspeichers 5 ist ein Rücksprung- befehl programmiert. Der Interpretorspeicher 5 enthält weiterhin einen Speicherbereich, in dem der Befehl für das Befehlsholen des laufenden Befehls der-übergeordneten Programmiersprache gespeichert ist. In einem letzten Speicherbereich am Ende des Interpretorspeichers ist der Operationsteil eines Sprungsbefehls gespeichert. Der dargestellte Mikrocomputer enthält weiterhin die erfindungsgemässen Elemente, nämlich einen Festwert Speicher 7, insbesondere ein PROM, einen direkt über- nehmenden Speicher 8 und einen Adressdecoder 6. Die Eingänge des Festwertspeichers 7 sind an den Datenbus angeschlossen, der eine der Wortbreite der untergeordneten Programmiersprache entsprechende Anzahl n von Leitungen aufweist. Die Anzahl der Adressen des Fest wertspeichers entspricht der Operationscodelänge OC der übergeordneten Programmiersprache. Für die Anzahl c der eingangsseitigen Adressleitungen des Festwertspeichers 7 gilt die Beziehung (1): OC = 2C (i) Der Festwertspeicher 7 enthält eine Anzahl von adres sierbaren Speicherplätzen, in denen die Einsprungadressen für den Interpretorspeicher 5 fest gespeichert sind. Die Anzahl der Ausgänge des Festwertspeichers 7 entspricht der Adressbreite AB bzw. Länge für das Interpretationsprogratnm, die dem Logarithmus der Basis 2 der Länge des Interpretationsprogramrus in Anzahl der Speicherworte entspricht. Die Ausgänge des Festwertspeichers 7 sind mit einer ersten Anzahl AB von Eingängen des direkt übernehmenden Speichers 8 verbunden. Der direkt Ubernehmende Speicher 8 ist vorzugsweise als D-Register in TTL-Technik mit tristate-Ausgängen ausgebildet. Eine weitere Anzahl Eingänge AG des D-Registers 8 sind mit den höherwertigen Bits für die Anfangsadresse des Interpretationsprogramms im Adressbereich und den restlichen Bits des JUMP-Code der Anzahl k verbunden. Es gilt für die Eingänge AG die Beziehung (2): AG r n-AB+k (2) Das D-Register 8 wird vom Adressdecoder 6 gesteuert, der eingangsseitig an den Steuerbus und den Adressbus n-k in der Busstruktur angeschlossen ist. Der Adressdecoder 6 erzeugt ein Ladesteuersignal für den entsprechenden Eingang G des D-Registers 8, das bei der Adresse j-1 aktiviert wird, sowie ein Ijesesteuer- signal fUr den Ausgang OE des D-Registers 8, das bei der Adresse J aktiviert wird. Die Adressen j-1 und J sind die Adressen des modifizierbaren JUMP-Befehls, die neben der Schaltungsdarstellung angegeben sind. Dabei entspricht die Wortbreite nO entweder 0 oder n. Weiterhin entspricht nO+k der L#nge des JUMS-Opera- tionscodes und n-k der Lange der JUMi?-Adresse, die wtSerum der Grösse des Adressbereichs entspricht. Die Aktivierung der erfindungsgemässen Schaltungser gänzung eines Mikrocomputers erfolgt durch einen Programmteil, der aus einem Befehl besteht, der das Kriterium für die Verzweigung im Befehlscode der überge- ordneten Programmiersprache auf den Datenbus des Nikroprozessorsysteins ausgibt, und aus dem unbedingten Sprungbefehl, der die Mehrfachverzweigung bewirkt. Durch diesen Programmteil wird der Sprungbefehl in der untergeordneten Programmiersprache, der eine Programm zählerladung mit konstanter Adresse bewirkt, über den Festwertspeicher 7 und dcs D-Register 8 derart modifiziert, dass die Speicherzelle, die die Sprungadresse enthalten soll, mit der Anfangsadresse des zu interpretierenden Befehls als neuer Sprungadresse Uberschtie- ben wird, bevor sie in den Programmzähler geladen wird. Damit ergibt sich folgender Punktionsablauf bei einer Abarbeitung eines Befehls der übergeordneten Program miersprache: Der Befehl in der übergeordneten Programmiersprache wird in den Mikroprozessor geladen. Der Mikroprozessor läuft auf die Adresse 3-1 und führt einen Sprungbefehl (J2iP) aus. Dabei schaltet der Progranimzähler des Mikroprozessors automatisch auf die Adresse J. Bei der Adresse j steht die vom Festwertspeicher 7 interpretierte Einsprungsadresse für den Prozessor im D-Register 8 bereit. Damit wird der Programmzähler 3 des Mikroprozessors 2 auf den Anfang des entsprechenden Interpretationszweiges im Interpretorspeicher 5 gestellt. Der Befehl in der übergeordneten Programmiersprache kann somit ohne zusätzliche Zeitverzögerung interpretiert werden. FIG 2 zeigt eine ähnliche aufgebaute Anordnung, bei der jedoch im Gegensatz zu FIG 1 zwei Festwertspeicher 8a und 8b vorgesehen sind. Bei dieser Ausführungsform be steht die Sprungadresse aus zwei aufeinanderfolgenden Speichersorten, die jeweils in einem der beiden Festwertspeicher 8a, 8b fest eingespeichert sind. Beide D-Register 8a und 8b werden an ihren Eingängen G von einem Ladesteuersignal bei der Adresse j-1 aktiviert und übernehmen dabei die an ihren Dateneingängen anstehenden Informationen. Die Dateneingänge AG1 des D-Registers 8a entsprechen den restlichen JUSlP-Code Bits k. Die weiteren Dateneingänge n-AG1 des Festwertspeichers 8a sind mit einem Teil der Ausgänge AB des Festwertspeichers 7 verbunden. Die Dateneingänge AG2 des D-Registers 8b sind mit den hbherwertigen Bits für die Anfangsadresse des Interpretationsprogramms im Adressbereich belegt. Es gilt die Beziehung (3): AG2 = 2n-AB-k. Ausgangsseltig sind die beiden D-Register 8a und 8b mit dem Datenbus verbunden, wobei n wiederum der Wortbreite der untergeordneten Programmiersprache entspricht. Der Adressdecoder 6', der eingangsseitig wiederum mit dem Steuerbus und dem Adressbus 2n-k verbunden ist, erzeugt ein Lesesteuersignal für den Eingang OE1 des D-Registers 8a, das bei der Adresse J aktiviert wird, sowie ein Lesesteuersignal für den Ausgang OE2 des D-Registers 8b, das bei der Adresse i+1 aktiviert wird. Die Eingangsbeschaltung der beiden D-Register 82 und 8b kann alternativ auch so vorgenommen werden, dass die Dateneingänge AG1 des D-Registers 8a mit den restlichen JUMP-Code Bits und höherwertigen Bits für die Anfangsadresse des Interpretationsprogramms im Adressbereich belegt sind und die Dateneingänge AG2 des D-Registers 8b mit ¯ belegt sind. Neben der Schaltungsdarstellung der FIG 2 sind die Speicheradressen j-1, #, #+1 des mbdjfizierbaren JUMS-Befehls veranschaulicht. Die Wortbreite nO entspricht entweder 0 oder der Wortbreite n der untergeordneten Programmiersprache, nO+k entspricht der Länge des JUMP-Operationscodes. 2n-k entspricht der Lange der JAP-Adresse und damit der Grösse des Adressbereichs. 1 Patentanspruch 2 Figuren

Claims: Patentanspruch Schaltungsanordnung für einen Mikrocomputer mit einem Speicher zur Aufnahme eines implementierten Befehls satzes in einer untergeordneten, insbesondere maschinenorientierten Programmiersprache und einem Anwenderprogrammspeicher zur Aufnahme der Anweisungen eines Anwenderprogramms in einer übergeordneten, insbesondere problemorientierten Programmiersprache, sowie einem Interpretierer zur Steuerung der Bearbeitung der Anweisungen des Anwenderprogramms in der übergeordneten Programmiersprache mittels Befehlsfolgen in der untergeordneten Programmiersprache, g e k e n n z e i c h n e t durch einen Festwertspeicher (7) zur Aufnahme der Adressen für den Interpretierer und einen direkt übernehmenden Speicher (8; 8a, 8b), wobei die Eingänge des Festwertspeichers (7) an diejenigen Leitungen des Datenbus (1) angeschlossen sind, die mit dem Operationscode der übergeordneten Programmiersprache belegt sind, und die Ausgänge des Festwertspeichers (7) mit den Dateneingängen des direkt übernehmenden Speichers (8; 8a, 8b) verbunden sind, der von einem Adressdecoder (6; 6') mit Ladesteuersignalen tG) und Lesesteuersignalen (OE; OE1, OE2) gesteuert wird, wobei der Adressdecoder (6; 6') ein Ladesteuersignal erzeugt, wenn der Anwenderprogrammspeicher (4) angesprochen wird, und ein Lesesteuersignal erzeugt, wenn der Mikroprozessor (2) den Programmzählerstand (j) auf den Adressbus ausgibt.

Inventors: SCHLANG, MANFRED, DIPL.-ING.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1980
Main classification: G06F13
IPC codes: G06F9