A method of executing more than one thread at a time in a computer system
that has a plurality of threads, including a first and second thread. The
method comprises providing a first and a second reorder buffer, reading
first instructions and first operands associated with the first thread
from the first reorder buffer, executing one of the first instructions
and storing a result in the first reorder buffer which includes marking
the result with a tag associating the result with the first thread,
reading second instructions and second operands associated with the
second thread from the second reorder buffer, and executing one of the
second instructions and storing a result in the second reorder buffer
which includes marking the result with a tag associating the result with
the second thread.