• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Microcontroller Tips

Microcontroller engineering resources, new microcontroller products and electronics engineering news

  • Products
    • 8-bit
    • 16-bit
    • 32-bit
    • 64-bit
  • Applications
    • 5G
    • Automotive
    • Connectivity
    • Consumer Electronics
    • EV Engineering
    • Industrial
    • IoT
    • Medical
    • Security
    • Telecommunications
    • Wearables
    • Wireless
  • Learn
    • eBooks / Tech Tips
    • EE Training Days
    • FAQs
    • Learning Center
    • Tech Toolboxes
    • Webinars/Digital Events
  • Resources
    • Design Guide Library
    • DesignFast
    • LEAP Awards
    • Podcasts
    • White Papers
  • Videos
    • EE Videos & Interviews
    • Teardown Videos
  • EE Forums
    • EDABoard.com
    • Electro-Tech-Online.com
  • Engineering Training Days
  • Advertise
  • Subscribe

Multicore processors terminology

March 3, 2017 By Scott Thornton Leave a Comment

Multicore processors have two or more processors in the same integrated chip. Early on in practical applications, multiple cores were used independently of each other. Concurrency isn’t as much of an issue if cores are not working in tandem on the same problem. Supercomputers and high-performance computing (HPC) saw multiple cores first. One difference between multicore processors in HPC versus embedded systems is that embedded systems are subject to size constraints.

Figure 1: The above AMD Opteron™ is a quad-core processor. (Source: Advanced Micro Devices.)

How are multicores used? The mainstream use of multi-core processors is in data centers and HPC. One example is the Texas Advanced Computing Center (TACC) at the University of Texas at Austin. TACC has a supercomputer (named “Stampede”) that uses Intel® Xeon Phi™ chips, computing more than 10 quadrillion operations per second at peak performance. (The Intel® Xeon Phi™ family of processors has up to 72 cores packed into one chip.)

Figure 2: The Sun Microsystems OpenSPARC T2 is an 8-core, open-source microprocessor released by Oracle in 2008. OpenSPARC T2 is the first of its kind to be open sourced as a complete design. (Source: OpenSPARC, Oracle.com)

Concurrency, Synchronization, and Parallelism
One of the biggest challenges with multicore processors is the issue of concurrency. Multiple cores working in parallel, doing the same jobs, requires programmers to think about whether one process or action happens before another one being handled by another core. Previously, a single CPU handled a program from start to finish, beginning with initialization. Issues like stack overflow could occur, but overflowing a memory stack that is shared between two cores is doubly more difficult to predict and avoid. Two cores are like two brains; two are better than one as double the work can get done, but what happens when there’s a conflict? In working with multiple cores, there are implications with memory, operating systems, interconnections between the cores, and even application software. The simple act of breaking up tasks so that all cores remain fully utilized, not to mention synchronized, can be a challenge if abstraction isn’t provided. Multiple clocks, memories, caches, and interrupts across multiple cores can create challenges in debugging, as well. We have come from simple 8-bit to 64-bit single core programming and debugging. Keeping track of what is in the registers and what happens as you step through a program has become immensely more complicated with separate cores.

(Figure 3: A generic block diagram of a multiple-core processor. (Source: Garrison Prinslow)

Dependencies
As long as one core can do tasks that do not depend upon another core, processes can be performed rapidly without waiting. All cores can be fully utilized. There are a couple of ways to utilize multiple cores. You can have all cores doing the same task in parallel to get through a heap of processing faster, or you can have each core doing a series of tasks from start to finish. The dependencies of one core to produce a result for another core can create challenges. The point of having multiple cores is to get more done faster, but dependencies can defeat the purpose as one core waits on the results of another. Arranging the use of cores such that no core has to wait on another core brings a new level of optimization to programming with multiple cores. Shared resources with multiple cores behave in much the same way as implementing multiple-threads in a program, except if you want to stop all possibility of a shared memory allocation being overwritten, you have to consider all other cores that might be working with a shared resource, not just threads from the same core. Other complications might exist with items outside the cores, such as changing global data. Each core has an independent cache and one might be working with an older version of a global variable; this creates a new kind of problem as multiple cores can be out of sync with respect to the outside world at any given moment.

Fortunately, multiple cores have been around just long enough for tools to have been developed to handle issues that multiple cores create. The point is to be aware that when you are working with multiple cores, it’s like spreading the work of a single program over several processors. With multiple cores, the processes going on under the (one) hood are much more complicated than when working with a single processor.

Filed Under: FAQ, Featured, Industry Experts, microcontroller Tagged With: ARM, basics, FAQ, oracle

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Featured Contributions

Five challenges for developing next-generation ADAS and autonomous vehicles

Securing IoT devices against quantum computing risks

RISC-V implementation strategies for certification of safety-critical systems

What’s new with Matter: how Matter 1.4 is reshaping interoperability and energy management

Edge AI: Revolutionizing real-time data processing and automation

More Featured Contributions

EE TECH TOOLBOX

“ee
Tech Toolbox: 5G Technology
This Tech Toolbox covers the basics of 5G technology plus a story about how engineers designed and built a prototype DSL router mostly from old cellphone parts. Download this first 5G/wired/wireless communications Tech Toolbox to learn more!

EE Learning Center

EE Learning Center

EE ENGINEERING TRAINING DAYS

engineering
“bills
“microcontroller
EXPAND YOUR KNOWLEDGE AND STAY CONNECTED
Get the latest info on technologies, tools and strategies for EE professionals.

DesignFast

Design Fast Logo
Component Selection Made Simple.

Try it Today
design fast globle

Footer

Microcontroller Tips

EE World Online Network

  • 5G Technology World
  • EE World Online
  • Engineers Garage
  • Analog IC Tips
  • Battery Power Tips
  • Connector Tips
  • DesignFast
  • EDA Board Forums
  • Electro Tech Online Forums
  • EV Engineering
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips

Microcontroller Tips

  • Subscribe to our newsletter
  • Advertise with us
  • Contact us
  • About us

Copyright © 2025 · WTWH Media LLC and its licensors. All rights reserved.
The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media.

Privacy Policy