A method and apparatus for implementing vertical multi-threading in a
microprocessor without implementing additional signal wires in the
processor has been developed. The method uses a pre-existing signal to
serve as a multi-function signal such that the multi-function signal can
be used for clock enable, clock disable, and scan enable functions. The
single multi-function signal exhibits multiple functionalities as needed
by a flip-flop to operate in a plurality of modes. The method allows for
the use of a pre-existing signal wire to be used as a process thread
switch signal that would otherwise have to be explicitly hard-wired in
the absence of the multi-functioning signal. The method further includes
allowing multiple-bit flip-flops to be placed at sequential stages in a
pipeline in order to facilitate vertical multi-threading and, in effect,
increase processor performance. The apparatus provides means for
distinguishing between specific characteristics exhibited by the
multi-function signal. The apparatus further provides means for
generating intermediary signals within a control block and then
generating output signals to a data storage block. The apparatus also
involves generating timing signals to a plurality of flip-flops dependent
upon the behavior of the multi-function signal.