Chapter 2 Flashcards
Performance Concepts
Define
Pipelining
Processor moves data or instructions into a conceptual pipe with all stages of the pipe processing simultaneously
Define
Branch Prediction
Branch Prediction
Processor looks ahead in the instruction code fetched from memory and predicts which branches, or groups of instructions, are likely to be processed next.
Define
Superscalar execution
This is the ability to issue more than one instruction in every processor clock cycle. (In effect, multiple parallel
pipelines are used.)
Define
Data flow analysis
Processor analyzes which instructions are dependent on each other’s results, or data, to create an optimized schedule of instructions
Define
Speculative execution
Using branch prediction and data flow analysis, some processors speculatively execute instructions ahead of their actual appearance in the program execution, holding the results in temporary locations, keeping
execution engines as busy as possible.
4 possible examples listed
Performance balance examples
Increase the number of bits that are retrieved at one time by making DRAMs “wider” rather than “deeper” and by using wide bus data paths.
Change the DRAM interface to make it more efficient by including a cache.
Reduce the frequency of memory access by incorporating increasingly complex and efficient cache structures between the processor and main memory.
Increase the interconnect bandwidth between processors and memory by using higher speed buses and a hierarchy of buses to buffer and structure data flow.
How to increase hardware speed of processor
Solution with Results
Shrink logic gate size. More gates, packed more tightly, increase clock rate. Propagation time for signals reduced
How to increase size and speed of cache
Solution
Dedicate part of processor chip
List
Problems with clock speed and logic density
Power
RC delay
Memory latency and throughput
Define
Advantages of multicore
Increase performance without increasing clock rate. Larger cache justified.
Define
Many Integrated Core (MIC)
Involves a homogeneous collection of general purpose processors on a single chip.
Define
Graphics Processing Unit (GPU)
Core designed to perform parallel operations on graphics data. Traditionally found on plug-in graphics card, used as vector processors
Define
Amdahl’s law
Essentially, parallel performance allowed by multicores will only cause a great increase in performance if software is adapted to run parallel and exploit this power.
Define
Little’s law
Average number of items in a queueing system equals the average rate at which items arrive multiplied by the time that an item spends in the system.
List
The three common formulas used for calculating a mean
Arithmetic
Geometric
Harmonic
Define
Arithmetic Mean (AM)
Appropriate if the sum of all the measurements is a meaningful and interesting value. Good for comparing the execution time performance of several systems.
Define
Harmonic Mean (HM)
For situations where the execution rate is the more useful value of the system. This value is inversely proportional to the execution rate.
Define
Geometric Mean (GM)
Gives equal weight to all values in a data set. Provides consistent results when measuring the relative performance of machines. Results are normalized to a reference machine.
4 desirable characteristics of a benchmark program.
- It is written in a high-level language
- It is representative of a particular kind of programming domain or paradigm, such as systems programming, numerical programming, or commercial programming
- It can be measured easily
- It has wide distribution
Define
System Performance Evaluation Corporation (SPEC)
Defines and maintains the best known collection of benchmark suites aimed at evaluating computer systems. Performance measurements are widely used for comparison and research purposes.
Define
SPEC CPU2017
Best known SPEC benchmark suite, for applications doing more computation than I/O. Consists of 20 integer benchmarks and 23 float benchmarks. Contains over 11 million lines of code.
Define
Peak metric
Enables users to attempt to optimize system performance by optimizing the compiler output.
Define
Speed metric
A measurement of the time it takes to execute a compiled benchmark. Used for comparing the ability of a computer to complete single tasks.
Define
Rate metric
Measurement of how many tasks a computer can accomplish in a certain time. AKA: throughput, capacity, rate measure.