WO1998014876A1 - Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher - Google Patents

Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher Download PDF

Info

Publication number
WO1998014876A1
WO1998014876A1 PCT/DE1997/002253 DE9702253W WO9814876A1 WO 1998014876 A1 WO1998014876 A1 WO 1998014876A1 DE 9702253 W DE9702253 W DE 9702253W WO 9814876 A1 WO9814876 A1 WO 9814876A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
register
stack
logical address
address space
Prior art date
Application number
PCT/DE1997/002253
Other languages
English (en)
French (fr)
Inventor
Klaus Oberländer
Michael Baldischweiler
Stefan Pfab
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP97910244A priority Critical patent/EP1010081A1/de
Priority to JP10516148A priority patent/JP2000503792A/ja
Priority to BR9712154-1A priority patent/BR9712154A/pt
Publication of WO1998014876A1 publication Critical patent/WO1998014876A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Definitions

  • Microprocessors require a stack memory in order to process programs to be executed by them.
  • the stack memory also called "stack"
  • the stack memory is used to hold a return address which he jumps back to after the end of the subroutine in order to continue executing the program at the same point from where he made the subroutine jump.
  • stack pointer which usually contains the address of the last entry in the stack and is incremented accordingly when a new entry is made in the stack. It is also common to store variables in the stack in addition to return addresses.
  • a program to be processed by the processor is loaded into a main memory of the processor, which is usually implemented by a RAM (Random Access Memory).
  • the main memory is located in a logical address space that can be directly addressed via the processor's address outputs.
  • the stack memory and the working memory share the available logical address space, the size of which is determined by the number of address outputs of the processor. With, for example, only eight address outputs, such as those found in type 8051 microcontrollers, this can be done directly via the address outputs of the controller addressable logical address space only 256 bytes in size.
  • the size for the required stack memory results.
  • the stack size is therefore directly dependent on the type of program to be processed. When manufacturing the microprocessor, however, it is usually not known what type of software it should ultimately process.
  • the stack memory is therefore usually of relatively large dimensions, so that even complex programs can be handled by the processor. For many other, less complex applications, however, the stack memory is then oversized.
  • the stack memory is usually arranged in the upper address area of the logical address space of the microprocessor.
  • the stack pointer is preset to the lowest address of the stack when the processor is started up or initialized. If data is subsequently stored in the stack, the stack pointer is incremented accordingly.
  • the main memory of the processor only the area from the beginning to the beginning of the stack is available in the logical address space.
  • the invention has for its object to provide a circuit arrangement with a microprocessor and a stack for the microprocessor, in which the largest possible area of the logical address space directly addressable by the processor via its address outputs for the main memory is available and the smallest possible part of the logi ⁇ 's address space occupied by the stack.
  • circuit arrangement according to claim 1 it is provided to arrange at least a part of the stack memory outside the directly addressable logical address space of the microprocessor.
  • the circuit arrangement has a first register in which information on the selection of one of the memory areas can be stored and a second register in which information on the selection of memory units contained in the respectively selected memory area can be stored.
  • This second register can advantageously correspond to a conventional stack pointer.
  • the storage units of each storage area can be used to hold one data word each. It is advantageous if there is a memory unit in each of the memory areas with the same address that can be stored in the second register or the stack memory. Which of these memory units is addressed with the same addresses is determined by the content of the first register and the resulting selection of the corresponding memory area.
  • the functioning of this exemplary embodiment of the invention is as follows: When the circuit arrangement is started up, the information for selecting the first memory area is stored in the first register.
  • the corresponding data (return addresses or variables) are first stored in succession in the memory units of the first memory area.
  • the content of the second register or the stack pointer is incremented accordingly. If all storage units of the first storage area are occupied with data, the content of the first register is incremented and the second storage area is thus selected. The contents of the second register are then used to fill its storage units with data, if necessary, and so on.
  • the invention enables the greatest possible part of the logical address space to be available for the working memory of the microprocessor by arranging as small a part of the stack memory in the logical address space as possible with little effort and with only a slight change from conventional circuit arrangements which have a microprocessor and a corresponding stack memory stands, whereby at the same time an arbitrarily large stack memory can be realized, the largest part of which is arranged outside the logical address space.
  • these two goals can be achieved in a particularly simple manner by selecting the number of storage units per storage area as low as possible and the number of storage areas of the stack memory as high as possible.
  • a further development of the invention provides that the circuit arrangement has a detection means which is used to detect when a limit of the stack memory has been exceeded when writing or reading data into the stack memory. If it is provided at the same time, depending on a result signal of the detection means in the event that an upper limit or is exceeded If the stack memory falls below a lower limit and the stack memory is at least partially emptied, malfunctions as a result of the overflow or underflow of the stack memory can be avoided.
  • An interrupt can advantageously be triggered by the result signal of the detection means, whereby the processor interrupts the execution of the respective program at the current position and jumps to a predetermined other program address.
  • the program instructions to be processed there can then cause the stack memory to be emptied by forcibly terminating the last started subroutines.
  • the interrupt makes sense if the interrupt generates a corresponding error message which indicates to a user of the processor that the stack memory is malfunctioning.
  • the circuit arrangement has a third register in which the number of
  • Memory areas are stored so that an overflow of the stack memory can be detected by means of the detection means by comparing the content of the third register with the content of the first register in which the address of the respectively selected memory area is stored.
  • FIG. 1 shows an embodiment of the invention.
  • FIG. 2 shows a detail from FIG. 1.
  • FIG. 1 shows a microprocessor 1 with a limited number of address outputs 2 for addressing a logical address space 3 via a corresponding address decoder 20.
  • the microprocessor 1 has eight address outputs 2. This is the case, for example, if the microprocessor 1 is a type 8051 microcontroller.
  • the binary addresses of storage units within the logical address space 3 can also be seen in FIG. 1.
  • the lowest address of the logical address space is 0000 0000.
  • the highest address is 1111 1111.
  • the storage units can be data words, each of which has the size of one or more bytes. Assume that the storage units are one byte in size. 256 bytes can then be addressed by means of the decoder 20 via the eight address outputs 2.
  • FIG. 1 there is a stack memory 4 which is divided into four memory areas 5 (page 1 to page 4) of equal size. Each of the memory areas 5 is divided into individually addressable memory units 9. The memory units 9 of each of the memory areas 5 can each be addressed via the same addresses present at the address outputs 2 of the processor 1. These correspond to the
  • a selection of one of the memory units 9, each with the same address, is made via a second decoder 30.
  • regions 5 can be selected via the second decoder 30 a SpeI ⁇ cher Schemee. 5
  • the first register 6 and the second decoder 30 determine in which of the memory areas 5 the memory unit with the corresponding address is selected .
  • Which of the memory units 9 is addressed by the processor 1 within the memory areas 5 is determined by the content of a second register 7, which corresponds to a conventional stack pointer or stack pointer.
  • the size of the remaining working memory 10 can be increased or decreased by a different number of memory units 9 within the memory areas 5.
  • the total size of the stack memory 4 can be increased by a larger number of memory areas 5 without the remaining working memory 10 being reduced.
  • the second register 7 or the stack is initially initialized.
  • the content of the second register 7 is initially preset to the lowest address of the memory units 9 of the stack memory 4, namely 1111 0000.
  • the content of the first register 6, which is not available in the prior art is also set such that the second decoder 30 is the first memory area advantage Page 1 selec ⁇ .
  • the first re gister ⁇ must have 6 only two bits for their addressing.
  • the number of address bits of the first register 6 is selected to be much larger and the number of selectable memory areas is also increased accordingly.
  • the memory requirement of the stack 4 is dependent on the number of subroutine branches and the variables to be stored in the stack 4.
  • Those memory areas 5 of the stack 4 which are arranged outside the logical address space 3 of the processor 1 can be arranged in one or more memories different from that in which the first memory area is arranged. It makes sense that these additional memories are located on the same integrated circuit as the first memory area 1 and the working memory 10. It is particularly favorable if the entire stack memory 4 and the working memory 10 are components of a common memory, of which only that part which contains the working memory 10 and the first memory area 1 in the logical address space which can be addressed directly by the address outputs 2 of the microprocessor 1 3 lie.
  • the invention now enables that as soon as the first memory area Page 1 is filled with data, that is to say the stack pointer 7 has the address 1111 1111, the address 1111 0000 in the stack pointer again passes over the last 4 bits of the stack pointer 7 is included. This is achieved in that the first four bits of the stack pointer 7 are set to 1111 in an unchangeable manner. At the same time, the overflow of the second register 7 is registered by the first register 6 and this is incremented accordingly, so that the memory unit 9 with the address 1111 0000 can now be addressed in the second memory area via the address outputs 2 of the processor 1. The same applies to the change to the other storage areas. Likewise, when reading data from the stack 4, the stack pointer 7 is decremented accordingly.
  • the top four bits of the stack pointer are fixed at 1111 and only the bottom four bits XXXX are variable. If the lower limit of one of the memory areas 5 with the address 1111 0000 has already been reached and a further date is read, the subtraction or decrementing results in a new counter reading of 1111 1111 in the second register 7. At the same time, the first register registers 6 this underflow and is decremented accordingly, whereupon the next lower memory area 5 can be selected via the second decoder 30.
  • the circuit arrangement has a third register 8, in which the number of usable memory areas 5 is stored.
  • the detection means 11 detects an overflow of the stack memory 4 by comparing the content of the first register with that of the third register 8 and sends a corresponding result signal to the processor 1. This in turn temporarily interrupts the processor Execution of the program to be executed and first performs an at least partial emptying of the stack 4, followed by a corresponding initialization of the first register 6 and the second register 7.
  • FIG. 1 also shows a data bus 40, via which the processor 1 can write data into the working memory 10 or the stack memory 4 and read them out again.
  • FIG. 2 again shows the first register 6 and the second register 7 from FIG. 1.
  • the process of incrementing and decrementing is to be explained once again with reference to FIG. 2.
  • the corresponding return address is stored in the stack 4 at the address which is determined by the content of the two registers 6 and 7.
  • the last 4 bits XXXX of the second register 7 are incremented by 1, so that the stack pointer 7 points to the next free storage unit 9 in the stack 4. If an overflow occurs, that is, the content of the second register 7 jumps from
  • this register 1111 1111 to 1111 0000, this registers a logic 60 and increments the content of the first register 6 by the value 1. Conversely, in the case of a return from a subroutine (Return), the corresponding return address is taken from the stack memory 4, and the last four bits XXXX of the stack pointer 7 are decremented by the value 1. If there is an underflow of the last four bits XXXX, this registers the logic 60 and decrements the content of the first register 6 by 1.
  • an increment or decrement value (for example 2) which deviates therefrom can also be provided. This depends on the scope of the data to be stored in the stack 4. In the exemplary embodiment described with reference to FIG. 1, in which the storage units have a size of one byte each, an increment or decrement of 2 each would have to be selected if the return addresses or variables to be stored have a size of two bytes.
  • FIG. 2 also shows a further logic 50, with which commands relative to the stack pointer 7 or modifying the stack pointer 7 can be implemented, as are customary in microprocessors.
  • the processor places a new address on the data bus by which the content of the stack pointer is to be increased or decreased in the circuit arrangements customary in the prior art.
  • a further logic 50 is provided which adjusts or adjusts the contents of the two registers 6, 7 to the correct values.
  • the invention has the advantage that a large working memory 10 and a large stack memory 4 can be implemented at the same time.
  • the circuit arrangement according to the invention is capable of executing the same stack instructions as conventional circuit arrangements.
  • the circuit arrangement according to the invention has the further advantage that it is only under a slight modification herkömm ⁇ Licher such circuit arrangements are realized.
  • a conventional microprocessor 1 with conventional data bus 40 and address outputs 2 and a conventional decoder 20 can be used.
  • the previously common stack pointer can only be modified to the extent that the desired number of bits cannot be changed.
  • the four uppermost bits in the stack pointer 7 are set unchangeably at 1111.
  • a memory is required which is larger than the logical address space 3 in order to accommodate the memory areas 5 of the stack memory 4 arranged outside this.
  • the circuit arrangement according to the invention requires the first register 6 and the second decoder 30 to select one of the memory areas 5 in each case.
  • the invention is particularly advantageous where only one processor 1 with a very small number of address outputs 2 is available, as is the case, for example, with the 8051 microcontroller. Especially with such a small available logical address space 3, it is absolutely necessary to keep the portion of the stack 4 in this logical address space 3 as small as possible. Although numerous processors with a larger number of address outputs are also known, by means of which a much larger logical address space can then be addressed, these processors are generally much larger than, for example, the 8051 microcontroller If one or more integrated semiconductor circuits have to be accommodated within a card-shaped plastic housing, it is important that the chip area is as small as possible, because the mechanical stresses in a chip card are very large, so that larger-area chips are easily destroyed.
  • circuit arrangement according to the invention is fully compatible with conventional stack memory commands, it is not necessary to adapt development tools for software applications to be executed by processor 1.
  • the circuit arrangement according to the invention enables an expansion of the address of the stack memory area without the directly addressable logical address space of the processor 1 having to be expanded.
  • Stack commands must be distinguished from all other commands. Therefore, only those addresses that are larger than 1111 0000 are transferred to the stack pointer 7 in a relative or modifying command. This can be checked using a simple comparator. For all other addresses, the selection lines of the second decoder 30 for selecting the memory areas 5 are deactivated.
  • first register 6 and the second register 7 are part of a single register, the first register 6 occupying the highest bits (MSBs, most significant bits) of this register and the second register 7 the lower ones. Then an overflow of the second results Registers 7 automatically incrementing and decrementing the first register 6 by an underflow.

