Abstract
Simultaneous Multi-Threading (SMT) is a tech-nique by which multiple independent threads can be
simulta-neously executed and it increases the system throughput. For further improving the performance of
the machine one more technique known as pipelining is implemented. Pipelining allows the SMT machine
to execute more than one function in the same cycle. Pipelining optimizes several processes such as fetch,
decode, dispatch, issue, execute and commit. Our focus is on the Dispatch Cycle in which instructions get
Dispatched from the individual re-order buffers to the shared Issue Queue. Branch Miss-Prediction
reduces the throughput of SMT machine due to the instruction flush-outs. The pipeline then has to be
refilled starting from the branch instruction, after changing the branch direction. It causes a delay in the
pipeline after which instructions will start to commit from that particular thread and this affects the overall
system throughput adversely. Our approach is to implement a technique called as selective context
blocking after context-branch evaluation. According to this technique the number of instructions a thread is
allowed to dispatch is controlled, if it has a higher Branch Miss-Prediction percent-age within the past
certain number of Branch Instructions. As a result of this we get an overall throughput increase of up to 4
% in the performance when compared to the default algorithm.
Users
Please
log in to take part in the discussion (add own reviews or comments).