Multicore Processors




Multicore Processors

Till recently, the approach used for building faster processors was to keep reducing the size of chips. while increasing the number of transistors they contain. Although, this trend has driven computing industry for several years, it has now been realized that transistors cannot shrink forever. Current transistor technology limits the ability to continue making single-core processors more powerful due to following reasons -

As a transistors gets smaller, the gate, which switches the electricity ON an OFF, gets thinner and less able to block flow of electrons. Thus, small transistors tend to use electricity all the time, even when they are not switching. This wastes power.

Increasing clock speeds causes transistors to switch faster and generate more heat and consume more power.

These and other challenges forced processor manufacturers to research for new approaches for building faster processors. In response, manufacturers came out with the idea of building multicore processor chips instead of increasingly powerful (faster) single-core processor chips. That is, in the new architecture, a processor chip has multi cooler-running, more energy-efficient processing cores instead of one increasingly powerful core. The multicore chips do not necessarily run as fast highest performing single-core models, but they improve over all performance by handling more work in parallel. For instance, a dual-core chip running multiple applications is about 1.5 times faster than a chip with just one comparable core.

Operating system (OS) controls overall assignment of tasks in a multicore processor. In a multicore processor, each core has its independent cache (though in some designs all cores share the same cache ), thus providing, the OS with sufficient resources to handle multiple applications in parallel. When a single-core chips runs multiple programs, the OS assigns a time slice to work on one program and then assigns different time slices for other programs. This can cause conflicts, errors, or slowdowns when the processor must perform multiple tasks simultaneously. However, a multicore chip can run multiple programs at the same time with each core handling a separate program. The same logic holds for running multiple threads of a multithreaded application at the same time on a multicore chip with each core handling a separate thread. Based on this, either the OS or a multithread application parcels out work to multiple cores.

Multicore processors have following advantages over single-core processors -

They enable building of computers with better overall system performance by handling more work in parallel.

For comparable performance, multicore chips consume less power and generate less heat than single-core chips. Hence, multicore technology is also referred to as energy-efficient or power-aware processor technology.

Because the chips' cores are on the same die in case of multi core processors architecture, they can share architectural components, such as memory elements and memory management. They thus have fewer components and lower costs than systems running multiple chips (each a single-core processor).

Also signaling between cores can be faster and use less electricity than on multichip systems.

Multicore processors, however, currently have following limitations -

To take advantage of multicore chips, we multi redesign applications so that the processor can run them as multiple threads. Note that it is challenging to create software that multithreaded.

To redesign applications, programmers must find good places to break up the applications, divide the work into roughly equal pisces that can run at the same time, and determine the best times for the threads to communicate with one another. All these add to extra work for programmers.

Software vendors often charge customers for each processor that will run the software (one software license per processor). A customer running an application on an 8-processor machine (multiprocessor computer) with single-core processors would thus pay for 8-licenses. A key issue with multicore chips is whether software vendors should consider a processor to be a single core or an entire chip. Currently, different vendors have different views regarding this issue.

Some consider a processor as a unit that plugs into a single socket on the motherboard, regardless of whether it has one or more cores. Hence, a single software license is sufficient for a multicore chip. On the other hand, others charge more to use their software on multicore chips for per-processor licensing. They are of the opinion that customers get added performance benefit by running the software on a chip with multiple cores, so they should pay more. Multicore-chip makers are concerned that this type of non-uniform policy will hurt their products' sales

Chip makers like Intel, AMD, IBM, and Sun have already introduced multicore chips for servers, desktops, and laptops. The current multicore chips are dual-core (2 cores per chip), quad-core (4 cores per chip), 8 cores per chip, and 16 cores per chip. Industry experts predict that multicore processors will be useful immediately in server class machines but won't be very useful on the desktop systems until software vendors develop considerably more multithreaded software. Until this occurs, single-core chips will continue to be used. Also, since single-core chips are inexpensive to manufacture, they will continue to be popular for low-priced PCs for a while.