chapter 1
DESCRIPTION
CHAPTER 1. COMPUTER ABSTRACTIONS AND TECHNOLOGY Parts of these notes have been adapter from those of Prof. Professor Mike Schulte, Prof. D. Patterson, and Prof Irwin (PSU). Course Content. - PowerPoint PPT PresentationTRANSCRIPT
1
CHAPTER 1
COMPUTER ABSTRACTIONS AND
TECHNOLOGYParts of these notes have been adapter from those of
Prof. Professor Mike Schulte, Prof. D. Patterson, and Prof Irwin (PSU)
2
Course Content
• Text book: Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Patterson and Hennessy, Morgan Kaufman, 1997.
• Topics covered include :– Computer Architecture and Technology– Computer Performance– Computer Instruction Sets– Computer Arithmetic– Processor Design– Pipelined Processors– Memory System Design– Input/Output System Design
3
What is Computer Architecture?
• Computer Architecture is the design of the computer at the hardware/software interface.
• Computer Architecture = Instruction Set Architecture + Machine
Organization Computer Architecture
Instruction Set Design Machine Organization
at the above interface. of Hardware Components.
Compiler/System View Logic Designer’s View
4
Language of the Machine
• Computer operates using number in base 2, or binary numbers– Why?
• Instructions are represented by binary numbers (Ch 3)• First programmers communicated using binary numbers
– 100110010100000 represents the instruction to add two numbers together
• Programs invented to translate symbols to binary – Assembler– Less tedious and more readable– add A,B
5
Language of the Machine
• Eventually, higher level languages invented that translated from higher level notations– Compiler
• Program that accepts the more natural notation– Fortran was invented in 1954
• Benefits– Allow programmers to think in more natural language– Languages could be designed according to their intended use
• Fortran for scientific computing– Improve productivity of the programmers– Code portable between different platforms
6
Language of the Machine
• Libraries of code developed– Reusing code more efficient than writing everything from scratch– Subroutines for inputting and outputting data one of the first libraries
• Operating systems were then developed to supervise the running of programs and allocate resources to the programs
• Categories of software– Systems software – aimed at programmers
• OS, assembler, compiler– Application software – aimed at users
• Spread sheets, text editors
7
Instruction Set Architecture
• Instruction set architecture has the attributes of a computing system as seen by the assembly language programmer or compiler. This includes
– Instruction Set (what operations can be performed?)– Instruction Format (how are instructions specified?)– Data storage (where is data located?)– Addressing Modes (how is data accessed?)– Exceptional Conditions (what happens if something goes wrong?)
• A good understanding of computer architecture is important for compiler writers, operating system designers, and general computer programmers.
8
Instruction Set Architecture
• An abstract interface between the hardware and the lowest level software of a machine that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on.
9
Key considerations in “Computer Architecture”
I/O systemInstr. Set Proc.
Compiler
OperatingSystem
Application
Digital DesignCircuit Design
Instruction Set Architecture
Firmware
• Coordination of many levels of abstraction• Under a rapidly changing set of forces• Design, Measurement, and Evaluation
Datapath & Control
Layout
Software
Hardware
10
Moore’s Law
• In 1965, Gordon Moore predicted that the number of transistors that can be integrated on a die would double every 18 to 24 months (i.e., grow exponentially with time).
11
Processor Performance Increase
1
10
100
1000
10000
1987 1989 1991 1993 1995 1997 1999 2001 2003
Year
Perf
orm
ance
(SPE
C In
t)
SUN-4/260 MIPS M/120MIPS M2000
IBM RS6000
HP 9000/750
DEC AXP/500 IBM POWER 100
DEC Alpha 4/266DEC Alpha 5/500
DEC Alpha 21264/600
DEC Alpha 5/300
DEC Alpha 21264A/667Intel Xeon/2000
Intel Pentium 4/3000
12
DRAM Capacity Growth
10
100
1000
10000
100000
1000000
1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002
Year of introduction
Kbi
t cap
acity
16K
64K
256K
1M
4M
16M
64M128M
256M512M
13
Abstraction
• An Abstraction has levels. Delving into the depths of these levels reveals more information.
• An abstraction omits unneeded detail, helps us cope with complexity.
• Abstraction is the approach used in the design of software and hardware.
• An abstraction system consists of hierarchical levels with each lower level hiding details from the level above.
14
Levels of abstraction
• Computer architecture uses various levels of abstractions. • Each level of abstraction consists of
– an interface (outside view of what it does), and – an implementation (inside view of how it works)
A
BY
S
2 x 1 Mux
A
B
S
NAND
NAND
NANDY
Interface Implementation
15
Instruction Set Architecture: An Abstraction
• A very important abstraction– interface between hardware and low-level software– standardizes instructions, machine language bit patterns, etc.– advantage: different implementations of the same architecture– disadvantage: sometimes prevents using new innovations
• Modern instruction set architectures:80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
16
Application of Abstraction: A Hierarchical Layer of Computer Languages
High Level Language Program
Assembly Language Program
Machine Language Program
Control Signal Specification
Compiler
Assembler
Machine Interpretation
lw $15, 0($2)lw $16, 4($2)sw$16, 0($2)sw$15, 4($2)
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
°°
ALUOP[0:3] <= InstReg[9:11] & MASK
17
The Organization of a Computer
• Since 1946 all computers have had 5 main components
Control
Datapath
Memory
Processor
Input
Output
18
The Organization of a Computer
• Processor:– Data path - to do arithmetic and logic: e.g. adders, multipliers, shifters– Control - to give directions to the other components: e.g. tells the data
path, memory, and IO devices what to do according to the instructions of the program
• Memory: Holds data and instructions: e.g. cache, main memory, disk.
• Input: Sends data to the computer: e.g. keyboard, mouse.• Output: Gets data from the computer: e.g. screen, sound
card, printer.
19
Inside the Pentium 4 Processor Chip
20
PC Motherboard Closeup
21
Instruction ExecutionInstruction
Fetch
InstructionDecode
OperandFetch
Execute
ResultStore
NextInstruction
Obtain instruction from program storage
Determine required actions and instruction size
Locate and obtain operand data
Compute result value or status
Deposit results in storage for later use
Determine successor instruction
22
Summary
• Computer Architecture includes the design of the Instruction Set Architecture (programmer’s view) and the Machine Organization (logic designer’s view).
• Levels of abstraction, which consist of an interface and an implementation are useful to manage designs.
• Processor performance increases rapidly, but the speeds of memory and I/0 have not kept pace.
• Computer systems are comprised on datapath, memory, input devices, output devices, and control.
23
Where we are headed
• Instructions: Language of the machine (chapter 3)• The role of performance (chapter 2)• Arithmetic and how to build an ALU (Chapter 4)• The basics of logical design (Appendix B)• Processor: data path and control (Chapter 5)• Memory: caches and virtual memory (Chapter 7)