The exploration aims at finding a configuration optimizing a desired objective function, where a configuration consists of a set of parameters. The number of parameters determines the
number of dimensions in the design space. The parameters may be related to the program configurations (i .e., mapping of processing kernels to the available hardware/software ele- ments, dimensioning the buffers between the kernels), but also to the architecture parameters, such as custom datapath designs, cache sizes and instruction sets [154]. The exploration can be performed according to different optimization criteria. In [155], a search is described for an assignment of program components to hardware and software components, so that a trade-off between the performance and the code size is achieved. In [156], complexity of the implementation is introduced as a design variable, and a trade-off between the performance and the complexity is searched for. In this case, the design space consists of different/similar designs and their fitness to the aforementioned optimization criteria is measured. The work discussed in [157] considers a mapping of KPN processes, where binary decision variables are introduced to represent the mapping of the KPN nodes and edges to the processing- and memory elements, respectively. The optimization considers three criteria: performance, power consumption and cost. The same optimization criteria are considered in [158], where a solution method for the mapping decision problem represented as a multi-objective com- binatorial problem is proposed. A performance and power trade-off is an objective of the exploration described in [159]. In that work, the design space results from adjusting parameter values for a fixed application mapped onto the SoC architecture. The exploration is performed using the Y-chart consisting of the architecture, applications and performance measures. An interesting formulation of the DSE problem can be found in [160, 161]. The set of configura- tions that must be specified consists of an allocation of the architecture components, a binding of the processes to the components and defining a scheduling. It is assumed that all solutions can be described and explored, but some of them are infeasible. Hence, the exploration aims at establishing the feasible solutions and returns a set of solutions of different quality with regards to different design objectives. The exploration is performed using Multi-Objective Evolutionary Algorithms (MOE As). Since the size of the design space is usually huge, an exhaustive exploration is possible only for very small instances of the problem. For any larger instances, it must be decided how the design space should be explored. One possible option is to perform a random sampling, which can provide an unbiased view of the space [156]. In contrast, using heuristics instead of a random sampling may reduce the size of the space by rejecting unsatisfactory solutions followed by identifying solutions which are best in terms of certain objective functions [162]. Further techniques can be also developed to reduce the size of the space and hence improve the exploration efficiency (e.g ., dedicated filtering techniques, as proposed in [163]). The aforementioned work ([159]) points to an opportunity for reducing the size of the explored space by identifying dependencies between the parameters. Hence, the exploration can be performed only for a subset of parameters, according to the created dependency model. Another approach proposed in [154] is to decompose the space into subproblems. Due to such branching, different problem blocks can be solved independently from each other.
An important aspect of design space exploration is a performance estimation which should allow correctly evaluating different solutions and enabling performing moves (i .e., minor structured modifications) from one solution to another. Since such an evaluation is often time consuming, an estimation can be based on two different models, as described in [164]. One model is more accurate, but time consuming, whereas the other is quicker and simpler, but less accurate. This type of trade-off between accuracy and speed is well-known in other fields, especially if simulation is required to accurately evaluate a solution (e.g ., [165]). Another idea is to use a visualization of the space to help locate the optimal points [166]. It is, however, limited only to three dimensions.
Apart from establishing a, hopefully, close-to-optimal solution, especially for the case of multi- criteria objective functions, it might be important to provide a set of high-quality solutions. In [159], a set of Pareto-optimal configurations is explored, where each solution is better than the others according to at least one criterion. On the other hand, the Multi-Criteria Decision Making (MC D M ) introduced in [164] performs a ranking of solutions rather than choosing the best one.
Summarizing different ideas of reducing the size of the space or making the exploration process more efficient, it has to be concluded that the discussed approaches cannot be really adapted to the design space exploration problem discussed in this work. The considered configurations remain tightly connected and a setting applied to one of them may strongly affect the exploration opportunities of the others. Hence, the targeted problem remains in any case NP-complete and multidimensional.