shared memory in multiprocessors

huda's Avatar, Join Date: Jan 2009
Go4Expert Member
hi,
in imultiprocessors, distributed memory, each processor has local memory.
well, are there shared memory?
if so, what is the avail of it?

thanks,
huda
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
I'm not sure what "what is the avail of it" means.
The Core i7 - a quad core processor - uses local memory for each processor and a shared cache. The local memory is 256K and the shared cache is 8MB, and the shared cache uses 1MB for a local copy of all four processors' shared caches. So the memory manager only needs to look in the shared memory for something; if it's not there then it has to go out to the RAM.
0
huda's Avatar, Join Date: Jan 2009
Go4Expert Member
Quote:
Originally Posted by xpi0t0s View Post
I'm not sure what "what is the avail of it" means.

I mean what if function of it if there is

The Core i7 - a quad core processor - uses local memory for each processor and a shared cache. The local memory is 256K and the shared cache is 8MB,

ohhh ,here cache is larger than Ram, I think ,i know why.

and the shared cache uses 1MB for a local copy of all four processors' shared caches.

I'm not sure I understand it

So the memory manager only needs to look in the shared memory for something; if it's not there then it has to go out to the RAM.
who is memory manager ? and where is it . is there in ram of each processor ?
here , I need a more explanation ,if possible.

many thanks
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
http://en.wikipedia.org/wiki/Intel_Core_3

The memory manager is part of the CPU.

Each core has its own cache (two, in fact: L1 and L2. The 256K one I referred to previously is the L2 cache).

There is an additional third level cache, L3, which is 8MB and shared by all cores.

Cache is in no way larger than RAM. In my i7 PC I have 3GB RAM. I doubt you can get a single 4MB ECC3 stick, or 3x 2MB or similar, or that you could do much with the computer if you could.

As I understand it each core's L2 256K cache is duplicated in the L3 cache, this way the memory manager doesn't need to poke around in the individual cores' L2 caches to find out if some memory is cached there. I think if it had to do that then there would be a severe performance impact. As with many facets of computer technology it's a trade off between speed and amount of memory used; generally you can run slower with less memory or faster with more memory and you'll find this principle cropping up everywhere.