0
\$\begingroup\$

everyone.

I am doing a research on assessing the degree to which the number of transitors in chips affects the processor's performance in a certain environment.

Of what I understand this far, in order to get the experimental data I need to use/make comparisons of different processors. My topic I understand - I should probably only focus on the performance difference and not so much heat dissipation. So, in order for me to be able to compare two processors' performances according to their transistor count, I would need to use data from testing of processors with the same architecture? I assume that I would need to choose data, where they test them in the same performance evaluation environment and workload, when conducting the comparison? Let's say a computer game ( I believe such benchmarks are published frequently).

When analyzing the difference, how is it possible to know how much of it is due to the transistor count increase/decrease? (since it is only one of the variables responsible for increase in performance). Is there a way of isolating the other variables from the picture, possibly picking two processors of the same family, with the same architecture and clock speed, but different in transistor count? And then look at the amount of instructions each of them can handle. But what else would be a factor is the performance (cache memory difference, clock speed, something else?) Am I understanding everything correctly and can anyone give me examples of suitable processors or performance benchmarks?

Thanks.

\$\endgroup\$
  • 2
    \$\begingroup\$ "Transistor count" is a really crude metric on which to base this sort of comparison. The effect of transistors on overall performance depends very strongly on how they're used. For example, a single-core chip with lots of on-chip cache may have a lot of transistors, but only roughly 1/4 the performance of a 4-core chip with smaller caches. \$\endgroup\$ – Dave Tweed Dec 5 '13 at 23:53
  • \$\begingroup\$ Practical performance or theoretical one? For many apps I personally would go for a single core with tons of cache. :) \$\endgroup\$ – oakad Dec 6 '13 at 0:26
1
\$\begingroup\$

Transistor counts, in the end, is the limiting factor of functionality. You can have more functionality when you have larger transistor count than when you have not.

Primarily, increased transistor count is always good for performance. Many algorithms (such as multiplication) benefit from transistor count immensely - when you've got "unlimited" transistors you can multiply large words in a 1 to 3 cycles as opposed to cycle counts on the order of bit numbers in words (to give one example). You can also uncover instruction level parallelism by doing multiple non-dependent instructions simultaneously (superscalar execution), bundle more cores (coarse parallelism) and vector computation accelerators (such as SSE); being able to store working data close to CPU is also beneficial (thus, caches).

The problems with many transistors are also obvious. The 2 most important ones are:

  1. Power consumption
  2. Signal (especially clock) distribution. The more transistors there are, the higher are the chances that something will try to get out of sync.

For a good clear cut example on "transistor count" benchmarking try to look at cycle count of particular instructions and other "transistor expensive" CPU metrics:

  1. How many cycles it takes for a CPU to complete complex instructions. I already mentioned multiplication (which is critical for game performance). Floating point instruction cycle counts are also indicative (single vs double precision, etc.). The basic rule is - the faster arithmetic instruction executes, the more transistors were put to implementing it.
  2. How many execution units a given CPU has (how many adders, multipliers, load-store units)? Each of this costs transistors. Also, check how many instructions a given CPU can decode/dispatch/complete per cycle (all those features are very transistor costly).

You don't even need to go past this - just compile a table of the above metrics for CPUs from various generation and superimpose those over some long living benchmark figures. Try to compute "performance per CPU cycle" value to negate the effect of rising clock frequencies.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.