Multi-core Support on a Robot Controller
Abstract: The demand for high performance, accuracy, and other requirements is increasing due to the numerous complex functionalities that an industrial robot performs such as arc welding. The software support and utilization of multi-cores can achieve higher performance, lower latency, and lower energy consumption compared to uni-processors. This project is a part of continuous research and it forms a baseline data for the development of the robot controller’s main computer and assists in the hardware and software support for multi-cores. It investigates, evaluates, and compares the implementations and usages of different task communication mechanisms in ABB’s robot software (RobotWare). It investigates the startup system in RobotWare and proposes software architectural solutions related to multi-core scheduling and the task communication mechanisms. Furthermore, the caching cost when pinning tasks to specific cores was inspected. Moreover, the functionality of Priority Inheritance Protocol (PIP) in RobotWare was evaluated and compared between a multi-core and single-core processor. Results show the trade-offs, overhead, caveats, and performance when using each communication mechanism, and when applying them in redesigning the startup code in a way that minimizes the startup time and improves the modularity with respect to multi-core scheduling. It was investigated when can the PIP be useful or redundant in a multi-core environment. Tests regarding caching show different limitation of the currently used processor. Based on the results, it is recommended to change the CPU type and provide the software support that is need to include certain features like cache reservation which eventually solves the problems concerning the contention on the shared cache. Also, a more sophisticated communication paradigm is needed to be designed and implemented especially in a software architecture like the system startup where many client/tasks are waiting for one signal from a server task. Thus, the redesign of the startup code can be implemented with following the strategies and experiments investigated in this thesis with regards to multi-core scheduling, task communication, and avoiding the issues due to using multi-cores.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)