al2ed chapter2

44
Basic Computer Organization Chapter 2 S. Dandamudi

Upload: abdullelah-al-fahad

Post on 24-Jun-2015

342 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Al2ed chapter2

Basic Computer Organization

Chapter 2

S. Dandamudi

Page 2: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 2

Outline

• Basic components

• The processor Execution cycle System clock

• Number of addresses 3-address machines 2-address machines 1-address machines 0-address machines Load/store architecture

• Flow control Branching Procedure calls

• Memory Basic operations Types of memory Storing multibyte data

• Input/Output

• Performance: Data alignment

Page 3: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 3

Basic Components

• Basic components of a computer system Processor Memory I/O System bus

» Address bus» Data bus» Control bus

Page 4: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 4

Basic Components (cont’d)

Page 5: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 5

The Processor

• Processor can be thought of executing Fetch-decode-execute cycle forever

» Fetch an instruction from the memory

» Decode the instruction– Find out what the operation is

» Execute the instruction– Perform the specified operation

Page 6: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 6

The Processor (cont’d)

• System clock Provides timing signal

Clock period = 1

Clock frequency

Page 7: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 7

Number of Addresses

• Four categories 3-address machines

» 2 for the source operands and one for the result 2-address machines

» One address doubles as source and result 1-address machine

» Accumulator machines» Accumulator is used for one source and result

0-address machines» Stack machines» Operands are taken from the stack» Result goes onto the stack

Page 8: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 8

Number of Addresses (cont’d)

• Three-address machines Two for the source operands, one for the result RISC processors use three addresses Sample instructions

add dest,src1,src2

; M(dest)=[src1]+[src2]

sub dest,src1,src2

; M(dest)=[src1]-[src2]

mult dest,src1,src2

; M(dest)=[src1]*[src2]

Page 9: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 9

Number of Addresses (cont’d)

• Example C statement

A = B + C * D – E + F + A Equivalent code:

mult T,C,D ;T = C*D

add T,T,B ;T = B+C*D

sub T,T,E ;T = B+C*D-E

add T,T,F ;T = B+C*D-E+F

add A,T,A ;A = B+C*D-E+F+A

Page 10: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 10

Number of Addresses (cont’d)

• Two-address machines One address doubles (for source operand & result) Last example makes a case for it

» Address T is used twice

Sample instructions

load dest,src ; M(dest)=[src]

add dest,src ; M(dest)=[dest]+[src]

sub dest,src ; M(dest)=[dest]-[src]

mult dest,src ; M(dest)=[dest]*[src]

Page 11: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 11

Number of Addresses (cont’d)

• Example C statement

A = B + C * D – E + F + A Equivalent code:

load T,C ;T = Cmult T,D ;T = C*Dadd T,B ;T = B+C*Dsub T,E ;T = B+C*D-Eadd T,F ;T = B+C*D-E+Fadd A,T ;A = B+C*D-E+F+A

Page 12: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 12

Number of Addresses (cont’d)

• One-address machines Uses special set of registers called accumulators

» Specify one source operand & receive the result

Called accumulator machines Sample instructions

load addr ; accum = [addr]

store addr ; M[addr] = accum

add addr ; accum = accum + [addr]

sub addr ; accum = accum - [addr]

mult addr ; accum = accum * [addr]

Page 13: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 13

Number of Addresses (cont’d)

• Example C statement

A = B + C * D – E + F + A Equivalent code:

load C ;load C into accummult D ;accum = C*Dadd B ;accum = C*D+Bsub E ;accum = B+C*D-Eadd F ;accum = B+C*D-E+Fadd A ;accum = B+C*D-E+F+Astore A ;store accum contents in A

Page 14: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 14

Number of Addresses (cont’d)

• Zero-address machines Stack supplies operands and receives the result

» Special instructions to load and store use an address

Called stack machines (Ex: HP3000, Burroughs B5500) Sample instructions

push addr ; push([addr])

pop addr ; pop([addr])

add ; push(pop + pop)

sub ; push(pop - pop)

mult ; push(pop * pop)

Page 15: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 15

Number of Addresses (cont’d)

• Example C statement

A = B + C * D – E + F + A Equivalent code:

push E subpush C push Fpush D addMult push Apush B addadd pop A

Page 16: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 16

Load/Store Architecture

• Instructions expect operands in internal processor registers Special LOAD and STORE instructions move data between

