{'fraction_non_alphanumeric': 0.03597122302158273, 'fraction_numerical': 0.0, 'mean_word_length': 5.95625, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Hardware/software partitioning heuristics approaches

Hardware/Software partitioning presents a critical problem in the co-design methodology. It resides on deciding which processes of the embedded application should be executed on a specific hardware architecture and which ones can be implemented on general purpose processor (software architecture), taking into account a set of constraints. The hardware architecture is selected to increase the embedded system performance (execution time, area, energy, etc.) and speedup design. However, the software architecture is more flexible and inexpensive. It is, generally, chosen to decrease the design cost and complexity. Several significant research work on hardware/software partitioning techniques and/or algorithms exist. In this paper, we will presents a comparative study of different hardware/software partitioning algorithms. Performance analysis reveals that Particle Swarm Optimization (PSO) algorithm outperforms Simulated Annealing (SA) algorithm, Ant Colony Optimization (ACO), algorithm Genetic Algorithm (GA) and the Fuzzy C-Means (FCM) algorithm.