One embodiment of the present invention facilitates favoring the
performance of a single-threaded application in a computer system that
supports simultaneous multi-threading (SMT), wherein multiple threads of
execution simultaneously execute in an interleaved manner on functional
units within a processor. During operation, the system maintains a
priority for each simultaneously executing thread. The system uses these
priorities in allocating a shared computational resource between the
simultaneously executing threads, so that a thread with a higher priority
is given preferential access to the shared computational resource. This
asymmetric treatment of the threads enables+ the system to favor the
performance of a single-threaded application while performing
simultaneous multi-threading.