registers and memory RISC and vector processors use this architecture Reduces instruction length

Page 17: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 17

Load/Store Architecture (cont’d)

• Sample instructionsload Rd,addr ;Rd = [addr]

store addr,Rs ;(addr) = Rs

add Rd,Rs1,Rs2 ;Rd = Rs1 + Rs2

sub Rd,Rs1,Rs2 ;Rd = Rs1 - Rs2

mult Rd,Rs1,Rs2 ;Rd = Rs1 * Rs2

Page 18: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 18

Number of Addresses (cont’d)

• Example C statement

A = B + C * D – E + F + A Equivalent code:

load R1,B mult R2,R2,R3load R2,C add R2,R2,R1load R3,D sub R2,R2,R4load R4,E add R2,R2,R5load R5,F add R2,R2,R6load R6,A store A,R2

Page 19: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 19

Flow of Control

• Default is sequential flow• Several instructions alter this default execution

Branches» Unconditional

» Conditional

Procedure calls» Parameter passing

– Register-based

– Stack-based

Page 20: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 20

Flow of Control (cont’d)

• Branches Unconditional

branch target» Absolute address

» PC-relative

– Target address is specified relative to PC contents

Example: MIPS» Absolute address

j target» PC-relative

b target

Page 21: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 21

Flow of Control (cont’d)

Page 22: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 22

Flow of Control (cont’d)

• Branches Conditional

» Jump is taken only if the condition is met

Two types» Set-Then-Jump

– Condition testing is separated from branching

– Condition code registers are used to convey the condition test result

» Example: Pentium code

cmp AX,BX

je target

Page 23: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 23

Flow of Control (cont’d)

» Test-and-Jump

– Single instruction performs condition testing and branching

» Example: MIPS instruction

beq Rsrc1,Rsrc2,targetJumps to target if Rsrc1 = Rsrc2

Page 24: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 24

Flow of Control (cont’d)

• Procedure calls Requires two pieces of information to return

» End of procedure

– Pentiumuses ret instruction

– MIPSuses jr instruction

» Return address

– In a (special) registerMIPS allows any general-purpose register

– On the stackPentium

Page 25: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 25

Flow of Control (cont’d)

Page 26: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 26

Flow of Control (cont’d)

• Parameter passing Register-based

» Internal registers are used – Faster– Limit the number of parameters

Due to limited number of available registers Stack-based

» Stack is used– Slower– Requires memory access– General-purpose

Not limited by the number of registers

Page 27: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 27

Memory

• Memory can be viewed as an ordered sequence of bytes

• Each byte of memory has an address Memory address is

essentially the sequence number of the byte

Such memories are called byte addressable

Number of address lines determine the memory address space of a processor

Page 28: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 28

Memory (cont’d)

• Two basic memory operations Read operation (read from memory) Write operation (write into memory)

• Access time» Time needed to retrieve data at addressed location

• Cycle time» Minimum time between successive operations

Page 29: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 29

Memory (cont’d)

• Steps in a typical read cycle» Place the address of the location to be read on the address bus

» Activate the memory read control signal on the control bus

» Wait for the memory to retrieve the data from the addressed memory location

» Read the data from the data bus

» Drop the memory read control signal to terminate the read cycle

A simple Pentium memory read cycle takes 3 clocks– Steps 1&2 and 4&5 are done in one clock cycle each

For slower memories, wait cycles will have to be inserted

Page 30: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 30

Memory (cont’d)

• Steps in a typical write cycle» Place the address of the location to be written on the address

bus

» Place the data to be written on the data bus

» Activate the memory write control signal on the control bus

» Wait for the memory to store the data at the addressed location

» Drop the memory write control signal to terminate the write cycle

A simple Pentium memory write cycle takes 3 clocks– Steps 1&3 and 4&5 are done in one clock cycle each

For slower memories, wait cycles will have to be inserted

Page 31: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 31

Memory (cont’d)

• Some properties of memory Random access

» Accessing any memory location takes the same amount of time

Volatility» Volatile memory

– Needs power to retain the contents

» Non-volatile memory

– Retains contents even in the absence of power

• Basic types of memory Read-only memory (ROM) Read/write memory (RAM)

Page 32: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 32

Memory (cont’d)

• Read-only memory (ROM)» Cannot be written into this type of memory

» Non-volatile memory

» Most are factory programmed (i.e., written)

