DE19612442A1 - Microprocessor circuit for performing sequences of instructions - Google Patents
Microprocessor circuit for performing sequences of instructionsInfo
- Publication number
- DE19612442A1 DE19612442A1 DE19612442A DE19612442A DE19612442A1 DE 19612442 A1 DE19612442 A1 DE 19612442A1 DE 19612442 A DE19612442 A DE 19612442A DE 19612442 A DE19612442 A DE 19612442A DE 19612442 A1 DE19612442 A1 DE 19612442A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- circuit
- memory
- bus
- address
- 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.)
- Withdrawn
Links
- 230000008878 coupling Effects 0.000 claims abstract description 20
- 238000010168 coupling process Methods 0.000 claims abstract description 20
- 238000005859 coupling reaction Methods 0.000 claims abstract description 20
- 238000001514 detection method Methods 0.000 claims abstract description 16
- 238000000034 method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000002123 temporal effect 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
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)
Abstract
Description
Die Erfindung bezieht sich auf eine Mikroprozessorschaltung mit einem Rechenwerk zur Ausführung zeitlich aufeinander fol gender Anweisungen, einem mit dem Rechenwerk vermittels eines n Bit breiten Datenbusses gekoppelten externen Datenspeicher, in welchen vom Rechenwerk berechnete bzw. verarbeitete Daten zeitweise abgespeichert sind, und einem mit dem Rechenwerk vermittels eines Programmbusses gekoppelten externen Pro grammspeicher, in welchem die vom Rechenwerk zeitlich aufein ander folgend auszuführenden Anweisungen abgespeichert sind, wobei der Programmspeicher in eine vorbestimmte Anzahl von 2m-n Speicherbänken mit jeweils einer Anzahl von 2n Programm wörtern, die durch eine n Bit breite Wortadresse charakteri siert sind, unterteilt ist, wobei den Speicherbänken jeweils eine Speicherbanknummer zugeordnet ist.The invention relates to a microprocessor circuit with an arithmetic unit for executing sequential instructions, an external data memory coupled to the arithmetic unit by means of an n-bit data bus, in which data calculated or processed by the arithmetic unit are temporarily stored, and one with the arithmetic unit by means of a program bus coupled external program memory, in which the instructions to be executed sequentially by the arithmetic unit are stored, the program memory in a predetermined number of 2 mn memory banks, each with a number of 2 n program words, by an n-bit word address are characterized, is divided, the memory banks each being assigned a memory bank number.
Bei einem solchen Mikroprozessorsystem, dessen Adreßraum durch Bankumschaltung ("Banking") von 2n Worten auf 2m Worte erweitert ist, besteht die Schwierigkeit, beliebige Pro grammsprünge über Speicherbankgrenzen durchzuführen, da über einen n Bit breiten Adreßbus maximal 2n Worte adressierbar sind. Um den gesamten Programmspeicher adressieren zu können, wird ein m Bit breiter erweiterter Programmadressbus benö tigt, dessen zusätzliche m-n höherwertigen Adreßbits eine Anzahl von 2m-n Speicherbänken charakterisieren und in einem speziellen Adreßbankregister (ABR) gespeichert werden, wel ches im Adreßraum des Prozessors liegt und wie jede andere Speicherstelle beschrieben werden kann. Der Inhalt des Adreß bankregisters wird direkt zur Ansteuerung der m-n höherwerti gen Adreßbits genutzt. Jeder weite Programmsprung, d. h. ein Programmsprung, der über die Speicherbankgrenzen hinausgeht, besteht aus einem Zugriff auf das Adreßbankregister und dem eigentlichen Sprungbefehl mit der Wortadresse. Die Schwierig keit besteht nun darin, daß der Befehl nach Ausführung eines solchen Sprunges nicht erreicht wird, da der Prozessor vorher die Bank wechselt. Anhand eines Beispiels soll die Problema tik verdeutlicht werden. Es soll ein Sprung von der Speicher bank SB0 und dem Programmwort PW101 nach der Speicherbank SB3 und dem Programmwort PW77 ausgeführt werden. Wie die folgende Tabelle zeigt, wird aber statt dessen ein Sprung von der Speicherbank SB0 und dem Programmwort PW101 nach der Spei cherbank SB3 und dem Programmwort PW102 ausgeführt.In such a microprocessor system, the address space is expanded by bank switching ("banking") from 2 n words to 2 m words, there is the difficulty of performing any program jumps across memory bank boundaries, since a maximum of 2 n words can be addressed via an n-bit address bus. In order to be able to address the entire program memory, an m bit-wide extended program address bus is required, the additional mn higher-order address bits characterize a number of 2 mn memory banks and are stored in a special address bank register (ABR), which lies in the address space of the processor and how any other memory location can be written to. The content of the address bank register is used directly to control the higher value address bits. Each long program jump, ie a program jump that goes beyond the memory bank boundaries, consists of access to the address bank register and the actual jump instruction with the word address. The difficulty now is that the command is not reached after executing such a jump, because the processor changes banks beforehand. The problem should be illustrated using an example. There should be a jump from memory bank SB0 and program word PW101 to memory bank SB3 and program word PW77. As the following table shows, however, a jump from memory bank SB0 and program word PW101 to memory bank SB3 and program word PW102 is carried out instead.
Als Folge wird anstelle des gewünschten Befehls XOR fälschli cherweise der Befehl AND ausgeführt. Dieses Problem wurde bisher nur softwaremäßig gelöst. Die bekannten Softwarelösun gen führen aber zu aufwendigen, unübersichtlichen und unfle xiblen, und damit zu langsamen Programmen.As a result, XOR is incorrect instead of the desired command the AND command is executed. This problem was previously only solved by software. The well-known software solution However, conditions lead to complex, confusing and unpleasant xiblen, and therefore slow programs.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, eine einfache Schaltungsanordnung zur Verfügung zu stellen, mit welcher die Ausführung von Sprunganweisungen zwischen ver schiedenen Speicherbänken gelingt.The present invention has for its object a to provide simple circuitry with which the execution of jump instructions between ver different memory banks succeed.
Diese Aufgabe wird durch eine Mikroprozessorschaltung nach Anspruch 1 gelöst.This task is accomplished by a microprocessor circuit Claim 1 solved.
Erfindungsgemäß ist eine dem Programmadreßbus zugeordnete Steuerschaltung mit einer an den Programmbus gekoppelten Er kennungsschaltung vorgesehen, welche eine auf dem Programmbus liegende Sprunganweisung erfaßt, welche einen Befehl für ei nen Zugriffswechsel zwischen verschiedenen Speicherbänken aufweist, und mit einer von der Erkennungsschaltung gesteuer ten, eingangsseitig an den Datenbus und den Programmadressbus und ausgangsseitig an einen wenigstens um die Anzahl m-n der zur Kennzeichnung der 2m-n Speicherbanknummern notwendigen Bitleitungen erweiterten Programmadreßbus gekoppelten Adreßkopplungsschaltung, welche eine aus der in der Sprun ganweisung enthaltenen Speicherbanknummer und der n Bit brei ten, in der Sprunganweisung enthaltenen Wortadresse zusammen gesetzte, eindeutig einem Wort im Programmspeicher zugeordne ten Programmadresse an den Programmspeicher ausgibt. Für ei nen Zugriffswechsel zwischen verschiedenen Speicherbänken ist es erforderlich, die in zwei aufeinanderfolgenden Programm worten abgelegten Anweisungen für den Wechsel der Speicher bank und den Sprung zu einem anderen als dem aktuellen Pro grammwort im Programmspeicher folgenden Programmwort, welche folglich zeitlich nacheinander auf dem erweiterten Programm adressbus anliegen, gleichzeitig dem Programmspeicher zuzu führen. Die Erkennungsschaltung bewirkt zunächst, eine Sprun ganweisung zu identifizieren. Da der Maschinenbefehlssatz ei ner Mikroprozessorschaltung im allgemeinen verhältnismäßig wenige Sprunganweisungen und Anweisungen, welche eine Sprun ganweisung erfordern oder enthalten, umfaßt, lassen sich mit einigen wenigen, an vorbestimmten Bitleitungen des Programm busses liegenden, charakteristischen Bits Sprunganweisungen und solche Anweisungen, die Sprunganweisungen erfordern oder enthalten, identifizieren. Die Adreßkopplungsschaltung be wirkt hierbei, die eine neue Speicherbanknummer anordnende Anweisung solange zurückzuhalten, bis die der Wortadresse zu geordnete Sprunganweisung an den Programmadreßbus angelegt werden kann. Die Adreßkopplungsschaltung führt also eine zeitliche Kopplung der an einem m-n Bit breiten Teil des er weiterten Programmadreßbusses anliegenden Speicherbankadres se und der an einem n Bit breiten Teil des erweiterten Pro grammadreßbusses anliegenden Wortadresse durch, so daß beide gleichzeitig innerhalb der für Adressierungen vorbestimmten Taktzyklen dem Programmspeicher zugeführt werden. Das die Speicherbanknummer und die Wortadresse enthaltende Signal hat die gleiche Wirkung wie eine m Bit breite Wortadresse. Auf diese Weise läßt sich auf relativ einfache schaltungstechni sche Weise mit nur einem auf dem erweiterten Programmadreß bus anliegenden Signal der adressierbare Speicherbereich ei ner mit einem intern n Bit breiten Adreßbus arbeitenden Mi kroprozessorschaltung auf mehr als 2n Worte erweitern.According to the invention, a control circuit assigned to the program address bus is provided with a detection circuit coupled to the program bus, which detects a jump instruction located on the program bus, which has a command for an access change between different memory banks, and with one controlled by the detection circuit on the input side Data bus and the program address bus and on the output side to an address coupling circuit coupled to the program address bus which is expanded by at least the number mn of the bit lines required for identifying the 2 mn memory bank numbers and which comprises a word address contained in the jump instruction and the n bit width contained in the jump instruction outputs the set program address, clearly assigned to a word in the program memory, to the program memory. For an access change between different memory banks, it is necessary to store the instructions stored in two successive program words for changing the memory bank and jumping to a program word other than the current program word in the program memory, which consequently follows the address bus one after the other in time concern to feed the program memory at the same time. The detection circuit first causes a jump instruction to be identified. Since the machine instruction set of a microprocessor circuit generally comprises relatively few branch instructions and instructions which require or contain a branch instruction, branch instructions and those instructions which require or contain branch instructions can be obtained with a few characteristic bits lying on predetermined bit lines of the program , identify. The address coupling circuit acts here to hold back the instruction that orders a new memory bank number until the jump instruction assigned to the word address can be applied to the program address bus. The address coupling circuit thus performs a temporal coupling of the memory bank address present at a mn bit wide part of the extended program address bus and the word address present at an n bit wide part of the extended program address bus, so that both are simultaneously supplied to the program memory within the clock cycles predetermined for addressing will. The signal containing the memory bank number and the word address has the same effect as an m bit wide word address. In this way, the addressable memory area of a microprocessor circuit working with an internally n-bit address bus microprocessor circuit can be expanded to more than 2 n words in a relatively simple circuit-technical manner with only one signal present on the extended program address bus.
Bei einer bevorzugten Ausführung der Erfindung kann vorgese hen sein, daß die Mikroprozessorschaltung einen digitalen Si gnalprozessor mit einer Harvard-Architektur aufweist, bei der die Signalpfade für die Programm- und Datenbusse getrennt ge führt sind, und der digitale Signalprozessor über den Pro grammbus und den Programmadreßbus mit dem Programmspeicher und über den Datenbus und einen Datenadreßbus mit dem Daten speicher gekoppelt ist. Die Verwendung der erfindungsgemäßen Steuerschaltung mit digitalen Signalprozessoren mit einer Harvard-Architektur ermöglichen neben dem erweiterten Adreß raum ein gleichzeitiges Ausführen mehrerer Anweisungen.In a preferred embodiment of the invention, it can be performed hen be that the microprocessor circuit a digital Si Signal processor with a Harvard architecture, in which the signal paths for the program and data buses are separated leads, and the digital signal processor via the Pro grammbus and the program address bus with the program memory and over the data bus and a data address bus with the data memory is coupled. The use of the invention Control circuit with digital signal processors with one In addition to the extended address, Harvard architecture enables space to execute several instructions at the same time.
Zu einer einfachen Identifizierung über die Speicherbankgren zen hinausgehender Sprunganweisungen kann vorgesehen sein, daß die Erkennungsschaltung eine Vergleichsschaltung zum Ver gleich des am Programmbus anliegenden, in einer mit dem Pro grammbus gekoppelten ersten Maskenschaltung abgelegten digi talen Signales mit einem oder mehreren in einer zweiten Mas kenschaltung abgespeicherten digitalen Signalen, welche alle Sprunganweisungen enthaltenden Maschinenanweisungen entspre chen, aufweist, und die Vergleichsschaltung im Falle des Vor liegens einer Sprunganweisung ein Sprungsignal an die Adreß kopplungsschaltung ausgibt. Da der Befehlssatz einer Mikro prozessorschaltung relativ wenige Sprunganweisungen umfaßt, lassen sich die die Sprunganweisungen charakterisierenden Bits in der zweiten Maskenschaltung abspeichern, wobei durch einen Vergleich mit den entsprechenden Bits der aktuellen Programmzeile Sprunganweisungen und solche Anweisungen, die Sprunganweisungen erfordern oder enthalten, identifiziert werden.For easy identification via the memory bank size zen jump instructions can be provided, that the detection circuit is a comparison circuit for ver same as that on the program bus, in one with the Pro grambus coupled first mask circuit stored digi tal signals with one or more in a second Mas stored circuit digital signals, all Machine instructions containing jump instructions correspond Chen, and the comparison circuit in the case of the pre a jump instruction is a jump signal to the address coupling circuit outputs. Since the instruction set of a micro processor circuit comprises relatively few jump instructions, can be used to characterize the jump instructions Store bits in the second mask circuit, whereby by a comparison with the corresponding bits of the current one Program line jump instructions and such instructions that Jump instructions require or contain identified will.
Aus Gründen einer ordnungsgemäßen Anpassung bzw. Synchronisa tion kann vorgesehen sein, daß die Erkennungsschaltung eine der Vergleichschaltung nachgeschaltete, vom Taktsignal des Rechenwerkes getaktete Verzögerungsschaltung aufweist. Da durch wird das einer Sprunganweisung entsprechende Signal dem Takt der Mikroprozessorschaltung angepaßt.For reasons of proper adjustment or Synchronisa tion can be provided that the detection circuit a the comparison circuit downstream, from the clock signal of Calculator has clocked delay circuit. There is the signal corresponding to a jump instruction Clock of the microprocessor circuit adapted.
Zur Zwischenspeicherung des der Speicherbanknummer entspre chenden Signals kann vorgesehen sein, daß die Adreßkopp lungsschaltung ein erstes, eingangsseitig mit dem Datenbus gekoppeltes, wenigstens m-n Bit breites Speicherbankregister mit einem ersten Freigabeeingang und ein zweites, eingangs seitig mit dem Ausgang des ersten Speicherbankregisters ge koppeltes, wenigstens m-n Bit breites Speicherbankregister mit einem zweiten Freigabeeingang aufweist. Die ersten und zweiten Speicherbankregister bilden hierbei einen zweistufi gen Registerspeicher, welcher die erforderliche zeitliche Zu rückhaltung der den Speicherbanknummern entsprechenden Signa le ermöglicht.To temporarily store the memory bank number chenden signal can be provided that the address coupling a first circuit on the input side with the data bus coupled memory bank register at least m-n bits wide with a first release input and a second, input ge with the output of the first memory bank register coupled memory bank register at least m-n bits wide with a second release input. The first and second memory bank registers form a two-stage gen register memory, which the required time retention of the signa corresponding to the memory bank numbers le enables.
Zur Ansteuerung der Adreßkopplungsschaltung kann ferner vor gesehen sein, daß die Adreßkopplungsschaltung ein Gatter aufweist, welches über den ersten Eingang mit dem Ausgang der Verzögerungsschaltung gekoppelt ist, und die Adreßkopplungs schaltung eine Kippschaltung aufweist, welche über den Rück setzeingang mit dem Ausgang der Verzögerungsschaltung, ein gangsseitig mit dem ersten Freigabeeingang des ersten Spei cherbankregisters und ausgangsseitig mit dem zweiten Eingang des Gatters gekoppelt ist. Dadurch wird die Laufzeit einer Anweisung der Mikroprozessorschaltung überbrückt.To control the address coupling circuit can also before be seen that the address coupling circuit is a gate has, which via the first input with the output of Delay circuit is coupled, and the address coupling circuit has a flip-flop, which on the back set input with the output of the delay circuit on the aisle side with the first release input of the first memory bank register and on the output side with the second input of the gate is coupled. This will make the term Instruction of the microprocessor circuit bridged.
Zur zeitlichen Abstimmung der Freigabe des ersten und zweiten Speicherbankregisters kann weiterhin vorgesehen sein, daß am ersten Freigabeeingang des ersten Speicherbankregisters und am Eingang der Kippschaltung ein getaktetes Freigabesignal vom Datenadressbus angelegt ist, und der erste Freigabeein gang des ersten Speicherbankregisters und der Ausgang des Gatters gekoppelt sind.For timing the release of the first and second Memory bank register can also be provided that on first enable input of the first memory bank register and a clocked enable signal at the input of the trigger circuit from the data address bus, and the first enable gang of the first memory bank register and the output of the Gates are coupled.
Zur Ansteuerung des gesamten Programmspeichers kann vorgese hen sein, daß der n Bit breite Programmadressbus und der m-n Bit breite Ausgang des zweiten Speicherbankregisters zu einem m Bit breiten erweiterten Programmadreßbus zusammengeführt ist. Dies ermöglicht eine Erweiterung des Adreßraums von in tern mit einem n Bit breiten Programmadreßbus arbeitenden Mikroprozessorschaltungen.To control the entire program memory can be read hen that the n bit wide program address bus and the m-n Bit wide output of the second memory bank register to one m bit extended program address bus merged is. This enables an expansion of the address space from in ters with a n-bit wide program address bus Microprocessor circuits.
Weitere Merkmale, Vorteile und Zweckmäßigkeiten der Erfindung ergeben sich aus der nachfolgenden Beschreibung eines Ausfüh rungsbeispieles anhand einer Figur.Further features, advantages and advantages of the invention result from the following description of an embodiment Example with a figure.
Diese zeigt den schematischen Aufbau eines Ausführungsbei spieles der erfindungsgemäßen Mikroprozessorschaltung mit ei nem Rechenwerk 2 zur Ausführung zeitlich aufeinander folgen der Anweisungen, einem mit dem Rechenwerk 2 vermittels eines n Bit breiten Datenbusses 8 gekoppelten externen Datenspei cher 21, in welchen vom Rechenwerk 2 berechnete bzw. verar leitete Daten zeitweise abgespeichert sind, und einem mit dem Rechenwerk 2 vermittels eines Programmbusses 9 gekoppelten externen Programmspeicher 5, in welchem die vom Rechenwerk 2 zeitlich aufeinander folgend auszuführenden Anweisungen abge speichert sind. Der Programmspeicher 5 ist in eine vorbe stimmte Anzahl von 2m-n Speicherbänken SB mit jeweils einer Anzahl von 2n Programmwörtern PW, die durch eine n Bit breite Wortadresse charakterisiert sind, unterteilt, wobei den Spei cherbänken SB jeweils eine Speicherbanknummer SBx zugeordnet ist. Es ist eine dem Programmadreßbus 6 zugeordnete Steuer schaltung 1 vorgesehen mit einer an den Programmbus 9 gekop pelten Erkennungsschaltung 3, welche eine auf dem Programmbus 9 liegende Sprunganweisung erfaßt, welche einen Befehl für einen Zugriffswechsel zwischen verschiedenen Speicherbänken SB aufweist, und mit einer von der Erkennungsschaltung 3 ge steuerten, eingangangsseitig an den Datenbus 8 und den Pro grammadreßbus 6 und ausgangsseitig an einen wenigstens um die Anzahl m-n der zur Kennzeichnung der 2m-n Speicherbanknum mern (SBx) notwendigen Bitleitungen 22 erweiterten Program madreßbus 7 gekoppelten Adreßkopplungsschaltung 4, welche eine aus der in der Sprunganweisung enthaltenen Speicherban knummer SBx und der n Bit breiten, in der Sprunganweisung enthaltenen Wortadresse zusammengesetzte, eindeutig einem Wort PW im Programmspeicher 5 zugeordneten Programmadresse an den Programmspeicher 5 ausgibt.This shows the schematic structure of an exemplary embodiment of the microprocessor circuit according to the invention with an arithmetic logic unit 2 for executing the instructions one after the other in time, an external data memory 21 coupled to the arithmetic logic unit 2 by means of an n bit wide data bus 8 , in which the computer 2 calculates or processed data are temporarily stored, and an external program memory 5 which is coupled to the arithmetic unit 2 by means of a program bus 9 and in which the instructions to be executed by the arithmetic unit 2 in succession are stored. The program memory 5 is divided into a predetermined number of 2 mn memory banks SB, each with a number of 2 n program words PW, which are characterized by an n-bit word address, the memory banks SB being assigned a memory bank number SBx. There is a control circuit 1 assigned to the program address bus 6 provided with a detection circuit 3 coupled to the program bus 9 , which detects a jump instruction lying on the program bus 9 , which has a command for an access change between different memory banks SB, and with one of the detection circuit 3 ge controlled, on the input side to the data bus 8 and the program address bus 6 and on the output side to an address coupling circuit 4 coupled at least by the number mn of the bit lines 22 necessary for identifying the 2 mn memory bank numbers (SBx) 22 , the program address bus 7 coupled, which comprises a from the in outputs the memory instruction number SBx contained in the jump instruction and the n-bit wide word address contained in the instruction instruction, which outputs a program address which is clearly assigned to a word PW in the program memory 5 to the program memory 5 .
Die Erkennungsschaltung 3 besteht aus einer ersten Masken schaltung 12, einer zweiten Maskenschaltung 13, einer Ver gleichsschaltung 14 und einer Verzögerungsschaltung 15. Die Vergleichsschaltung 14 ist eingangsseitig mit der ersten und der zweiten Maskenschaltung und ausgangsseitig mit der Verzö gerungsschaltung 15 gekoppelt. Die erste Maskenschaltung 12 ist mit dem Programmbus 9 derart gekoppelt, daß wenigstens jene Teile eines Programmwortes in die erste Maskenschaltung 12 geschrieben werden, die zur Identifizierung einer die Speicherbankgrenzen überschreitende Sprunganweisung ausrei chen. Die zweite Maskenschaltung 13 stellt einen Festwert speicher dar, in welchem jene Teile eines eine Sprunganwei sung enthaltende Programmwortes abgelegt sind, die zur Iden tifizierung der Sprunganweisungen ausreichen. Ausgangsseitig ist die Vergleichsschaltung 14 mit dem Eingang der Verzöge rungsschaltung 15 gekoppelt. Der Takteingang der Verzöge rungsschaltung 15 ist mit dem Taktsignal des Rechenwerkes 2 gekoppelt. Der Ausgang der Verzögerungsschaltung 15 ent spricht dem Ausgang der Erkennungsschaltung 3, welche mit dem Eingang der Adreßkopplungsschaltung 4 verbunden ist. Die Adreßkopplungsschaltung 4 besteht aus einem UND-Gatter 16, einer Flip-Flop-Schaltung 17, einem ersten Speicherbankregi ster 18 und einem zweiten Speicherbankregister 19. Der Ein gang der Adreßkopplungsschaltung 4 ist mit dem ersten Ein gang des UND-Gatters 16 und dem Rücksetzeingang der Flip- Flop-Schaltung 17 gekoppelt. Am zweiten Eingang 20 des UND-Gatters 16 liegt permanent die logische Eins an. Der dritte Eingang des UND-Gatters 16 ist mit dem Ausgang der Flip-Flop- Schaltung 17 gekoppelt. Am Eingang der Flip-Flop-Schaltung 17 und am ersten Freigabeeingang des ersten Speicherbankregi sters 18 liegt gemeinsam ein Freigabesignal 11 an. Der Aus gang des UND-Gatters 16 ist mit einem zweiten Freigabeeingang des zweiten Speicherbankregisters 19 gekoppelt. Das erste Speicherbankregister 18 ist eingangsseitig mit dem n Bit breiten Datenbus 8 gekoppelt, und ausgangsseitig mit dem Ein gang des zweiten Speicherbankregisters 19 gekoppelt. Der an die m-n Bitleitungen 22 gekoppelte Ausgang des zweiten Spei cherbankregisters 19 entspricht dem Ausgang der Adreßkopp lungsschaltung 4 und damit dem Ausgang der Steuerschaltung 1. Die an den Ausgang der Steuerschaltung 1 gekoppelten m-n Bit leitungen 22 bilden zusammen mit dem n Bit breiten Program madressbus 6 den m Bit breiten erweiterten Programmadreßbus 7. Der erweiterte Programmadreßbus 7 koppelt den nicht näher dargestellten, dem Rechenwerk 2 übergeordneten Mikroprozessor mit dem externen Programmspeicher 5. Der Programmspeicher 5 besteht aus 2m-n Speicherbänken, welche aus jeweils 2n Pro grammworten aufgebaut sind.The detection circuit 3 consists of a first mask circuit 12 , a second mask circuit 13 , a comparison circuit 14 and a delay circuit 15 . The comparison circuit 14 has its input side coupled to the first and the second mask circuit and the output side of the delay circuit with deferrers 15th The first mask circuit 12 is coupled to the program bus 9 in such a way that at least those parts of a program word are written into the first mask circuit 12 which are sufficient to identify a jump instruction which exceeds the memory bank limits. The second mask circuit 13 represents a fixed value memory, in which those parts of a program word containing a jump instruction are stored which are sufficient for identifying the jump instructions. On the output side, the comparator circuit 14 is connected to the input of the circuit 15 coupled tarry approximately. The clock input of the delay circuit 15 is coupled to the clock signal of the arithmetic unit 2 . The output of the delay circuit 15 corresponds to the output of the detection circuit 3 , which is connected to the input of the address coupling circuit 4 . The address coupling circuit 4 consists of an AND gate 16 , a flip-flop circuit 17 , a first memory bank register 18 and a second memory bank register 19 . The input of the address coupling circuit 4 is coupled to the first input of the AND gate 16 and the reset input of the flip-flop circuit 17 . The logic one is permanently present at the second input 20 of the AND gate 16 . The third input of the AND gate 16 is coupled to the output of the flip-flop circuit 17 . At the input of the flip-flop circuit 17 and at the first enable input of the first memory bank register 18, there is a common enable signal 11 . The output of the AND gate 16 is coupled to a second enable input of the second memory bank register 19 . The first memory bank register 18 is coupled on the input side to the n-bit data bus 8 , and on the output side is coupled to the input of the second memory bank register 19 . The coupled to the mn bit lines 22 output of the second memory bank register 19 corresponds to the output of the address coupling circuit 4 and thus the output of the control circuit 1 . The mn bit lines 22 coupled to the output of the control circuit 1 together with the n bit wide program madressbus 6 form the m bit wide extended program address bus 7 . The expanded program address bus 7 couples the microprocessor (not shown in greater detail) to the arithmetic logic unit 2 and the external program memory 5 . The program memory 5 consists of 2 mn memory banks, which are each composed of 2 n program words.
Das in der Figur dargestellte Ausführungsbeispiel arbeitet wie folgt. Die Verwendung zweier Speicherbankregister 18, 19 ermöglicht, daß die Speicherbank SB gleichzeitig mit der Wor tadresse PW innerhalb der Speicherbank SB verändert werden kann. Die folgenden Tabelle verdeutlicht den Ablauf einer Sprunganweisung von der Speicherbank SB0 und der Wortadresse PW101 nach der Speicherbank SB3 und der Wortadresse PW77.The embodiment shown in the figure works as follows. The use of two memory bank registers 18 , 19 enables the memory bank SB to be changed simultaneously with the word address PW within the memory bank SB. The following table illustrates the sequence of a jump instruction from memory bank SB0 and word address PW101 to memory bank SB3 and word address PW77.
In einem ersten Schritt wird die neue Speicherbanknummer SB3 vom Datenbus 8 in das erste Speicherbankregister 18 eingele sen. Gleichzeitig wird der Eingang der Flip-Flop-Schaltung 17 auf die logische Eins gesetzt. Der auf dem Programmdatenbus 9 liegende Sprungbefehl wird von der Vergleichsschaltung 14 der Erkennungsschaltung 3 identifiziert. Die Verzögerungsschal tung 15 gleicht die unterschiedlichen Laufzeiten der in der Speicherbank 18 stehenden Anweisung und des Sprungbefehls aus. Über das UND-Gatter 16 wird das zweite Speicherbankregi ster 19 angesprochen und die neue Speicherbanknummer SB auf die m-n Bitleitungen 22 und damit auf den erweiterten Pro grammdatenbus 7 übertragen. Gleichzeitig wird der Eingang der Flip-Flop-Schaltung 17 auf eine logische Null zurückgesetzt. Alle folgenden Sprunganweisungen werden wie Sprunganweisungen innerhalb der aktuellen Speicherbank SB interpretiert. Zufäl lige Daten auf dem Programmdatenbus 9 können den beschriebe nen Ablauf nicht stören. Erst ein erneuter Zugriff auf das erste Speicherbankregister 18 versetzt die Steuerschaltung 1 wieder in den aktiven Zustand.In a first step, the new memory bank number SB3 from data bus 8 is inserted into first memory bank register 18 . At the same time, the input of the flip-flop circuit 17 is set to logic one. The jump instruction lying on the program data bus 9 is identified by the comparison circuit 14 of the detection circuit 3 . The delay circuit 15 compensates for the different runtimes of the instruction in the memory bank 18 and the jump instruction. The second memory bank register 19 is addressed via the AND gate 16 and the new memory bank number SB is transmitted to the mn bit lines 22 and thus to the extended program data bus 7 . At the same time, the input of the flip-flop circuit 17 is reset to a logic zero. All subsequent jump instructions are interpreted like jump instructions within the current memory bank SB. Random data on the program data bus 9 cannot interfere with the process described. Only when the first memory bank register 18 is accessed again does the control circuit 1 return to the active state.
Um einen einwandfreien Ablauf zu gewährleisten, sollte die Sprunganweisung unmittelbar dem Befehl zum Schreiben der neu en Speicherbanknummer Sbx in das erste Speicherbankregister 18 folgen, was der an sich üblichen Reihenfolge des Program mes entspricht.In order to ensure that the process runs smoothly, the jump instruction should immediately follow the command for writing the new memory bank number Sbx into the first memory bank register 18 , which corresponds to the sequence of the program which is usual per se.
Sollten Interrupt-Signale vorliegen, die zwischen den beiden Anweisungen den sinnvollen Ablauf beenden, können vor der Sprunganweisung und dem Befehl zum Schreiben der neuen Spei cherbanknummer Sbx in das erste Speicherbankregister 18 alle Interrupt-Signale abgeschaltet werden, bzw. die nicht mas kierbaren Interrupts können mit einer Schaltung, welche durch den Ausgang der Flip-Flop-Schaltung 17 gesteuert ist, ge sperrt werden.If there are interrupt signals that terminate the sensible sequence between the two instructions, all interrupt signals can be switched off before the jump instruction and the command for writing the new memory bank number Sbx into the first memory bank register 18 , or the non-maskable interrupts can with a circuit which is controlled by the output of the flip-flop circuit 17 , ge blocked.
Durch den Einsatz der erfindungsgemäßen Schaltung kann die Problematik bei Speicherbankgrenzen überschreitenden Sprun ganweisungen zufriedenstellend gelöst werden, ohne den zu sätzlichen Programmieraufwand wesentlich zu erhöhen.By using the circuit according to the invention, the Problems with Sprun across memory bank boundaries Instructions can be satisfactorily resolved without having to significantly increase the additional programming effort.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19612442A DE19612442A1 (en) | 1996-03-28 | 1996-03-28 | Microprocessor circuit for performing sequences of instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19612442A DE19612442A1 (en) | 1996-03-28 | 1996-03-28 | Microprocessor circuit for performing sequences of instructions |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19612442A1 true DE19612442A1 (en) | 1997-02-27 |
Family
ID=7789785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19612442A Withdrawn DE19612442A1 (en) | 1996-03-28 | 1996-03-28 | Microprocessor circuit for performing sequences of instructions |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19612442A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0116455A2 (en) * | 1983-02-10 | 1984-08-22 | Activision, Inc. | Method and means for memory bank selection in a microprocessing system |
-
1996
- 1996-03-28 DE DE19612442A patent/DE19612442A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0116455A2 (en) * | 1983-02-10 | 1984-08-22 | Activision, Inc. | Method and means for memory bank selection in a microprocessing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0011685B1 (en) | Programmable memory protection arrangement for microprocessors and circuitry with such an arrangement | |
DE3876780T2 (en) | MICRO COMPUTER WITH BUILT-IN CHIP SELECTION AND PROGRAMMABLE BUS EXPANSION. | |
DE69428634T2 (en) | Hardware arrangement and method for extending the data processing time in the assembly line stages of a microcomputer system | |
DE2744531C2 (en) | Arrangement for the selection of interrupt programs in a data processing system | |
DE2907181A1 (en) | COMMAND SET MODIFYING REGISTER FOR A DATA PROCESSOR | |
DE1499722B1 (en) | DEVICE FOR THE MODIFICATION OF INFORMATION WORDS | |
DE2630323B2 (en) | Data storage device with a main memory, an auxiliary memory and a look-ahead logic | |
DE68924719T2 (en) | Device and method for executing a subroutine in a data processing system with block switching. | |
DE2339636A1 (en) | PROGRAM CONTROL DEVICE | |
DE2908691A1 (en) | DIGITAL COMPUTER | |
DE2524046A1 (en) | ELECTRONIC DATA PROCESSING SYSTEM | |
DE3228405A1 (en) | EMULATOR FOR GENERATING A SEQUENCE OF CONTROL SIGNALS | |
DE2117581B2 (en) | Device for address checking | |
DE19955776C1 (en) | Multitasking processor system | |
DE68925376T2 (en) | Effective information processor and method for switching the mapping schemes in direct mapping and in banking mapping | |
EP0130269A2 (en) | Stored program control | |
DE2245284A1 (en) | DATA PROCESSING SYSTEM | |
DE3226214C2 (en) | Data processing system | |
DE69424387T2 (en) | Method and device for modifying the content of a register | |
DE19612442A1 (en) | Microprocessor circuit for performing sequences of instructions | |
DE2106731A1 (en) | Diagnostic equipment for electronic data processing systems | |
DE2725504A1 (en) | DATA PROCESSING SYSTEM AND INFORMATION OUTPUT | |
EP0195284A2 (en) | Device for counting the number of 1/0 bits contained in an n-bits binary word | |
DE1449540B2 (en) | Digital computer | |
EP0328989B1 (en) | Circuit to adapt a slow memory to a fast processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAV | Publication of unexamined application with consent of applicant | ||
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |