Improving single-process performance with multithreaded processors
Alexandre Farcy, Olivier Temam · 1996
Mukithreaded processors are an attractive alternative to superscalar processors.Their ability to handle multiple threads simultaneously is likely to result in higher instruction throughput andinbetter utilization of functional units, though they can still benefit from many (hardware and software) functionalities of superscalar processors and thus consist in an evolution rather than a radical transformation of current processors.However, to date, multithreaded processors have been mostly shown capable ofimproving theperformance ofmultiple-process workloads, i.e. threads with independent contexts, but in order to compete with superscalar processors, they must also prove their ability to improve single-process performance.In this article, it is proposed to improve single-process performance by simply pamllelizing a process over several threads sharing the same context, using automatic parallelization techniques already available for multiprocessors.The purpose of this article is toanalyze the impact of shared-context worfdoads on both processor architecture and processor performance.On afh-st hand, basedon previous research works and by reusing many components of superscalar processors, a multithreaded processor architectureis defined.Then, considering theissues raised by sharedcontext workloads on data cache architectures have mostly been ignored up to now, we attempt to determine how current cache architectures can evolve to cope with shared-context workloads.The impact ofshared workloads onthis architecture is analyzed in details, showing that, like multiprocessors, multithreaded processors exhibit performance bottlenecks of their own that limit single-process speedups.