Eclipse defines a heterogeneous multiprocessor architecture for high-performance streaming mdia as a sub-system of a system-on-silicon platform for the consumer electronics market. The scalable architecture template supports multiple function-specific coprocessors that operate in parallel and independently. Each coprocessor is multi-tasking, allowing multiple applications to proceed concurrently. Eclipse instances combine application configuration flexibility with the efficiency of function-specific hardware.
The eclipse template introduces novel hardware units, called "shells", dedicated to each coprocessor. The combination of limited available buffer memory and high data-bandwidth causes high task-switch rates and syncronization rates, necessitating full support by the shell. Thereto, each shell implements a task scheduler and a transport synchronization unit. The task scheduler is designed for a dynamic workload environment with guarantees for minimum resource budgets, and achieves on-line task selection within 10 clock cycles.