DE10131084A1 - Data processing system is structured to perform as a field programmable logic system - Google Patents

Data processing system is structured to perform as a field programmable logic system

Info

Publication number
DE10131084A1
DE10131084A1 DE2001131084 DE10131084A DE10131084A1 DE 10131084 A1 DE10131084 A1 DE 10131084A1 DE 2001131084 DE2001131084 DE 2001131084 DE 10131084 A DE10131084 A DE 10131084A DE 10131084 A1 DE10131084 A1 DE 10131084A1
Authority
DE
Germany
Prior art keywords
register
stack
program
tos
memory
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
Application number
DE2001131084
Other languages
German (de)
Inventor
Klaus Schleisiek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE2001131084 priority Critical patent/DE10131084A1/en
Publication of DE10131084A1 publication Critical patent/DE10131084A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer

Abstract

The system has a program counter (14) to call sequential instructions and operates with the TOS register (7) to access sub routines using branch codes. The register is integrated into microprocessor architecture. An additional status register (11) is used.

Description

Die Erfindung betrifft eine Vorrichtung zur Datenverarbeitung, die einen Programmspeicher, einen Datenspeicher, mindestens zwei Stacks sowie mindestens einen Bus zur Verbindung einzelner Funktionsbaugruppen aufweist. The invention relates to a device for data processing, which has a program memory Data storage, at least two stacks and at least one bus for connecting individual ones Has functional modules.

Vorrichtungen zur Datenverarbeitung sind je nach der vorgesehenen Anwendung in vielfältigen Ausführungsformen bekannt. Insbesonders existieren auch bereits unterschiedliche Mikroprozessorarchitekturen, die sich beispielsweise als feldprogrammierbare Logikbausteine (FPGAs) realisieren lassen. Die derzeit verfügbaren Prozessoren lassen sich prinzipiell nach folgenden Architekturkonzepten unterteilen:

  • - Registerbasiert oder Stackbasiert
  • - Von-Neumann oder Harvard-Architektur
Devices for data processing are known in various embodiments depending on the intended application. In particular, there are also different microprocessor architectures that can be implemented, for example, as field-programmable logic modules (FPGAs). The processors currently available can in principle be divided according to the following architecture concepts:
  • - Register-based or stack-based
  • - Von Neumann or Harvard architecture

Bekannt ist beispielsweise die Dual-Stack Harvard-Architektur, die in der DE-PS 42 20 258 erläutert ist. Darüber hinaus sind einige Prozessoren entsprechend der Dual-Stack von-Neumann- Architektur konstruiert, die beispielsweise in den Veröffentlichungen US-PS 5 070 451, US-PS 5 404 555 und US-PS 5 659 703 erläutert sind. The dual-stack Harvard architecture is known, for example, in DE-PS 42 20 258 is explained. In addition, some processors are designed according to the dual stack from Neumann Architecture constructed, for example, in the publications US Pat. No. 5,070,451, U.S. Patent 5,404,555 and U.S. Patent 5,659,703 are discussed.

Typischerweise sehen die Instruktionsstrukturen der überwiegenden Anzahl von Prozessoren die Möglichkeit vor, numerische Werte, sogenannte Literale, als Daten oder Adressen in der Instruktion selbst zu codieren oder unmittelbar sequentiell an die Instruktion anzufügen. Hierdurch wird die Instruktionsstruktur beziehungsweise die Instruktionsbreite abhängig von der Breite der Datenworte. Typically, the instruction structures of the vast number of processors see that Possibility to enter numerical values, so-called literals, as data or addresses in the instruction code it yourself or add it sequentially to the instruction. This will make the Instruction structure or the instruction width depends on the width of the Data words.

Ein weiterer Typ einer Mikroprozessorarchitektur, nämlich die Transputerarchitektur, wird in den US-PS 4 704 678 sowie US-PS 4 724 517 erläutert. Hier werden die für eine vollständige Charakterisierung einer Instruktion erforderlichen Literale nicht der Instruktion angefügt, sondern je nach Größe des Wertes in einem oder mehreren Teilen als eigenständige Literalinstruktionen vorangestellt. Die einzelnen Teile werden in einem speziellen Operandenregister zum Literal akkumuliert und der nachfolgenden Instruktion zur Verfügung gestellt. Dadurch wird nicht nur die Instruktionsbreite unabhängig von der Breite der Datenworte, da mit der Datenwortbreite höchstens die Anzahl der aufeinanderfolgenden Literalinstruktionen zur Darstellung eines bestimmten numerischen Wertes variiert, sondern die sequentielle Folge von Literal- und Operationsinstruktionen kann auch jederzeit unterbrochen werden, da jede dieser Instruktionen in sich abgeschlossen ist. Another type of microprocessor architecture, namely the transputer architecture, is described in US Pat U.S. Patent 4,704,678 and U.S. Patent 4,724,517. Here are those for a complete Characterization of an instruction required literals not attached to the instruction, but each according to the size of the value in one or more parts as separate literal instructions prefixed. The individual parts become literal in a special operand register accumulated and made available to the following instruction. This will not only make the Instruction width regardless of the width of the data words, since with the data word width at most the number of consecutive literal instructions to represent a particular one numerical value varies, but the sequential sequence of literal and Surgical instructions can also be interrupted at any time because each of these instructions is in itself is completed.

Typisch für die derzeit verfügbaren Mikroprozessorarchitekturen ist der Trend, mit minimalem Hardwareaufwand möglichst universelle Eigenschaften bereitzustellen, so daß spezielle Erfordernisse einzelner Programmiersprachen kaum berücksichtigt werden. Generell liegt derzeit ein wesentliches Problem für die Anwender darin, daß bei der Realisierung von Steuersystemen eine erhebliche Abhängigkeit von den am Markt erhältlichen Prozessorbauteilen vorliegt, wodurch das Paradigma der "prozessorunabhängigen Programmierung" durch Hochsprachen befördert wird. Typical of the microprocessor architectures currently available is the trend with minimal To provide hardware as universal properties as possible, so that special The requirements of individual programming languages are hardly taken into account. Generally lies currently a major problem for users in that when implementing control systems there is a significant dependency on the processor components available on the market, whereby the paradigm of "processor-independent programming" is promoted through high-level languages.

Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung zur Datenverarbeitung der einleitend genannten Art derart zu gestalten, daß ein Prozessorkern mit geringem Logikaufwand bereitgestellt wird, der insbesondere die Programmiersprache Forth (ISO/IEC 15145) vom Instruktionsrepertoire her unterstützt, der in feldprogrammierbare Logikbauelemente (FPGAs) synthetisierbar ist und an die durch die Anwendung vorgegebene Datenwortbreite angepaßt werden kann. The object of the present invention is to introduce a device for data processing mentioned type in such a way that a processor core is provided with little logic who, in particular, the programming language Forth (ISO / IEC 15145) from the instructional repertoire supported here, which can be synthesized in field programmable logic components (FPGAs) and on the data word width specified by the application can be adapted.

Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß ein "Top-of-Stack"-Register (TOS) zeitlich aufeinanderfolgend sowohl als Akkumulator für Literalinstruktionen, als Speicher für Operanden und als Adressregister für den Datenspeicher genutzt wird, und daß eine jeweilige Nutzungsaktivierung von einer Programmsteuerung vorgegeben ist, die einen jeweiligen Programmcode auswertet, in dem die jeweilige Nutzung des TOS festgelegt ist. This object is achieved in that a "top-of-stack" register (TOS) sequentially both as an accumulator for literal instructions and as a memory for Operands and is used as an address register for the data memory, and that a respective Activation of use is predetermined by a program control, which is a respective Evaluates the program code in which the respective use of the TOS is defined.

