Hi experts,
I want to knows why there are 4 core cores per cluster in ARM big.Littte architecture?
Is it possiable if we make more cores per cluster? if not, what is the limitation?
Hi,
The ARMv8 architecture does not mandate 4 cores per cluster.
Technically the architecture does not even define the concept of cores and clusters, instead defining the concept of "PE affinity" (where "PE" is short for processing element, i.e. anything with a program counter - this could be a single-threaded core, or each thread in a hardware-multi-threaded core, etc).
The affinity of a PE is split into 3-4 fields that can be used in whichever way you like. The only limitation that the architecture places on the use of these fields is that:
"The assigned value of the MPIDR.{Aff2, Aff1, Aff0} or MPIDR_EL1.{Aff3, Aff2, Aff1, Aff0} setof fields of each PE must be unique within the system as a whole."
- ARMv8-A Architecture Reference Manual (ARM DDI 0487A.j) section D7.2.67 MPIDR_EL1
A typical use case is to treat Aff1 as the cluster ID and Aff0 as the core ID.
You may have noticed that ARM's own implementations such as the ARM Cortex-A53 MPCore can be configured to have between 1 and 4 cores; this is simply a design decision of that particular processor implementation, not a limitation mandated by the architecture. Your own processor implementation can allow as many cores as you design it to have.
Hope that helps.
It's also worth noting that you can have more than two clusters of cores; nothing in the AXI specification limits you to 2, and similarly there are no restrictions on what those clusters are. If you have a design where you want an 8-core Cortex-A53 you could implement multiple clusters of Cortex-A53s to achieve that, for example.
Cheers, Pete
View all questions in Cortex-A / A-Profile forum