DE4301117A1 - Multi-tasking processor for control of automation systems - has register block stalk for tasks controlled by selector unit providing highest priority selection - Google Patents
Multi-tasking processor for control of automation systems - has register block stalk for tasks controlled by selector unit providing highest priority selectionInfo
- Publication number
- DE4301117A1 DE4301117A1 DE19934301117 DE4301117A DE4301117A1 DE 4301117 A1 DE4301117 A1 DE 4301117A1 DE 19934301117 DE19934301117 DE 19934301117 DE 4301117 A DE4301117 A DE 4301117A DE 4301117 A1 DE4301117 A1 DE 4301117A1
- Authority
- DE
- Germany
- Prior art keywords
- task
- register
- tasks
- register set
- computing device
- 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 OR CALCULATING; 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Die vorliegende Erfindung betrifft ein multitaskingfähiges Rechengerät, insbesondere Automatisierungsgerät, mit mindestens einem Prozessor und mehreren Registersätzen (oder -bänken) so wie ein Taskzuordnungsverfahren für ein multitaskingfähiges Rechengerät.The present invention relates to a multitasking capable Computing device, in particular automation device, with at least a processor and several register sets (or banks) like this like a task assignment procedure for a multitasking capable Computing device.
Multitaskingfähige Rechengeräte mit mehreren Registersätzen sind bekannt. Bei derartigen Rechengeräten sind die Tasks im Regelfall zufällig den Registersätzen zugeordnet. Wenn eine neue Taskanforderung eintrifft, muß daher zunächst ermittelt werden, ob und gegebenenfalls welchem Registersatz die Task momentan zugeordnet ist. Wenn die Task momentan keinem Re gistersatz zugeordnet ist, muß der gesamte Inhalt eines Re gistersatzes in den Speicher ausgelagert werden und die Re gisterinhalte der neu angeforderten Task in die Register des gerade ausgelagerten Registersatzes geladen werden. Dieser Kontextwechsel erfordert erhebliche Zeit.Multi-tasking computing devices with multiple register sets are known. With such computing devices, the tasks in Usually randomly assigned to the register records. When a new task request arrives must first be determined whether and if so which register set the task is currently assigned. If the task does not currently have a re is assigned to the set, the entire content of a re master record are stored in the memory and the Re contents of the newly requested task in the registers of the just relocated register set are loaded. This Context changes take a long time.
Insbesondere bei Automatisierungsgeräten, also z. B. speicher programmierbaren Steuerungen oder Maschinensteuerungen, werden große Anstrengungen unternommen, derartige Kontextwechsel zu beschleunigen. Die Zeit, die zum Wechseln des Kontextes be nötigt wird, bestimmt nämlich in erheblichem Umfang die soge nannte Alarmreaktionszeit, in der die Steuerungen auf aufgrund von Prozeßänderungen ausgelöste Alarme reagieren können. In manchen besonders zeitkritischen Fällen werden bis heute keine programmierbaren Steuerungen eingesetzt, weil sie auf Alarme (d. h. Prozeßänderungen) nicht schnell genug reagieren können. Especially with automation devices, e.g. B. memory programmable controls or machine controls made great efforts to change the context accelerate. The time it takes to change context is required, namely determines to a considerable extent the so-called called alarm reaction time in which the controls are due to alarms triggered by process changes can react. In Some particularly time-critical cases are still none programmable controls are used because they respond to alarms (i.e. process changes) cannot respond quickly enough.
Aufgabe der vorliegenden Erfindung ist es daher, eine Mög lichkeit zu einem extrem raschen und einfachen Kontextwechsel für ein multitaskingfähiges Rechengerät zu schaffen.The object of the present invention is therefore to provide a possibility an extremely quick and easy change of context for a multitasking computing device.
Die Aufgabe wird dadurch gelöst, daßThe problem is solved in that
- - die Anzahl an Registersätzen mindestens ebenso groß ist wie die Anzahl der auszuführenden Tasks, so daß jeder Task ein eigener Registersatz fest zuordenbar ist;- The number of register records is at least as large as the number of tasks to be performed so that each task has a own register set is permanently assignable;
- - jeder Task eine Dringlichkeitsstufe zugeordnet ist, gemäß derer sie im Falle einer Anforderung Vorrang vor Tasks niedrigerer Dringlichkeitsstufen hat;- Each task is assigned an urgency level, according to which takes precedence over tasks in the event of a request has lower levels of urgency;
- - das Rechengerät einen Registersatzselektor aufweist, der stets den Registersatz aktiviert, der der momentan ange forderten Task mit der höchsten Dringlichkeitsstufe zuge ordnet ist.- The computing device has a register set selector that always activated the register set that the currently requested task with the highest urgency level is arranged.
Das erfindungsgemäße Taskzuordnungsverfahren umfaßt folgende Schritte:The task assignment method according to the invention comprises the following Steps:
- - die angeforderten Tasks werden erfaßt;- The requested tasks are recorded;
- - aus den angeforderten Tasks und der momentan ausgeführten Task wird die Task mit der höchsten Dringlichkeitsstufe ermittelt und- from the requested tasks and the currently executed Task becomes the task with the highest urgency level determined and
- - der dieser Task zugeordnete Registersatz wird aktiviert.- The register set assigned to this task is activated.
Wenn das Rechengerät einen zusätzlichen Registersatz zur Ver waltung der Taskanforderungen aufweist, ist insbesondere die Zuordnung der Dringlichkeitsstufen zu den Tasks besonders flexibel.If the computing device has an additional register set for ver management of the task requirements is, in particular Assignment of the urgency levels to the tasks in particular flexible.
Wenn der Registersatzselektor einen Tasküberwacher zum Über wachen der einlaufenden Taskanforderungen sowie einen Taskzu ordner zur Zuweisung des der höchstrangigen auszuführenden Task zugeordneten Registersatzes an den Prozessor aufweist, sind die Aufgaben der Taskanforderungsüberwachung und der Taskzuordnung auf zwei jeweils relativ einfach zu realisierende Einheiten verteilt.If the register set selector uses a task monitor incoming task requests and a task folder for assigning the highest ranking to be executed Task assigned register set to the processor, are the tasks of task request monitoring and Task assignment to two relatively easy to implement Units distributed.
Die Selektion der Task mit der höchsten Dringlichkeitsstufe ist besonders einfach, wenn die Dringlichkeitsstufe jeder Task der Bitposition entspricht, der die Task im Taskregister zu geordnet ist.The task with the highest urgency level is selected particularly easy when the urgency level of each task corresponds to the bit position that the task in the task register corresponds to is ordered.
Die Tasks können insbesondere ein zyklisches Programm, Zeit alarme, Prozeßalarme und Systeminterrupts umfassen, wobei vorstehende Aufzählung in der Reihenfolge von niedriger zu hoher Dringlichkeit erfolgte.The tasks can in particular be a cyclical program, time include alarms, process alarms and system interrupts, where the above list in order from lower to with great urgency.
Weitere Vorteile und Einzelheiten ergeben sich aus der nach folgenden Beschreibung eines Ausführungsbeispiels. Dabei zei gen:Further advantages and details emerge from the following description of an embodiment. Here zei gene:
Fig. 1 ein Blockschaltbild der erfindungswesentlichen Teile eines Rechengeräts und Fig. 1 is a block diagram of the essential parts of the invention of a computing device and
Fig. 2 die Zuordnung der einzelnen Tasks zu einzelnen Bits innerhalb der Register. Fig. 2, the allocation of individual tasks to individual bits within the register.
Gemäß Fig. 1 weist das Rechengerät einen Prozessor 1 und einen Registersatzselektor 2 auf. Der Prozessor 1 besteht im wesent lichen aus dem Steuerwerk 3 und den Registersätzen 4. Die Re gistersätze 4 weisen je einen program counter 5 und einen stack pointer 6 auf. In Fig. 1 sind der Übersichtlichkeit halber nur drei Registersätze 4 dargestellt, der Prozessor weist im Re gelfall aber erheblich mehr Registersätze auf, z. B. 16 oder 32 Stück. Die minimal erforderliche Anzahl von Registersätzen ist dabei durch die Anzahl der auszuführenden Tasks gegeben, da jeder Task ein eigener Registersatz 4 zugeordnet ist.Referring to FIG. 1, the computing device comprises a processor 1 and a Registersatzselektor. 2 The processor 1 consists essentially of the control unit 3 and the register sets 4th The register sets 4 each have a program counter 5 and a stack pointer 6 . In Fig. 1, for the sake of clarity, only three register sets 4 are shown, but the processor has, in the event of re, considerably more register sets, e.g. B. 16 or 32 pieces. The minimum required number of register sets is given by the number of tasks to be performed, since each task is assigned its own register set 4 .
Falls, wie nachstehend beschrieben, die Verwaltung der Task anforderungen durch einen zusätzlichen Registersatz erfolgt, ist dies bei der erforderlichen Mindestanzahl von Register sätzen selbstverständlich zu berücksichtigen.If, as described below, manage the task requests are made through an additional register set, this is the minimum number of registers required rates to be taken into account, of course.
Der Registersatzselektor 2 weist einen Tasküberwacher 7 und einen Taskzuordner 8 auf. Der Tasküberwacher 7 weist ein Statusregister 9, ein Maskenregister 10 sowie einen Task selektor 11 auf. Im Statusregister 9 werden die einlaufenden Taskanforderungen registriert. Mittels des Maskenregisters 10, sind bestimmte Taskanforderungen beim Einlaufen ausblendbar. Der Taskselektor 11 ermittelt die für den Tasküberwacher 7 höchstrangige einlaufende, nicht gelöschte Taskanforderung. Weiterhin weist der Tasküberwacher 7 eine Sperre 12, typisch ein Flip-Flop oder ein Flag, auf, mittels dessen die Eingänge des Taskselektors 11 sperrbar sind.The register set selector 2 has a task monitor 7 and a task allocator 8 . The task monitor 7 has a status register 9 , a mask register 10 and a task selector 11 . The incoming task requests are registered in status register 9 . By means of the mask register 10 , certain task requirements can be faded out when running in. The task selector 11 determines the highest-ranking incoming, not deleted task request for the task monitor 7 . Furthermore, the task monitor 7 has a lock 12 , typically a flip-flop or a flag, by means of which the inputs of the task selector 11 can be locked.
Der Taskzuordner 8 weist ein Register 13 auf und einen Task zuweiser 14 auf. Im Register 13 sind die angeforderten, noch nicht vollständig abgearbeiteten Tasks registriert. Der Task zuweiser 14 weist dem Prozessor 1 die als nächstes auszufüh rende Task zu. Das Register 13 ist, analog zum Taskselektor 11, mittels einer Sperre 15 sperrbar.The task allocator 8 has a register 13 and a task allocator 14 . The requested tasks that have not yet been fully processed are registered in register 13 . The task assigner 14 assigns the processor 1 the task to be carried out next. The register 13 can be locked by means of a lock 15 , similar to the task selector 11 .
Im vorliegenden Ausführungsbeispiel können außer dem zyklischen Prozeß C folgende Tasks ausgeführt werden:In the present embodiment, in addition to the cyclic Process C has the following tasks:
- - Vier Zeltalarme T0 bis T3,- four tent alarms T 0 to T 3 ,
- - vier Prozeßalarme P0 bis P3 und- four process alarms P 0 to P 3 and
- - sechs Interrupts IR0 bis IR5.- six interrupts IR 0 to IR 5 .
Wenn eine oder mehrere dieser Tasks über die Leitungen 16 an gefordert werden, wird dies im Statusregister 9 vermerkt. Die ankommenden Taskanforderungen werden im Maskenregister 10 dar aufhin überprüft, ob sie zugelassen sind. Wenn die Anforde rungen nicht zugelassen sind, werden sie ausgeblendet. Wenn Taskanordnungen an den Taskselektor 11 weitergeleitet werden, wird dieser angestoßen.If one or more of these tasks are requested via lines 16 , this is noted in status register 9 . The incoming task requests are then checked in mask register 10 to determine whether they are permitted. If the requirements are not allowed, they are hidden. If task arrangements are forwarded to task selector 11 , this is triggered.
Das Anstoßen des Taskselektors 11 bewirkt auch ein Anstoßen des Taskzuordners 8. Der Taskzuordner 8 setzt daraufhin das Sperrsignal der Sperre 12, so daß dem Taskselektor 11 keine weiteren Taskanforderungen mehr zugeleitet werden. Die nun mehr angestoßene Task kann damit nicht mehr unterbrochen wer den. Weiterhin wird der Prozessor 1 vom Taskzuordner 8 auf einen speziellen Registersatz zur Verwaltung der Taskanfor derungen umgeschalten. Die Verwaltungstask wird auch als Interrupt-Serviceroutine ISR bezeichnet.Triggering the task selector 11 also triggers the task assignor 8 . The task allocator 8 then sets the lock signal of the lock 12 , so that the task selector 11 is no longer sent any further task requests. The task that is now initiated can no longer be interrupted. Furthermore, the processor 1 is switched from the task allocator 8 to a special register set for managing the task requirements. The administration task is also referred to as an interrupt service routine ISR.
In der Zwischenzeit wurde vom Taskselektor 11 die für ihn höchstrangige Taskanforderung ermittelt und eine dieser Task anforderung zugeordnete Startadresse für den weiteren Pro grammablauf ermittelt. Diese Startadresse wird nunmehr in den program counter 5 dieses zusätzlichen Registersatzes einge tragen. Weiterhin wird diese Taskanforderung, die im Task selektor 11 registriert ist, wieder gelöscht.In the meantime, task selector 11 has determined the task request with the highest priority for him and determined a start address assigned to this task request for the further program flow. This start address is now entered in the program counter 5 of this additional register set. Furthermore, this task request, which is registered in the task selector 11 , is deleted again.
Der Taskzuordner 8 startet daraufhin den Prozessor 1, wobei dieser den weiteren Programmablauf selbstverständlich bei der im program counter 5 hinterlegten Einsprungadresse dieser Taskanforderung beginnt.The task allocator 8 then starts the processor 1 , which of course begins the further program sequence at the entry address of this task request stored in the program counter 5 .
Im Prinzip können nunmehr beliebige Anweisungen ohne Umschal ten des Registersatzes abgearbeitet werden. In der Praxis ist dies aber nur bei extrem kurzen Routinen sinnvoll. Im Regel fall wird lediglich im Register 13 des Taskzuordners 8 das Bit gesetzt werden, dem die jeweilige Task zugeordnet ist, und die Sperre 15 entriegelt werden. Das Entriegeln der Sperre 15 kann beispielsweise durch Setzen eines Flags geschehen. In diesem Fall des reinen Bit-Setzens ist ein Umschalten von einer Task auf die andere in einer Zeit von ca. 1 µs möglich. In principle, any instructions can now be processed without switching the register set. In practice, however, this only makes sense for extremely short routines. As a rule, the bit to which the respective task is assigned will only be set in the register 13 of the task allocator 8 and the lock 15 will be unlocked. The lock 15 can be unlocked, for example, by setting a flag. In this case of pure bit setting, switching from one task to the other is possible in a time of approx. 1 µs.
Wie obenstehend erwähnt, können von der Interrupt-Service routine ISR, ebenso wie von den anderen Tasks, beliebige An weisungen abgearbeitet werden. Es können also z. B. auch ein zelne und/oder alle Bits des Statusregisters 9 bzw. des Maskenregisters 10 gesetzt bzw. rückgesetzt werden. Dies ist in Fig. 1 symbolisch durch die Leitungen 17 angedeutet.As mentioned above, the interrupt service routine ISR, like the other tasks, can process any instructions. So it can. B. also an individual and / or all bits of the status register 9 or the mask register 10 are set or reset. This is indicated symbolically in FIG. 1 by the lines 17 .
Der letzte Befehl der Interrupt-Serviceroutine ISR, der ausge führt wird, stößt automatisch den Taskzuordner 8 an, so daß als nächstes wieder eine der "normalen" Tasks gestartet werden kann.The last command of the interrupt service routine ISR that is executed automatically triggers the task allocator 8 , so that one of the "normal" tasks can be started again next.
Der Taskzuordner 8 entriegelt daraufhin die Sperre 12 des Task überwachers 7, so daß neue Taskanforderungen an den Taskzuord ner 8 übermittelbar sind. Stehen weitere Taskanforderungen im Taskselektor 11 an, so wird das obenstehend beschriebene Ver fahren wiederholt, bis keine Taskanforderungen mehr anstehen.The task allocator 8 then unlocks the lock 12 of the task monitor 7 , so that new task requests can be transmitted to the task assignor 8 . If further task requests are pending in task selector 11 , the process described above is repeated until there are no more task requests.
Stehen keine Taskanforderungen mehr an, so wird bei ver riegelter Sperre 15 der Taskzuweiser 14 gestartet. Im Task zuweiser 14 ist in diesem Fall die zuletzt ausgeführte Task vermerkt, so daß der dieser Task zugeordnete Registersatz 4 aktiviert und die Bearbeitung dieser Task fortgesetzt wird. Wenn die Sperre 15 entriegelt ist, wird zunächst das Register 13 nach der Task mit der höchsten Dringlichkeitsstufe abge sucht. Der Index für den Registersatz 4, der dieser Task zu geordnet ist, wird an den Taskzuweiser 14 übermittelt, so daß von den momentan angeforderten Tasks die mit der höchsten Dringlichkeitsstufe aktiviert wird.If there are no more task requests, the task assigner 14 is started when the lock 15 is locked. In this case, the task executed last is noted in the task assigner 14 , so that the register set 4 assigned to this task is activated and the processing of this task is continued. When the lock 15 is unlocked, the register 13 is first searched for the task with the highest urgency level. The index for register set 4 , which is assigned to this task, is transmitted to task assigner 14 , so that of the currently requested tasks, the one with the highest urgency level is activated.
Das Zuordnen der zuletzt ausgeführten Task statt der mit der höchsten Dringlichkeitsstufe ist dabei nur ein scheinbarer Widerspruch. Das Zuordnen der zuletzt ausgeführten Task er folgt nämlich nur dann, wenn die Sperre 15 gesperrt ist. Die Sperre 15 ist aber nur dann aktiv, wenn keine neue Taskanfor derung im Register 13 gesetzt wurde, die zuletzt angeforder te Task ist also identisch mit der Task mit der höchsten Dringlichkeitsstufe ist. Durch das sofortige Zuordnen der zu letzt ausgeführten Task kann aber Rechenzeit eingespart werden, dar Umschalten auf diese Task wird also beschleunigt.Assigning the most recently executed task instead of the one with the highest urgency level is only an apparent contradiction. The assignment of the last executed task takes place only when the lock 15 is locked. The lock 15 is only active if no new task request has been set in the register 13 , the last requested task is therefore identical to the task with the highest urgency level. Computing time can be saved by immediately assigning the last task to be performed, so switching to this task is accelerated.
Die nunmehr begonnene Task wird solange ausgeführt, bis sie entweder unterbrochen wird oder beendet ist. Der letzte Be fehl einer Task setzt das Bit im Register 13, das die Anfor derung dieser Task signalisiert, zurück. Sodann entriegelt der letzte Befehl die Sperre 15 und stößt den Taskzuordner 8 an, so daß eine andere Task mit niedrigerer Dringlichkeits stufe nunmehr ausgeführt werden kann.The task that has now begun is carried out until it is either interrupted or ended. The last command of a task resets the bit in register 13 , which signals the request for this task. Then the last command unlocks the lock 15 and triggers the task allocator 8 , so that another task with a lower urgency level can now be carried out.
Insbesondere bei Automatisierungsgeräten herrscht eine strenge Hierarchie zwischen den einzelnen Tasks vor. Die Task mit der niedrigsten Dringlichkeitsstufe ist der zyklische Prozeß C. Der zyklische Prozeß wird immer wieder wiederholt, er wird daher nie beendet. Er wird im Register 13 auch stets als nicht beendet geführt, das dem zyklischen Prozeß C zugeordnete Bit im Register 13 ist also immer gesetzt. Da der zyklische Pro zeß C aber die niedrigste Dringlichkeitsstufe besitzt, wird er nur ausgeführt, wenn keine anderen Tasks zur Ausführung anstehen. Die nächst höheren Dringlichkeitsstufen besitzen im gegebenen Ausführungsbeispiel die Zeitalarme T0 bis T3, dann kommen die Prozeßalarme P0 bis P3, und die höchsten Dringlich keitsstufen besitzen die echten Interrupts IR0 bis IR5.In automation devices in particular, there is a strict hierarchy between the individual tasks. The task with the lowest urgency level is cyclic process C. The cyclical process is repeated over and over, it is therefore never ended. It is also always recorded in register 13 as not ended, so the bit in register 13 assigned to cyclic process C is always set. However, since the cyclical process C has the lowest urgency level, it is only executed when there are no other tasks to be performed. The next higher levels of urgency in the given embodiment have the time alarms T 0 to T 3 , then the process alarms P 0 to P 3 , and the highest levels of urgency have the real interrupts IR 0 to IR 5 .
Die Reihenfolge innerhalb der Zeitalarme T0 bis T3 kann dabei gemäß den Anforderungen des zu steuernden Prozesses festge legt werden. Gleiches gilt für die Prozeßalarme P0 bis P3 und die Interrupts IR0 bis IR5. Mit der Reihenfolge ist selbstverständlich auch die Dringlichkeitsstufe der einzel nen Task festgelegt. The order within the time alarms T 0 to T 3 can be determined according to the requirements of the process to be controlled. The same applies to process alarms P 0 to P 3 and interrupts IR 0 to IR 5 . The urgency level of the individual task is of course also determined with the order.
Die Bestimmung der höchstrangigen angeforderten Task ist be sonders einfach, wenn die Tasks den einzelnen Bitpositionen im Register 13 wie in Fig. 2 dargestellt zugeordnet sind. In diesem Fall ist die Dringlichkeitsstufe nämlich sofort mit der Bitposition im Register 13 gegeben.The determination of the highest-ranking requested task is particularly simple if the tasks are assigned to the individual bit positions in register 13 as shown in FIG. 2. In this case, the urgency level is given immediately with the bit position in register 13 .
Je höher die Nummer des Bits, desto höher die Dringlichkeit der diesem Bit zugeordneten Task. Um die momentan angeforderte Task mit der höchsten Dringlichkeitsstufe zu finden, muß das Register 13 also lediglich von links nach rechts auf das erste gesetzte Bit abgesucht werden.The higher the number of the bit, the higher the urgency of the task assigned to this bit. In order to find the currently requested task with the highest level of urgency, register 13 only has to be searched from left to right for the first bit set.
Die Zuordnung der Tasks zu einzelnen Bits der Register 9 und 10 bzw. des Taskselektors 11 ist dagegen ohne Belang. Der Grund hierfür ist, daß das Setzen der Bits im Register 13 per Software geschieht. Folglich liegt es in der Hand des Programmierers, welches Bit im Register 13 er setzt, d. h. welcher Registersatz 4 dieser Task zugeordnet ist und welche Dringlichkeitsstufe diese Task haben soll. Mittels einfacher Umprogrammierung des Bitsetz-Verhaltens ist damit eine Ver änderung der Dringlichkeitsstufen der Tasks möglich. Dies ist auch der entscheidende Vorteil gegenüber einer Hardwarelösung, bei der der Taskselektor 11 starr bestimmte Bits des Registers 13 setzt, wenn bestimmte Taskanforderungen eintreffen.The assignment of the tasks to individual bits of the registers 9 and 10 or the task selector 11 is, however, irrelevant. The reason for this is that the bits in register 13 are set by software. It is therefore up to the programmer which bit in register 13 he sets, ie which register set 4 is assigned to this task and which urgency level this task should have. A simple reprogramming of the bit setting behavior makes it possible to change the urgency levels of the tasks. This is also the decisive advantage over a hardware solution in which the task selector 11 rigidly sets certain bits of the register 13 when certain task requests arrive.
Abschließend sei noch darauf hingewiesen, daß es selbstver ständlich auch möglich ist, besonders häufig benötigte Re gister wie beispielsweise den program counter 5 und den stack pointer 6 im Steuerwerk 3 selbst zu führen. In diesem fall müssen vor dem Umschalten auf einen neuen Registersatz 4 diese Informationen in dem der zuletzt ausgeführten Task zugeordneten Registersatz 4 abgespeichert werden und nach dem Aktivieren des neuen Registersatzes 4 die entsprechenden Informationen aus dem neuen Registersatz 4 abgerufen werden, bevor der Prozessor 1 mit der weiteren Programmabarbeitung fortfahren kann.Finally, it should also be pointed out that it is of course also possible to run registers that are required particularly frequently, such as the program counter 5 and the stack pointer 6 in the control unit 3 itself. In this case, before switching to a new register set 4, this information must be stored in the register set 4 assigned to the last task performed and, after the new register set 4 has been activated, the corresponding information must be retrieved from the new register set 4 before the processor 1 uses the further program execution can continue.
Claims (10)
- a) es weist mindestens einen Prozessor (1) auf;
- b) es weist mehrere Registersätze (4) auf, wobei die Anzahl an Registersätzen (4) mindestens ebenso groß ist wie die Anzahl der auszuführenden Tasks, so daß jeder Task ein eigener Registersatz (4) fest zuordenbar ist;
- c) jeder Task ist eine Dringlichkeitsstufe zugeordnet, gemäß derer sie im Falle einer Anforderung Vorrang vor Tasks niedrigerer Dringlichkeitsstufen hat;
- d) das Rechengerät weist einen Registersatzselektor (2) auf, der stets den Registersatz (4) aktiviert, der der momentan angeforderten Task mit der höchsten Dringlichkeitsstufe zugeordnet ist.
- a) it has at least one processor ( 1 );
- b) it has a number of register sets ( 4 ), the number of register sets ( 4 ) being at least as large as the number of tasks to be carried out, so that each task can be permanently assigned its own register set ( 4 );
- c) each task is assigned an urgency level, according to which it has priority over tasks of lower urgency levels in the event of a request;
- d) the computing device has a register set selector ( 2 ) which always activates the register set ( 4 ) which is assigned to the currently requested task with the highest urgency level.
- - ein Statusregister (9), in dem die einlaufenden Taskanforde rungen registriert werden;
- - gegebenenfalls ein Maskenregister (10), mittels dessen vorbe stimmte Taskanforderungen beim Einlaufen löschbar sind, und
- - einen Taskselektor (11), der die einlaufenden, gegebenenfalls nicht gelöschten, Taskanforderungen ermittelt und weitergibt.
- - A status register ( 9 ) in which the incoming task requests are registered;
- - If necessary, a mask register ( 10 ), by means of which predetermined task requirements can be erased on arrival, and
- - A task selector ( 11 ), which determines the incoming, possibly not deleted, task requests and passes them on.
- - ein Register (13), in dem die angeforderten, noch nicht voll ständig abgearbeiteten Tasks registriert sind, und
- - einen Taskzuweiser (14), der dem Prozessor (1) die als nächstes auszuführende Task zuweist.
- - A register ( 13 ) in which the requested, not yet fully processed tasks are registered, and
- - A task assigner ( 14 ) which assigns the processor ( 1 ) the task to be carried out next.
- - in der Reihenfolge ihrer Dringlichkeit - ein zyklisches Pro gramm (C), Zeitalarme (T0 bis T3), Prozeßalarme (P0 bis P3) und Interrupts (IR0 bis IR5) umfassen.
- - In the order of urgency - a cyclic program (C), time alarms (T 0 to T 3 ), process alarms (P 0 to P 3 ) and interrupts (IR 0 to IR 5 ) include.
- - die angeforderten Tasks werden erfaßt;
- - aus den angeforderten Tasks und der momentan ausgeführten Task wird die Task mit der höchsten Dringlichkeitsstufe ermittelt und
- - der dieser Task zugeordnete Registersatz (4) wird aktiviert.
- - The requested tasks are recorded;
- - The task with the highest urgency level is determined from the requested tasks and the currently executing task
- - The register set ( 4 ) assigned to this task is activated.
- - vor dem Aktivieren eines neuen Registersatzes (4) Informati onen der zuletzt ausgeführten Task in dem dieser Task zuge ordneten Registersatz (4) abgespeichert werden und
- - nach dem Aktivieren des neuen Registersatzes (4) Informati onen der neu auszuführenden Task aus dem neuen Registersatz (4) abgerufen werden.
- - Before activating a new register set ( 4 ), information of the last task performed is stored in the register set ( 4 ) assigned to this task and
- - After activating the new register set ( 4 ), information on the new task to be performed is retrieved from the new register set ( 4 ).
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP92101545 | 1992-01-30 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE4301117A1 true DE4301117A1 (en) | 1993-08-05 |
Family
ID=8209280
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19934301117 Withdrawn DE4301117A1 (en) | 1992-01-30 | 1993-01-18 | Multi-tasking processor for control of automation systems - has register block stalk for tasks controlled by selector unit providing highest priority selection |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE4301117A1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998036355A1 (en) * | 1997-02-12 | 1998-08-20 | The Dow Chemical Company | A dedicated context-cycling computer |
| DE19827914C1 (en) * | 1998-06-23 | 1999-10-28 | Siemens Ag | Application specific integrated circuit for processing defined sequences of assembly commands |
| DE19955776C1 (en) * | 1999-11-19 | 2001-07-19 | Infineon Technologies Ag | Multitasking processor system |
| WO2001073568A1 (en) * | 2000-03-29 | 2001-10-04 | Intel Corporation | Apparatus and method for dedicated interconnection over a shared external bus |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0427558A2 (en) * | 1989-11-10 | 1991-05-15 | Mita Industrial Co. Ltd. | Task switching system |
-
1993
- 1993-01-18 DE DE19934301117 patent/DE4301117A1/en not_active Withdrawn
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0427558A2 (en) * | 1989-11-10 | 1991-05-15 | Mita Industrial Co. Ltd. | Task switching system |
Non-Patent Citations (2)
| Title |
|---|
| BUNATA, Thomas, HUBER, Bernd: 16-Bit-Mikropro- zessor für Echtzeit-Multitask-Betrieb. In: Elektronik, Heft 7, 1983, S. 53-57, GOSCH, John: Microprocessor does multitasking in real time. In: Electronics, 1982, Heft 22,S.71,72 * |
| HITACHI: 16-Bit-Mikrocontroller für Multitasking optimiert. In: Design & Elektronik, Verlag Markt & Technik, 1988, Ausgabe 1, S. 6-11 * |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998036355A1 (en) * | 1997-02-12 | 1998-08-20 | The Dow Chemical Company | A dedicated context-cycling computer |
| DE19827914C1 (en) * | 1998-06-23 | 1999-10-28 | Siemens Ag | Application specific integrated circuit for processing defined sequences of assembly commands |
| US6477636B1 (en) | 1998-06-23 | 2002-11-05 | Siemens Aktiengesellschaft | Application-specific integrated circuit for processing defined sequences of assembler instructions |
| DE19955776C1 (en) * | 1999-11-19 | 2001-07-19 | Infineon Technologies Ag | Multitasking processor system |
| US6865636B1 (en) | 1999-11-19 | 2005-03-08 | Infineon Technologies Ag | Multitasking processor system for monitoring interrupt events |
| WO2001073568A1 (en) * | 2000-03-29 | 2001-10-04 | Intel Corporation | Apparatus and method for dedicated interconnection over a shared external bus |
| US6502146B1 (en) | 2000-03-29 | 2002-12-31 | Intel Corporation | Apparatus and method for dedicated interconnection over a shared external bus |
| CN1302402C (en) * | 2000-03-29 | 2007-02-28 | 英特尔公司 | Apparatus and method for dedicated interconnection via shared external bus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69031233T2 (en) | Adaptive work sequence planning for multiple processing systems | |
| DE4011745C2 (en) | ||
| DE69729822T2 (en) | Real-time dispatcher | |
| DE2209282C3 (en) | Data processing system | |
| DE10085374B4 (en) | System management memory for the system management interrupt handlers is integrated into the memory controller, regardless of the BIOS and operating system | |
| DE69023018T2 (en) | Processor interrupt control. | |
| DE3611223C2 (en) | ||
| DE3587622T2 (en) | Emulation device in a data processing system. | |
| DE69031231T2 (en) | Synchronization and processing of memory access operations | |
| DE69322683T2 (en) | Method and apparatus for performing a pseudo LRU cache replacement scheme with a lock function | |
| DE60127857T2 (en) | SECURITY PROCEDURE WITH DETERMINISTIC REAL-TIME PERFORMANCE OF MULTITASK APPLICATIONS OF CONTROL AND COMMAND TYPE WITH ERROR CONTROL | |
| DE69534616T2 (en) | A system and method for processing I / O requests over an interface bus to a disk array | |
| DE3853759T2 (en) | Data processor with two operating modes. | |
| DE3686018T2 (en) | OPERATION OF HARDWARE PRODUCTS. | |
| DE69622832T2 (en) | DEVICE AND METHOD FOR COOPERATIVE INTERRUPTIONS IN A PREEMPTIVE PROCESS SEQUENCE PLANNING ENVIRONMENT | |
| DE3855289T2 (en) | Mouse pointer with switchable emulation operating mode | |
| DE2243956A1 (en) | MEMORY-PROGRAMMED DATA PROCESSING SYSTEM | |
| DE69923658T2 (en) | DYNAMIC MEMORY SPACE ASSIGNMENT | |
| DE3610433A1 (en) | STORAGE PROGRAMMABLE CONTROL UNIT WITH FUNCTION PLAN INTERPRETER | |
| DE2912738A1 (en) | SYSTEM WITH DIRECT TRANSFER BETWEEN SUBSYSTEMS | |
| DE2449547A1 (en) | COMPUTER AND DATA PROCESSING SYSTEM | |
| DE2657848A1 (en) | CONTROL UNIT FOR A DATA PROCESSING SYSTEM | |
| DE68929080T2 (en) | Arrangement for storing information for a data provider processor | |
| DE3886756T2 (en) | Access to resources for multiprocessor computer system. | |
| DE1499182B2 (en) | Data storage system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| 8130 | Withdrawal |