Weitere Aufgabe der vorliegenden Erfindung ist es, eine Vorrichtung der einleitend genannten Art derart bereitzustellen, daß zur Unterstützung einer feldprogrammierbaren Synthetisierbarkeit bei geringem Logikaufwand eine optimierte Speicherstruktur bereitgestellt wird. Diese Aufgabe wird erfindungsgemäß dadurch gelöst, daß eine Aufteilung der Speicherbereiche derart realisiert ist, daß eine um einen separaten Datenstack erweiterte Harvard-Architektur vorliegt. Another object of the present invention is to provide a device of the type mentioned in the introduction to be provided in such a way that to support field programmable synthesizability an optimized memory structure is provided with little logic effort. This task will solved according to the invention in that a division of the memory areas is realized such that there is a Harvard architecture with a separate data stack.

Durch die vorgeschlagene Prozessorarchitektur wird es zusätzlich zur Bereitstellung einer einfachen Struktur mit geringem Logikaufwand ermöglicht, je nach Anwendungserfordernis unterschiedliche Datenwortbreiten zu realisieren, ohne gleichzeitig eine Veränderung der Instruktionen und deren Breite zu verursachen. Darüber hinaus ist es aufgrund der Instruktionsstruktur (externer, vertikaler Mikrocode) möglich, strukturelle Möglichkeiten zur Parallelverarbeitung zu nutzen. Hierdurch wird auch bei einer relativ geringen Taktrate ein hoher Datendurchsatz erreicht. The proposed processor architecture also makes it easy to provide Structure with low logic effort enables different, depending on the application requirements Realize data word widths without simultaneously changing the instructions and their Causing width. In addition, it is due to the instruction structure (external, more vertical Microcode) possible to use structural possibilities for parallel processing. This will High data throughput is achieved even at a relatively low clock rate.

Durch die Nutzung des TOS sowohl als Operandenregister für unäre und binäre Operationen, zur Akkumulation der Literaleinstruktionen im Programmcode zur Nutzung durch eine Folgeoperation, als auch als Adressregister für einen Zugriff auf Daten im Datenspeicher wird einerseits die Unabhängigkeit der Datenwortbreite von der Instruktionsbreite erreicht und andererseits die Möglichkeit relativer und indizierter Adressierung mit geringem Aufwand erschlossen, da dazu der für binäre Operationen bereits vorhandene Addierer genutzt werden kann. By using the TOS as both an operand register for unary and binary operations, for Accumulation of literal instructions in the program code for use by a subsequent operation, as well as an address register for access to data in the data storage device Independence of the data word width from the instruction width is achieved and on the other hand the Possibility of relative and indexed addressing with little effort because the existing adders can be used for binary operations.

Eine typische Anwendung wird dadurch definiert, daß das vorstehend beschriebene TOS-Register in eine Mikroprozessorarchitektur integriert ist. A typical application is defined in that the TOS register described above is integrated into a microprocessor architecture.

Zur Unterstützung einer Herstellbarkeit in geringen Stückzahlen und der Möglichkeit zu anwendungsspezifischen Modifikationen wird vorgeschlagen, daß vornehmlich eine Realisierung in feldprogrammierbaren Logikbausteinen (Field-Programmable-Gate-Arrays, FPGA) vorliegt. To support a manufacturability in small quantities and the possibility to application-specific modifications it is proposed that primarily a realization in field-programmable logic modules (field programmable gate arrays, FPGA) is present.

Eine universelle Verwendbarkeit wird dadurch unterstützt, daß im Bereich der Programmsteuerung ein Instruktionsformat unabhängig von einer Datenwortbreite realisiert ist. Universal applicability is supported by the fact that in the area of program control an instruction format is implemented independently of a data word width.

Ebenfalls kann eine hohe Nutzungsflexibilität bei einfacher Grundstruktur dadurch bereitgestellt werden, daß eine Dual-Stack Harvard-Architektur vorliegt. This also provides a high degree of flexibility in use with a simple basic structure that there is a dual-stack Harvard architecture.

Eine effektive und zugleich an die Hardwarestruktur angepaßte Programmierbarkeit wird dadurch bereitgestellt, daß die Programmsteuerung zur Abarbeitung von Programmbefehlen als Assembler für die Programmiersprache Forth (ISO/IEC 15145) ausgebildet ist. An effective and at the same time adapted to the hardware structure programmability provided that the program control for processing program instructions as an assembler is trained for the programming language Forth (ISO / IEC 15145).

Zur Unterstützung einer Nutzung des TOS-Registers als Akkumulator für Literale ist vorgesehen, daß jede Instruktion ein entsprechendes Markierungsbit aufweist, das die Literalinstruktionen von den Operationsinstruktionen unterscheidet. To support the use of the TOS register as an accumulator for literals, that each instruction has a corresponding marker bit that the literal instructions of the surgical instructions.

Ein weiterer Nutzungsfreiraum bei der Nutzung des TOS-Registers zur Datenspeicheradressierung kann dadurch bereitgestellt werden, daß ein Autoinkrement/Autodekrement des TOS-Registers in Abhängigkeit von einem jeweiligen Opcode realisiert ist. Another freedom of use when using the TOS register for data storage addressing can be provided by an auto increment / auto decrement of the TOS register in Dependence on a respective opcode is realized.

