DE19928260A1 - Program branching controller circuit arrangement for telecommunications protocols processor - Google Patents
Program branching controller circuit arrangement for telecommunications protocols processorInfo
- Publication number
- DE19928260A1 DE19928260A1 DE1999128260 DE19928260A DE19928260A1 DE 19928260 A1 DE19928260 A1 DE 19928260A1 DE 1999128260 DE1999128260 DE 1999128260 DE 19928260 A DE19928260 A DE 19928260A DE 19928260 A1 DE19928260 A1 DE 19928260A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- counter
- addresses
- multiplexer
- circuit arrangement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
Abstract
Description
Die Erfindung betrifft eine Schaltungsanordnung zur Steuerung von Programmverzweigungen in einem Prozessor nach dem Oberbe griff von Patentanspruch 1.The invention relates to a circuit arrangement for control of program branches in a processor according to the Oberbe handle of claim 1.
Zur Protokollbearbeitung von seriellen Datenströmen, die in der Telekommunikation wie beispielsweise bei ISDN (Integrated Services Network) auftreten, werden sogenannte Protokollpro zessoren benutzt. Die Aufgabe solcher Protokollprozessoren besteht darin, aus den Datenströmen Protokolle zu entnehmen und diese zur Weiterverarbeitung in einer Telekommunikations vorrichtung aufzubereiten. Der Prozessor führt dazu üblicher weise ein Programm aus, das einen endlichen Zustandsautomaten in Software nachbildet. Der endliche Zustandsautomat verar beitet den Datenstrom und erzeugt daraus das Protokoll. Bei der Abarbeitung eines solchen Programmes treten insbesondere bei bestimmten Ereignissen, beispielsweise gesetzten Bits an besonderen Positionen im Datenstrom, sehr häufig Verzweigungen bzw. Sprünge im Programm auf. Bekannte Standard-Mikroprozes soren benötigen zur Verarbeitung solcher ereignisorientierter Sprünge mehrere Taktzyklen und genügen dadurch nicht den in der Telekommunikation auftretenden Echtzeitanforderungen.For protocol processing of serial data streams that are in telecommunications such as ISDN (Integrated Services Network) occur, so-called protocol pro cessors used. The task of such protocol processors consists of taking logs from the data streams and this for further processing in a telecommunications prepare the device. The processor leads to this more commonly identify a program that is a finite state machine reproduced in software. The finite state machine was processed processes the data stream and generates the log from it. At The execution of such a program occurs in particular for certain events, for example bits set special positions in the data stream, very often branches or jumps in the program. Known standard microprocesses sensors need to process such event-oriented Jumps several clock cycles and therefore does not meet the in real-time requirements of telecommunications.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Schal tungsanordnung zur Steuerung von Programmverzweigungen in ei nem Prozessor anzugeben, die insbesondere Echtzeitanforderun gen bei der Abarbeitung von Programmverzweigungen bei der Verarbeitung von Protokollen der Telekommunikation genügt.The invention is therefore based on the object of a scarf arrangement for controlling program branches in egg to specify a processor, in particular the real-time requirements conditions when processing program branches at Processing of telecommunications protocols is sufficient.
Diese Aufgabe wird durch die Schaltungsanordnung mit den Merkmalen von Patentanspruch 1 gelöst. Bevorzugte Ausfüh rungsformen der Erfindung sind Gegenstand der Unteransprüche.This task is performed by the circuit arrangement with the Features of claim 1 solved. Preferred execution Forms of the invention are the subject of the dependent claims.
Die Erfindung betrifft eine Schaltungsanordnung zur Steuerung von Programmverzweigungen in einem Prozessor. Ein Programm zähler adressiert einen Programmspeicher. Der Programmzähler ist mit ersten Adressen, die aus Befehlen erzeugbar sind, oder mit zweiten Adressen, die von einem Stapelspeicher lad bar sind, oder mit dritten Adressen aus einem Speicher, in dem bestimmte Programmadressen abgelegt sind, beschreibbar. Eine Watchdog-Zählschaltung überwacht den Ausgangswert des Programmzählers und adressiert bei Überschreiten einer vorge gebenen Zeitspanne den Programmspeicher an einer vorgegebenen Adresse. Vorteilhafterweise können durch diese Schaltungsan ordnung Sprünge bzw. Verzweigungen im Programmablauf inner halb eines Taktzyklus bearbeitet werden, wofür herkömmliche Standard-Mikroprozessoren eine Vielzahl an Taktzyklen benöti gen. Ferner kann die watchdog-Zählschaltung einen Neustart des abzuarbeitenden Programms an der vorgegebenen Adresse "erzwingen", wenn die vorgegebene Zeitspanne überschritten wird.The invention relates to a circuit arrangement for control of program branches in a processor. A program counter addresses a program memory. The program counter is with first addresses that can be generated from commands, or with second addresses that are loaded from a stack are bar, or with third addresses from a memory, in which certain program addresses are stored, writable. A watchdog counter circuit monitors the output value of the Program counter and addressed when a pre-exceeded given time period the program memory at a predetermined Address. Advantageously, this circuit can order jumps or branches in the program flow inside processed half a clock cycle, for which conventional Standard microprocessors require a large number of clock cycles In addition, the watchdog counter circuit can restart of the program to be processed at the specified address "force" if the specified time period is exceeded becomes.
Vorzugsweise steuert eine Verzweigungssteuereinrichtung einen ersten Multiplexer, dem als Eingangssignale die ersten und dritten Adressen zugeführt werden, und einen zweiten Multi plexer, dem als Eingangssignale die zweiten Adressen und die Adresse, mit der der Programmspeicher adressiert wird, zuge führt werden. Insbesondere wird dabei dem ersten Multiplexer als weiteres Eingangssignal ein Signal zum Halten des Pro grammzählers zugeführt. Die Verzweigungssteuereinrichtung wird von dem Prozessor gesteuert und ist vorteilhafterweise schnell zwischen den verschiedenen Adressen für den Programm zähler umschaltbar. Mit dem Signal zum Halten des Programm zählers kann der Programmzählerstand "eingefroren" werden, so daß der Programmablauf unterbrochen wird.A branch control device preferably controls one first multiplexer to which the first and third addresses are supplied, and a second multi plexer, to which the second addresses and the Address with which the program memory is addressed leads. In particular, the first multiplexer as a further input signal a signal to hold the Pro gram counter supplied. The branch control device is controlled by the processor and is advantageous quickly between the different addresses for the program switchable counter. With the signal to stop the program the program counter reading can be "frozen", see above that the program flow is interrupted.
Die Watchdog-Zählschaltung steuert bevorzugt einen dritten Multiplexer, dem als Eingangssignale das Ausgangssignal des Programmzählers und die vorgegebene Adresse zugeführt werden, wobei das Ausgangssignal des dritten Multiplexers den Pro grammspeicher adressiert. The watchdog counter circuit preferably controls a third one Multiplexer, to which the output signal of the Program counter and the specified address are supplied, the output signal of the third multiplexer the Pro addressed gram memory.
In einer besonders bevorzugten Ausführungsform weist die Watchdog-Zählschaltung einen Zähler und einen Vergleicher auf, wobei der Zähler durch den Vergleicher, der das Aus gangssignal des Programmzählers mit einer bestimmten Adresse vergleicht, rücksetzbar ist und der Zähler bei Erreichen ei nes vorgegebenen Zählwertes den dritten Multiplexer vom Aus gangssignal des Programmzählers auf die vorgegebene Adresse umschaltet.In a particularly preferred embodiment, the Watchdog counter circuit a counter and a comparator on, the counter by the comparator, which is the off output signal of the program counter with a specific address compares, resets and the counter when it reaches egg nes predetermined count value the third multiplexer from off signal from the program counter to the specified address toggles.
Weitere Vorteile und Anwendungsmöglichkeiten der Erfindung ergeben sich aus der Beschreibung von Ausführungsbeispielen in Verbindung mit der Zeichnung. In der Zeichnung zeigtFurther advantages and possible uses of the invention result from the description of exemplary embodiments in connection with the drawing. In the drawing shows
Fig. 1 ein Ausführungsbeispiel der Schaltungsanordnung zur Steuerung von Programmverzweigungen in einem Pro zessor zur Protokollverarbeitung. Fig. 1 shows an embodiment of the circuit arrangement for controlling program branches in a processor for protocol processing.
In Fig. 1 ist das zentrale Element der abgebildeten Schal tungsanordnung ein Programmzähler 1, der zur Adressierung ei nes Programmspeichers 14, in dem beispielsweise ein Programm zur Simulation eines endlichen Zustandsautomaten abgelegt ist, dient. Die Schaltungsanordnung wird in einem Prozessor zur Protokollverarbeitung von Telekommunikationsprotokollen eingesetzt.In Fig. 1, the central element of the illustrated circuit arrangement is a program counter 1 , which is used to address egg nes program memory 14 , in which, for example, a program for simulating a finite state machine is stored. The circuit arrangement is used in a processor for protocol processing of telecommunication protocols.
Der Ausgangswert des Programmzählers 1 wird dabei über einen ersten Multiplexer 2 an den Programmspeicher 14 übertragen.The output value of the program counter 1 is transmitted to the program memory 14 via a first multiplexer 2 .
Eine Watchdog-Zählschaltung 4 überwacht den Ausgangswert des Programmzählers 1. Die Watchdog-Zählschaltung 4 überprüft da bei, ob ein bestimmter Programmzählerwert innerhalb einer vorgegebenen Zeitspanne wenigstens einmal aufgetreten ist.A watchdog counter circuit 4 monitors the output value of the program counter 1 . The watchdog counter circuit 4 checks whether a certain program counter value has occurred at least once within a predetermined period of time.
Dazu weist die Watchdog-Zählschaltung 4 einen Zähler auf, der mit einem vorgegebenen Zähltakt zählt. Bei Auftreten des be stimmten Programmzählerwertes setzt ein Vergleicher, der den Ausgangswert des Programmzählers 1 laufend mit dem bestimmten Programmzählerwert vergleicht, den Zähler in seinen Ausgangs zustand - z. B. Null - zurück, so daß der Zähler von diesem Wert an wieder zu zählen beginnt. Erreicht der Zähler dagegen einen der vorgegebenen Zeitspanne entsprechenden Zählerstand, schaltet die Watchdog-Zählschaltung 4 den ersten Multiplexer 2 von dem Ausgangswert des Programmzählers 1 auf eine Start adresse 3 des Programms, die fest vorgegeben ist, um. Das Programm läuft daraufhin an dieser vorgegebenen Adresse an. Damit kann beispielsweise erreicht werden, daß das Programm an der Startadresse 3 neu anläuft, wenn ein bestimmter Pro grammzählerwert nicht erreicht wird. Beispielsweise kann die Startadresse 3 des Programms einem "Startzustand" des simu lierten endlichen Zustandsautomaten zur Protokollverarbeitung und der bestimmte Programmzählerwert einem bestimmten Zustand des endlichen Zustandsautomaten entsprechen. Wird der be stimmte Zustand innerhalb einer vorgegebenen Zeitspanne nicht eingenommen, springt der endliche Zustandsautomat wieder in seinen Startzustand.For this purpose, the watchdog counter circuit 4 has a counter that counts with a predetermined counting cycle. When the certain program counter value occurs, a comparator is used, which continuously compares the output value of the program counter 1 with the determined program counter value, the counter in its initial state - z. B. zero - back so that the counter starts counting again from this value. On the other hand, when the counter reaches a counter reading corresponding to the predetermined period of time, the watchdog counter circuit 4 switches the first multiplexer 2 from the initial value of the program counter 1 to a start address 3 of the program, which is predefined. The program then starts at this specified address. This can be achieved, for example, that the program restarts at the start address 3 if a certain program counter value is not reached. For example, the start address 3 of the program can correspond to a "start state" of the simulated finite state machine for protocol processing and the specific program counter value can correspond to a specific state of the finite state machine. If the determined state is not assumed within a predetermined period of time, the finite state machine jumps back to its starting state.
Der Programmzähler 1 erhält über einen zweiten Multiplexer 5
Eingangswerte von einer von vier Quellen, die im folgenden
aufgezählt werden:
The program counter 1 receives 5 input values from one of four sources via a second multiplexer, which are listed below:
- 1. Eine Sprungtabelle 6, in der Programmadressen, die Sprung zielen entsprechen, abgelegt sind: wenn im Programmablauf ein Sprung erfolgen soll, adressiert ein besonderer Befehl des Prozessors eine Speicherzelle mit einer Adresse der Sprungtabelle 6; der Inhalt der Speicherzelle wird dann in den Programmzähler 1 geschrieben. Diese Quelle beeinflußt den Programmzähler 1 insbesondere bei ereignisorientierten Sprüngen im Programmablauf.1. A jump table 6 , in which program addresses that correspond to jump targets are stored: if a jump is to take place in the program sequence, a special command of the processor addresses a memory cell with an address of the jump table 6 ; the content of the memory cell is then written into the program counter 1 . This source influences the program counter 1 particularly in the case of event-oriented jumps in the program sequence.
- 2. Ein Inkrementierer 8, der einen Ausgangswert eines dritten Multiplexers 9 inkrementiert: der dritte Multiplexer 9 schaltet dabei zwischen dem Ausgangswert des ersten Multi plexers 2 und einer Adresse, die aus einem Stapelspeicher 10 stammt, um. Der Stapelspeicher 10 weist Stapelwerte, die während des Programmablaufs in dem Stapelspeicher 10 abgelegt werden, auf. Der Stapelspeicher 10 wird dabei von einem Stapelzeiger 11, der von dem Prozessor gesteuert wird, adressiert. Diese Quelle beeinflußt den Programmzäh ler 1 aufgrund des linearen Programmablaufs ohne Sprünge (Ausgangswert des ersten Multiplexers 2 wird inkremen tiert) oder aufgrund einer im Stapelspeicher 10 abgelegten Adresse. Ist der Stapelspeicher 10 voll, d. h. der Stapel zeiger 11 zeigt auf eine Adresse des Stapelspeichers 10, die nicht vorhanden ist, wird ein Stapelüberlaufsignal 15 für den Prozessor erzeugt.2. An incrementer 8 that increments an output value of a third multiplexer 9 : the third multiplexer 9 switches between the output value of the first multiplexer 2 and an address that comes from a stack 10 . The stack memory 10 has stack values that are stored in the stack memory 10 during the program run. The stack memory 10 is addressed by a stack pointer 11 , which is controlled by the processor. This source influences the program counter 1 due to the linear program sequence without jumps (output value of the first multiplexer 2 is incremented) or due to an address stored in the stack 10 . If the stack 10 is full, ie the stack pointer 11 points to an address of the stack 10 which is not present, a stack overflow signal 15 is generated for the processor.
- 3. Eine erste Einrichtung 7, die direkt aus Befehlen erzeugte Programmadressen in den Programmzähler 1 schreibt. Diese Befehle können beispielsweise Sprungbefehle mit fest vor gegebenen Adressen als Sprungziele sein.3. A first device 7 , which writes program addresses generated directly from commands into the program counter 1 . These commands can be, for example, jump commands with predetermined addresses as jump destinations.
- 4. Eine zweite Einrichtung 13, die von dem Prozessor ein Si gnal empfangen kann, das einen Stop des Programmablaufes bewirkt; dabei wird der aktuelle im Programmzähler 1 ge speicherte Wert nicht mehr verändert; der Programmzähler 1 bleibt sozusagen stehen.4. A second device 13 , which can receive a signal from the processor which causes the program sequence to stop; the current value stored in program counter 1 is no longer changed; the program counter 1 remains, so to speak.
Der zweite Multiplexer 5 und der dritte Multiplexer 9 werden von einer Verzweigungssteuereinrichtung 12 gesteuert, die den Programmablauf überwacht und steuert.The second multiplexer 5 and the third multiplexer 9 are controlled by a branch control device 12 , which monitors and controls the program sequence.
Die Schaltungsanordnung zur Steuerung von Programmverzweigun gen führt alle Sprünge innerhalb eines Taktzyklus des Taktes, mit dem der Prozessor zur Protokollbearbeitung getaktet ist, aus. Dadurch ist eine echtzeitfähige Programmverarbeitung ge währleistet.The circuit arrangement for controlling program branches gene performs all jumps within one clock cycle of the clock, with which the processor is clocked for protocol processing, out. This enables real-time program processing ensures.
Die Schaltungsanordnung wird insbesondere in einem ereignis orientierten I/O-Kontroller zur Protokollverarbeitung einge setzt, läßt sich aber prinzipiell bei anderen Prozessoren, die eine Sprungverarbeitung innerhalb eines Taktzyklus benö tigen, ebenso vorteilhaft anwenden. The circuit arrangement is particularly in one event oriented I / O controller for protocol processing sets, but can in principle be used with other processors, that require branch processing within one clock cycle use, just as beneficial.
11
Programmzähler
Program counter
22nd
Multiplexer
multiplexer
33rd
Startadresse
Start address
44th
Watchdog
Watchdog
55
Multiplexer
multiplexer
66
Sprungtabelle
Jump table
77
erste Einrichtung
first facility
88th
Inkrementierer
Incrementer
99
Multiplexer
multiplexer
1010th
Stapelspeicher
Stack memory
1111
Stapelzeiger
Stack pointer
1212th
Verzweigungssteuereinrichtung
Branch control device
1313
zweite Einrichtung
second facility
1414
Programmspeicher
Program memory
1515
Stapelüberlaufsignal
Stack overflow signal
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1999128260 DE19928260A1 (en) | 1999-06-21 | 1999-06-21 | Program branching controller circuit arrangement for telecommunications protocols processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1999128260 DE19928260A1 (en) | 1999-06-21 | 1999-06-21 | Program branching controller circuit arrangement for telecommunications protocols processor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19928260A1 true DE19928260A1 (en) | 2000-08-31 |
Family
ID=7911941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1999128260 Withdrawn DE19928260A1 (en) | 1999-06-21 | 1999-06-21 | Program branching controller circuit arrangement for telecommunications protocols processor |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE19928260A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706491A (en) * | 1994-10-18 | 1998-01-06 | Cyrix Corporation | Branch processing unit with a return stack including repair using pointers from different pipe stages |
US5708776A (en) * | 1996-05-09 | 1998-01-13 | Elonex I.P. Holdings | Automatic recovery for network appliances |
DE19527031C2 (en) * | 1994-09-28 | 1998-12-24 | Hewlett Packard Co | Branch processor for a data processing system and method for operating a data processing system |
-
1999
- 1999-06-21 DE DE1999128260 patent/DE19928260A1/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19527031C2 (en) * | 1994-09-28 | 1998-12-24 | Hewlett Packard Co | Branch processor for a data processing system and method for operating a data processing system |
US5706491A (en) * | 1994-10-18 | 1998-01-06 | Cyrix Corporation | Branch processing unit with a return stack including repair using pointers from different pipe stages |
US5708776A (en) * | 1996-05-09 | 1998-01-13 | Elonex I.P. Holdings | Automatic recovery for network appliances |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4305442C2 (en) | Method and device for generating a test vector | |
EP1146432B1 (en) | Reconfiguration method for programmable components during runtime | |
EP0851348B1 (en) | Method and device for implementing a realtime control program in a non realtime control program | |
DE2744531C2 (en) | Arrangement for the selection of interrupt programs in a data processing system | |
DE3228405A1 (en) | EMULATOR FOR GENERATING A SEQUENCE OF CONTROL SIGNALS | |
DE2911909C2 (en) | Digital data processing device | |
DE4426001A1 (en) | Process for avoiding overload during a system startup of a multi-computer system and multi-computer system therefor | |
DE2064383C3 (en) | Data processing system with several central processing devices | |
EP1076847A1 (en) | Method for analog-digital conversion of analog signals and corresponding analog-digital converter array | |
EP1230590B1 (en) | Processor system | |
DE3809831A1 (en) | DIGITAL CALCULATOR WITH COMMAND MODE CONVERSION | |
EP0110199B1 (en) | Method for the control of data transfer between a data transmitter and a data receiver on a bus, using a control unit which is connected to the bus | |
EP1139603A1 (en) | Method and Apparatus for data analysing | |
DE2745204A1 (en) | MICROPROGRAM CONTROL UNIT FOR A DATA PROCESSING SYSTEM | |
DE2321200A1 (en) | DEVICE FOR PERFORMANCE OF BOOLEAN CONNECTIONS | |
DE3923872A1 (en) | CIRCUIT ARRANGEMENT FOR CONTROLLING ACCESS TO A MEMORY | |
DE2759120A1 (en) | PROCESSOR FOR DATA PROCESSING SYSTEMS | |
DE19928260A1 (en) | Program branching controller circuit arrangement for telecommunications protocols processor | |
EP1456756A2 (en) | Method for storing or transferring data | |
EP3244325B1 (en) | Method for the synchronized output and/or synchronized processing of signals | |
DE19948598B4 (en) | Microcomputer with sampling function of a repeat request signal in synchronization with a sampling signal | |
EP0903663B1 (en) | Apparatus comprising a circular buffer and an arrangement carrying out a programm accessing said circular buffer | |
DE3914003A1 (en) | Program execution monitoring arrangement for microprocessor controller - uses two watch-dog timer stages, one of variable, one of fixed period | |
DE2805939C2 (en) | Control unit | |
EP1594063B1 (en) | Method for monitoring control programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAV | Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1 | ||
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |