Ada TAsking Coprocessor

Software aspects of the ATAC

Table of contents

An overview of the ATAC instruction set

The instruction set is hereafter sorted according to the purpose of the instructions, to avoid too long a listing. For more details on the instruction set, contact: R-Tech AB

Task life instructions allow the creation of tasks, the activation of the tasks set, the completion of tasks.

Scheduling instructions allow one to activate and to suspend tasks, to change and to get the priorities of tasks, to ask if the current task has to be pre-empted, and to get the new task to run.

Entry calls operations indicate to ATAC that the current task reaches an entry call, either simple, timed, or conditional.

Accepts and selective wait operations indicate to ATAC that the current task reaches an accept statement, either with or without body, or a more complex select statement which may include delay or terminate alternative. They also indicate the end of such sequences, asking ATAC whether pre-emption is now necessary or not.

Time of day operations allow one to set and to get the current time.

Task delay operations allow one to define delay duration, and to delay the current task while getting the new task to schedule.

Interrupt management instructions assign a handling task entry to an interrupt line.

Abort and exception instructions allow one to abort tasks, to propagate exceptions, to raise asynchronous user exception, to configure exception, to perform housekeeping.

The remaining instructions allow one to operate on semaphores, to configure the chip, and to perform raw read and write accesses to the internal data structures that are handled by the chip.

Two possible scenarios for the ATAC/CPU dialogue

This section gives examples of the actions performed by the CPU and ATAC. This is given for a better understanding of the system, but is totally transparent to the user, as the compiler generates all the code with ATAC instructions already nested in it.

After reset and chip configuration, ATAC is ready to add tasks to the task set and perform scheduling among those tasks. When a task is created, its properties (e.g. the priority) are defined.

Then ATAC takes charge of the scheduling. The dialogue between ATAC and the processor can follow two scenarios depending on whether the processor must be pre-empted or not.

If a task e.g. performs a delay, the first scenario applies. At the delay instruction, the processor gives ATAC the delay duration, then asks ATAC first to delay the current task, and second to indicate the new task to schedule.

The second way for ATAC and the CPU to dialogue occurs for example when the delay duration expires. The ATAC internal timer has reached the time when a task is supposed to wake up, and the task is then activated by marking it as ready. Then ATAC checks if this task has a higher priority than the task currently being executed, and if so it sends an interrupt to the CPU to pre-empt the latter.

Note that all this computing is done internally without disturbing the CPU and that makes schedulability analysis easier and it improves the bounds considerably.

The same scenario applies when an external interrupt, wired to ATAC, is raised. ATAC performs a whole entry call that might lead to the activation of a receiver task. If that task has a higher priority than the task currently being executed, ATAC sends an interrupt to the CPU to pre-empt the task being executed.


Home Return to the ATAC page.
Jean-Loup TERRAILLON (jeanloup@wd.estec.esa.nl)

Last edited 28 November 1995


DISCLAIMER

All information is provided "as is", there is no warranty that the information is correct or suitable for any purpose, neither implicit nor explicit.

This information does not necessarily reflect the policy of the European Space Agency.


COPYRIGHT 1995 EUROPEAN SPACE AGENCY. ALL RIGHTS RESERVED.

This article may be redistributed provided that the article and this notice remain intact. This article may not under any circumstances be resold or redistributed for compensation of any kind without prior written permission from European Space Agency.