{'fraction_non_alphanumeric': 0.016695957820738138, 'fraction_numerical': 0.0035149384885764497, 'mean_word_length': 5.471590909090909, '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}}
Dynamic acceleration management for SystemC emulation

Field-programmable gates arrays (FPGAs) have recently been used to emulate SystemC descriptions. Emulation of SystemC descriptions allows for in-system testing, and has been shown to compare favorably with SystemC simulations on a PC when acceleration engines are employed. A limit on the number of acceleration engines that can fit on a SystemC emulation platform creates new dynamic management problems involving decisions as to when and which acceleration engines to load with SystemC bytecode. We define an acceleration management problem for SystemC emulation platforms. In contrast to previous works that focus on statically improving SystemC (and the more general event-driven) simulations, we utilize dynamic online algorithms to manage the use of a limited number of SystemC acceleration engines in an emulation framework, where the kernel must adapt and react to a dynamically changing event queue. We test several online heuristics, and show that we can achieve 14X improvement over software-only emulation and 3.8X over statically preloading SystemC acceleration engines.