CPU for dummies ;)

liolio

Aquoiboniste
Legend
Hello everybody.

Lately I find very interesting thread in regard to cpu.

Mainly this thread :

IBM unveils Cell roadmap http://www.beyond3d.com/forum/showthread.php?t=36335

SSE4, future processors and GPGPU thoughts http://www.beyond3d.com/forum/showthread.php?t=35968

Future console CPUs: will they go back to OoOE, and other questions. http://www.beyond3d.com/forum/showthread.php?t=33335&highlight=future+of+console+cpu

Assymetric multicore CPUs http://www.beyond3d.com/forum/showthread.php?t=36155

and some anandtech report on valve conference about multithreading (for dummies ;) ...lol)

I have the feeling (more than that in fact :oops:) that i only scratch the surface on this subject.
I've tried to ask some questions in this thread but I had the embarassing feeling to be out of thread...

Hopefully i don't feel alone, and I feel that a non polemic discussion can help a lot of people.

So i will link some wikipedia link on the subject, I guess a lot of people can have interest for

One rule keep the thing "somewhat" simple and everybody is welcome :)

NB mods sorry I'm not sure to be in the right section, but I guess that the beginner section is not a so wrong place ;)

Here we go :

Most of the modern cpu are superscalar, what does this mean : http://en.wikipedia.org/wiki/Superscalar

What a simd unit ? vector unit?
http://en.wikipedia.org/wiki/SIMD
What a mimd unit ?
http://en.wikipedia.org/wiki/SIMD

What are threads? what 's the difference with processes?
http://en.wikipedia.org/wiki/Thread_(computer_programming)
http://en.wikipedia.org/wiki/Process_(computing)

How the the code is handle?
http://en.wikipedia.org/wiki/Instruction_pipeline
More precisely, what OoE? IoE?
http://en.wikipedia.org/wiki/Out_of_order_execution
Branch is painfull>>speculative execution is your friend
http://en.wikipedia.org/wiki/Speculative_execution

How the code is load? where? cache L1? L2? inclusive? exclusive?
http://en.wikipedia.org/wiki/L2_cache

multicore now :
SMP http://en.wikipedia.org/wiki/Symmetric_multiprocessing
ASMP http://en.wikipedia.org/wiki/Asymmetric_multiprocessing
NUMA http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access

multithreading : http://en.wikipedia.org/wiki/Simultaneous_multithreading

Voila I've a lot to read, now i've try to put thing in way that they make sense :=)

I hope that will help (me first) and will help avoid some stupid confusions ( multithread a work load/ vectorise some code... a workload can be very parrallel and the code of this same workload not easily vectorisable SMP/simd)
 
Last edited by a moderator:
Wow that's a lot of wikipedia links. My suggestion instead of getting a lot of random data piece-meal from wikipedia is to actually get a book on this. It'll make a lot more sense reading through a few chapters of a book than trying to piece everything together yourself. The defacto book on the subject is Hennessy and Patterson's Comp Arch. Another book that should be good, but it's brand new and I don't know anyone that's read it, is Jon Stoke's (of Arstechnica's) new book.
 
thanks for you tips, I'll investigate further and try to find something in my native language ;)

So I've read most of the links I've posted and some others links linked in same these posted.

I feel that by now I've a better understanding of the big picture :)

So the main probleme in the cpu world is the memory.

Manufacturers have bigger and bigger transistors budget for theirs cpu, they have more and trouble to keep all these transistors busy. (I already knew that but now it's clearer)

I've still some more stuff to read in regard to the memory wall, the different kind of multithreading, and some others stuffs.
 
thanks for you tips, I'll investigate further and try to find something in my native language ;)

Hennessy&Patterson is available in French as well:
Amazon.fr
It's not the latest edition, but that shouldn't be that big a problem.

In the long run I'd advise to stick to English, though. Simply because it's the lingua franca of IT - and it'll help you later if you adapt early.
(I will refrain from cracking lame jokes in fear of retaliation from Vysez and Ingenu. :) )
 
Most of the things you ask about are things that are added later to be able to make a Von Neuman machine (the basic CPU model) run faster and be more productive. If you start there and take them as gradual steps that all reduce bottlenecks and the need for other specialized chips, it probably makes the most sense.
 
Back
Top