Landscapes

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

Abstract

Der Mikroprozessor hat einen über Adressausgänge (2) direkt adressierbaren logischen Adressraum (3). Der Stapelspeicher (4) ist wenigstens teilweise außerhalb des logischen Adressraums (3) angeordnet. Vorteil: Der im logischen Adressraum (3) verbleibende Arbeitsspeicher (10) kann maximiert werden.

Description

Beschreibung
Schaltungsanordnung mit einem Mikroprozessor und einem Stapelspeicher
Mikroprozessoren benötigen zum Abarbeiten von durch sie auszuführenden Programmen einen Stapelspeicher. Immer wenn der Prozessor bei der Abarbeitung eines Programmes nicht nur sequentiell aufeinanderfolgende Programmanweisungen abzuarbei- ten hat, sondern, wie zum Beispiel bei einem Unterprogramm- Aufruf einen Programmsprung auszuführen hat, dient der Stapelspeicher (auch "Stack" genannt) zur Aufnahme einer Rücksprungadresse, zu der er nach Beendigung des Unterprogramms zurückspringt, um an derselben Stelle, von wo er den Unter- programmsprung aus unternommen hat, die Abarbeitung des Programms fortzusetzen. Zur Verwaltung des Stapelspeichers ist ein sogenannter Stapelzeiger oder Stack Pointer vorhanden, der für gewöhnlich die Adresse des letzten Eintrags in den Stapelspeicher enthält und bei einem neuen Eintrag in den Stapelspeicher entsprechend inkrementiert wird. Es ist auch üblich, außer Rücksprungadressen auch Variablen im Stapelspeicher zu speichern.
Ein durch den Prozessor abzuarbeitendes Programm wird zu die- sem Zweck in einem Arbeitsspeicher des Prozessors geladen, der gewöhnlich durch ein RAM (Random Access Memory) realisiert ist. Der Arbeitsspeicher befindet sich dabei in einem logischen Adressraum, der über Adressausgänge des Prozessors direkt adressierbar ist.
Es ist üblich, auch den Stapelspeicher im genannten logischen Adressraum anzuordnen. Dies hat zur Folge, daß sich Stapelspeicher und Arbeitsspeicher den verfügbaren logischen Adressraum, dessen Größe durch die Anzahl der Adressausgänge des Prozessors festgelegt ist, teilen. Bei beispielsweise lediglich acht Adressausgängen, wie sie bei Microcontrollern vom Typ 8051 vorhanden sind, ist der direkt über die Adreß- ausgänge des Controllers adressierbare logische Adressraum nur 256 Byte groß. Je nach Komplexität des abzuarbeitenden Programms und die maximale Anzahl von zu bewerkstelligenden Unterprogrammaufrufen ergibt sich die Größe für den benötig- ten Stapelspeicher. Damit ist die Stapelspeichergröße direkt abhängig von der Art des abzuarbeitenden Programms . Bei der Herstellung des Mikroprozessors ist es für gewöhnlich aber nicht bekannt, welche Art von Software letztlich von ihm abgearbeitet werden soll. Daher ist der Stapelspeicher für ge- wohnlich relativ groß dimensioniert, so daß auch komplexe Programme vom Prozessor bewältigt werden können. Für viele andere, nicht so komplexe Anwendungen ist der Stapelspeicher dann jedoch überdimensioniert.
Der Stapelspeicher wird in der Regel im oberen Adressbereich des logischen Adressraums des Mikroprozessors angeordnet. Zu diesem Zweck wird der Stapelzeiger bei der Inbetriebnahme beziehungsweise Initialisierung des Prozessors auf die unterste Adresse des Stapelspeichers voreingestellt. Werden anschlie- ßend Daten im Stapelspeicher abgelegt, wird der Stapelzeiger entsprechend inkrementiert . Für den Arbeitsspeicher des Prozessors steht dann im logischen Adressraum nur der Bereich von dessen Beginn bis zum Anfang des Stapelspeichers zur Verfügung. Für den oben bereits erwähnten Microcontroller vom Typ 8051 mit einem logischen Adressraum von lediglich
256 Byte verbleiben bei einer Größe des Stapelspeichers von zum Beispiel 64 Byte lediglich 192 Byte für den Arbeitsspeicher. Die verbleibende Größe des Arbeitsspeichers ist jedoch ausschlaggebend für die Gestaltungsmöglichkeiten eines Pro- gram ierers und für die Geschwindigkeit, mit der Programme vom Prozessor abgearbeitet werden können.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsanordnung mit einem Mikroprozessor und einem Stapelspeicher für den Mikroprozessor zu schaffen, bei der ein möglichst großer Bereich des vom Prozessor über seine Adreßausgänge direkt adressierbaren logischen Adressraums für den Arbeitsspeicher zur Verfügung steht und ein möglichst geringer Teil des logi¬ schen Adressraums durch den Stapelspeicher belegt wird.
Diese Aufgabe wird durch eine Schaltungsanordnung gemäß An- spruch 1 gelöst. Erfindungsgemäß ist es vorgesehen, wenigstens einen Teil des Stapelspeichers außerhalb des direkt adressierbaren logischen Adressraums des Mikroprozessors anzuordnen.
Besonders einfach ist dies erreichbar, indem der Stapelspeicher in jeweils gleich große Speicherbereiche aufgeteilt ist, von denen nur einer im direkt adressierbaren logischen Adressraum angeordnet ist . Es ist dann in einfacher Weise möglich, denjenigen der Speicherbereiche, der sich im logi- sehen Adressraum befindet, über die Adressausgänge des Mikroprozessors direkt zu adressieren, während zur Adressierung der übrigen Speicherbereiche des Stapelspeichers eine spezielle Logik notwendig ist, die für eine Umschaltung zwischen den unterschiedlichen Speicherbereichen sorgt.
Besonders vorteilhaft ist es daher, wenn die Schaltungsanordnung ein erstes Register aufweist, in dem eine Information zur Auswahl eines der Speicherbereiche speicherbar ist und ein zweites Register aufweist, in dem eine Information zur Auswahl von im jeweils ausgewählten Speicherbereich enthaltenen Speichereinheiten speicherbar ist. Vorteilhafterweise kann dieses zweite Register einem herkömmlichen Stapelzeiger entsprechen. Die Speichereinheiten jedes Speicherbereiches können zur Aufnahme je eines Datenwortes dienen. Es ist gün- stig, wenn in jedem der Speicherbereiche je eine Speichereinheit mit derselben, im zweiten Register beziehungsweise dem Stapelspeicher speicherbaren Adresse vorhanden ist. Welche dieser Speichereinheiten mit gleichen Adressen jeweils adressiert wird, wird durch den Inhalt des ersten Registers und die dadurch bedingte Auswahl des entsprechenden Speicherbereiches bestimmt. Die Funktionsweise dieses Ausführungsbeispiels der Erfindung ist dabei wie folgt: Bei Inbetriebnahme der Schaltungsanordnung ist im ersten Register die Information zur Auswahl des ersten Speicherbereiches gespeichert. Wird der Stapelspeicher gefüllt, werden die entsprechenden Daten (Rücksprungadressen oder Variablen) zunächst aufeinanderfolgend in den Speichereinheiten des ersten Speicherbereiches gespeichert. Dabei wird der Inhalt des zweiten Registers beziehungsweise des Stapelzeigers entsprechend inkrementiert . Sind alle Spei- chereinheiten des ersten Speicherbereiches mit Daten belegt, wird der Inhalt des ersten Registers inkrementiert und damit der zweite Speicherbereich ausgewählt. Anschließend werden über den Inhalt des zweiten Registers dessen Speichereinheiten bei Bedarf mit Daten gefüllt und so weiter.
Die Erfindung ermöglicht ohne großen Aufwand und unter nur geringfügiger Veränderung von herkömmlichen Schaltungsanordnungen, die einen Mikroprozessor und einen entsprechenden Stapelspeicher aufweisen, durch Anordnung eines möglichst kleinen Teiles des Stapelspeichers im logischen Adressraum, daß ein größtmöglicher Teil des logischen Adressraums für den Arbeitsspeicher des Mikroprozessors zur Verfügung steht, wobei gleichzeitig ein beliebig großer Stapelspeicher realisierbar ist, dessen größter Teil außerhalb des logischen Adressraums angeordnet ist. Beim geschilderten Ausführungsbeispiel können diese beiden Ziele besonders einfach erreicht werden, indem die Anzahl der Speichereinheiten je Speicherbereich möglichst niedrig und die Anzahl der Speicherbereiche des Stapelspeicher möglichst hoch gewählt wird.
Eine Weiterbildung der Erfindung sieht vor, daß die Schaltungsanordnung ein Detektionsmittel aufweist, das zur Detek- tion eines Überschreitens einer Grenze des Stapelspeichers beim Einschreiben beziehungsweise Auslesen von Daten in den Stapelspeicher dient. Wenn gleichzeitig vorgesehen ist, in Abhängigkeit eines Ergebnissignals des Detektionsmittels im Falle des Überschreitens einer oberen Grenze beziehungsweise eines Unterschreitens einer unteren Grenze des Stapelspeichers eine wenigstens teilweise Leerung des Stapelspeichers vorzunehmen, können Fehlfunktionen in Folge des Über- bzw. Unterlaufs des Stapelspeichers vermieden werden.
Durch das Ergebnissignal des Detektionsmittel ist vorteilhafterweise ein Interrupt auslösbar, wodurch der Prozessor die Abarbeitung des jeweiligen Programms an der aktuellen Position unterbricht und zu einer vorbestimmten anderen Program- madresse springt. Die dort abzuarbeitenden Programmbefehle können dann eine Leerung des Stapelspeichers durch zwangsweises Beenden der zuletzt gestarteten Unterprogramme bewirken. Alternativ zur Leerung des Stapelspeichers durch Abbruch der Bearbeitung von Unterprogrammen ist es möglich, den Inhalt des Stapelspeichers wenigstens teilweise in einen weiteren Speicherbereich, beispielsweise in denjenigen des Arbeitsspeichers oder in einen Speicher außerhalb des direkt vom Prozessor adressierbaren Adreßraumes, wenigstens vorübergehend auszulagern. Dies geschieht durch Kopie der auszulagern- den Daten an die gewünschte Stelle.
Zusätzlich oder alternativ zu einer Leerung des Stapelspeichers aufgrund des Ergebnissignals des Detektionsmittels ist es sinnvoll, wenn eine entsprechende Fehlermeldung durch den Interrupt generiert wird, die einem Nutzer des Prozessors eine Fehlfunktion des Stapelspeichers anzeigt.
Zur Vermeidung des Überschreitens der oberen Grenze des Stapelspeichers ist es besonders günstig, wenn die Schaltungsan- Ordnung ein drittes Register aufweist, in dem die Anzahl der
Speicherbereiche gespeichert ist, so daß mittels des Detektionsmittels durch Vergleich des Inhalts des dritten Registers mit dem Inhalt des ersten Registers, in dem die Adresse des jeweils ausgewählten Speicherbereichs gespeichert ist, ein Überlauf des Stapelspeichers detektierbar ist. Die Erfindung wird im folgenden anhand der Figuren näher er¬ läutert .
Figur 1 zeigt ein Ausführungsbeispiel der Erfindung.
Figur 2 zeigt ein Detail aus Figur 1.
Figur 1 zeigt einen Mikroprozessor 1 mit einer begrenzten Anzahl von Adressausgängen 2 zur Adressierung eines logischen Adressraums 3 über einen entsprechenden Adressdecoder 20. Bei diesem Ausführungsbeispiel wird angenommen, daß der Mikroprozessor 1 acht Adressausgänge 2 aufweist. Dies ist beispielsweise der Fall, wenn der Mikroprozessor 1 ein Microcontroller vom Typ 8051 ist. Die binären Adressen von Speichereinheiten innerhalb des logischen Adressraums 3 sind der Figur 1 ebenfalls entnehmbar. Die unterste Adresse des logischen Adressraums ist 0000 0000. Die oberste Adresse ist 1111 1111. Die Speichereinheiten können Datenworte sein, die jeweils die Größe eines oder mehrerer Bytes haben. Es soll angenommen werden, daß die Speichereinheiten die Größe eines Bytes haben. Über die acht Adressausgänge 2 sind dann 256 Byte mittels des Decoders 20 adressierbar.
Beim Ausführungsbeispiel in Figur 1 ist ein Stapelspeicher 4 vorhanden, der in vier gleich große Speicherbereiche 5 (Page 1 bis Page 4) aufgeteilt ist. Jeder der Speicherbereiche 5 ist in einzeln adressierbare Speichereinheiten 9 aufgeteilt. Die Speichereinheiten 9 jedes der Speicherbereiche 5 sind jeweils über dieselben an den Adressausgängen 2 des Prozessors 1 anliegende Adressen adressierbar . Diese entsprechen den
16 Bits im obersten Bereich des logischen Adressraums 3 zwischen den Adressen 1111 0000 und 1111 1111.
Eine Auswahl einer der Speichereinheiten 9 mit der jeweils selben Adresse erfolgt über einen zweiten Decoder 30. Aufgrund einer in einem ersten Register 6 speicherbaren Information beziehungsweise Adresse zur Auswahl einer der Speicher- bereiche 5 ist über den zweiten Decoder 30 einer der Spei¬ cherbereiche 5 auswählbar. Liegt also an den Adressausgängen 2 des Prozessors 1 eine Adresse des logischen Adressraums 3 an, die dem Stapelspeicher 4 zugeordnet ist, wird mittels des ersten Registers 6 und des zweiten Decoders 30 festgelegt, in welchem der Speicherbereiche 5 die Speichereinheit mit der entsprechenden Adresse selektiert wird. Welche der Speichereinheiten 9 innerhalb der Speicherbereiche 5 vom Prozessor 1 angesprochen wird, wird durch den Inhalt eines zweiten Registers 7, welches einem herkömmlichen Stapelzeiger bzw. Stack Pointer entspricht, bestimmt.
Bisher war es üblich, den gesamten Stapelspeicher 4 innerhalb des logischen Adressraums 3 anzuordnen. Beim gezeigten Aus- führungsbeispiel , bei dem der Stapelspeicher 4 vier Speicherbereiche 5 mit jeweils 16 Byte, insgesamt also 64 Byte umfaßt, blieben bei Anordnung des gesamten Stapelspeichers 4 im logischen Adreßraum 3 von diesem nur noch 256 - 64 = 192 Byte für einen Arbeitsspeicher 10 des Prozessors 1 übrig. Durch die Erfindung wird in vorteilhafter Weise erreicht, daß der Arbeitsspeicher 10, wie in Figur 1 gezeigt, 256 - 16 = 240 Byte groß ist. Durch eine andere Anzahl von Speichereinheiten 9 innerhalb der Speicherbereiche 5 kann die Größe des verbleibenden Arbeitsspeichers 10 noch vergrößert oder ver- kleinert werden. Durch eine größere Anzahl von Speicherbereichen 5 kann die Gesamtgröße des Stapelspeichers 4 erhöht werden, ohne daß der verbleibende Arbeitsspeicher 10 reduziert wird.
Wie auch beim Stand der Technik üblich, erfolgt bei einer Inbetriebnahme des Prozessors 1 zunächst eine Initialisierung des zweiten Registers 7 beziehungsweise des Stapelspeichers. Der Inhalt des zweiten Registers 7 wird dabei zunächst auf die unterste Adresse der Speichereinheiten 9 des Stapelspei- chers 4, nämlich 1111 0000 voreingestellt. Bei der Initialisierung wird auch der Inhalt des beim Stand der Technik nicht vorhandenen ersten Registers 6 so eingestellt, daß über den zweiten Decoder 30 der erste Speicherbereich Page 1 selek¬ tiert wird. Sind wie beim Ausführungsbeispiel in Figur 1 le¬ diglich vier Speicherbereiche 5 vorhanden, muß das erste Re¬ gister 6 nur zwei Bits zu deren Adressierung aufweisen. Es kann jedoch vorgesehen sein, die Anzahl der Adressbits des ersten Registers 6 sehr viel größer zu wählen und auch die Anzahl der auswählbaren Speicherbereiche entsprechend zu erhöhen. Wie bereits erwähnt, ist der Speicherbedarf des Stapelspeichers 4 abhängig von der Anzahl der Unterprogrammver- zweigungen und der darüber hinaus im Stapelspeicher 4 zu speichernden Variablen.
Diejenigen Speicherbereiche 5 des Stapelspeichers 4, die außerhalb des logischen Adressraums 3 des Prozessors 1 angeord- net sind, können in einem oder mehreren von demjenigen Speicher, in dem der erste Speicherbereich Page 1 angeordnet ist, verschiedenen Speichern angeordnet sein. Es ist sinnvoll, daß sich diese weiteren Speicher auf der gleichen integrierten Schaltung wie der erste Speicherbereich Page 1 und der Ar- beitsspeicher 10 befinden. Besonders günstig ist es, wenn der gesamte Stapelspeicher 4 und der Arbeitsspeicher 10 Bestandteile eines gemeinsamen Speichers sind, von dem nur derjenige Teil, der den Arbeitsspeicher 10 und den ersten Speicherbereich Page 1 beeinhaltet, im direkt durch die Adressausgänge 2 des Mikroprozessors 1 adressierbaren logischen Adressraum 3 liegen.
Ist das erste Register 6 auf den Wert YY = 00 und das zweite Register 7 auf den Wert 1111 0000 initialisiert und sind an- schließend (aufgrund beispielsweise von Unterprogrammsprüngen) entsprechende Rücksprungadresεen oder Variablen im Stapelspeicher 4 zu speichern, wird, wie auch beim Stand der Technik, zunächst das zweite Register 7 beziehungsweise der Stapelzeiger entsprechend inkrementiert. Beim Auslesen von Daten aus dem Stapelspeicher 4 erfolgt ein entsprechendes De- krementieren. Auf dieses Weise ist gewährleistet, daß immer die zuletzt in den Stapelspeicher 4 eingeschriebene Informa¬ tion als erstes wieder ausgelesen wird.
Die Erfindung ermöglicht nun, daß, sobald der erste Speicher- bereich Page 1 mit Daten gefüllt ist, das heißt, der Stapelzeiger 7 die Adresse 1111 1111 aufweist, durch Überlauf der letzten 4 Bits des Stapelzeigers 7 als nächstes wiederum die Adresse 1111 0000 im Stapelzeiger enthalten ist. Erreicht wird dies dadurch, daß die ersten vier Bits des Stapelzeigers 7 unveränderlich auf 1111 eingestellt sind. Gleichzeitig wird der Überlauf des zweiten Registers 7 vom ersten Register 6 registriert und dieses entsprechend inkrementiert, so daß nunmehr im zweiten Speicherbereich Page 2 die Speichereinheit 9 mit der Adresse 1111 0000 über die Adressausgänge 2 des Prozessors 1 adressierbar ist. Für die Wechsel zu den weiteren Speicherbereichen Page 3, Page 4 gilt entsprechendes. Ebenso wird beim Auslesen von Daten aus dem Stapelspeicher 4 der Stapelzeiger 7 entsprechend dekrementiert .
Es wird noch einmal betont, daß die obersten vier Bits des Stapelzeiger auf 1111 fest eingestellt sind und nur die untersten vier Bits XXXX veränderlich sind. Ist bereits die untere Grenze eines der Speicherbereiche 5 mit der Adresse 1111 0000 erreicht, und es wird ein weiteres Datum ausgele- sen, ergibt die Subtraktion beziehungsweise das Dekrementie- ren einen neuen Zählerstand von 1111 1111 im zweiten Register 7. Gleichzeitig registriert das erste Register 6 diesen Unterlauf und wird entsprechend dekrementiert, woraufhin über den zweiten Decoder 30 der nächstuntere Speicherbereich 5 se- lektierbar ist.
Figur 1 zeigt auch ein Detektionsmittel 11, welches durch Überwachung des Inhalts des ersten Registers 6 einen Überbeziehungsweise Unterlauf des Stapelspeichers 4 detektiert. Ein Unterlauf wird verhindert, indem das Detektionsmittel 11 bei einem vorhergehenden Inhalt des ersten Registers 6 von YY = 00 und einem anschließend auftretendem weiteren Dekre- ment ein entsprechendes Ergebnissignal an den Prozessor 1 gibt, woraufhin dieser die Weiterbearbeitung des im Arbeitsspeichers 10 gespeicherten Programms vorübergehend unter¬ bricht und zunächst eine erneute Initialisierung des ersten Registers 6 und des zweiten Registers 7 vornimmt .
Zur Registrierung eines Überlaufs weist die Schaltungsanord¬ nung ein drittes Register 8 auf, in dem die Anzahl der nutzbaren Speicherbereiche 5 gespeichert ist . Analog zum soeben geschilderten Fall des Unterlaufs des ersten Registers 6 de- tektiert das Detektionsmittel 11 durch Vergleich des Inhalts des ersten Registers mit demjenigen des dritten Registers 8 einen Überlauf des Stapelspeichers 4 und sendet ein entsprechendes Ergebnissignal an den Prozessor 1. Dieser unterbricht wiederum vorübergehend die Abarbeitung des gerade auszuführenden Programms und nimmt zunächst eine wenigstens teilweise Leerung des Stapelspeichers 4 vor, gefolgt von einer entsprechenden Initialisierung des ersten Registers 6 und des zweiten Registers 7.
Figur 1 zeigt auch einen Datenbus 40, über den der Prozessor 1 Daten in den Arbeitsspeicher 10 beziehungsweise den Stapelspeicher 4 schreiben und aus diesen wieder auslesen kann.
Figur 2 zeigt noch einmal das erste Register 6 und das zweite Register 7 aus Figur 1. Anhand der Figur 2 soll noch einmal der Vorgang des Inkrementierens und Dekrementierens erläutert werden. Im Falle eines Unterprogrammaufrufes (Call) wird die entsprechende Rücksprungadresse im Stapelspeicher 4 an derje- nigen Adresse abgelegt, die durch den Inhalt der beiden Register 6 und 7 bestimmt ist. Gleichzeitig werden die letzten 4 Bits XXXX des zweiten Registers 7 um 1 inkrementiert, so daß der Stapelzeiger 7 auf die nächste freie Speichereinheit 9 im Stapelspeicher 4 zeigt. Tritt dabei ein Überlauf auf, das heißt der Inhalt des zweiten Registers 7 springt von
1111 1111 auf 1111 0000, registriert dies eine Logik 60 und inkrementiert den Inhalt des ersten Registers 6 um den Wert 1. Umgekehrt wird bei einem Rücksprung aus einem Unterprogramm (Return) die entsprechende Rücksprungadresse aus dem Stapelspeicher 4 entnommen, und die letzten vier Bits XXXX des Stapelzeigers 7 werden um den Wert 1 dekrementiert. Kommt es dabei zu einem Unterlauf der letzten vier Bits XXXX, registriert dies die Logik 60 und dekrementiert den Inhalt des ersten Registers 6 um 1.
Statt eines Inkrementierens beziehungsweise Dekrementierens um jeweils 1 kann auch ein davon abweichender Inkrement- beziehungsweise Dekrementwert (zum Beispiel 2) vorgesehen sein. Dies ist abhängig davon, welchen Umfang die jeweils im Stapelspeicher 4 zu speichernden Daten haben. Beim bezüglich Figur 1 geschilderten Ausführungsbeispiel, bei dem die Spei- chereinheiten eine Größe von jeweils einem Byte haben, wäre ein Inkrement beziehungsweise Dekrement von jeweils 2 zu wählen, falls die zu speichernden Rücksprungadreεsen beziehungsweise Variablen eine Größe von zwei Byte aufweisen.
Figur 2 ist auch eine weitere Logik 50 zu entnehmen, mit der dem Stapelzeiger 7 relative beziehungsweise den Stapelzeiger 7 modifizierende Befehle realisierbar sind, wie sie bei Mikroprozessoren üblich sind. In diesen Fällen legt der Prozessor eine neue Adresse auf den Datenbus, um die der Inhalt des Stapelzeigers bei beim Stand der Technik üblichen Schaltungsanordnungen erhöht beziehungsweise erniedrigt werden soll. Um derartige relative beziehungsweise modifizierende Befehle auch bei der Erfindung zu ermöglichen, ist eine weitere Logik 50 vorgesehen, die durch Addition beziehungsweise Subtraktion die Inhalte der beiden Register 6, 7 auf die richtigen Werte einstellt .
Die Erfindung hat den Vorteil, daß gleichzeitig ein großer Arbeitsspeicher 10 und ein großer Stapelspeicher 4 realisier- bar ist. Außerdem ist die erfindungsgemäße Schaltungsanordnung in der Lage, dieselben Stapelspeicher-Befehle auszuführen wie herkömmliche Schaltungsanordnungen. Die erfindungsgemäße Schaltungsanordnung hat den weiteren Vorteil, daß sie unter nur geringfügiger Abänderung herkömm¬ licher derartiger Schaltungsanordnungen realisierbar ist. So ist ein herkömmlicher Mikroprozessor 1 mit herkömmlichen Datenbus 40 und Adressausgängen 2 und ein herkömmlicher Decoder 20 einsetzbar. Der bisher übliche Stapelzeiger ist nur insofern zu modifizieren, daß die gewünschte Anzahl von Bits unveränderlich ist. Beim Ausführungsbeispiel in Figur 1 sind beim Stapelzeiger 7 die vier obersten Bits unveränderlich auf 1111 eingestellt. Ferner wird ein Speicher benötigt, der größer ist als der logische Adressraum 3, um die außerhalb dieses angeordneten Speicherbereiche 5 des Stapelspeichers 4 unterzubringen. Zusätzlich benötigt die erfindungsgemäße Schal- tungsanordnung das erste Register 6 und den zweiten Decoder 30 zur Selektion jeweils eines der Speicherbereiche 5.
Die Erfindung ist insbesondere dort von Vorteil, wo nur ein Prozessor 1 mit einer sehr geringen Anzahl von Adressausgän- gen 2 zur Verfügung steht, wie dies beispielsweise beim Mi- krocontroller 8051 der Fall ist. Gerade bei einem derart kleinen zur Verfügung stehenden logischen Adressraum 3 ist es unbedingt notwendig, den Anteil des Stapelspeichers 4 an diesem logischen Adressraum 3 möglichst gering zu halten. Es sind zwar auch schon zahlreiche Prozessoren mit einer größeren Anzahl von Adressausgängen bekannt, über die dann ein weitaus größerer logischer Adressraum adressierbar ist, jedoch sind diese Prozessoren in der Regel viel großflächiger als beispielsweise der Microcontroller 8051. Insbesondere bei der Herstellung von Chipkarten, bei der eine oder mehrere integrierte Halbleiterschaltungen innerhalb eines kartenförmi- gen Kunststoffgehäuses untergebracht werden müssen, ist es von Bedeutung, daß die Chipfläche möglichst klein ist, denn die mechanischen Beanspruchungen in einer Chipkarte sind sehr groß, so daß großflächigere Chips leicht zerstört werden. Aus diesem Grunde ist der Einsatz von derzeit zur Verfügung stehenden kleinflächigen Chips mit wenigen Adressausgängen 2, wie dies beim 8051 der Fall ist, von großem Vorteil. Dessen Nachteile eines nur sehr kleinen, direkt adreεsierbaren logi¬ schen Adressraums 3 kann durch die Erfindung teilweise beho¬ ben werden. Ein größerer Prozessor mit einer größeren Anzahl von Adressausgängen 2 ist auch sehr viel kostspieliger.
Da die erfindungsgemäße Schaltungsanordnung voll kompatibel zu bisher üblichen Stapelspeicherbefehlen ist, ist eine Anpassung von Entwicklungstools für vom Prozessor 1 auεzufüh- rende Software-Anwendungen nicht notwendig.
Die erfindungsgemäße Schaltungεanordnung ermöglicht eine Adresserweiterung des Stapelspeicherbereicheε, ohne daß der direkt adreεεierbare logiεche Adressraum des Prozesεorε 1 er- weitert werden muß.
Stapelεpeicherbefehle müεεen von allen anderen Befehlen unterschieden werden. Daher werden günstiger Weise nur diejenigen Adressen bei einem relativen oder modifizierenden Befehl in den Stapelzeiger 7 übernommen, die größer als 1111 0000 sind. Dies ist durch einen einfachen Komparator überprüfbar. Bei allen anderen Adresεen werden die Auεwahlleitungen des zweiten Decoders 30 zur Auswahl der Speicherbereiche 5 deaktiviert .
Ein Über- beziehungsweiεe Unterlauf des Stapelzeigers 7 ist anhand eines Carry-Bits des Stapelzeiger 7 erkennbar. In beiden Fällen ändert sich dieseε Carry-Bit. Es handelte εich um einen Unterlauf, wenn zuvor XXXX = 0000 war. Um einen Über- lauf handelt es sich, wenn zuvor XXXX = 1111 war.
Es ist möglich, daß das erste Register 6 und das zweite Register 7 Bestandteil eines einzigen Registers sind, wobei das erεte Register 6 die höchsten Bits (MSBs, most significant bitε) dieses Registers belegen und das zweite Register 7 die unteren. Dann ergibt sich durch einen Überlauf deε zweiten Registerε 7 automatiεch ein Inkrementieren und durch einen Unterlauf ein Dekrementieren des ersten Registers 6.