Programmable ROMs (PROMs)» Can be written once by user

– A fuse is associated with each bit cell

– Special equipment is needed to write (to blow the fuse)

» PROMS are useful

– During prototype development

– If the required quantity is smallDoes not justify the cost of factory programmed ROM

Page 33: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 33

Memory (cont’d)

Erasable PROMs (EPROMs)» Can be written several times

» Offers further flexibility during system prototyping

» Can be erased by exposing to ultraviolet light

– Cannot erase contents of selected locationsAll contents are lost

Electrically erasable PROMs (EEPROMs)» Contents are electrically erased

» No need to erase all contents

– Typically a subset of the locations are erased as a group

– Most EEPROMs do not provide the capability to individually erase contents of a single location

Page 34: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 34

Memory (cont’d)

• Read/write memory» Commonly referred to as random access memory (RAM)

» Volatile memories

Two basic types» Static RAM (SRAM)

– Retains data with no further maintenance

– Typically used for CPU registers and cache memory

» Dynamic RAM (DRAM)

– A tiny capacitor is used to store a bit

– Due to leakage of charge, DRAMs must be refreshed to retain contents

– Read operation is destructive in DRAMs

Page 35: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 35

Memory (cont’d)

• DRAM types FPM DRAMs

» FPM = Fast Page Mode EDO DRAMs

» EDO = Extended Data Out– Uses pipelining to speedup access

SDRAMs» Use an external clock to synchronize data output» Also called SDR SDRAMs (Single Data Rate)

DDR SDRAMs» DDR = Double Data Rate » Provides data on both falling and rising edges of the clock

RDRAMs» Rambus DRAM

Page 36: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 36

Storing Multibyte Data

Page 37: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 37

Storing Multibyte Data (cont’d)

• Little endian» Used by Intel IA-32 processors

• Big endian» Used most processors by default

• MIPS supports both byte orderings» Big endian is the default

• Not a problem when working with same type of machines

» Need to convert the format if working with a different machine» Pentium provides two instructions for conversion

– xchg for 16-bit data– bswap for 32-bit data

Page 38: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 38

Input/Output

• I/O controller provides the necessary interface to I/O devices Takes care of low-level, device-dependent details Provides necessary electrical signal interface

Page 39: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 39

Input/Output (cont’d)

• Processor and I/O interface points for exchanging data are called I/O ports

• Two ways of mapping I/O ports Memory-mapped I/O

» I/O ports are mapped to the memory address space– Reading/writing I/O is similar to reading/writing memory

Can use memory read/write instructions» Motorola 68000 uses memory-mapped I/O

Isolated I/O» Separate I/O address space» Requires special I/O instructions (like in and out in Pentium)» Intel 80x86 processors support isolated I/O

Page 40: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 40

Input/Output (cont’d)

• Pentium I/O address space Provides 64 KB I/O address space Can be used for 8-, 16-, and 32-bit I/O ports Combination cannot exceed the total I/O address space

» can have 64 K 8-bit ports

» can have 32 K 16-bit ports

» can have 16 K 32-bit ports

» A combination of these for a total of 64 KB

I/O instructions do not go through segmentation or paging

» I/O address refers to the physical I/O address

Page 41: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 41

Performance: Data Alignment

Page 42: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 42

Performance: Data Alignment (cont’d)

0

1

2

3

5000 10000 15000 20000 25000

Array size

Sort

tim

e (s

econ

ds)

Unaligned

Aligned

Page 43: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 43

Performance: Data Alignment (cont’d)

• Data alignment Soft alignment

» Data is not required to be aligned

– Data alignment is optionalAligned data gives better performance

» Used in Intel IA-32 processors

Hard alignment» Data must be aligned

» Used in Motorola 680X0 and Intel i860 processors

Page 44: Al2ed chapter2

2005

To be used with S. Dandamudi, “Introduction to Assembly Language Programming,” Second Edition, Springer, 2005.

S. Dandamudi Chapter 2: Page 44

Performance: Data Alignment (cont’d)

• Data alignment requirements for byte addressable memories 1-byte data

» Always aligned

2-byte data» Aligned if the data is stored at an even address (i.e., at an

address that is a multiple of 2)

4-byte data» Aligned if the data is stored at an address that is a multiple of 4

8-byte data» Aligned if the data is stored at an address that is a multiple of 8

Last slide