What Exactly are Cores and Threads in CPU?

447 views

As an Electrical Engineering major, I have taking several introductory computer engineering courses. I have studied ARMv8 for a long time now. I know about registers, instruction fetch, arithmetic instructions, branching instructions, pipelining, and data forwarding. I know that some of these are specific to ARM only. ARMv8 is the only architecture that I know.

However, I am curious to know what exactly are cores and threads? And specifically for cores, how are instructions distributed to each core? And if a dependency exists from one core to another core’s instructions, is there a such thing as data forwarding from one core to another?

Lastly, kinda unrelated, but what is a Graphics Card and what are the differences between GPU architecture and the ARMv8 architecture that I have studied?

If someone could please answer these three questions, I would greatly be appreciated.

In: 13

5 Answers

Anonymous 0 Comments

Cores are just CPUs. One day CPUs got so small they could pack more than one CPU into the same chip.

Threads are when one CPU pretends to be two CPUs. Why? Well the CPU has a bunch of circuits in it to calculate different kinds of instructions, like addition, subtraction, multiplication, division, etc. And there’s a apart (the front end) that reads the instructions in the program and feeds them to those different circuits (execution units). If the numbers for one calculation depend on the answers from another calculation, that’s still being calculated, the front end has to wait before it sends that calculation to its execution unit. One day the engineers at Intel realized they had so many different execution units that it was basically impossible for one program to use them all at once – so they figured they could use more of them at once by making the CPU (core) run two programs at once, and those are threads.

Cores are real CPUs – a 4-core CPU can run 4 things at full speed at the sake time. Threads are fake – a core *can’t* run two things at full speed at the same time *but* it can usually run them at more than 50% speed, so it’s still an improvement.

Edit: this is the hardware kind of threads. Software threads / operating system threads are a different thing (but related)

You are viewing 1 out of 5 answers, click here to view all answers.