Computer Architecture Flashcards
What is a clock?
A clock drives the steps in the processor - everything happens on the clock “edge” as systems are synchronous
What does the Program Counter do?
Contains the address of the instruction to run
Increments after each instruction
What does the Instruction Register do?
Contains the instruction most recently fetched
What does the Memory address register do
Contains the address of a location in memory
What does the Memory buffer register do?
Contains a word of data to be written to memory or the word most recently read
What happens in the fetch part of the fetch-execute cycle?
- PC contains address of next instruction
- Address moved to MAR
- Address placed on address bus
- Control unit request memory read
- Result placed on data bus, copied to MBR, then to IR
- PC incremented by 1
What happens in an indirect fetch cycle?
it fetches the data stored in the memory location, to use the data to fetch/reach the memory location of the data required
Advantages of Von Neumann?
Simple - data and instructions stored in a single memory space
Cost-Effective - Smaller number of components
Disadvantages of Von Neumann
Bottleneck - Shared bus, simultaneous obtaining impossible
Memory Corruption - same memory space, erase
Advantages of Harvard
Faster processing - Two buses
Improved Security - Not stored in same location, no erase
Efficient use of resources
Disadvantages of Harvard
Complexity - intricate design
Higher cost
Less Flexibility
RISC characteristics
- Instructions of fixed length in a single clock cycle
- Pipelines to achieve one-instruction-per-one-clock-cycle
- Simple control logic to increase clock speed
- Operations performed on internal registers (load store instructions access external memory only)
CISC characteristics
- Binary compatibility (old binary code on newer systems)
- Complex control logic
- Use of micro-code
- Variable length instructions to save program memory
- Small internal register sets compared with RISC
- Complex addressing modes, operands can reside in external memory or internal registers
What is pipelining?
Pipelines overlap operations to aim to complete an instruction every clock cycle
What are the different ways of branch prediciton?
- Multiple streams
- Prefetch Branch Target
- Loop buffer
- Branch prediction
- Delayed branching
How does multiple streams work in pipelining?
- Have two pipelines
- Prefetch each branch into a separate, appropriate pipeline
- Waste the branch you didn’t need
Disadvantages of Multiple streams
- Leads to bus & register
- Multiple branches lead to further pipelines being needed
How does Prefetch Branch Target work?
- Target of branch is prefetched in addiction to instructions following branch
- Keep target until branch is executed
How does Loop Buffer work?
- Stores all the instructions of a loop in a buffer in the CPU
- Optimises the process of jumping away from the previous instruction
- Check buffer before fetching from memory
How does Static Branch Prediction work?
- Predicts one side (jump or not jump)
- If no jump, always fetch next instruction
-If jump, fetch target instruction
How would Branch Predicition be improved?
- Predict using the opcode
- Produce Statistics related to the likely hood of jumping
- Can learn
What is a superscalar processor?
A processor that completes more than one instruction per clock cycle
What is In-Order Issue, Completion?
- Issue instructions in the order they occur
- May fetch >1 instruction
Disadvantages of In-order Issue, Completion
- Not very efficient
- Instructions must stall if necessary
What is True Data Dependency?
It can execute fetch and decode two instructions simultaneously but not execute the second because it is dependent on the first
What is Procedural Dependency?
Can not execute instructions after a branch in parallel with instructions before a branch, preventing simultaneous fetches
What is Resource Conflict?
Two or more instructions requiring access to the same resource at the same time
What is Out-of-Order Issue, Completion?
- Decouple decode pipeline from execution pipeline
- Can continue to fetch and decode until this pipeline is full
- When a functional unit becomes available, an instruction can be executed
What is an Antidependency?
A register value is needed but changed in the next instruction
What is an Instruction Set?
The structure of a computer that a machine language programmer must understand to write a correct program for that machine
What is opcode?
The operation code is the instruction/task that has to be completed
What is the operand reference?
Where the data is referenced, the item of data is used from there
What is the result reference?
Where the instruction output gets put
What does the ALU do?
It does the arithmetic and logic operations in the CPU. It can also shift or rotate bits
What is the benefit of more addresses per instruction?
- More complex (powerful?) instructions
- More registers
- Register-to-Register operations are quicker
- Fewer instructions per program
What is the benefit of fewer addresses per instruction?
- Less complex instructions
- More instructions per program
- Faster fetch/execution of instructions
What is the important of data alignment?
Reading miss-aligned data may need multiple memory reads and shift which will negatively effect performance
What is Endianness
How are bytes in a word ordered and how are bits in a byte ordered