Multi-core processors - An overview <s> Multi-core processors <s> Computer performance has been driven largely by decreasing the size of chips while increasing the number of transistors they contain. In accordance with Moore's law, this has caused chip speeds to rise and prices to drop. This ongoing trend has driven much of the computing industry for years. Manufacturers are building chips with multiple cooler-running, more energy-efficient processing cores instead of one increasingly powerful core. The multicore chips don't necessarily run as fast as the highest performing single-core models, but they improve overall performance by handling more work in parallel. Multicores are a way to extend Moore's law so that the user gets more performance out of a piece of silicon. Chip makers AMD, IBM, Intel, and Sun are now introducing multicore chips for servers, desktops, and laptops. <s> BIB001 </s> Multi-core processors - An overview <s> Multi-core processors <s> In the past, processor design trends were dominated by increasingly complex feature sets, higher clock speeds, growing thermal envelopes and increasing power dissipation. Recently, clock speeds have tapered and thermal and power dissipation envelopes have remained flat. However, the demand for increasing performance continues which has fueled the move to integrated multiple processor (multi-core) designs. This paper discusses this trend towards multi-core processor designs, the design challenges that accompany it and a view of the research required to support it. <s> BIB002 </s> Multi-core processors - An overview <s> Multi-core processors <s> Intel has announced that most of its future processors will contain more than one execution core. This talk will explain the rationale for this decision and discuss why multi-core processors deliver energy-efficient performance. <s> BIB003 </s> Multi-core processors - An overview <s> Multi-core processors <s> The scaling of technology and the diminishing return of complicated uniprocessors have driven the industry towards multicore processors. While multithreaded applications can naturally leverage the enhanced throughput of multi-core processors, a large number of important applications are single-threaded, which cannot automatically harness the potential of multi-core processors. In this paper, we propose a compiler-driven heterogeneous multicore architecture, consisting of tightly-integrated VLIW (Very Long Instruction Word) and superscalar processors on a single chip, to automatically boost the performance of single-threaded applications without compromising the capability to support multithreaded programs. In the proposed multi-core architecture, while the high-performance VLIW core is used to run code segments with high instruction-level parallelism (ILP) extracted by the compiler; the superscalar core can be exploited to deal with the runtime events that are typically difficult for the VLIW core to handle, such as L2 cache misses. Our initial experimental results by running the preexecution thread on the superscalar core to mitigate the L2 cache misses of the main thread on the VLIW core indicate that the proposed VLIW/superscalar multi-core processor can automatically improve the performance of single-threaded general-purpose applications by up to 40.8%. <s> BIB004 </s> Multi-core processors - An overview <s> Multi-core processors <s> General-purpose multicore processors are being accepted in all segments of the industry, including signal processing and embedded space, as the need for more performance and general-purpose programmability has grown. Parallel processing increases performance by adding more parallel resources while maintaining manageable power characteristics. The implementations of multicore processors are numerous and diverse. Designs range from conventional multiprocessor machines to designs that consist of a "sea" of programmable arithmetic logic units (ALUs). In this article, we cover some of the attributes common to all multicore processor implementations and illustrate these attributes with current and future commercial multicore designs. The characteristics we focus on are application domain, power/performance, processing elements, memory system, and accelerators/integrated peripherals. <s> BIB005 </s> Multi-core processors - An overview <s> Multi-core processors <s> With modern techniques that allow billions of transistors on a chip, microprocessor design is going to a world of multicore. A cluster of multicores will be commonly used as an efficient computational platform for high performance computing in the near future. Correspondingly, the resource providers, who share their computing elements and storage with customers, will also upgrade their machines to the multicore architecture. At the same time, the dominating resource sharing platforms, in the form of compute Grids, are facing a grand challenge from Cloud computing. With an easy interface, high-level services, and on-demand provision of compute resources, compute Clouds are attracting more users to join their realm. Upcoming Cloud environments will be primarily built on top of multicore technologies. However, to fully exploit the computational capacity and the other advantages of multicores, a lot of novel techniques must be proposed and investigated. This paper serves as an overview for multicore technologies in the context of Cloud computing. This paper firstly introduces multicore technologies and the Cloud computing concept. Then it investigates various open research issues in the context of multicore Cloud computing, for example, how to efficiently employ multicore techniques for Cloud computing, how to achieve the high performance of multicore for high performance applications in the Cloud environments. Several examples and discussion are presented. <s> BIB006 </s> Multi-core processors - An overview <s> Multi-core processors <s> This heterogeneous mixture of soft-programmable cores with dedicated logic a mash-up of cores is likely to be the future of computation and much of chip design because traditional methods are getting too expensive. <s> BIB007
"A Multi-core processor is typically a single processor which contains several cores on a chip" BIB006 . The cores are functional units made up of computation units and caches BIB006 . These multiple cores on a single chip combine to replicate the performance of a single faster processor. The individual cores on a multi-core processor don't necessarily run as fast as the highest performing single-core processors, but they improve overall performance by handling more tasks in parallel BIB001 . The performance boost can be seen by understanding the manner in which single core and multi-core processors execute programs. Single core processors running multiple programs would assign time slice to work on one program and then assign different time slices for the remaining programs. If one of the processes is taking longer time to complete then all the rest of the processes start lagging behind. BIB001 However, In the case of multi-core processors if you have multiple tasks that can be run in parallel at the same time, each of them will be executed by a separate core in parallel thus boosting the performance as shown in figure 2 BIB001 . Figure 2 . Multicore chips perform better -based on Intel tests using the SPECint2000 and SPECfp2000 benchmarksthan single-core processors. BIB001 The multiple cores inside the chip are not clocked at a higher frequency, but instead their capability to execute programs in parallel is what ultimately contributes to the overall performance making them more energy efficient and low power cores as shown in the figure below  . Multi-core processors are generally designed partitioned so that the unused cores can be powered down or powered up as and when needed by the application contributing to overall power dissipation savings. Figure 3: Dual core processor at 20% reduced clock frequency effectively delivers 73% more performance while approximately using the same power as a single-core processor at maximum frequency.  Multi-core processors could be implemented in many ways based on the application requirement. It could be implemented either as a group of heterogeneous cores or as a group of homogenous cores or a combination of both. In homogeneous core architecture, all the cores in the CPU are identical BIB005 and they apply divide and conquer approach to improve the overall processor performance by breaking up a high computationally intensive application into less computationally intensive applications and execute them in parallel BIB002 . Other major benefits of using a homogenous multi-core processor are reduced design complexity, reusability, reduced verification effort and hence easier to meet time to market criterion BIB004 . On the other hand heterogeneous cores consist of dedicated application specific processor cores that would target the issue of running variety of applications to be executed on a computer BIB002 . An example could be a DSP core addressing multimedia applications that require heavy mathematical calculations, a complex core addressing computationally intensive application and a remedial core which addresses less computationally intensive applications BIB002 . Multi-core processors could also be implemented as a combination of both homogeneous and heterogeneous cores to improve performance taking advantages of both implementations. CELL multi-core processor from IBM follows this approach and contains a single general purpose microprocessor and eight similar area and power efficient accelerators targeting for specific applications has proven to be performance efficient BIB002 . "Another major multi-core benefit comes from individual applications optimized for multi-core processors. These applications when properly programmed, can split a task into multiple smaller tasks and run them in parallel  ". Due to the multiple advantages that multi-core processors come along with, most of the processor manufactures started developing them. Intel announced that all its future processors will be multicore when they realized that this technology can get past the power wall to improve performance BIB003  . Other popular processor manufactures namely AMD, IBM and TENSILICA all have started developing multi-core processors. The number of cores in a processor is expected to increase and some even predict it to follow Moore's law  . TENSILICA's CEO has expressed his view on this technology stating that "System on a Chip will become a sea of processors. You will have ten to maybe a thousand processors on a chip" BIB007 . However it was observed that there is no throughput improvement while executing sequential programs/single threaded applications on multi-core chips due to under utilization of cores. Compilers are being developed which automatically parallelize applications so that multiple independent tasks can run simultaneously on different cores  .