{'fraction_non_alphanumeric': 0.017959183673469388, 'fraction_numerical': 0.0, 'mean_word_length': 5.5212765957446805, '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}}
A lightweight instruction-set simulator for teaching of dynamic instruction scheduling

Extensive use of dynamic instruction scheduling technique has made it an essential content of Computer Architecture (CA) course. Practical teaching for this content, however, is always a weak link in the teaching of CA. According to current teaching methods, teachers just explain the principle of dynamic instruction scheduling by traditional or multimedia instruction. This kind of method is far from effective for students to understand dynamic scheduling technique. Therefore, it is necessary to adopt experiment-based methods. In this paper, we propose a lightweight simulator framework for the teaching of CA, especially for pipelining and dynamic instruction scheduling. We firstly design a basic simulator called PipelineSim which supports a basic five-stage MIPS pipeline. Scoreboarding and Tomasulo are then introduced to be integrated into PipelineSim. Students can implement either Scoreboarding or Tomasulo algorithm based on this framework instead of just understanding these two mechanisms by lectures. We also provide an example of designed experiment, which can be the reference or teaching resource for teachers to use.