3 ms·
Great read, thanks! Followup question: what's the distribution of transistors per instruction? Taking your number that there are ~2k instructions in Haswell, a
by breck 10y ago
Great read, thanks! Followup question: what's the distribution of transistors per instruction?
Taking your number that there are ~2k instructions in Haswell, and given that Haswell has ~1.4 billion transistors (http://www.anandtech.com/show/7003/the-haswell-review-intel-core-i74770k-i54560k-tested/5 http://www.anandtech.com/show/7003/the-haswell-review-intel-...), that means on average ~1 million transistors per instruction. My guess is the majority of transistors go to things like the cache, and then there is duplication across cores, so the number is clearly much lower than that, but do you have any sense of what it costs to add an instruction in terms of number of transistors?
- TazeTSchnitzel 10y agoSome instructions are microcoded, right? That would mean some have a much smaller transistor impact.
- pjc50 10y agoThis is not a useful metric, surely? As you say most of the die is cache. What an instruction costs depends mostly on what you want to do, and how many bits wide it is. Multipliers are expensive. Then there's considerations of pipeline depth and branch prediction.
- deepnotderp 10y agoThe vast majority of instructions are microcoded, so it's unlikely to be much at all, instead you're killing the poor decoder :P In any case, the primary energy and die space hogs are the OoO circuitry and the caches.
- astrodust 10y agoProbably zero. The decoder isn't instruction specific, it's just something that translates the incoming ops into micro-ops internally. Even then it's pretty abstract. Is an adder circuit specific to an add operation? It's probably used for a lot of things.
- dom0 10y ago> but do you have any sense of what it costs to add an instruction in terms of number of transistors? There is no answer to this question. It does not make sense in the domain of a modern microprocessor. ("It does not compute").
- breck 10y agoEdit: thanks everyone! I never dipped lower than assembly and was unaware of the "microcode" level. Makes total sense!