What Exactly is CPU Core?

381 views

My question involves CPU design. I have basic knowledge regarding the ARMv8 assembly and I have studied the pipelining, data forwarding, stalling, and other ways to relieve data hazards. From my basic understanding, for example having 8 cores means we have 8 CPUs. Thus, I have some questions.

1. Does data forwarding exist from one core to another? Can an operation write to another register in a different core?
2. In ARMv8, there are 31 sixty-four bit registers available for you to use. When I do an operation, say ADDI X2, X31, #10 (Basically set the value of register X2 to 10). How does the computer know which core to do this operation in? How does it distinguish between the different cores without getting confused?
3. Why bother adding more cores, wouldn’t it be better to add more registers?

In: 3

2 Answers

Anonymous 0 Comments

1. No, operations cannot read or write from registers in other cores. There is some data sharing though. Depending on the design, cores can share some level of cache which means that recently accessed memory from one core will be accessible faster from the other cores.

2. Each core has it’s own instruction pointer, so each core knows which instruction it will be performing next.

3. Adding more cores allows more instructions to be performed at the same time, adding more registers would not do that.

You are viewing 1 out of 2 answers, click here to view all answers.
0 views

My question involves CPU design. I have basic knowledge regarding the ARMv8 assembly and I have studied the pipelining, data forwarding, stalling, and other ways to relieve data hazards. From my basic understanding, for example having 8 cores means we have 8 CPUs. Thus, I have some questions.

1. Does data forwarding exist from one core to another? Can an operation write to another register in a different core?
2. In ARMv8, there are 31 sixty-four bit registers available for you to use. When I do an operation, say ADDI X2, X31, #10 (Basically set the value of register X2 to 10). How does the computer know which core to do this operation in? How does it distinguish between the different cores without getting confused?
3. Why bother adding more cores, wouldn’t it be better to add more registers?

In: 3

2 Answers

Anonymous 0 Comments

1. No, operations cannot read or write from registers in other cores. There is some data sharing though. Depending on the design, cores can share some level of cache which means that recently accessed memory from one core will be accessible faster from the other cores.

2. Each core has it’s own instruction pointer, so each core knows which instruction it will be performing next.

3. Adding more cores allows more instructions to be performed at the same time, adding more registers would not do that.

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