Complex homogeneous systems are common in server environments that use symmetrical multiprocessing (SMP) or clusters of similar platforms. Yet complex embedded systems frequently incorporate different and even unique platforms.
When it comes to designing systems and software for heterogenous systems, designers often need a multitude of tools designed for each platform within the system. Reducing the support software and number of tools can simplify the problem as well as minimize the number of interface points at all levels.
Unfortunately, simply using two or more integrated development environments (IDEs) and programming languages means that developers still must contend with differences not only between the target platforms but also between the tools.
A Model Of Complexity
Model-based graphical design tools (see figure) can span the differences in target complexity in a heterogenous system. This minimizes the expertise and time required of developers, enabling them to concentrate on the application aspects of the design.
Hierarchical models allow implementation-specific details to be moved down the hierarchy, but this means a submodel often may span more than one target platform. If the modeling system is generating application artifacts such as C code, in theory, it then is up to the modeling system to handle the target platform differences.
The model system can provide advantages as well as disadvantages in handling these differences. While developers may be able to translate a model to application code for the desired targets, the number of supported targets may be limited. No tool supports all arbitrary targets. Also, a developer's ability to add support for a new target varies depending on the tool that's used and the developer's time and expertise.
A Single Model To Rule Them All
Still, model-based graphical design offers a significant advantage since a model can be used to generate support for different targets. Likewise, designers usually can adjust how a model is mapped onto target platforms. For example, one target of a heterogeneous system might be an FGPA. Change the type of chip used, and more of the model may fit into the FPGA. Split another way, the model may map across multiple microcontrollers. Regardless of the targets, the same model can be used.