May 31, 2011 14:19 GMT  ·  By

Applications that use multiple CPU cores are growing in number, but the processors themselves could always do with some better capabilities, much like every other piece of hardware out there, and it looks like a team of researchers found a way to make this happen.

Prefetching is one of the operations that a CPU core can carry out in order to optimize chip performance, since all cores have a limited bandwidth for retrieving off-chip data.

This feature uses the cache memory to predict what data the core will need in the future, after which it retrieves it before the core itself actually needs to access it.

Now, researchers from the NC State University presented two techniques that, although still only theoretical, could, respectively, increase the efficiency of prefetching and allocate bandwidth required to particular cores.

Basically, cores should be able to turn prefetching on or off, depending on need, while this, along with the new bandwidth allocation procedure, would boost performance by 10% (40% compred to chios that don't prefetch).   Then again, since all chips (except many-core graphics ones, maybe) do use prefetching, the 10% might be the limit. Still, the allocation techniques have merit if they can be implemented easily enough.

“The first technique relies on criteria we developed to determine how much bandwidth should be allotted to each core on a chip. Some cores require more off-chip data than others. By better distributing the bandwidth to the appropriate cores, the criteria are able to maximize system performance,” said Dr. Yan Solihin, associate professor of electrical and computer engineering at NC State and co-author of a paper describing the research.

“The second technique relies on a set of criteria we developed for determining when prefetching will boost performance and should be utilized as well as when prefetching would slow things down and should be avoided.”