INTRODUCTION Flashcards
What is computer architecture?
attributes of a system that have a direct impact on the logical execution of a program.
It’s about what a computer does eg the multiply instruction
Give examples of some aspects of computer architecture
- the instruction set
- the number of bits used to represent various data types
- I/O mechanisms
- memory addressing techniques
What is computer organization
operational units and their interconnections that realize the architectural specifications.
Deals with how features are implemented e.g. Is there a hardware multiply unit or is it done by repeated addition?
Give examples of some aspects of computer organization
Control signals
interfaces
memory technology.
How does the organization and architecture differ across different versions from the same computer?
Different versions have the same basic architecture eg
All Intel x86 family share the same basic architecture
The IBM System/370 family share the same basic architecture
However, Organization differs between different versions
What is the benefit of having the same basic architecture across different versions from the same family
This gives code compatibility (At least backwards)
What is a hierarchical system?
A set of interrelated subsystem, each of the later, in turn, hierarchical in structure until we reach some lowest level of elementary subsystem.
What is structure?
Structure is the way in which components relate to each other.
What is function?
Function is the operation of individual components as part of the structure
What are the different functions in a computer?
- Data processing: Computer must be able to process data which may take a wide variety of forms and the range of processing.
- Data storage: Computer stores data either temporarily or permanently.
- Data movement: Computer must be able to move data between itself and the outside world. (I/O systems)
- Control: There must be a control of the above three functions.
Draw the function view of a computer and illustrate the following scenarios: Data movement Storage Processing from/to the storage Processing from storage to i/o
*See the notes for a pic
What are the main structural components of the computer
- Central processing unit (CPU)
- Main memory
- I / O
- System interconnections
What are the CPU structural components:
- Control unit
- Arithmetic and logic unit (ALU)
- Registers
- CPU interconnections
List ways to increase microprocessor speed
Pipelining Having on-board L1 & L2 cache Branch prediction Data Flow analysis Speculative execution Adding new circuits, and the speed boost that comes from reducing the distances between them
What is branch prediction?
The processor looks ahead in the instruction code fetched from memory and predicts which branches, or group of instructions are likely to be processed next.
What is data flow analysis?
The processor analyzes which instructions are dependent on each other’s results, or data, to create an optimized schedule of instructions to prevent delay.
What is 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.
Describe performance mismatch
while processor speed and memory capacity have grown rapidly, the speed with which data can be transferred between main memory and the processor has lagged badly
What are some solutions to improve performance?
- 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 cache7 or other buffering scheme on the DRAM chip.
- 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 by using a hierarchy of buses to buffer and structure data flow.
How is programming a system better than hardwiring it?
Hardwired systems are inflexible. General purpose hardware can do different tasks, given correct control signals. Instead of re-wiring, supply a new set of control signals
Draw a diagram to show the difference between programing in hardware and programing is software
*See notes for picture