23
1 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)

CHAPTER 1

  • Upload
    bowen

  • View
    42

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: CHAPTER 1

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)

Page 2: CHAPTER 1

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

Page 3: CHAPTER 1

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

Page 4: CHAPTER 1

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

Page 5: CHAPTER 1

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

Page 6: CHAPTER 1

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

Page 7: CHAPTER 1

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.

Page 8: CHAPTER 1

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.

Page 9: CHAPTER 1

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

Page 10: CHAPTER 1

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).

Page 11: CHAPTER 1

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

Page 12: CHAPTER 1

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

Page 13: CHAPTER 1

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.

Page 14: CHAPTER 1

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

Page 15: CHAPTER 1

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

Page 16: CHAPTER 1

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

Page 17: CHAPTER 1

17

The Organization of a Computer

• Since 1946 all computers have had 5 main components

Control

Datapath

Memory

Processor

Input

Output

Page 18: CHAPTER 1

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.

Page 19: CHAPTER 1

19

Inside the Pentium 4 Processor Chip

Page 20: CHAPTER 1

20

PC Motherboard Closeup

Page 21: CHAPTER 1

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

Page 22: CHAPTER 1

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.

Page 23: CHAPTER 1

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)