Zur Ermöglichung einer kompakten Adressierung von Programmverzweigungsoperationen durch Verwendung von Differenzadressen wird vorgeschlagen, daß ein im TOS-Register akkumuliertes, vorzeichenbehaftetes Literal zum Programmzähler addiert wird. To enable compact addressing of program branching operations by Using difference addresses, it is proposed that a accumulated in the TOS register, signed literal is added to the program counter.

Eine Optimierung der Speicherausnutzung kann dadurch unterstützt werden, daß ein Returnstack, der die Rücksprungadressen von Unterprogrammaufrufen aufnimmt, physikalisch einem RAM- Bereich zugeordnet ist, in dem der Datenspeicher definiert ist. An optimization of the memory utilization can be supported by a return stack, which takes the return addresses of subroutine calls, physically a RAM Area is assigned in which the data storage is defined.

Eine Optimierung der Adressraumnutzung kann dadurch unterstützt werden, daß die Adressen von Ein- und Ausgaberegistern in den Adressbereich des Datenspeichers gelegt wird, der vom Returnstack benutzt wird. An optimization of the address space usage can be supported in that the addresses of Input and output registers are placed in the address area of the data memory, which is from the Return stack is used.

Eine relative Adressierung bezüglich des Returnstack-Zeigers gestattet es, lokale Variablen im Bereich des Returnstacks anzulegen. Relative addressing with regard to the return stack pointer allows local variables in the Area of the return stack.

Ein Mechanismus zur Abarbeitung von Programmunterbrechungen gestattet den Einsatz in Anwendungen, in denen verschiedene asynchrone externe Ereignisse in Echtzeit bearbeitet werden müssen. A mechanism for processing program interruptions allows use in Applications in which various asynchronous external events are processed in real time have to.

Ein Mechanismus zum Unterdrücken der Instruktionsabarbeitung bei gleichzeitigem Sprung an eine spezifische Programmadresse gestattet den Einsatz in Anwendungen, in denen auf externe Ereignisse gewartet werden muß, ohne den Prozessor zu blockieren, so daß dieser während der Wartezeit im Mehrprogrammbetrieb (Multitasking) andere Aufgaben erledigen kann. A mechanism to suppress instruction processing while jumping a specific program address permits use in applications in which external Events must be maintained without blocking the processor so that it can be used during the Waiting time in multi-program operation (multitasking) can do other tasks.

In der Zeichnung sind Ausführungsbeispiele der Erfindung schematisch dargestellt. Es zeigen: Exemplary embodiments of the invention are shown schematically in the drawing. Show it:

Fig. 1 eine Grundstruktur der Mikroprozessorarchitekur, Fig. 1 shows a basic structure of the Mikroprozessorarchitekur,

Fig. 2 eine optionale erweiterte Mikroprozessorarchitektur, Fig. 2 is an optional advanced microprocessor architecture,

Fig. 3 Beispiel eines Instruktionssatzes in tabellarischer Form, FIG. 3, an instruction set in tabular form,

Fig. 4 ein Verzeichnis der Befehle zur Durchführung von Verzweigungs-, Unterprogramm-Aufruf und -Rückkehr-Befehlen sowie Unterbrechungen, Fig. 4, a list of commands for performing branching, subroutine calling and Returns commands and interrupts,

Fig. 5 ein Verzeichnis der Befehle der Arithmetik-Logik-Einheit, Fig. 5 a list of the commands of the arithmetic logic unit

Fig. 6 ein Verzeichnis der Befehle zur Durchführung von Datenspeicher- und Registeroperationen, Fig. 6 shows a list of commands for performing data storage and register operations,

Fig. 7 ein Verzeichnis von Statusbits und ihrer Bedeutung, die im Statusregister zusammengefaßt sind, und Fig. 7 is a list of status bits and their meaning, which are summarized in the status register, and

Fig. 8 ein Verzeichnis der Operationen der Programmiersprache Forth, die in einer oder zwei Prozessorinstruktionen ausführbar sind und ihre Kodierung. Fig. 8 a list of the operations of the Forth programming language that can be executed in one or two processor instructions and their coding.

Gemäß der Ausführungsform in Fig. I sind unabhängige Speicherbereiche der Vorrichtung zur Datenverarbeitung aufgeteilt in einen Programmspeicher (1), einen Datenspeicher (2) sowie einen Stackspeicher (3), der im Zusammenwirken mit dem Datenstack-Zeiger DSP (8) einen Stack realisiert. Ein Datenaustausch zwischen Registern und den hier nicht gezeigten anwendungsspezifischen Ein- und Ausgaberegistern erfolgt über einen Bus (4). According to the embodiment in FIG. I, independent memory areas of the device for data processing are divided into a program memory ( 1 ), a data memory ( 2 ) and a stack memory ( 3 ) which, in cooperation with the data stack pointer DSP ( 8 ), realizes a stack. A data exchange between registers and the application-specific input and output registers not shown here takes place via a bus ( 4 ).

Zur Durchführung erforderlicher Rechenoperationen wird eine Arithmethisch-Logische-Einheit ALU (5) verwendet, die ihre Operanden entweder aus den beiden obersten Stackelementen bezieht, die als Register TOS (7) (Top-Of-Stack) und NOS (6) (Next-Of-Stack) ausgeführt sind, oder aus dem obersten Stackelement TOS (7) und einem Teil des Instruktionsregisters INST (9) oder dem Programmzähler PC (14) Der Stack für die Elemente unterhalb des zweiten Elements ist als Realisierung bestehend aus dem Stackspeicher (3) und dem Datenstack-Zeiger DSP (8) gezeigt. An arithmetic-logic unit ALU ( 5 ) is used to carry out the necessary arithmetic operations, which obtains its operands either from the top two stack elements, which are registered as registers TOS ( 7 ) (Top-Of-Stack) and NOS ( 6 ) (Next- Of-Stack) are executed, or from the top stack element TOS ( 7 ) and part of the instruction register INST ( 9 ) or the program counter PC ( 14 ). The stack for the elements below the second element is realized as an implementation from the stack memory ( 3 ) and the data stack pointer DSP ( 8 ).

Zur Unterstützung einer Abarbeitung von Instruktionen werden ein Instruktionsregister INST (9) mit darauffolgendem Instruktionsdekoder (18), das TOS-Register (7) mit seiner Möglichkeit, Literalinstruktionen zu akkumulieren, sowie ein Statusregister STATUS (11) verwendet. To support the processing of instructions, an instruction register INST ( 9 ) with a subsequent instruction decoder ( 18 ), the TOS register ( 7 ) with its possibility of accumulating literal instructions, and a status register STATUS ( 11 ) are used.

