New Arrandale-Powered MBPs Question

jcan

Registered
Hello,

As you well know, Apple today announced the new Macbook Pro family, which offers Arrandale i5 & i7 processors for the 15'' and 17'' models. I am quite tempted...! :)

I have a question, though: As far as I know Arrandale is a dual-core processor; however, Apple states that thanks to a hyper-threading technique, the i5 & i7 processors of the MBP can at several occasions run four virtual cores simultaneously.

What does that mean exactly? It means that in effect the MBP Arrandale is a quad-core processor, comparable to the Nehalem or at least the Core 2 Quad? Or in practice it will be much slower than both the above?
 
The Arrandate processor is dual-core. The processor will create double that as virtual cores, when running multiple-threaded apps. At that time, your Mac will operate as if it has 4 cores. The processor will also cut back to dual or even single core when running single-threaded operations, and the extra virtual cores are not needed. At the same time, the clock speed will clock up automatically.
The processor will shift to various modes as you work, depending on what you are running. The effect is higher performance, while using as little power as possible.

I know my explanation is simplistic, but the point to remember is the one about effects. Arrandale is a good leap ahead in performance, combined with low power needs. Good stuff for laptops, eh?
 
I thought I might chip in...

A "virtual core" or what is often called a virtual thread is simply a second set of registers. I say "simply" not to down play it or to say that it is easy to do but to indicate that this is a simple way to think of it.

These processors for a long time operate much faster than their memory subsystems. If a data item is not in cache, what does it do? With one thread, it just waits. But with a second virtual thread, it can make forward progress on that context until it hits something that is not in cache. At that time, it can probably switch back to the first thread and make forward progress on that thread.

If you think back to the days when operating systems were first coming out, it was a great leap forward to have multi tasking because when data was paged out to disk, the operating system could switch to a new process and continue working as the data was fetched from disk. Virtual threading is a very similar concept except "memory" and "disk" is now "l3 cache" and "memory" and the OS doesn't do the switching but the hardware does itself.

BUT... from the text I read, it sounds like Apple's OS can only use the virtual threads when it is for the same process. AIX and their PowerPC chips can put any mix of threads from different processes. I wonder if this is an OS limitation, a chip limitation, or just not being properly stated. For example, if I had four compute bound processes, can all of them make forward progress without help from the OS?
 
Back
Top