30
cs 61C L20 datapath.1 Patterson Spring 99 ©UCB CS61C Virtual Memory Wrap-Up + Processor Datapath Lecture 20 April 9, 1999 Dave Patterson (http.cs.berkeley.edu/~patterson) www-inst.eecs.berkeley.edu/~cs61c/ schedule.html

CS61C Virtual Memory Wrap-Up + Processor Datapath Lecture 20

  • Upload
    elias

  • View
    22

  • Download
    0

Embed Size (px)

DESCRIPTION

CS61C Virtual Memory Wrap-Up + Processor Datapath Lecture 20. April 9, 1999 Dave Patterson (http.cs.berkeley.edu/~patterson) www-inst.eecs.berkeley.edu/~cs61c/schedule.html. Outline. Review Virtual Memory Introduce Datapath Top-Down Basic Components and HW Building Blocks - PowerPoint PPT Presentation

Citation preview

Page 1: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.1 Patterson Spring 99 ©UCB

CS61CVirtual Memory Wrap-Up+ Processor Datapath

Lecture 20

April 9, 1999

Dave Patterson (http.cs.berkeley.edu/~patterson)

www-inst.eecs.berkeley.edu/~cs61c/schedule.html

Page 2: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.2 Patterson Spring 99 ©UCB

Outline°Review Virtual Memory

° Introduce Datapath Top-Down

°Basic Components and HW Building Blocks

°Administrivia, “Computers in the News”

°Designing an Arithmetic Logic Unit (ALU)

°1-bit ALU

°32-bit ALU

°Conclusion

Page 3: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.3 Patterson Spring 99 ©UCB

Review 1/2°Virtual Memory allows protected sharing of

memory between processes with less swapping to disk, less fragmentation than always swap or base/bound

°3 Problems:

1) Not enough memory: Spatial Locality means small Working Set of pages OK

2) TLB to reduce performance cost of VM

3) Need more compact representation to reduce memory size cost of simple 1-level page table, especially for 64-bit address(See CS 162)

Page 4: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.4 Patterson Spring 99 ©UCB

Review 2/2: Paging/Virtual Memory User B:

Virtual Memory

Code

Static

Heap

Stack

0Code

Static

Heap

Stack

A PageTable

B PageTable

User A: Virtual Memory

00

Physical Memory

64 MB

Page 5: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.5 Patterson Spring 99 ©UCB

Reduce Page Table Space:

°Multilevel Page Table

Page Number

Super Page No.

Offset

10 bits 10 bits 12 bits°Super Pages map 222bytes (4 MB)

°Each Super Page Page Table Entry in Super Page Table points to a separate (normal) Page Table which maps 4MB into 1024 4KB (212) pages

°Save space by avoiding normal Page Table when no entry in Super Page Table

Page 6: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.6 Patterson Spring 99 ©UCB

2-level Page Table

0

Physical Memory64

MB

Virtual Memory

Code

Static

Heap

Stack

0

(Normal)Page

Tables

SuperPageTable

Page 7: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.7 Patterson Spring 99 ©UCB

Anatomy: 5 components of any Computer

Processor (active)

Computer

Control(“brain”)

Datapath(“brawn”)

Memory(passive)

(where programs, data live whenrunning)

Devices

Input

Output

Keyboard, Mouse

Display, Printer

Disk (where programs, data live when not running)

Lectures 20-22 Lectures 17-19

Page 8: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.8 Patterson Spring 99 ©UCB

Deriving the Datapath for a MIPS Processor

°Start with instruction subset in 3 instruction classes to derive datapath

Memory-reference: lw, sw

Arithmetic-logical: add, sub, and, or

Branch: beq

°This subset illustrates shows most of the difficult steps in executing instructions

Page 9: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.9 Patterson Spring 99 ©UCB

Up to 5 Steps in Executing MIPS Subset°All instructions have common first two steps:

1) Fetch Instruction and Increment PC (Memory[PC]; PC = PC + 4)

2) Read 1 or 2 Registers (lw reads 1 reg)

Page 10: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.10 Patterson Spring 99 ©UCB

Up to 5 Steps in Executing MIPS Subset

°3rd step depends on instruction class

3) for Memory-reference: Calculate Address (Address = Reg[rs]+Imm)

3) for Arithmetic-logical: Calculate Result (Result = Reg[rs] op Reg[rt], op is +,-,&,|)

3) for Branch: Compare (equal = (Reg[rs] == Reg[rt]))