Die Ansteuerung des Programmspeichers (1) erfolgt über einen Multiplexer MUX (13), der gemäß der gerade ausgeführten Instruktion die Adresse der Folgeinstruktion bereitstellt. Die Adresse der sequentiellen Folgeinstruktion wird im Programmzähler PC (14) bereitgestellt, der am Ende jedes Taktzyklus mittels eines Inkrementierers (15) mit der um eins erhöhten aktuellen Instruktionsadresse geladen wird. The program memory ( 1 ) is controlled via a multiplexer MUX ( 13 ), which provides the address of the subsequent instruction in accordance with the instruction that has just been executed. The address of the sequential subsequent instruction is provided in the program counter PC ( 14 ), which is loaded at the end of each clock cycle by means of an incrementer ( 15 ) with the current instruction address increased by one.

Bei Programmverzweigungen wird gesteuert durch einen jeweiligen Programmcode bei absoluter Adressierung der Inhalt des TOS-Registers (7) und bei relativer Adressierung die in der ALU (5) gebildete Summe aus dem Inhalt des TOS-Registers (7) und dem Inhalt des Programmzählers PC (14) über den Multiplexer MUX (13) am Programmspeicher (1) angelegt. In the case of program branches, the content of the TOS register ( 7 ) is controlled by a respective program code with absolute addressing and, with relative addressing, the sum formed in the ALU ( 5 ) from the content of the TOS register ( 7 ) and the content of the program counter PC ( 14 ) via the multiplexer MUX ( 13 ) on the program memory ( 1 ).

Bei Unterprogrammaufrufen wird der Inhalt des Programmzählers PC (14) auf dem Returnstack abgelegt bzw. beim Unterprogrammrücksprung vom Returnstack über den Multiplexer MUN (13) an den Programmspeicher (1) gelegt. Der Returnstack ist mittels des Returnstack-Zeigers RSP (12) im Datenspeicher realisiert, wobei der Returnstack-Zeiger RSP (12) auf den beiden Leitungen (100) und (101) gleichzeitig die Adresse sowohl des obersten Elementes des Returnstacks, auf die eine Pop-Operation zugreifen würde, als auch die Adresse des ersten freien Platzes des Returnstacks, auf die eine Push-Operation zugreifen würde, zur Verfügung stellt. Analog ist der Datenstack bestehend aus dem Datenstack-Zeiger DSP (8), dem Stackspeicher (3) sowie den Registern NOS (6) und TOS (7) für die beiden obersten Stackelemente aufgebaut. When subroutine calls are made, the content of the program counter PC ( 14 ) is stored on the return stack or when the subroutine returns from the return stack via the multiplexer MUN ( 13 ) to the program memory ( 1 ). The return stack is implemented in the data memory by means of the return stack pointer RSP ( 12 ), the return stack pointer RSP ( 12 ) on the two lines ( 100 ) and ( 101 ) simultaneously being the address of both the top element of the return stack, to which a pop Operation would also provide the address of the first free space on the return stack, which would be accessed by a push operation. The data stack consists of the data stack pointer DSP ( 8 ), the stack memory ( 3 ) and the registers NOS ( 6 ) and TOS ( 7 ) for the top two stack elements.

Wenn das Bit "IntEnable" im Statusregister STATUS (11) gesetzt ist, so werden Programmunterbrechungen jederzeit dadurch bearbeitet, daß bei Vorliegen einer Unterbrechungsanforderung durch das Signal "externes Ereignis" (107), das durch die Unterbrechungseinheit (10) einsynchronisiert wurde, der gerade laufende Zyklus wende ausgeführt wird, jedoch in Abweichung vom normalen Ablauf über die Leitung (102) die aktuelle Programmspeicheradresse in den Programmzähler PC (14) geladen, eine spezielle Unterbrechungs-Instruktion INTERRUPT über den Festwertspeicher (17) in das Instruktionsregister INST (9) geladen, und das Statusbit "Lit" über den Zustand des TOS-Registers bezüglich der Literalakkumulation im Statusregister STATUS (11) gespeichert wird. Im Folgezyklus wird die aus (17) geladene Unterbrechung-Instruktion ausgeführt, wobei über den Multiplexer MUX (13) die Adresse der Unterbrechung-Behandlungs-Routine ISR aus dem Festwertspeicher (16) am Programmspeicher (1) angelegt, der Inhalt des Programmzählers PC (14) auf dem Returnstack und der Inhalt des Status-Registers STATUS (11) auf dem Datenstack gesichert wird. If the bit "IntEnable" in the status register STATUS ( 11 ) is set, program interruptions are processed at any time in that when there is an interrupt request by the signal "external event" ( 107 ), which was synchronized by the interrupt unit ( 10 ), the current cycle is carried out, but in deviation from the normal sequence via line ( 102 ) the current program memory address is loaded into the program counter PC ( 14 ), a special interrupt instruction INTERRUPT is loaded via the read-only memory ( 17 ) into the instruction register INST ( 9 ) , and the status bit "Lit" about the state of the TOS register with respect to the literal accumulation is stored in the status register STATUS ( 11 ). In the following cycle, the charged one (17) interruption instruction is executed, applied via the multiplexer MUX (13) the address of the interrupt handling routine ISR from the read-only memory (16) in the program memory (1), the contents of the program counter PC ( 14 ) on the return stack and the content of the status register STATUS ( 11 ) is saved on the data stack.

Gleichzeitig mit dem Laden der INTERRUPT-Instruktion in das Instruktionsregister wird auch das Statusbit "IntlnService" (IIS) gesetzt, das anzeigt, daß gerade eine Programmunterbrechung bearbeitet wird. Solange das IIS-Bit gesetzt ist, führen weitere oder andauernde "externe Ereignisse" nicht zu weiteren Programmunterbrechungen. Die Unterbrechungs-Behandlungs- Routine wird mit der Instruktion IRET beendet, die zusätzlich zu einem normalen Unterprogramm- Rücksprung auch noch das Statusregister aus dem Datenstack wiederherstellt. Dadurch wird das IIS-Bit rückgesetzt, so daß Programmunterbrechungen wieder angenommen werden. At the same time that the INTERRUPT instruction is loaded into the instruction register, that too Status bit "IntlnService" (IIS) set, which indicates that there is a program interruption is processed. As long as the IIS bit is set, further or persistent "external ones Events "does not lead to further program interruptions. The interruption treatment Routine ends with the instruction IRET, which in addition to a normal subroutine Return also restores the status register from the data stack. This will make it IIS bit reset so that program interruptions are accepted again.

