{'fraction_non_alphanumeric': 0.02459016393442623, 'fraction_numerical': 0.0, 'mean_word_length': 5.262820512820513, '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}}
MRAPI resource management layer on reconfigurable systems-on-chip

A major challenge of heterogeneous reconfigurable System-on-Chip (SoC) is how to fulfil inter-processing element communication without sacrificing performance, ease of programming and portability. In such a platform, the application is divided into threads managed by an operating system, and whereas some threads are implemented as hardware accelerators that can run across different partitions of the chip, others run as software threads on embedded processors. Relying on the Multicore Resource management API (MRAPI) specification and client-server mechanisms, this article describes a way to provide hardware threads the same kind of access to OS services that software threads have, whatever is the core they are running on. As a case-study, we introduce in this work a real implementation (SW and HW) of this API and quantifies the overhead cost of this abstraction layer on top of an operating system.