Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Mobile, Graphics, and Gaming blog Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • Mali
  • pipeline
  • multi-core
  • gpu
  • Mali-400
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic

Ed Plowman
Ed Plowman
September 11, 2013
3 minute read time.

The ARM Mali-400 MP was the world's first embedded multicore graphics processor (GPU) when it was launched, back in 2008, and Mali-T604 continues that trend. Since then, there have been a number of new GPUs claiming to be multicore and people have asked me lots of questions seeking to quantify what is a "core" versus a "pipeline" and about scalability, so I thought I'd share the answers with a wider audience. My colleague jemdavies has noted before in his blog GPGPU - What is it good for? that the beginning of wisdom is to call things by their correct names. Graphics can sometimes be a very confusing area for jargon, so this is another in a series of blogs Multicore or Multi-pipe GPUs: Easy steps to becoming multi-frag-gasmic in our quest to explain graphics terminology.


Core vs. pipeline: definitions and examples

The difference between a "core" and a "pipeline" is that a "core" is a self-contained entity which has its own self-contained resources such that it can operate independently of other elements. An instruction pipeline in this context shares all or parts of the resource within a "core" between itself and other pipelines. Pipes also only have a very limited capacity to run independent tasks. This definition is common and well established across CPU, GPU, DSP and pretty much any compute element you can name.

Mali-400 MP is a multicore GPU: it contains a vertex processor and up to four fragment processors. The vertex processor is a core and the fragment processors are also cores: they run independently on separate tasks and contain their own critical resources. Within each Mali-400 fragment processor there is one pipeline, however it has a very complex pipeline which has several sub-pipelines to handle different tasks.

Mali-T604 is a multicore GPU, which can contain up to four cores, with each core being able to operate independently and again containing its own critical resources. The tri-pipe architecture in the Mali-T604 means that each core contains three different types of pipelines (four in total): 1x load/store, 1x texture, 2x ALU. Again, the individual pipelines are complex, containing sub-pipes.


Scaling by core gives deterministic performance 

Mali-T604 scales by numbers of cores — that is you can build SoCs with different numbers of cores. (You can also scale dynamically by powering cores up and down.) Some other GPUs choose to scale by pipeline — putting more pipelines within a core. With such a design, the GPU is exposed to the potential of compute limitation due to resource contention. In an environment where you have many pipelines all competing for register, cache and texture fetch resources then you either have to grow the resource to compensate (more registers, bigger cache) or potentially have a core with non-deterministic performance. This phenomenon can be seen in some superscalar CPUs: the addition of a second pipeline, although increasing the compute potential, does not increase the performance by 2x, but some considerably smaller factor due to the contention for resource.
 
Unlike scaling by pipeline, scaling by core is more deterministic as each core yields the given performance level since each core is independent. Adding additional cores increases the potential performance linearly (or very close to linearly). It does not suffer from fundamental resource constraints, as each core has self-contained resource to sustain that performance per core. All this makes scaling by core count much more attractive. By balancing the complexity of the pipeline with "right sized" resources both Mali-400 MP and Mali-T604 have a very compact core size for the performance/feature set they offer. An illustration of this is that Mali-400 MP is half the silicon area of competitor GPUs, but with greater performance.

I hope this clarifies matters. Do you have any further questions?

Anonymous
  • Hessed Choi
    Hessed Choi over 12 years ago
    Ed, this is really useful article for me. Now I came to understand what exactly the multi-core means !!
    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
Mobile, Graphics, and Gaming blog
  • What is Arm Performance Studio?

    Jai Schrem
    Jai Schrem
    Arm Performance Studio gives developers free tools to analyze performance, debug graphics, and optimize apps on Arm platforms.
    • August 27, 2025
  • How Neural Super Sampling works: Architecture, training, and inference

    Liam O'Neil
    Liam O'Neil
    A deep dive into a practical, ML-powered approach to temporal super sampling.
    • August 12, 2025
  • Start experimenting with Neural Super Sampling for mobile graphics today

    Sergio Alapont Granero
    Sergio Alapont Granero
    Laying the foundation for neural upscaling to enable sharper, smoother, AI-powered gaming on next-generation Arm GPUs.
    • August 12, 2025