Eine Synchronisation mit externen Ereignissen wird dadurch ohne Abfrage von Statusinformationen erreicht, daß beim Versuch, auf ein externes Datum zuzugreifen, das noch nicht verfügbar ist, die externe Einheit während des laufenden Zyklus das Signal "nicht bereit" (108) aktiviert. Dadurch wird der Zyklus nicht wie üblich beendet, sondern alle Prozessorregister behalten ihren vorherigen Zustand bei mit Ausnahme des Instruktionsregisters INST (9), in das die PAUSE-Instruktion aus dem Festwertspeicher (23) geladen wird. Im Folgezyklus wird die Adresse der Taskwechsel- Behandlungs-Routine TSR aus dem Festwertspeicher (22) am Programmspeicher (1) angelegt. Vor einem neuerlichen Zugriffsversuch auf das externe Datum, das "nicht bereit" war, muß lediglich die Rücksprung-Adresse auf dem Returnstack um eins dekrementiert werden, bevor die entsprechende Task durch die Instruktion IRET wieder anlaufen kann. Synchronization with external events is achieved without requesting status information in that when an attempt is made to access an external data item that is not yet available, the external unit activates the signal “not ready” ( 108 ) during the current cycle. As a result, the cycle does not end as usual, but all processor registers maintain their previous state with the exception of the instruction register INST ( 9 ), into which the PAUSE instruction is loaded from the read-only memory ( 23 ). In the subsequent cycle, the address of the task change handling routine TSR from the read-only memory ( 22 ) is applied to the program memory ( 1 ). Before attempting to access the external data again, which was "not ready", the return address on the return stack only has to be decremented before the corresponding task can be started again by the IRET instruction.

Aufbauend auf diesen Mechanismus kann auf einfache Weise ein Register blockierender Semaphoren realisiert werden (in Fig. 1 nicht eingezeichnet). War ein bestimmtes Bit des Semaphoren Registers auf '1' gesetzt und versucht ein Prozeß, auf die gleiche Bitposition eine weitere '1' zu schreiben, so wird intern das Signal "nicht bereit" ausgelöst und die Taskwechsel- Behandlungs-Routine TSR angesprungen. Based on this mechanism, a register of blocking semaphores can be implemented in a simple manner (not shown in FIG. 1). If a certain bit of the semaphore register was set to '1' and a process tries to write another '1' to the same bit position, the signal "not ready" is triggered internally and the task change handling routine TSR is started.

Des weiteren kann die PAUSE-Instruktion während der Programmfehlersuche an jeder beliebigen Stelle des Objektcodes zur Unterbrechung des normalen Programmflusses eingefügt werden, um den Debugger aufzurufen. Furthermore, the PAUSE instruction can be at any one during the debugging Place the object code to interrupt the normal program flow to call the debugger.

Zur Realisierung eines Autoinkrements/Autodekrements beim Zugriff auf den Datenspeicher sind das TOS Register (7) und das Instruktionsregister INST (9) an den Addierer der ALU (5) angelegt. Die Summe wird am Ende des Zyklus in TOS (7) gespeichert. Über die Leitung 106 wird aus Gründen der Laufzeiteffizienz jedoch der aktuelle Inhalt des TOS Registers (7) als Adresse am Datenspeicher (2) angelegt, und gleichzeitig wird das Datum über den Bus (4) zwischen dem Datenspeicher (2) und dem NOS-Register (6) transferiert. Durch diese Topologie ergibt sich ein Postinkrement/Postdekrement für den autoinkrementierenden Datenspeicherzugriff. To implement an auto increment / auto decrement when accessing the data memory, the TOS register ( 7 ) and the instruction register INST ( 9 ) are applied to the adder of the ALU ( 5 ). The total is stored in TOS ( 7 ) at the end of the cycle. For reasons of runtime efficiency, however, the current content of the TOS register ( 7 ) is applied as an address to the data memory ( 2 ) via line 106 , and at the same time the date is transmitted via bus ( 4 ) between the data memory ( 2 ) and the NOS register ( 6 ) transferred. This topology results in a post increment / post decrement for auto-incrementing data storage access.

Fig. 2 zeigt eine Ausführungsform, bei der zusätzlich zu der in Fig. 1 dargestellten Ausführungsform zur Realisierung einer "Decrement-und-Branch-Instruktion" mit automatischer Datenrettung bei Unterprogrammaufrufen das oberste Element des Returnstacks als Register TOR (Top-Of- Returnstack) (19) in Zusammenwirken mit einem Dekrementierer (20) ausgeführt ist. Zusätzlich ergibt sich bei Vorhandensein des Dekrementierers (20) die Möglichkeit, bei Aufruf der Taskwechsel-Behandlungs-Routine TSR (23) durch das "nicht bereit"-Signal (108) den Inhalt des Programmzählers PC (14) über den Dekrementierer (20) auf dem Returnstack abzulegen, so daß die Rücksprungadresse dann bereits auf den für das Wiederanlaufen der Task erforderlichen Programmcode verweist. FIG. 2 shows an embodiment in which, in addition to the embodiment shown in FIG. 1 for realizing a "decrement and branch instruction" with automatic data recovery in the case of subroutine calls, the uppermost element of the return stack as register TOR (top-of-return stack) ( 19 ) in cooperation with a decrementer ( 20 ). In addition, if the decrementer ( 20 ) is present, there is the possibility of calling the task change handling routine TSR ( 23 ) by means of the "not ready" signal ( 108 ) to read the contents of the program counter PC ( 14 ) via the decrementer ( 20 ). on the return stack so that the return address then already refers to the program code required to restart the task.

Zur Realisierung einer Adressierung des Datenspeichers relativ zum Returnstack ist die Adresse (100) des Returnstack-Zeigers RSP (12) über die Leitung 103 an den Addierer der ALU (5) geführt, so daß bei Adressierung des Datenspeichers (2) über den Ausgang der ALU (105) auf das Datum auf dem Returnstack zugegriffen wird, dessen Index sich im TOS-Register (7) befindet. To implement addressing of the data memory relative to the return stack, the address ( 100 ) of the return stack pointer RSP ( 12 ) is routed via line 103 to the adder of the ALU ( 5 ), so that when addressing the data memory ( 2 ) via the output of the ALU ( 105 ) accesses the date on the return stack, the index of which is in the TOS register ( 7 ).

