3 ms·
It is difficult to share an execution unit between many cores, because in that case it must be placed at a great distance from at least the majority of those co
by adrian_b 2y ago
It is difficult to share an execution unit between many cores, because in that case it must be placed at a great distance from at least the majority of those cores.
The communication between distant places on a chip requires additional area and power consumption and time. It may make the shared execution unit significantly slower than a non-shared unit and it may decrease the PPA (performance per power and area) of the CPU.
Such a sharing works only for a completely self-contained execution unit, which includes its own registers and which can perform a complex sequence of operations independently of the core that has requested it. In such cases the communication between a core and the shared unit is reduced to sending the initial operands and receiving the final results, while between these messages the shared unit operates for a long time without external communication. An example of such a shared execution unit is the SME accelerator of the Apple CPUs, which executes matrix operations.