[go: up one dir, main page]

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 selection

Info

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
Application number
DE19934301117
Other languages
German (de)
Inventor
Rudolf Dipl Ing Moessner
Heiko Dipl Ing Kammler
Guenther Dipl Ing Bock
Werner Dipl Ing Burger
Gerhard Reinert
Georg Trummer
Georg Dipl Ing Lang
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.)
Siemens AG
Siemens Corp
Original Assignee
Siemens AG
Siemens Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG, Siemens Corp filed Critical Siemens AG
Publication of DE4301117A1 publication Critical patent/DE4301117A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving 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

The multitasking computer system has a processor (1) and a register bank selector (2). The processor consists essentially of a controller (3) and a number of registers (4), each having a programme counter (5) and a stalk pointer (6). The register banks can be assigned to a range of different tasks. The selector is based around a task monitor (7) and a task organiser (8). The monitor has a status register (9), mask register (10), selector (10), and flag register (12). The organiser has a task register (13), command stage (14) and a gate (15). ADVANTAGE - Provides rapid and simple changes in automation systems.

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)

1. Multitaskingfähiges Rechengerät, insbesondere Automati­ sierungsgerät, mit folgenden Eigenschaften:
  • 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.
1. Multitasking-capable computing device, in particular automation device, with the following properties:
  • 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.
2. Rechengerät nach Anspruch 1, dadurch ge­ kennzeichnet, daß es einen zusätzlichen Register­ satz (4) zur Verwaltung der Taskanforderungen aufweist.2. Computing device according to claim 1, characterized in that it has an additional register set ( 4 ) for managing the task requests. 3. Rechengerät nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Registersatzselektor (2) einen Tasküberwacher (7) zum Überwachen der einlaufenden Taskanforderungen sowie einen Taskzuordner (8) zur Zuweisung des der hochstrangigen auszuführenden Task zugeordneten Re­ gistersatzes (4) an den Prozessor (1) aufweist.3. Computing device according to claim 1 or 2, characterized in that the register set selector ( 2 ) has a task monitor ( 7 ) for monitoring the incoming task requests and a task allocator ( 8 ) for assigning the register set ( 4 ) to the high-level task to be executed to the processor ( 1 ). 4. Rechengerät nach Anspruch 3, dadurch ge­ kennzeichnet, daß der Tasküberwacher (7) folgende Elemente aufweist:
  • - 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.
4. Computing device according to claim 3, characterized in that the task monitor ( 7 ) has the following elements:
  • - 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.
5. Rechengerät nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß der Taskzuordner (8) fol­ gende Elemente aufweist:
  • - 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.
5. Computing device according to claim 3 or 4, characterized in that the task allocator ( 8 ) has the fol lowing elements:
  • - 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.
6. Rechengerät nach Anspruch 5, dadurch gekenn­ zeichnet, daß die Dringlichkeitsstufe jeder Task der Bitposition entspricht, der die Task im Taskregister (13) zugeordnet ist.6. A computing device according to claim 5, characterized in that the urgency level of each task corresponds to the bit position to which the task in the task register ( 13 ) is assigned. 7, Rechengerät nach einem der Ansprüche 1 bis 6, da­ durch gekennzeichnet, daß die Tasks
  • - 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.
7, computing device according to one of claims 1 to 6, characterized in that the tasks
  • - 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.
8. Taskzuordnungsverfahren für ein multitaskingfähiges Rechengerät nach einem der obigen Ansprüche, mit folgenden Schritten:
  • - 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.
8. Task assignment method for a multitasking computing device according to one of the above claims, with the following steps:
  • - 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.
9. Verfahren nach Anspruch 8, dadurch ge­ kennzeichnet, daß von den prinzipiell möglichen Tasks vorbestimmte Tasks sperrbar sind. 9. The method according to claim 8, characterized ge indicates that of the principally possible Tasks predetermined tasks can be blocked.   10. Verfahren nach Anspruch 8 oder 9, dadurch ge­ kennzeichnet, daß
  • - 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.
10. The method according to claim 8 or 9, characterized in that
  • - 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 ).
DE19934301117 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 Withdrawn DE4301117A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0427558A2 (en) * 1989-11-10 1991-05-15 Mita Industrial Co. Ltd. Task switching system

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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