This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

why there are 4 cores per cluster in ARMV8 architecture

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?

Parents
  • 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} set
    of 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.

Reply
  • 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} set
    of 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.

Children