1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

couple of questions concerning multi core cpu's

Discussion in 'General Hardware' started by Master, Oct 6, 2009.

  1. Master

    Master

    Joined:
    Oct 7, 2007
    Messages:
    80 (0.03/day)
    Thanks Received:
    9
    Location:
    Iran
    hello all, i have some questions concerning multi core processors which i couldnt find the exact answer for them ,
    i would appreciate it if any of you guys answer my questions or direct me to find my answers .
    ok .
    how is the architecture of a typical multi core cpu ? i mean suppose we have a quad core cpu,
    does this cpu have 4 ALU ? 4 CU (control unit)? inside itself ?(do we have these stuff for each core? )
    or no there is only one ALU and one CU for all of the cores ?
    in multi core cpu's , are each core a complete standalone cpu or not? its just lets say a part of a typical cpu of some kind?

    what about executing an instruction ?
    how does it happen on a multi core cpu? i mean suppose we have a program, how does a cpu know which core should manipulate that program( or thread/ ) ? is it done by operation system or no there is sth in the multi core cpu's which actually do these stuff (when we have a program or bunch of programs which wants or want to execute ,that specific part actually direct them to use core x for example ?

    suppose we have couple of programs which are to execute and awaits the cpu to be executed, are these applications going to be executed on one core ? or they are all eaqually disrebuted on all cores?
    suppose we have 4 programs and we have a quad core cpu , what happens then in this scenario ? are they going to uttelize the whole 4 cores ? or no / ? they would just use two cores (by the help of using threads ) ? or on one core again by the help of (threading on that core)

    i would be grateful if anyone answer any of my questions . or atleast direct me to a place which i can read and find out the information im seeking.
    thankyou in advance
    Last edited: Oct 7, 2009
  2. Polarman

    Polarman New Member

    Joined:
    Jun 24, 2008
    Messages:
    1,627 (0.73/day)
    Thanks Received:
    292
    Location:
    Rimouski
    Too technical for me.

    You could try searching WIKI.
    Master says thanks.
  3. Master

    Master

    Joined:
    Oct 7, 2007
    Messages:
    80 (0.03/day)
    Thanks Received:
    9
    Location:
    Iran
    tanx for the feedback
    but honestly i dont know what to search! i searched the phrase " multi core cpu design!" it found some info on wiki but none of the infos asked above were answered using them! thats why i asked for your help .
  4. Reventon

    Reventon New Member

    Joined:
    Mar 25, 2009
    Messages:
    2,106 (1.08/day)
    Thanks Received:
    149
    Location:
    Sarasota, FL
    Well in terms of running programs, I believe the work is split among cores. However, there are CPUs tailored towards running multiple applications or processes, in which one core will handle one job and another core with handle another and so on.
    Master says thanks.
  5. [Ion]

    [Ion] WCG Team Assistant

    Joined:
    Sep 15, 2009
    Messages:
    11,786 (6.62/day)
    Thanks Received:
    10,889
    Location:
    North Carolina, United States
    Th OS will always do the best it can to split things between the cores/threads. So if you are running 40 processes that each use 1% CPU, the OS will split things up so that there is 10% CPU usage on each core
    Master says thanks.
    Crunching for Team TPU
  6. Zubasa

    Zubasa

    Joined:
    Oct 1, 2006
    Messages:
    3,980 (1.39/day)
    Thanks Received:
    457
    Location:
    Hong Kong
    As far as I know, a Quad Core CPU is basically four complete units each with its own ALU(s). (Not sure what you meant by CU)
    It is the OS that splits the load over the cores.
    You can think of it as 4 processors sharing a single memory bandwidth and system bus.
    (Depnding on the way the chip is designed, the cores can also share a data cache.)

    At a software level, I believe multi-processor and multi-core are treated the same way.
    The work load of a multi-threaded process that is written to utilize multi core will be distrubuted to all cores as evenly as possible by the OS kernel.
    When a process is written to only utilize a single core, it will only run on one core.

    The OS will assign other processes to the core with the lowest loading.
    You also have to realize that each thread in a process can create a different work load.
    Some are more intensive, while other minor threads might not create much of a work load.
    Multi-threaded processes are not always optimized for multi-core.
    For example, World of Warcraft have around 48 threads, but only 2 of the the threads are main threads,
    while the OS will try to balance the work load on all cores, only 2 core will be fully utilized, thus WoW is dual-core optimized.
    Last edited: Oct 6, 2009
    Master says thanks.
  7. Moose

    Moose New Member

    Joined:
    Sep 1, 2007
    Messages:
    306 (0.12/day)
    Thanks Received:
    26
    Location:
    UK
    This is my CPU useage when I open Flash Photoshop and Illustrator at the same time you can see they are evenly distributed across the cores, most likely with each taking a bit from every core:
    [​IMG]
    Here is one when just opening flash you can see flash is multi threaded with optimisation for quad core as it uses all four cores with its many major threads:
    [​IMG]

    Attached Files:

    Master says thanks.
  8. Error 404

    Error 404 New Member

    Joined:
    Apr 14, 2008
    Messages:
    1,777 (0.77/day)
    Thanks Received:
    169
    Location:
    South Australia
    Not sure what you mean by CU, but yes each core has its own dedicated ALU. Each core of the CPU is a CPU in itself, usually linked by the Frontside Bus (Core 2 Duo/Quad), or HyperTransport (AMD CPUs), or Quickpath Interconnect (i5, i7).

    The allocation of CPU resources is software based, usually controlled by the OS. The load between each core will be balanced, unless you're running a single-threaded application that requires a lot of power, in which case it'll probably get priority on one core, with other stuff being shifted to the other cores. I think...

    If you have multiple single-threaded programs, then they'll most likely be distributed. There are still a large amount of single-thread applications out there, but a larger amount of multi-thread apps are being released which can spread the load across a large number of cores, maximising performance.

    If you're thinking of upgrading from your current computer (which would be a very good idea), then note that even if you're using single-threaded apps most of the time, they WILL get a large performance boost from using a modern CPU, as your Pentium 4 really is old and inefficient. The architecture of modern CPUs have improved a LOT!
    Master says thanks.
  9. lemonadesoda

    lemonadesoda

    Joined:
    Aug 30, 2006
    Messages:
    6,245 (2.16/day)
    Thanks Received:
    963
    Master says thanks.
  10. Master

    Master

    Joined:
    Oct 7, 2007
    Messages:
    80 (0.03/day)
    Thanks Received:
    9
    Location:
    Iran
    Oh that was fantastic , Thank a quadrillion guys ::)
    you are really some thing , but about CU, by writing that i meant "Control Unit " thats it , is there only one control unit out there ? or no just like ALU.
    by the way , being symmetric or asymmetric does it make any difference in the information you kindly provided? i mean if we have a symmetric multi core cpu , is it all the same? and it would be the OS which would take care of the differences ?
    is there sth inside that multi core cpu which all of cores share together/? rather than front side bus
    Last edited: Oct 7, 2009
  11. Zubasa

    Zubasa

    Joined:
    Oct 1, 2006
    Messages:
    3,980 (1.39/day)
    Thanks Received:
    457
    Location:
    Hong Kong
    The core almost act like they are a complete CPU, so each core has its control unit.
    The number of cores doesn't really matter, the OS will split the load accordingly.
    For example, on multi-core processes a quad core should only be 25% faster than a triple core of the same architechure and frequency.
    Multi-Core Opitmized Processors actually, detects the number of logical cores present and creates the number of main threads accordingly.
    Ex. A media transcoder will create 4 main threads for a quad core CPU or create 8 main threads for a Core i7 with HT turned on (8 logical cores).

    Interms to resources, it depends on how the CPU is designed.

    For a native multi-core CPU, there is a dedicated "Crossbar" which manages the comunication between all of the members.
    In this case, the cores may or may not share a Data Cache.
    Ex. In a Phenom processor, the L3 Data cache is shared amoung all the cores.
    In a Core 2 Duo Processor, the L2 Data Cache is shared.

    In a MCM (Multi Chip Module) CPU, the individual dice comunicate via the FSB. While the cores within each chip comunicates natively.
    Ex. a Core 2 Quad Processor is bulit from Two Core 2 Duo dice.

    Aside frome the FSB, the access to memory (RAM) is also shared.
    Physically, the socket and the cooler is shared :roll:
    Last edited: Oct 7, 2009
  12. Master

    Master

    Joined:
    Oct 7, 2007
    Messages:
    80 (0.03/day)
    Thanks Received:
    9
    Location:
    Iran
    tanx a alot bro , that was great, i really appreciate that . :respect:

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page