Considerations when designing software for a multiprocessing system
Consider these recommended guidelines when designing a multiprocessing system.
Synchronize software execution on processors using
STREXto create a mutex or semaphore to protect critical sections and non-shareable resources.
Manage cache coherency for symmetrical and asymmetrical multiprocessing.
Execute repetitive tasks in separate threads.
Split a large task into several threads executing in parallel.
Set up a primary CPU using the CP15 CPU ID register for initialization tasks.
Use bit masking for interrupt pre-emption.
Configure the cycle counts that trigger a timer or watchdog.
These tasks are generally handled by an OS.