The event-driven XCore processor runs multiple real-time tasks simultaneously using hardware threads. Each thread executes RISC-style instructions and shares access to memory. Threads can run standard computational code, DSP code and control software (taking logic decisions, or executing a state machine). Threads can also use tightly coupled ports to control I/O pins with precision timing and interact with each other using hardware communication channels.
Threads have fully deterministic behavior, with a guaranteed share of the processing power and memory bandwidth, and guaranteed response times to external events.
The key to designing both hardware and software in a unified high-level abstraction is the XC programming language. XC is based on the widely used C language, with extensions to support concurrency, events, I/O, precision timing and communication.
Download and read it here: http://bit.ly/UnifiedDesign