Search code examples
schedulerprocessorrtai

What are MUP (Multi Uni Processors)?


Are MUP (Multi Uni Processors) the same as multi-core processors or do they have separate CPUs inter-wired for communication? I feel AMPs are still different. Can anyone please clarify? Came across this while reading about RTAI (real time extention to linux) schedulers.. Please check the link and preferrably the first line and relevant last para.. https://www.rtai.org/userfiles/documentation/magma/html/api/sched_overview.html


Solution

  • This is RTAI (http://en.wikipedia.org/wiki/RTAI, https://www.rtai.org/) specific term to specify one of three scheduler kinds. They were defined in 2003 paper https://www.rtai.org/userfiles/documentation/documents/motioncontrol2003.pdf

    "Linux Real Time Application Interface (RTAI) in low cost high performance motion control"

    RTAI makes available three schedulers: Uniprocessor (UP), optimised for uniprocessor machines; Symmetric Multi Processors (SMP) and Multi UniProcessor (MUP) for symmetric multiprocessors applications. The SMP scheduler affords the best compromise between flexibility and efficiency in kernel space applications using RTAI proper kernel tasks, as it can schedule any ready task on any CPU, while allowing to selectively impose selected tasks to run on a specific CPU or CPUs cluster. The MUP scheduler instead imposes that any task is assigned to a specific CPU from its very creation and can achieve better performances because it can exploit memory caching more efficiently. ... There is no restriction in the use of any scheduler, real time tasks can interact without any constraint, irrespective of what CPU they are running on. SMP and MUP schedulers can be used also with uniprocessors.

    So, "UP" scheduler can use only single core of processor. "SMP" scheduler can use multiple cores (or CPUs clusters - physical processors in NUMA) to plan task on them, and can remap task from one core to other. And "MUP" scheduler can use multiple cores, but will not move tasks from one core to another. Tasks will always have their data in nearest cache with MUP, unlike "SMP" when the task may be moved away from its cached data.

    Some resources are not shared in MUP scheduler, which can be useful for combining several realtime tasks on one machine. MUP uses one timer per CPU (and SMP have common timer?):

    It is also important to note that the MUP scheduler uses independent per CPU timers and each of them can run independently from any other, so that timers mode of operation can be freely assigned, e.g. there can be periodic and oneshot timers and periodic timers need not to run at the same period.

    www.cs.ucf.edu/~lboloni/Teaching/EEL6897_2007/presentations/ZubairIlhan_RTAI.ppt

    SMP&MUP Scheduler

    • SMP can schedule tasks to more than one CPU. Different degrees of additional services can be dealt with on a specific CPU.
    • SMP scheduler remains a priority driven scheduler.
    • MUP scheduler views a multiprocessor machine as a collection of many uniprocessors. Each CPU can have its timer programmed differently.
    • With MPU, a CPU can run in periodic mode while another running in one-shot mode.