Issue mechanism for embedded Simultaneous Multithreading processor
Simultaneous Multithreading (SMT) technology enhances instruction throughput by issuing multiple instructions from multiple threads within one clock cycle. For in-order pipeline to each thread, SMT processors can provide large number of issued instructions close to or surpass than using out-of-order pipeline. In this work, we show an efficient issue logic for predicated instruction sequence with the parallel flag in each instruction, where the predicate register based issue control is adopted and the continuous instructions with the parallel flag of V are executed in parallel. The flag is pre-defined by a compiler. Instructions from different threads are issued based on the round-robin order. We also introduce an Instruction Queue skip mechanism for thread if the queue is empty. Using this kind of issue logic, we designed a 6 threads, 7-stage, in-order pipeline processor. Based on this processor, we compare round-robin issue policy (RR(T(1)-T(n))) with other policies: thread one always has the highest priority (PR(T(1))) and thread one or thread n has the highest priority in turn (PR(T(1)-T(n))). The results show that RR(T(1)-T(n)) policy outperforms others and PR(T(1)-T(n)) is almost the same to RR(T(1)-T(n)) from the point ofview of the issued instructions per cycle.
simultaneous multithreading parallel flag balance round-robin policy