Claims

Patentansprüche
1. Schaltungsanordnung
- mit einem Mikroprozeεsor (1) mit Adreßausgängen (2) , über die ein logischer Adreßraum (3) direkt adresεierbar ist,
- mit einem Arbeitsspeicher (10) , der sich in einem unteren Bereich des logischen Adreßraums (3) befindet,
- und mit einem Stapelspeicher (4) , der in wenigstenε zwei gleich große Speicherbereiche (5) aufgeteilt iεt, von denen einer in einem oberen Bereich deε logischen Adreßraums (3) und die übrigen außerhalb des logischen Adreßraums (3) angeordnet sind, wobei im Stapelspeicher (4) zu speichernde Daten so gespeichert werden, daß der im logiεchen Adreßraum (3) angeordnete Speicherbereich (5) gefüllt wird, bevor Da- ten in den anderen Speicherbereichen (5) gespeichert werden.
2. Schaltungsanordnung nach Anspruch 1
- mit einem ersten Register (6) zum Speichern einer Informa- tion zur Auswahl eines der Speicherbereiche (5)
- und mit einem zweiten Register (7) zum Speichern einer Information zur Auswahl von Speichereinheiten (9) innerhalb deε jeweilε durch den Inhalt deε ersten Registers (6) ausgewählten Speicherbereicheε (5) .
3. Schaltungsanordnung nach Anspruch 2,
- bei der das zweite Register (7) mit einem ersten Adreßdecoder (20) verbunden ist, über den die Speichereinheiten (9) innerhalb der Speicherbereiche (5) adresεierbar εind, wobei der erste Adreßdecoder (20) auch zur Adressierung des gesamten logischen Adreßraums (3) über die Adreßausgänge (2) dient,
- und bei der das erste Register (6) mit einem zweiten Adreßdecoder (30) verbunden ist, über den die Speicherbereiche (5) adresεierbar sind.
4. Schaltungsanordnung nach Anspruch 2 oder 3, bei der das erste Register (6) durch einen Überlauf bzw. einen Unterlauf des zweiten Registerε (7) inkrementierbar bzw. dekrementierbar iεt.
5. Schaltungsanordnung nach einem der vorstehenden Ansprüche,
- bei der ein Detektionsmittel (11) vorhanden ist zur Detek- tion eines Überschreitens einer Grenze des Stapelεpeichers (4) beim Einschreiben bzw. Ausleεen von Daten, - bei der in Abhängigkeit eines Ergebnissignals des Detekti- onsmittels (11) im Falle des Überschreitens eine wenigstenε teilweise Leerung des Stapelspeichers (4) durchführbar ist.
6. Schaltungsanordnung nach Anspruch 5, - die ein drittes Register (8) aufweist zum Speichern der Anzahl der Speicherbereiche (5) ,
- ein Überschreiten der oberen Grenze des Stapelspeichers (4) ist durch das Detektionsmittel (11) durch Vergleich des jeweils ausgewählten Speicherbereiches (5) mit dem Inhalt des dritten Registers (8) erkennbar.
PCT/DE1997/002253 1996-09-30 1997-09-30 Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher WO1998014876A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP97910244A EP1010081A1 (de) 1996-09-30 1997-09-30 Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher
JP10516148A JP2000503792A (ja) 1996-09-30 1997-09-30 マイクロプロセッサおよびスタックメモリを有する回路装置
BR9712154-1A BR9712154A (pt) 1996-09-30 1997-09-30 Disposição de circuito com um microprocessador e uma memória de pilha.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19640316A DE19640316A1 (de) 1996-09-30 1996-09-30 Schaltungsanordnung mit einem Mikroprozessor und einem Stapelspeicher
DE19640316.2 1996-09-30