Page 11: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.11 Patterson Spring 99 ©UCB

Up to 5 Steps in Executing MIPS Subset°4th step depends on instruction class

4 ) for lw: Fetch Data in Memory(Data = Memory[Address])

4 ) for sw: Memory[Address] = Reg[rt]

4 ) for Arithmetic-logical: Write Result (Reg[rd] = Result)

4) for Branch: Compare (if (Equal) PC = PC + Imm)

°5th step only for lw; rest are done

5) for lw: Write Result (Reg[rt] = Data)

Page 12: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.12 Patterson Spring 99 ©UCB

What is needed for Datapath from 5 steps°PC

°32 Registers

°Unit to perform +,-, &, |• Called an Arithmetic-Logic Unit, or ALU

°Memory for Instructions, Data

°Some miscellaneous registers to hold results between steps: Address, Data, Equal

Page 13: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.13 Patterson Spring 99 ©UCB

Putting Together a Datapath for MIPS

°How can have separate Instruction Memory and Data Memory?

°Separate Caches for Instructions and for Data

DataMemory

PC Registers ALU

Data In Data Out

InstructionMemory

AddressData Out

Address Data OutData In

Step 1 Step 2 Step 3 (Step 4)

Page 14: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.14 Patterson Spring 99 ©UCB

Administrivia°Project 5: Due 4/14: design and implement

a cache (in software) and plug into instruction simulator

°Next Readings: 5.1 (skip logic, clocking), 5.2, 4.5 (pages 230-236), 4.6 (pages 250-253, 264; skim 254-257), 4.7 (pages 265-268, 273; skim 269-271)

• How many lectures to cover: 2?

°9th homework: Due Friday 4/16 7PM• Exercises 7.35, 4.24

Page 15: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.15 Patterson Spring 99 ©UCB

Administrivia: Courses for Telebears°Take courses from great teachers!

°Top Faculty / Course (may teach soon)• CS 150 logic design Katz 6.2F92

• CS 152 computer HW Patterson 6.7S95

• CS 164 compilers Rowe 6.1S98

• CS 169 SW engin. Brewer 6.2S98

• CS 174 combinatorics Sinclair 6.1F97

• CS 186 data bases Wang 6.2S98

• EE 130 IC Devices Hu 6.2S97

• EE141 Digital IC Design Rabaey 6.3S97

hkn.eecs/toplevel/coursesurveys.html

Page 16: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.16 Patterson Spring 99 ©UCB

“Computer (Technology) in the News”°“A Milestone on the Road to Ultrafast

Computers”, N.Y. Times, April 6, 1999

° tunneling magnetic junction random access memory (tmj-ram) by IBM researchers

° A new kind of memory that could fundamentally alter computer design early in the next century... combine the best features of computer disks ... and memory chips...(No hierarchy: fast as cache, dense as disk)

° a crucial step toward new class of materials and microelectronics-- "spintronics”--based on ability to detect and control spins of electrons in ferromagnetic materials

Page 17: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.17 Patterson Spring 99 ©UCB

Contructing the Datapath Components° Instruction Memory and Data Memory are just caches, as seen before

°PC, 32 Registers built from hardware called “registers” which each store 1 word

°Leaves ALU for MIPS subset

° (For full MIPS instruction set, need multiply, divide: do that later)

°First describe Hardware Building Blocks

Page 18: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.18 Patterson Spring 99 ©UCB

Hardware Building Blocks (for ALU)

AND Gate

CAB

SymbolA B C0 0 00 1 01 0 01 1 1

DefinitionOR Gate

AB

CA B C0 0 00 1 11 0 11 1 1

DefinitionSymbol

CASymbol

Inverter

A C0 11 00 0

Definition

C

SymbolMultiplexor

D C0 A1 B0 0

Definition

A

B

0

1

D

Page 19: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.19 Patterson Spring 99 ©UCB

Arithmetic Logic Unit (ALU)°MIPS ALU is 32 bits wide

°Start with 1-bit ALU, then connect 32 1-bit ALUs to form a 32-bit ALU

°Since hardware building block includes an AND gate and an OR gate,and since AND and OR are two of the operations of the 1-bit ALU, start here:

AB C

0

1

Op

Op C0 A and B1 A or B0 0

Definition

Page 20: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.20 Patterson Spring 99 ©UCB

What about Addition?°Example Binary Addition:

a: 0 0 1 1

b: 0 1 0 1

