seegongsik
Operating systems

How does a multi-core CPU work

With several kitchens, the work isn't taking turns: it really happens together at the same moment. This time we look at true simultaneity.

01

What if there's more than one kitchen?

Until now there was one kitchen, and one worker switched quickly between a bit of this job and a bit of that.
But what if there were two or three kitchens? There'd be as many workers, each cooking at the same time in their own kitchen. It isn't taking turns: several are really working at the same moment.
A computer's "kitchens" are called cores. With several cores, it can truly handle several jobs at the same moment.
When a phone or laptop says 4-core or 8-core, it's simply counting how many kitchens it has.

One kitchentaking turns (illusion)Several kitchenstruly at once

One kitchen means taking turns; several kitchens mean truly working at the same moment.

With several cores, several jobs are truly handled together at the same moment.

02

Truly together, or just switching fast

Earlier we said that if one worker switches quickly, it looks like doing things at once. That was an illusion: at any one moment, it was doing only one thing.
With several kitchens, it's different. Look at any single moment, and work is truly moving forward in this kitchen and that one at the same time.
That makes a difference. Illusory simultaneity only looks fast, while true simultaneity really finishes more work in the same time.
However quickly one kitchen switches, the total amount of work done doesn't grow, it's only shared out; but with more kitchens, the total amount that can be handled itself grows.

same momentIllusion of at-onceonly one per momentTruly at onceseveral in one moment

Fast switching in one kitchen is an illusion; several kitchens are truly simultaneous.

Switching on one core only looks simultaneous, while several cores really work together.

03

Adding kitchens

There's a big pile of work to finish. Change the number of kitchens yourself.
With one kitchen, the jobs are handled one at a time. Add kitchens, and several jobs are handled at once, so the same amount finishes sooner.
Two kitchens take roughly half the time, four take less still. Keep adding and watch how quickly the pile shrinks.
That's why heavy jobs like converting many photos at once or making a video finish much faster when they're cut into pieces and handed out to several kitchens.

Jobs left
Kitchens
Time00/12
Kitchens2
More kitchens finish the same work faster. But as the next figure shows, it doesn't keep speeding up forever.

Change the number of kitchens to see how fast the same work gets done.

The more kitchens, the faster the same work gets done, but you soon hit a limit.

04

Double doesn't mean twice as fast

Doubling the kitchens seems like it should make things twice as fast. But it doesn't always.
Some work can't be split. While you wait for dough to rise, even ten kitchens won't make it faster. And when workers try to use the same single ingredient at once, they have to wait for each other.
So adding kitchens speeds things up a lot at first, but from some point on, the speedup no longer keeps pace with the added kitchens, because only so much of the work can be divided.
In the end, however many kitchens you add, the part that can't be split sets the ceiling on the overall speed.

Speedcannot splitwaiting1248Corestwice is not twice as fast

Because of work that can't be split and waiting on each other, adding cores has its limits.

More cores make things faster, but because some work can't be split, the speedup isn't endless.

05

Summing it up on one page

There are just three things to remember.
First, with several cores, work truly happens at the same time: not the illusion of one worker switching quickly, but several kitchens working together at the same moment.
Second, that's why the same work finishes faster: the work is divided and handed to several kitchens. Third, there's still a limit: because of work that can't be split and waiting on each other, doubling the cores doesn't make things exactly twice as fast.
In the end, how much faster things get depends less on the number of kitchens than on how finely the work can be divided.

One
With several cores, work really happens at once. Not an illusion, but together in the same moment across kitchens.
Two
So the same work finishes faster. The work is split among several kitchens.
Three
Still a limit. Unsplittable work and waiting for each other mean doubling cores is not exactly twice as fast.

Several cores are truly simultaneous, so faster, but with a limit.

In one lineWith several cores, work is divided and truly handled at the same time, which speeds things up, but the work that can't be divided is the limit.
← Operating systems
Was this helpful? Support seegongsik