Publications (1)

Publication Number Publication Date
WO1998014876A1 true WO1998014876A1 (de) 1998-04-09

Family

ID=7807457

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1997/002253 WO1998014876A1 (de) 1996-09-30 1997-09-30 Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher

Country Status (7)

Country Link
EP (1) EP1010081A1 (de)
JP (1) JP2000503792A (de)
KR (1) KR20000048754A (de)
CN (1) CN1232564A (de)
BR (1) BR9712154A (de)
DE (1) DE19640316A1 (de)
WO (1) WO1998014876A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100353335C (zh) * 2003-03-28 2007-12-05 联发科技股份有限公司 增加处理器中存储器的方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391870B2 (ja) * 2009-06-26 2014-01-15 富士通株式会社 情報処理装置及びその方法
CN102193868B (zh) * 2010-03-10 2013-06-19 上海海尔集成电路有限公司 数据堆栈存储电路及微控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990012363A1 (en) * 1989-04-10 1990-10-18 Cirrus Logic, Inc. Addressing technique for transparently extending data processing system address space
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
US5255382A (en) * 1990-09-24 1993-10-19 Pawloski Martin B Program memory expander for 8051-based microcontrolled system
GB2282470A (en) * 1993-09-23 1995-04-05 Motorola Israel Ltd Expanded memory management for multi-tasking environment.

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
JPH0215345A (ja) * 1988-07-04 1990-01-19 Hitachi Ltd データ処理装置
DE4340551A1 (de) * 1993-11-29 1995-06-01 Philips Patentverwaltung Programmspeichererweiterung für einen Mikroprozessor
US5666556A (en) * 1993-12-30 1997-09-09 Intel Corporation Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit
EP0663636B1 (de) * 1994-01-12 2001-10-31 Sun Microsystems, Inc. Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack
WO1990012363A1 (en) * 1989-04-10 1990-10-18 Cirrus Logic, Inc. Addressing technique for transparently extending data processing system address space
US5255382A (en) * 1990-09-24 1993-10-19 Pawloski Martin B Program memory expander for 8051-based microcontrolled system
GB2282470A (en) * 1993-09-23 1995-04-05 Motorola Israel Ltd Expanded memory management for multi-tasking environment.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100353335C (zh) * 2003-03-28 2007-12-05 联发科技股份有限公司 增加处理器中存储器的方法

