The communication between hardware components in embedded systems is steadily growing as more and more software functions are necessary to fulfill the requirements of modern systems, like cars in the automotive area. As a result, the capacity of the communication transport system is quickly exceeded. Besides the possibility to exchange the physical connection, another one is to analyze the system and e.g. reallocate the functions in order to reduce the communication overhead. In this paper, an approach is presented which is based on the idea of redundancy, however, not in the sense of reliability, but to create solutions where software functions of are duplicated and allocated to other hardware components additionally. The approach is demonstrated on a real-world problem instance with functions of a plug-in electric driven vehicle, where an existing implementation serves as reference during the optimization, and other public problem instances. Results show that further improvements, in comparison to the optimization without redundancy, are achieved that require only a few duplicates to reduce the communication between hardware components.