Bei dieser Konfiguration ist es sinnvoll, bei der absoluten Adressierung des Datenspeichers (2) mittels des TOS-Registers (7) den Zugriff als Preinkrement/Predekrement-Operation in Abhängigkeit von einem jeweiligen Opcode auszuführen, da die Leitung (105) bereits an den Datenspeicher (2) geführt ist. With this configuration, it makes sense to carry out the access as a pre-increment / predecrement operation depending on a respective opcode when the data memory ( 2 ) is absolutely addressed by means of the TOS register ( 7 ), since the line ( 105 ) is already connected to the data memory ( 2 ) is performed.

Zur Realisierung einer Adressierung des Datenspeichers relativ zu einer quasikonstanten Basisadresse ist das TASK Register (21) vorgesehen, das mittels der Leitung 104 an den Addierer der ALU (5) geführt wird, so daß bei Adressierung des Datenspeichers (2) über die Leitung 105 auf Daten zugegriffen wird, dessen Basis sich im TASK Register (21) und dessen Offset sich im TOS- Register (7) befindet. Damit läßt sich zum Beispiel effizient ein Mehrprogramm-Betrieb (Multitasking) realisieren mit der Möglichkeit, Programme zu schreiben, die wiedereintrittsfähig sind, wobei das TASK Register (21) auf den Informationsblock verweist, der den jeweils aktiven Prozeß und seine tasklokalen Variablen charakterisiert. To implement addressing of the data memory relative to a quasi-constant base address, the TASK register ( 21 ) is provided, which is led to the adder of the ALU ( 5 ) by means of line 104 , so that when addressing the data memory ( 2 ) via line 105 Data is accessed whose base is in the TASK register ( 21 ) and whose offset is in the TOS register ( 7 ). This allows, for example, efficient multi-program operation (multitasking) with the ability to write programs that are re-entry-capable, whereby the TASK register ( 21 ) refers to the information block that characterizes the currently active process and its task-local variables.

Der Prozessor verfügt über drei parallel ansteuerbare Speicherbereiche, nämlich den Programmspeicher (1), der nur gelesen werden kann, den Datenstack (3) in einer Realisierung als RAM und über den Datenspeicher (2), ebenfalls in der Realisierung als RAM, in welchem gleichzeitig der Returnstack untergebracht ist und durch den Returnstack-Zeiger RSP (12) verwaltet wird. Durch diese Speicheraufteilung ist es möglich, z. B. innerhalb eines Taktzyklus ein Datum vom Datenstack im Datenspeicher abzulegen und gleichzeitig die nächste Instruktion aus dem Programmspeicher (1) auszulesen oder z. B. gleichzeitig das Statusregister STATUS (11) auf dem Datenstack abzulegen, einen Unterprogrammaufruf durchzuführen, wobei die Rücksprungadresse auf dem Returnstack abgelegt wird und die erste Instruktion des Unterprogramms aus dem Programmspeicher (1) auszulesen. The processor has three memory areas which can be controlled in parallel, namely the program memory ( 1 ), which can only be read, the data stack ( 3 ) in the form of RAM and the data memory ( 2 ), also in the form of RAM, in which simultaneously the return stack is housed and managed by the return stack pointer RSP ( 12 ). This memory division makes it possible, for. B. within a clock cycle to save a date from the data stack in the data memory and at the same time read the next instruction from the program memory ( 1 ) or z. B. at the same time to store the status register STATUS ( 11 ) on the data stack, to execute a subroutine call, the return address being stored on the return stack and to read the first instruction of the subroutine from the program memory ( 1 ).

Jede Instruktion enthält ein Markierungsbit, das anzeigt, ob es sich um eine auszuführende Instruktion (Operationsinstruktion), oder um einen Teil eines Literals handelt (Literalinstruktion), das einer nachfolgend auszuführenden Instruktion vorausgeht. Mehrere Literalinstruktionen können unmittelbar aufeinanderfolgen und werden im TOS-Register (7) zu größeren Literalen zusammengefügt. Im Statusregister STATUS (11) wird das Markierungsbit jeweils für den Folgezyklus gespeichert, so daß die Semantik der nachfolgenden Instruktion entsprechend bestimmt werden kann. Dadurch wird die Datenwortbreite unabhängig von der Instruktionsbreite, die immer die gleiche Breite hat. Dadurch wird auch erreicht, daß der Prozessor jederzeit ohne besondere Umstände unterbrechbar ist. Each instruction contains a flag bit that indicates whether it is an instruction to be executed (operation instruction) or a part of a literal (literal instruction) that precedes an instruction to be executed subsequently. Several literal instructions can follow one another immediately and are combined into larger literals in the TOS register ( 7 ). The marker bit is stored in the status register STATUS ( 11 ) for the subsequent cycle, so that the semantics of the subsequent instruction can be determined accordingly. This makes the data word width independent of the instruction width, which is always the same width. This also means that the processor can be interrupted at any time without special circumstances.

Die Adresse für die nächste Instruktion aus dem Programmspeicher (1) wird über den Multiplexer MUX (13) aus einem der folgenden möglichen Quellen bereitgestellt:

  • 1. Dem Programmzähler (14), wenn die sequentielle Folgeinstruktion geholt wird.
  • 2. Dem Bus (4), über den gemäß eines entsprechenden Opcodes bei einer absoluten Verzweigung oder einem absoluten Unterprogrammaufruf der Inhalt des TOS-Registers (7), bei einer relativen Verzweigung oder einem realtiven Unterprogrammaufruf die Summe des Programmzählers PC (14) und des Inhalts des TOS-Registers (7) oder bei einem Rücksprung von einem Unterprogramm der Returnstack geleitet wird. Wird die relative Adressierung auf die Fälle beschränkt, in denen der Offset im TOS-Register immer aus Literalinstruktionen zusammengesetzt wird, so kann zur Verbesserung des Laufzeitverhaltens die Addition des Programmzählers mit dem in Akkumulation befindlichen Literal im TOS-Register bereits einen Zyklus vor Ausführung des Verzweigungs-Opcodes begonnen werden.
  • 3. Der festen Adresse ISR (16) der Unterbrechung-Service-Routine.
  • 4. Der festen Adresse TSR (23) der Taskwechsel-Service-Routine.
