You are on page 1of 3

Digital Assignment – 1

Task to be completed: Propose an algorithm that predicts next task when the
current task is in execution phase
Why the algorithm is needed: On-chip memory space is limited. Therefore, we
cannot place all the tasks inside the on-chip memory. So, it is much needed for
the system to detect only those tasks that needs to be executed next and they need
to be predicted and stored inside the on-chip memory.
Platform selection: FPGA
How execution is performed?
Consider a 3D gaming application, where 3D objects are displayed. This
application is represented as a task graph as shown in Figure 1. The task graph
contains individual tasks such as decompression, rendering, texturing, shading
and rasterisation. These tasks are individual processes capable of functioning
independently but sequentially. The numbers inside the task graphs represent the
ideal execution times of the individual tasks.
Ideal execution time is the execution time of a task without any
reconfiguration overhead.

Fig. 1
Before the execution of every task, the reconfigurable unit must be
reconfigured. So that the reconfigurable module correctly behaves as an
independent hardware unit capable of executing the desired task. This
reconfiguration process takes sufficient time. Figure 2 represents the
reconfiguration latency and the process of execution of the entire application.

Fig. 2

Dynamic systems
In a dynamic system, multiple task graphs are active at any point in time.
Hence, their nature of execution is unpredictable during the design-time phase.
Only based upon the interrupts from the user, the nature of execution in a dynamic
system can be determined.
However, the sequence of tasks (From the available active task graphs) in
which they execute at run-time phase is unknown during the design-time phase.
Hence for this type of scenario, the next tasks are predicted when the current task
is in its reconfiguration or execution phase. Based on the prediction, the next tasks
are prefetched inside the on-chip memory.

Example of a dynamic system


In a static system, all the calculations and analysis of the task graphs can
be made at the design-time phase itself. Hence by proper scheduling at run-time,
most of the reconfiguration overheads can be eliminated successfully. But this is
not possible in a dynamic system, as it is impossible to decide the nature of the
task graph execution at the design-time phase. However, during the run-time
phase of a dynamic system, it is possible to predict the next task when the current
task is in its reconfiguration phase. Therefore, as the system dynamically starts
predicting the next tasks, the performance of the dynamic system could be
improved. For example, consider a dynamic system executing two task graphs
simultaneously. The task graphs include MPEG-1 and JPEG as shown in Figure
3. Each task is represented with specific notations. They can be seen at the outside
of each task. Inside each task, their ideal execution time is specified. During the
run-time phase, it is expected that these two task graphs are executed in the
fashion as shown in Figure 4.

Fig. 3

Fig. 4

You might also like