[[Syllabus]]
Why Study Computer Organization
"The Medium is the Message" - Marshall McLuhan
- We must be effective at understanding the medium (computers) in order to more effectively understand how to use them.
- Why some methods are more effective than others
- Why do supercomputers run numerical methods multiple times
- Why is a program written diffrently depending on the machine, for some languages
Abstraction is the KEY to Computing
Abstraction |
Examples |
Multi-level translation |
Different Languages and systems can work together |
Number Representations |
Applied in Networks |
Processor Design and Pipelining |
Different architecture for diffrent needs |
What is a Computer
Anything with a processor, and the ability to "compute"!
A computer is divided into 3 classes
- Desktop
- Servers
- Embedded Computers
A PMD (personal mobile device) is a newer class of computers, that have become larger than these other types of computers. It can be carried around, however this develops the problem of conserving power. PMD have batteries, and they are portable making them diffrent than the other types.
Eight Great Architectural Ideas
- Design for Moore's Law
- Use abstraction to simplify design
- Make common case fast
- Performance via parallelism
- Performance via pipelining
- Performance via prediction
- Hierarchy of memories
- Dependability of redundancy
Design For Moore's Law
- The number of transistors on a chip doubles every 18-24 months
- Architects have to anticipate where technology will be when the design of a system is completed
- Use of the principle is limited by Dennard Scaling
Dennard Scaling - Law of Diminishing returns
Use of abstraction to simplify design
- Abstraction is used to represent diffrent levels of a design
- Lower-level details can be hidden to provide a simpler models at higher levels
Make the common case fast
- Identify the common case and try and improve it
- Most cost efficent method
Via Parellelism
Via pipelining
- Break tastks into smaller tasks so they can be simultaneosly preformed in diffrent stages
- Commonly used to improve instruction thoughput
Via Prediction
- Sometimes faster to assume a particular result than waiting until the result is known
- Known as speculation and is used to guess branches
Use a hierarchy of memories
- Make the fastest, smallest, and most expensive per bit memory the first level accessed and the slowest largest, and cheapest per bit memory the last level accessed
- Allows most of the accesses to be caught aat the first level and be able to retain most of the information
Moving some of the memory to specific places so we can find it faster
Improve dependability via redundancy
- Include redundant components that can both detect and often correct failures
- Used at many diffrent levels
Program Levels and Translation
The computer speaks in terms of electrical signals
-
0V is "on" and 0V is "off"
- 1 is "on", 0 is "off"
The Compiler only takes you as far as assembly code
Stage |
Definition |
Compiler |
Translates a high-level language to assembly |
Assembler |
Symbolic representation of instructions |
Linker |
Combines multiple files into a single ex |
For day 2 notes check [[Summer2023/CDA3100/Performance]]