Experimental evaluation is an important metric in designing an architecture of a computer. This involves usually measuring two things:
Benchmarks are used to measure in a standardized way. Benchmarks consist of ‘workloads’ which the computer can compute.
<aside> 💡 In computing, a benchmark is a standardized test or set of tests designed to assess the performance of hardware, software, or a combination of both. Benchmarks are used to measure various aspects of a system's performance, such as processing speed, memory capabilities, graphics rendering, and overall system responsiveness.
</aside>
When a computer architect designs an architecture, they would map the standardized benchmarks onto their architecture. Mapping of a benchmark involves the following steps:
<aside> 💡 Common benchmarks include: SPEC-2000, Google-Net, Alex-Net.
</aside>
Latency is measured by:
$$ \text{Latency = \#instructions } \cdot \text{ CPI } \cdot \frac{1}{f_{CPU}} $$
Since the number of instructions is fixed, only the CPI and the clock speed can be modified in order to improve latency.
Power consumption depends on which HW modules are being activated, and the power consumption of each of those modules.
<aside> ➕ Example 1
f = (g+h)-(i+j)
// f, g, h, i, j = R0, R1, R2, R3, R4
ADD R0, R1, R2
ADD R5, R3, R4
SUB R0, R0, R5
Say, for example that:
Then power $= (5+5+4+7)\cdot 3$
</aside>