Also Published As

Publication number Publication date
KR20000048754A (ko) 2000-07-25
BR9712154A (pt) 1999-08-31
EP1010081A1 (de) 2000-06-21
DE19640316A1 (de) 1998-04-02
CN1232564A (zh) 1999-10-20
JP2000503792A (ja) 2000-03-28

Similar Documents

Publication Publication Date Title
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE2431379B2 (de) Datenverarbeitungseinrichtung
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
EP0813714A1 (de) Mehrbenutzerdatenverarbeitungsanlage mit speicherschutz
DE69816775T2 (de) Vorrichtung zur datenverarbeitung mit stapelstruktur
WO2000070620A1 (de) Speicheranordnung mit adressverwürfelung
EP1352318B1 (de) Mikroprozessorschaltung für tragbare datenträger
DE19955776C1 (de) Multitasking-Prozessorsystem
EP1639475A2 (de) Prozessorarchitektur für exakte zeigeridentifizierung
DE4238099C2 (de) Mikroprozessor mit mehreren Betriebsmoden
EP1010081A1 (de) Schaltungsanordnung mit einem mikroprozessor und einem stapelspeicher
EP1021791B1 (de) Chipkarte mit speicher für anwendungsabhängig nachladbare programme
EP1204917B1 (de) Operandenstapelspeicher und verfahren zum betreiben eines operandenstapelspeichers
EP0890172B1 (de) Halbleiterspeichervorrichtung
DE19709975C2 (de) Mikrocomputer
DE19751093A1 (de) Programmgesteuerte Einheit
WO1998044421A1 (de) Schaltungsanordnung mit einem prozessor und einem datenspeicher
EP1516245B1 (de) Vorrichtung und verfahren zum verarbeiten einer sequenz von sprungbefehlen
DE2954533C2 (de)
EP0075715B1 (de) Cachespeicher und Verfahren zu seinem Betrieb
DE10313645B4 (de) System mit einer Datenverarbeitungseinrichtung und einer Speichereinrichtung
DE10064339B4 (de) Integrierte Schaltungsanordnung in einem Bremskraftregelsystem
DE10206554B4 (de) Teletext-Anordnung mit einem programmierbaren externen Programmspeicher
EP0513505A1 (de) Schattenregister für ein Nur-Schreibe-Register
DE2451984A1 (de) Datenverarbeitungssystem

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 97198398.4

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): BR CN JP KR MX RU UA US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1997910244

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: PA/a/1999/002899

Country of ref document: MX

WWE Wipo information: entry into national phase

Ref document number: 1019997002740

Country of ref document: KR

Ref document number: 09282098

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1997910244

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1019997002740

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1019997002740

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 1997910244

Country of ref document: EP