The address for the next instruction from the program memory ( 1 ) is provided via the multiplexer MUX ( 13 ) from one of the following possible sources:
  • 1. The program counter ( 14 ) when the sequential instruction is fetched.
  • 2. The bus ( 4 ), according to a corresponding opcode with an absolute branch or an absolute subroutine call, the content of the TOS register ( 7 ), with a relative branching or a realistic subroutine call, the sum of the program counter PC ( 14 ) and the Contents of the TOS register ( 7 ) or in the event of a return from a subroutine the return stack is directed. If the relative addressing is limited to the cases in which the offset in the TOS register is always composed of literal instructions, the program counter can be added to the literal in the TOS register that is in accumulation one cycle before the branch is executed to improve the runtime behavior -Opcodes are started.
  • 3. The interrupt service routine's fixed address ISR ( 16 ).
  • 4. The fixed address TSR ( 23 ) of the task change service routine.

Mit Ausnahme des Unterbrechungs-Bearbeitungs-Zyklus wird immer mit dem Inkrementierer (15) die um eins erhöhte Adresse vom Ausgang des Multiplexers (13) in den Programmzähler (14) geladen, so daß im Folgezyklus dort die sequentielle Folgeadresse bereitsteht. With the exception of the interrupt processing cycle, the incrementer ( 15 ) always loads the address increased by one from the output of the multiplexer ( 13 ) into the program counter ( 14 ), so that the sequential subsequent address is available there in the subsequent cycle.

Claims (19)

1. Vorrichtung zur Datenverarbeitung, die einen Programmspeicher, einen Datenspeicher, mindestens zwei Stacks sowie mindestens einen Bus zur Verbindung einzelner Funktionsbaugruppen aufweist, dadurch gekennzeichnet, daß ein Top-Of-Stack-Register TOS (7) zeitlich aufeinander folgend sowohl als Akkumulator für Literalinstruktionen, als auch als Operandenregister für die Arithmetisch-Logische Einheit ALU (5) genutzt wird und daß eine jeweilige Nutzungsaktivierung von einer Programmsteuerung vorgegeben ist, die einen jeweiligen Programmcode auswertet, in dem die jeweilige Nutzung des TOS-Registers (7) festgelegt ist. 1. A device for data processing, which has a program memory, a data memory, at least two stacks and at least one bus for connecting individual function modules, characterized in that a top-of-stack register TOS ( 7 ) successively in time both as an accumulator for literal instructions , and also as an operand register for the arithmetic-logic unit ALU ( 5 ) and that a respective usage activation is predefined by a program control which evaluates a respective program code in which the respective use of the TOS register ( 7 ) is defined. 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das Top-Of-Stack-Register (7) in eine Mikroprozessorarchitektur integriert ist. 2. Device according to claim 1, characterized in that the top-of-stack register ( 7 ) is integrated in a microprocessor architecture. 3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, das zusätzlich ein Statusregister (11) vorhanden ist, das mindestens ein Carry-Flag und ein Literal-Flag enthält. 3. Device according to claim 1 or 2, characterized in that there is additionally a status register ( 11 ) which contains at least one carry flag and a literal flag. 4. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß eine Realisierung in einem feldprogrammierbaren Logikbaustein (FPGA) vorliegt. 4. Device according to one of claims 1 to 3, characterized in that an implementation is in a field programmable logic module (FPGA). 5. Vorrichtung nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß im Bereich der Programmsteuerung ein Instruktionsformat unabhängig von einer Datenwortbreite realisiert ist. 5. Device according to one of claims 1 to 4, characterized in that in the area of Program control an instruction format is implemented regardless of a data word width. 6. Vorrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß eine Dual-Stack Harvard-Architektur vorliegt. 6. Device according to one of claims 1 to 5, characterized in that a dual stack Harvard architecture is present. 7. Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Programmsteuerung zur Abarbeitung von Programmbefehlen als Assembler für die Programmiersprache Forth ausgebildet ist. 7. Device according to one of claims 1 to 6, characterized in that the Program control for processing program instructions as assembler for the programming language Forth is trained. 8. Vorrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß jede Instruktion ein Markierungsbit aufweist, das Operationsinstruktionen von Literalinstruktionen unterscheidet. 8. Device according to one of claims 1 to 7, characterized in that each instruction a marker bit that contains operation instructions of literal instructions different. 9. Vorrichtung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß Verzweigungen bzw. Unterprogrammaufrufe an die Adresse erfolgen, die im Top-Of-Stack-Register TOS (7) enthalten ist. 9. Device according to one of claims 1 to 8, characterized in that branches or subroutine calls are made to the address contained in the top-of-stack register TOS ( 7 ). 10. Vorrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß Verzweigungen bzw. Unterprogrammaufrufe relativ zum Programmzähler PC (14) implementiert sind. 10. Device according to one of claims 1 to 9, characterized in that branches or subroutine calls are implemented relative to the program counter PC ( 14 ). 11. Vorrichtung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß das externe Signal "nicht bereit" (108) zu einem Abbruch des gerade laufenden Zyklus und zum Aufruf eines Unterprogramms an einer festen Adresse führt. 11. Device according to one of claims 1 to 10, characterized in that the external signal "not ready" ( 108 ) leads to an abort of the cycle currently running and to the calling of a subroutine at a fixed address. 12. Vorrichtung nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß ein Autoinkrement/Autodekrement des TOS-Registers (7) in Abhängigkeit von einem jeweiligen Opcode realisiert ist. 12. The device according to one of claims 1 to 11, characterized in that an auto-increment / auto-decrement of the TOS register ( 7 ) is implemented as a function of a respective opcode. 13. Vorrichtung nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß beim Zugriff auf den Datenspeicher (2) das Top-Of-Stack-Register TOS (7) die Adresse enhält und eine Transferierung des Datums zwischen dem Datenspeicher und dem Next-Of-Stack-Register NOS (6) vorgesehen ist. 13. Device according to one of claims 1 to 12, characterized in that when accessing the data memory ( 2 ) the top-of-stack register TOS ( 7 ) contains the address and a transfer of the date between the data memory and the next- Of-stack register NOS ( 6 ) is provided. 14. Vorrichtung nach den Ansprüchen 12 und 13, dadurch gekennzeichnet, daß das Autoinkrement/Autodekrement bei Adressierung des Datenspeichers (2) über die Leitung 105 als Preinkrement/Predekrement ausgeführt ist. 14. Device according to claims 12 and 13, characterized in that the auto-increment / auto-decrement on addressing the data memory ( 2 ) via line 105 is executed as a pre-increment / predecrement. 15. Vorrichtung nach den Ansprüchen 12 und 13, dadurch gekennzeichnet, daß das Autoinkrement/Autodekrement bei Adressierung des Datenspeichers (2) über die Leitung 106 als Postinkrement/Postdekrement ausgeführt ist. 15. Device according to claims 12 and 13, characterized in that the auto-increment / auto-decrement on addressing the data memory ( 2 ) via line 106 is carried out as a post-increment / post-decrement. 16. Vorrichtung zur Datenverarbeitung, die einen Programmspeicher, einen Datenspeicher, mindestens zwei Stacks sowie mindestens einen Bus zur Verbindung einzelner Funktionsbaugruppen aufweist, dadurch gekennzeichnet, daß eine Aufteilung der Speicherbereiche derart realisiert ist, daß eine Harvard-Architektur vorliegt. 16. Data processing device comprising a program memory, a data memory, at least two stacks and at least one bus to connect individual ones Has functional modules, characterized in that a division of the Memory areas are implemented in such a way that a Harvard architecture is present. 17. Vorrichtung nach Anspruch 16, dadurch gekennzeichnet, daß ein Returnstack physikalisch einem RAM-Bereich zugeordnet ist, in dem der Datenspeicher (2) definiert ist. 17. The apparatus according to claim 16, characterized in that a return stack is physically assigned to a RAM area in which the data memory ( 2 ) is defined. 18. Vorrichtung nach Anspruch 16 oder 17, dadurch gekennzeichnet, daß lokale Variablen im Bereich des Returnstack abspeicherbar sind. 18. The apparatus according to claim 16 or 17, characterized in that local variables in Area of the return stack can be saved. 19. Vorrichtung nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, daß der Datenspeicher (2) relativ zu einem Basisadressregister TASK (21) adressierbar ist. 19. Device according to one of claims 16 to 18, characterized in that the data memory ( 2 ) is addressable relative to a base address register TASK ( 21 ).
DE2001131084 2001-06-27 2001-06-27 Data processing system is structured to perform as a field programmable logic system Withdrawn DE10131084A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2001131084 DE10131084A1 (en) 2001-06-27 2001-06-27 Data processing system is structured to perform as a field programmable logic system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2001131084 DE10131084A1 (en) 2001-06-27 2001-06-27 Data processing system is structured to perform as a field programmable logic system

