Eight Great Ideas in Computer Architecture Flashcards

1
Q

List the 8 great ideas in computer architecture

A
  1. Design for Moore’s law
  2. Use abstraction to simplify design
  3. Make the common case fast
  4. Performance via parallelism
  5. Performance via pipelining
  6. Performance via prediction
  7. Hierarchy of memories
  8. Dependability via redundancy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Explain what it means to design for Moore’s law

A

Meant designing with the assumption that every new generation would improve performance. Today more focus on architectural improvements and using the larger number of transistors without relying on silicon performance improvements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Give an example of designing for Moore’s law

A

Intel’s tick tock model
tick - new processor design but on existing well tested silicon node ie. performance gain through architectural improvements
tock - existing processor but on next generation silicon node ie. performance gain through silicon improvements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What do we mean by abstraction?

A

Levels of program code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Give the 3 levels of abstraction

A
  1. High-level language
  2. Assembly language
  3. Hardware representation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Describe high-level language

A
  • Level of abstraction closer to problem domain
  • Provides productivity and portability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Describe assembly language

A

Textual representation of instructions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describe hardware representation

A

Bits used to encode instructions and data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What makes it difficult to define performance?

A

Different applications have different performance requirements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Give the equation for performance

A

performance = 1/execution time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How is relative performance defined?

A

The execution time of one process divided by the execution time of the other

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the 2 ways we can measure execution time?

A
  1. Elapsed time (total response time that determines system performance)
  2. CPU time (time spent processing a given job, comprised of user CPU time and system CPU time)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Give the equation for CPU time then simplify it

A

CPU time = CPU clock cycles x clock period
= CPU clock cycles / clock frequency
= (instruction count x cpi) / clock frequency

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How can performance be improved (use CPU time equation)?

A
  1. Reducing number of clock cycles
  2. Reducing clock period (increasing frequency)
    This is a trade off
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Give the equation for clock cycles

A

clock cycles = instruction count x cpi
If different instructions take different numbers of cycles then multiple instruction count by cpi for each different instruction class

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What determines the instruction count for a program?

A

Program, ISA and compiler

17
Q

What determines the average cycles per instruction?

A

Program, ISA, compiler and CPU hardware (processor design)

18
Q

Write out the equation for weighted average CPI

19
Q

What determines clock rate?

A

ISA, processor design, implementation technology

20
Q

Give Amdahl’s law for sequential programs

A

Execution time after improvement = (execution time affected by improvement / amount of improvement) + execution time unaffected

21
Q

Give an example of making the common case fast

A

Integer division is rarely used. Adding integer division can make the processor clock much slower without being worth it, so early processors did not have an instruction for this and used a library function instead

22
Q

What are the 3 forms of parallelism?

A
  1. Instruction-level parallelism
  2. Thread-level parallelism
  3. Data-level parallelism
23
Q

Describe instruction-level parallelism

A

Trying to execute more than one instruction in the same clock cycle

24
Q

Describe thread-level parallelism

A

Run N sequential threads on N processors, or an N-way multithreaded processor, or some combination

25
Describe data-level parallelism
An instruction can act on more than one data item Eg. vector instructions operate on a vector of values Widely used in CPUs and particularly GPUs
26
What does pipelining involve?
Breaking the execution of each instruction into steps. Eg: 1. Instruction fetch 2. Decode 3. Execute 4. Memory access 5. Writeback While one instruction is being executed, another is being decoded etc.
27
What are the 3 types of prediction?
1. Control-flow prediction 2. Data-value prediction 3. Data-access pattern prediction
28
What is prediction?
Predicting what will happen next to make the pipeline and memory subsystem more efficient
29
Give an example of control-flow prediction
Predicting the outcome of conditional branches
30
Give 2 examples of data-value prediction
Predicting that a value will not change Predicting that two different pointers do not alias to the same address
31
Give an example of data-access pattern prediction
Ensures that data needed soon is close by for low-latency access Eg. exploiting temporal and spatial statistical properties of data access
32
What is the motivation behind a hierarchy of memories?
Speed of light and propagation of electrical signals on a chip is too slow, so accessing external DRAM chips can take too long. Forced to have a hierarchy of memories, with the aim that the one closest to the processor holding the working set
33
What is the purpose of redundancy?
To make systems dependable
34
Give 3 common forms of redundancy
1. Extra memory bits and error correcting codes to correct bit errors (especially for magnetic hard disks and flash memories) 2. RAID - Redundant Array of Inexpensive Disks (used in DRAM) 3. Triple modular redundancy - three processors execute the same code, used in highly reliable systems
35
What is "Turing tax"?
This tax is high in general purpose machines - vast numbers of transistors are used to store and move data with very few used for computation The von Neumann processor model is a serious impediment to improvements.