کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
524689 | 868829 | 2011 | 16 صفحه PDF | دانلود رایگان |
![عکس صفحه اول مقاله: Architectural support for thread communications in multi-core processors Architectural support for thread communications in multi-core processors](/preview/png/524689.png)
In the ongoing quest for greater computational power, efficiently exploiting parallelism is of paramount importance. Architectural trends have shifted from improving single-threaded application performance, often achieved through instruction level parallelism (ILP), to improving multithreaded application performance by supporting thread level parallelism (TLP). Thus, multi-core processors incorporating two or more cores on a single die have become ubiquitous. To achieve concurrent execution on multi-core processors, applications must be explicitly restructured to exploit parallelism, either by programmers or compilers. However, multithreaded parallel programming may introduce overhead due to communications among threads. Though some resources are shared among processor cores, current multi-core processors provide no explicit communications support for multithreaded applications that takes advantage of the proximity between cores. Currently, inter-core communications depend on cache coherence, resulting in demand-based cache line transfers with their inherent latency and overhead. In this paper, we explore two approaches to improve communications support for multithreaded applications. Prepushing is a software controlled data forwarding technique that sends data to destination’s cache before it is needed, eliminating cache misses in the destination’s cache as well as reducing the coherence traffic on the bus. Software Controlled Eviction (SCE) improves thread communications by placing shared data in shared caches so that it can be found in a much closer location than remote caches or main memory. Simulation results show significant performance improvement with the addition of these architecture optimizations to multi-core processors.
Research highlights
► Multi-core processors do not provide explicit communications support for multithreaded applications, resulting in data coherence traffic and cache misses.
► Prepushing reduces data coherence traffic and eliminates misses in destination caches.
► Software Controlled Eviction improves thread communications by placing shared data in shared caches.
► Simulation results show significant performance improvement.
► Both approaches provide the same execution time improvement, but perform differently in terms of cache misses and data requests.
Journal: Parallel Computing - Volume 37, Issue 1, January 2011, Pages 26–41