1 international technology university cen 951 computer architecture lecture 1 - introduction

34
1 International Technology University CEN 951 Computer Architecture Lecture 1 - Introduction

Upload: dylan-ryan

Post on 03-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

1

International Technology University

CEN 951 Computer Architecture

Lecture 1 - Introduction

2

Introduction

• Rapidly changing field:• vacuum tube -> transistor -> IC -> VLSI

• Doubling every 1.5 years• memory capacity

• processor speed (Due to advances in technology and organization)

3

Intel 4004 1971

Note:•16 wires bonded•lines in parallel are buses•function modules are rectangular

4

Pentium IIIb1997

• Bond pads on border

• buses are parallel lines

• function blocks rectangular

5

Processor speed in MIPS

MIPS

1

10

100

1000

10000

1986 1988 1990 1992 1994 1996 1998

MIPS

Processor speed increases by factor 10 each 5 years

6

Growth of

DRAM chip

capacity

capacity Kbits

1

10

100

1000

10000

100000

1975 1980 1985 1990 1995 2000

capacity Kbits

DRAM capacity grows by factor 10 each 5 years

7

Things you’ll be learning:

• How computers work, a basic foundation• How to analyze their performance (or how not to!)• Issues affecting modern processors (caches, pipelines)

Why learn this stuff?• You want to call yourself a “computer scientist”• You want to build software people use (need

performance)• You need to make a purchasing decision or offer

“expert” advice• You want to understand specs of current Pentium

8

What is a computer?

• Components:– input (mouse,

keyboard)

– output (display, printer)

– memory (disk drives, DRAM, SRAM, CD)

– network

• Our primary focus:– the processor (data-

path and control)• implemented using

millions of transistors

• Impossible to understand by looking at each transistor

• We need…abstraction

9

• PC motherboard in case with cooling for CPU, daughter boards for peripherals

10

11

7 Layer model for architecture

• High Level

• Low Level

• User Level: Application Programs• High Level Languages• Assembly Language /

Machine Code• Micro-programmed /

Hardwired Control• Functional Units (Memory,

ALU, etc.)• Logic Gates• Transistors and Wires

12

13

Abstraction

• Delving into the depths reveals more information

• An abstraction – omits unneeded detail– helps us cope with complexity

• What are some of the details that appear in these familiar abstractions?

14

High- level language program (in C) and equivalent assembler code

swap( int v[ ], int k)

{

int temp;

temp = v[ k];

v[ k] = v[ k+ 1];

v[ k+ 1] = temp;

}

swap:

muli $2, $5, 4

add $2, $4,$2

lw $15, 0($2)

lw $16, 4($2)

sw $16, 0($2)

sw $15, 4($2)

jr $31

v[k]

v[k+1]

$5=k ,$4=addr of v[0]

return fromroutine

15

Assembly language program (for MIPS), and binary machine language program (for MIPS)

swap:

muli $2, $5, 4

add $2, $4,$ 2

lw $15, 0($ 2)

lw $16, 4($ 2)

sw $16, 0($ 2)

sw $15, 4($ 2)

jr $31

00000000101000010000000000011000

00000000100011100001100000100001

10001100011000100000000000000000

10001100111100100000000000000100

10101100111100100000000000000000

10101100011000100000000000000100

00000011111000000000000000001000

These 32 bit codes are not exactly the MIPS codes!!

16

17

Instruction Set Architecture

• 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

18

Modern instruction set architectures

80x86/ Pentium/ K6, PowerPC, DEC Alpha, MIPS, SPARC, HP

19

Where we are headed

• Performance issues, vocabulary and motivation

• A specific instruction set architecture• Arithmetic and how to build an ALU• Constructing a processor to execute our

instructions• Pipelining to improve performance• Memory: caches and virtual memory• I/ O• Assembler programming

20

Desirable features of systems

• coherent• collaborative• connected• extensible• flexible• hidden• instrumented

• maintainable• open• reusable• robust• scalable• secure• transportable

21

coherent

• made of individual components with defined interfaces, unaffected by changes in implementation of other components

22

collaborative

• data and transactions work across environments from different vendors and implementations

23

connected

• information and functionality are available by defined interfaces, paths and connections from elsewhere in the system

24

extensible

• the system components can be extended to new unanticipated contexts and situations

25

flexible

• performance degrades gradually allowing time for corrective action with evolving business context and environment

26

hidden data

• interfaces are well defined, complexity of implementation is hidden, simplicity of design is presented

27

instrumented

• the system is provided with built in sensors or data gathering devices for system diagnostics

28

maintainable

• useful life of the system can be prolonged by routine attention to features that change or wear out

29

open

• implemented in publicly available standards

30

reusable

• components are well defined, subjected to configuration management, and documented so that they can be used again in different contexts

31

robust

• able to adapt to changing requirements and contexts, allowing for effective modification, administration and management; gradual degredation under stress

32

scalable

• performance improves linearly or nearly linearly as system components are added to handle additional data volume, users and processing requirements

33

secure

• defensible against intentional or accident attack or damage

34

transportable

• components of the system can be installed in a variety of implementations

• Also consider:– Security– Availability– Performance