1. Introduction of Multi-Core Processors
    • A processor that is composed of multiple cores on a die (CPU package).Multi-core processors are different with multiprocessors.

    • Necessities of Multi-Core Processors: The Limitation of Single-Core Processor [2]
      • Overwhelming power consumption
      • Heat dissipation at detrimental levels

    • Why Multi-Core Processors consumes low power? [1]
      • This CMOS’s power equation explains the relation:
      • Please notice that:
        As we increase the frequency, voltage must be driven up to ensure the state change of transistors is quickly recognized.
        Contribution of voltage is squared in the equation. Thus, this number is the dominating factor in the equation.
      • Therefore, two cores at a 20% reduction in frequency are able to use the same amount of power as one core.

     

    • Multi-Core Processors are able to Improve Performance
      • Faster execution time
        • Reduces process time could be achieved by using the advantages of multiple processors and applying multi-threading in applications.
      • Increased throughput
        • Performance increase allows computer to do better multi-tasking, processing and implement more complex algorithms.
      • Each core could handle task independently
        • Anti-virus automatic check occurs while we are playing a game, e.g. Crysis, Assassin’s Creed, World of Warcraft, etc.

     

    • Benefits of Multi-Core Processors in Embedded
      • Voice and Converged Communications [1]
        • Services over IP (SoIP)
      • Enterprise Infrastructure Security [1]
        • Firewall, virtual private network, and secure sockets layer (SSL) acceleration
      • Digital Security Surveillance [1]
        • Faster turnaround time
        • Increased throughput
        • Better power utilization
  2. Examples of Multi-Core Processors
    • Homogeneous Multi-Core Processor [3]
      • Comprised of identical processor cores that support the same instruction set architecture (ISA).
      • For example: MPC8641, Intel Core Duo:All processor cores are responsible for general tasks.

    • Heterogeneous Multi-Core Processor [3]
      • Comprised of non-identical processor cores that support different instruction set architecture (ISAs).
      • For example: Intel CE 2110 Media that consists of an Intel Xscale processor core and an Intel Micro Signal Architecture (MSA) DSP core.
      • Each processor usually has own specialty.

    • Separate L2 cache [1]

    • Shared L2 cache [1]

  3. Multi-Core Processors Challenges
    Power and Temperature Management

    • In theory, two chips would consume twice as much power and generate a large amount of heat. [2]
    • Solutions:
      • In fact, each core in multi-core processors use low frequency.
      • Implement a power control unit to shut down unused cores or limit the amount of power.
      • Re-architected the chip to lessen the heat.

    Cache Coherence

    • Separate L1 and L2 cache architecture design create a new problem which is data coherence. [2]
    • For example:
      • A dual-core processor store a block of memory into its private cache.
      • The first core writes a value to a specific location.
      • The second core attempts to read that value from its cache, thus it will not have the updated copy.
    • Result?
      • Wrong data would be read and invalid results would be produced.

    Cache Coherence Solutions

    • There are two schemes for cache coherence: [2]
      • Snooping protocol : Uses several states to determine whether the cache needs to update cache entries.
      • Directory-based protocol: A directory is used to holds information about which memory locations are being shared in multiple caches.

    Use Multi-Core Processors Potential Maximally

    • Applications Need to be Multi-Threaded [1]
      • Do nothing
      • Multi-task or Partition
      • Multi-thread
  4. Summary
    o Multi-core processors have become a brilliant solution to answer the need of performance, yet it also brings new problems and discussions.
    o Parallel programming (multi-threading) is one of the important things to maximize the benefits of multi-core processors.
    o I believe, heterogeneous processors are more powerful and useful than homogeneous processors because it is specialized each core for specific functions.
  5. References
    [1] Domeika, M. (2011). Software development for embedded multi-core systems: a practical guide using embedded Intel architecture. Newnes.
    [2] Schauer, B. (2008). Multicore processors–a necessity. ProQuest discovery guides, 1-14.
    [3] Svennebring, J., Logan, J., Engblom, J., & Strömblad, P. (2009). Embedded multicore: An introduction. Technical Report, Freescale.
    [4] Accessed: 26-03-2017. Website Address:http://www.microsoft.com/licensing/about-licensing/multicore-processor-licensing.aspx
    [5] Max Domeika. Development and Optimization Techniques for Multicore Processors. 2006. Accessed: 26-03-2017. Website Address: http://www.drdobbs.com/high-performance-computing/192501977
    [6] Fixstars. Speed up your Business. Accessed: 26-03-2017. Website Address:http://www.fixstars.com/en/solutions/intro.html
    [7] Linux Website. Intel Set Top Box Chip Gains Browser Port. Accessed: 26-03-2011. Website Address:http://www.linuxfordevices.com/c/a/News/Intel-settopbox-chip-gains-browser-port/
    [8] Intel. Resource & Design Center for Development with Intel.Accessed: 26-03-2017. Website Address: http://www.intel.com/content/www/us/en/design/resource-design-center.html
    [9] Ilya Grigorik. Multi-core, Threads & Message Passing. 2010. Accessed: 26-03-       2017. Website Address: http://www.igvita.com/2010/08/18/multi-core-threads-             message-passing