Heterogenous cores / instruction sets
Posted: 2020-05-05, 0:13:27
Hi Agner – The implicit assumption of most ISAs, and of ForwardCom, is that all cores are the same and implement the same instructions. Why?
Would there be a benefit of having some cores be simpler, implementing a subset of the ISA? For example, does every core need to support floating point? Or wide SIMD floating point registers? Most applications don't actually use floating point arithmetic, so it's strange that all cores support it in conventional ISAs.
How much benefit would there be in cost and energy use if say four cores were integer-only, and another four cores supported the full instruction set? Threads that needed floating point would run on the appropriate cores. Encryption like AES-NI is another example. On client devices those instructions could easily be limited to one core with no relevant loss of performance, since the frequency of encryption/decryption events is trivial compared to the computational speed of those instructions.
Just a thought. You could have two types of cores. Or three.
Would there be a benefit of having some cores be simpler, implementing a subset of the ISA? For example, does every core need to support floating point? Or wide SIMD floating point registers? Most applications don't actually use floating point arithmetic, so it's strange that all cores support it in conventional ISAs.
How much benefit would there be in cost and energy use if say four cores were integer-only, and another four cores supported the full instruction set? Threads that needed floating point would run on the appropriate cores. Encryption like AES-NI is another example. On client devices those instructions could easily be limited to one core with no relevant loss of performance, since the frequency of encryption/decryption events is trivial compared to the computational speed of those instructions.
Just a thought. You could have two types of cores. Or three.