Sum: 1 0 0 0

Carries

°Thus for any bit of addition:• The inputs are ai, bi, CarryIni

• The outputs are Sumi, CarryOuti

°Note: CarryIni+1 = CarryOuti

Page 21: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.21 Patterson Spring 99 ©UCB

1-Bit Adder

SumA

Symbol

“Full Adder”

Definition

B

CarryIn

CarryOut

A B CarryIn CarryOut Sum0 0 0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

+

Page 22: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.23 Patterson Spring 99 ©UCB

Constructing Hardware to Match Definition°Given any table of binary inputs for a binary output, programs can automatically connect a minimal number of AND gates, OR gates, and Inverters to produce the desired function

°Such programs generically called “Computer Aided Design”, or CAD

Page 23: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.24 Patterson Spring 99 ©UCB

Example: HW gates for CarryOut

°Values of Inputs when CarryOut is 1:

A B CarryIn0 1 11 0 11 1 01 1 1

°Gates for CarryOut signal:

A

B

CarryInCarryOut

°Gates for Sum left as exercise to Reader

Page 24: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.25 Patterson Spring 99 ©UCB

Add 1-bit Adder to 1-bit ALU

°Now connect 32 1-bit ALUs together

Op

Op C0 A and B1 A or B

2 A + B + CarryIn

DefinitionCarryIn

CarryOut

AB

C

0

1

2+

Page 25: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.26 Patterson Spring 99 ©UCB

32-bit ALU°Connect CarryOuti to CarryIni+1

°Connect 32 1-bit ALUs together

°Connect Op to all 32 bits of ALU

A0

B0C0

0

1

2+

A1

B1C1

0

1

2+

A31

B31C31

0

1

2+

...

CarryIn Op

°Does 32-bit And, Or, Add

°What about subtract?

Page 26: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.27 Patterson Spring 99 ©UCB

2’s comp. shortcut: Negation (Lecture 7)° Invert every 0 to 1 and every 1 to 0, then add 1 to the result

• Sum of number and its inverted rep. (“one’s complement”) must be 111...111two

• 111...111two= -1ten

• Let x’ mean the inverted representation of x

• Then x + x’ = -1 x + x’ + 1 = 0 x’ + 1 = -x

°Example: -4 to +4 to -4x : 1111 1111 1111 1111 1111 1111 1111 1100two

x’: 0000 0000 0000 0000 0000 0000 0000 0011two

+1: 0000 0000 0000 0000 0000 0000 0000 0100two

()’: 1111 1111 1111 1111 1111 1111 1111 1011two

+1: 1111 1111 1111 1111 1111 1111 1111 1100two

Page 27: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.28 Patterson Spring 99 ©UCB

How Do Subtract?°Suppose added input to 1-bit ALU that gave the one’s complement of B

°What happens if set CarryIn0 to 1 in 32-bit ALU?

°Sum = A + B + 1

°Then if select inverted B (B), Sum isA + B + 1 = A + (B + 1) = A + (-B) = A - B

°Therefore can do subtract as well as And, Or, Add if modify 1-bit ALU

Page 28: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.29 Patterson Spring 99 ©UCB

1-bit ALU with Subtract Support

Op

Definition

CarryIn

CarryOut

A

B C

0

1

2+0

1

Binvert

Binvert Op C0 0 A and B1 0 A and B0 1 A or B1 1 A or B0 1 A + B + CarryIn1 1 A + B + CarryIn

Page 29: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.30 Patterson Spring 99 ©UCB

32-bit ALU

...

CarryIn Op

A0

B0 C0

0

1

2+01

A1

B1 C1

0

1

2+01

A31

B31 C31

0

1

2+01

Binvert

°32-bit ALU made from AND gates, OR gates, Inverters, Multiplexors

°Performs 32-bit AND, OR,Addition,Subtract (2’s complement)

...

Page 30: CS61C Virtual Memory Wrap-Up + Processor Datapath  Lecture 20

cs 61C L20 datapath.31 Patterson Spring 99 ©UCB

“And in Conclusion..” 1/1°Virtual Memory shares physical memory

between several processes via paging

°Datapath components visible in the instruction set: PC, Registers, Memory, ALU

°Hardware building blocks: And gate, Or gate, Inverter, Multiplexor

°Build Adder via Abstraction: decompose into 1-bit ALUs

°Seen how a computers adds, subtracts

°Next: How a computer Multiplies, Divides