{'fraction_non_alphanumeric': 0.017663043478260868, 'fraction_numerical': 0.0, 'mean_word_length': 5.404347826086957, '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}}
On Achieving Maximum Performance in Time-Varying Arrays

Several important computationally intensive algorithms can be implemented on special purpose VLSI arrays. A number of such algorithms naturally map onto either heterogenous arrays or arrays employing PEs with switchable functions, or both. In many cases, such designs are the only known ones for VLSI implementation. Synchronization is generally achieved by assuming that the time required to perform basic PE computations is uniform, although the PEs perform different functions and may change their functions at different algorithmic steps. This simplistic approach may result in significant performance degradation. This paper addresses the properties, performance, and theory of time-varying heterogeneous arrays for the objective of achieving maximum performance. A systematic method for collision avoidance is formally introduced and analyzed. Our approach is based on dynamically balancing a two-level pipelined array through the use of a set of buffers. Another set of buffers is used to guarantee data synchronization. We show that if the initial delays (PE execution times) and the time variances are deterministic, an equivalent time-invariant array can be constructed (in polynomial time) which is optimal in speed. We describe a method for estimating the upper bound on computational time when array time variance is nondeterministic. Our method requires only knowledge of the bounds on initial delays.