Means to stop hardware scheduler

Technical discussions around xCORE processors (e.g. xcore-200 & xcore.ai).
Post Reply
ruuddb
New User
Posts: 2
Joined: Sat Jan 18, 2014 2:28 pm

Means to stop hardware scheduler

Post by ruuddb »

Hi,

Is there a way to stop the hardware scheduler from switching to the next thread?
I'm trying to port my pre-emptive kernel to XMOS and would like to keep
the ability to run higher priority task by stopping all others.

The idea is to assign every high priority task to a single thread and
run the "less" important ones on the remaining threads.

Best regards,

Ruud


User avatar
Bianco
XCore Expert
Posts: 754
Joined: Thu Dec 10, 2009 6:56 pm
Contact:

Post by Bianco »

You can't prioritize different hardware threads.
The XMOS processor is a barrel processor by design and one instruction requires 4 cycles to execute.
For more than 4 threads round-robin scheduling is used of the ready threads
You may find my project interesting: http://xtask.org/xmos_thesis.pdf I promise, I will release the source code some day :p
ruuddb
New User
Posts: 2
Joined: Sat Jan 18, 2014 2:28 pm

Post by ruuddb »

Thanks for the project file. I've learned a few things from it.

One of the problems present in your solution is the blocking of sending
tasks (which is not allowed for my type of control systems, based
on state machines).

My RTOs design (from 2003) already took in to account that it had to be
able to run on multiple processors and use message passing between
multiple processors (using ID/name identification and producer/consumer
principle), so that will not be a problem.

The only thing I will have to change is to put my kernel householding
data in a freely relocatable struct. Since the rest of all my data
(tcb/messageboxes,etc) can be created on the fly or during compile time,
i don't need to change anything for that part of the kernel.

Regards,

Ruud
Post Reply