Introduction
- Please the Preface, page V, To The Student and XI, General Organization and Coverage
- Chapter 1 Goals
- Motivate the study of computer architecture
- Learn basic terminology
- Discuss various computer models
- Examine basics of a computer system
- In the last 50 years computers have had a tremendous impact on our lives.
- This has expanded greatly in the last 20 years
- And people predict that it will continue to grow
- What has made all of this possible?
- What is Computer Science?
- Programming
- The study of programming?
- The study of Algorithms?
- The study of hardware?
- Some algorithms are computationally infeasible, or they would
take far too long to complete.
- Trying to crack a 14 character password by brute force
- This class is here because:
- Understanding how the computer works helps us to determine what is feasible
- Understanding how the computer works helps us make programs that are more efficient.
- Understanding how performance of computers is measured is essential if you are involved in purchasing/specifying computer systems
- Computer Organization
- How does a computer work?
- How does data travel through the computer?
- How do control signals change the data path?
- How are control signals generated
- What is a cache?
- What is a 8x210 memory system
- A "mechanical" view of a computer
- Computer Architecture
- How do I design a computer?
- What instructions are needed?
- How are numbers represented?
- What types of data do I have?
- The logical view of the computer
- an Instruction Set Architecture is the standard interface
to the hardware.
- Instructions
- Addressing details
The Main Components of a Computer
- What is the difference between hardware and software?
- Consider a simple calculator:
- 10 digit keys
- 4 operators (+,-,*,/)
- 1 enter key (=)
- operations are in the form
- digits operator digits enter
- 45 + 34 =
- 124 / 2 =
- The result is printed.
- Can you write software to do this?
- Can hardware do this?
- What is the difference?
- The Principle of Equivalence of Hardware and Software
- Anything that can be done with software can also be done with hardware, and anything that can be done with hardware can also be done with software
- in some sense hardware and software are the same thing
- But only if we don't look at speed.
- Java for example
- Java code is compiled to byte code
- This is then run on the java virtual machine
- Which is an implementation of a computer
- Interesting point: "Modern computers are actually implementations of algorithms that execute other algorithms"
- Special purpose computers vs general purpose computers
- For hardware we will consider three basic systems
- A processor to interpret and execute programs (ch 4,5)
- A memory system to store data and programs (ch 6)
- A mechanism for transferring data to/from the computer (ch 7)