Publications (1)

Publication Number Publication Date
DE10131084A1 true DE10131084A1 (en) 2003-01-09

Family

ID=7689696

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2001131084 Withdrawn DE10131084A1 (en) 2001-06-27 2001-06-27 Data processing system is structured to perform as a field programmable logic system

Country Status (1)

Country Link
DE (1) DE10131084A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4704678A (en) * 1982-11-26 1987-11-03 Inmos Limited Function set for a microcomputer
US5070451A (en) * 1984-11-21 1991-12-03 Harris Corporation Forth specific language microprocessor
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
US5404555A (en) * 1991-05-17 1995-04-04 Duosi Software Co., Ltd. Macro instruction set computer architecture
US5659703A (en) * 1989-08-03 1997-08-19 Patriot Scientific Corporation Microprocessor system with hierarchical stack and method of operation
DE19916695A1 (en) * 1999-04-14 2000-10-19 Klaus Schleisiek Microprocessor of dual stack Harvard architecture type which identifies use of the literal register to initiate program actions and is suited to the Forth programming language

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4704678A (en) * 1982-11-26 1987-11-03 Inmos Limited Function set for a microcomputer
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
US5179734A (en) * 1984-03-02 1993-01-12 Texas Instruments Incorporated Threaded interpretive data processor
US5070451A (en) * 1984-11-21 1991-12-03 Harris Corporation Forth specific language microprocessor
US5659703A (en) * 1989-08-03 1997-08-19 Patriot Scientific Corporation Microprocessor system with hierarchical stack and method of operation
US5404555A (en) * 1991-05-17 1995-04-04 Duosi Software Co., Ltd. Macro instruction set computer architecture
DE19916695A1 (en) * 1999-04-14 2000-10-19 Klaus Schleisiek Microprocessor of dual stack Harvard architecture type which identifies use of the literal register to initiate program actions and is suited to the Forth programming language

Similar Documents

Publication Publication Date Title
DE69833008T2 (en) PROCESSOR WITH INSTRUCTION CODING BY MEANS OF A TEMPLATE
DE60217157T2 (en) METHOD AND DEVICE FOR BINDING SHADOW TABS TO VECTORIZED INTERRUPTS
DE60010907T2 (en) SRAM CONTROL DEVICE FOR PARALLEL PROCESSOR ARCHITECTURE WITH ADDRESS AND COMMAND QUEUE AND ARBITER
DE69838966T2 (en) Processor to execute highly efficient VLIW commands
DE69723286T2 (en) REAL TIME PROGRAMMING LANGUAGE ACCELERATOR
DE2756768C2 (en) microprocessor
DE69433339T2 (en) Load / store functional units and data caches for microprocessors
DE2505843A1 (en) DATA PROCESSING SYSTEM WITH DATA FLOW CONTROLLED SIMULTANEOUS PROCESSING
DE2935906C2 (en) microprocessor
DE2357003A1 (en) PROGRAMMABLE PROCESSOR
DE2411963A1 (en) DATA PROCESSING SYSTEM
DE2714805A1 (en) DATA PROCESSING SYSTEM
DE2718051A1 (en) DATA PROCESSING SYSTEM WITH DEVICES FOR ALTERNATING PROCESSING OF SEVERAL TASKS
DE69133571T2 (en) Data processor with the ability to execute two instructions simultaneously
DE2756762A1 (en) PROCEDURE AND ARRANGEMENT FOR ACCESS TO ANY BIT FIELDS IN THE MAIN MEMORY OF A DATA PROCESSING SYSTEM
DE60009496T2 (en) MICROPROCESSOR WITH REDUCED CONTEXT SWITCHING VOLTAGE AND METHOD
DE19848742C2 (en) Register renaming for a processor that can process instructions outside of the sequential order
DE2556617A1 (en) DATA PROCESSER FOR THE ROTATABLE MOVEMENT OF BITS OF A DATA WORD
DE2458096A1 (en) MICRO-PROGRAM LOADING DEVICE FOR DETERMINING THE CHARGING TIME
DE19738542A1 (en) High power data processing device
DE112006000514T5 (en) Single cycle, low power CPU architecture
DE2835110A1 (en) FAST REAL-TIME COMPUTER EMULATOR
EP1407348B1 (en) Method for controlling a central processing unit for an addressing relating to a memory and a controller
DE10303053A1 (en) Data transmission method for use in a computer processor whereby data is transmitted between pipelines and a register file to minimize risk of data loss or corruption
DE10131084A1 (en) Data processing system is structured to perform as a field programmable logic system

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8139 Disposal/non-payment of the annual fee