continuing the discussion of memory hierarchy

39
Savio Chau Continuing the Discussion of Memory Hierarchy Memory registers Memory Main Memory DRAM Memory Secondary Storage Disk Memory Level 2 Cache SRAM Memory Level 1 Cache Topics of this lecture set

Upload: oliver-gill

Post on 03-Jan-2016

29 views

Category:

Documents


3 download

DESCRIPTION

Continuing the Discussion of Memory Hierarchy. Memory Secondary Storage Disk. Memory Main Memory DRAM. Memory Level 2 Cache SRAM. Memory Level 1 Cache. Memory registers. Topics of this lecture set. Virtual Memory. Illusion of Memory Size Much Greater Than Physical Memory Size - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Continuing the Discussion of Memory Hierarchy

Savio Chau

Continuing the Discussion of Memory Hierarchy

Memoryregisters

MemoryMain Memory

DRAM

MemorySecondary

StorageDisk

MemoryLevel 2 Cache

SRAMMem

ory

Lev

el 1

Cac

he

Topics of this lecture set

Page 2: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory

• Illusion of Memory Size Much Greater Than Physical Memory Size• Exploits Memory Hierarchy to Keep Average Access Time Low

– At Least 2 Storage Levels: Main and Secondary

• Virtual Address — Address Used By the Programmer• Memory Address — Address in Physical Memory

(Main Memory) (Secondary Storage)

Page 3: Continuing the Discussion of Memory Hierarchy

Savio Chau

Similarities Between Cache and Virtual Memory

• Both Use Two Levels of Memories

– Higher Level: Faster and Smaller

– Lower Level: Slower and Larger

• Both Rely on the Principle of Locality

• Both Use Associativity to Reduce Conflicts

• Both Need to Decide Which Block in Higher Level has to be Replaced Upon Miss

cache Main memorySecondary Storage

Cache Design

Virtual Memory Design

Page 4: Continuing the Discussion of Memory Hierarchy

Savio Chau

Differences Between Cache and Virtual Memory

• Cache is several orders of magnitude faster than virtual memory, while virtual memory is several orders of magnitude larger than cache

• Consequently– Virtual memory can use software to track blocks in use while cache

has to use hardware– The cost to implement full associativity is low for Virtual memory and

very high for cache– Virtual memory can use more sophisticated block replacement

algorithms– Virtual memory has to use write-back while cache can use write-back

or write-through

Parameter Typical Value in Cache

Typical Value in Virtual Memory

Block (Page) Size (Bytes) 16 – 256 4000 - 64,000 Memory Size (kBytes) 8 – 8,000 8000 – 8,000,000 Hit Time (Cycles) I – 2 1000 – 10,000 Miss Panelty (Cycles) 10 - 100 1 M - 6 M Miss Rate 0.1% - 10% 0.00001% - 0.0001%

Page 5: Continuing the Discussion of Memory Hierarchy

Savio Chau

Issues in Virtual Memory Design• Mapping — How to Map the Blocks in Virtual Memory

(i.e., the Secondary Storage) to the Main Memory

• Block Placement — How to find a Block in the virtual memory and where to put it in the Main Memory (A consequence of full associativity)

• Fetch Policy — How to Know When It Is Necessary to Look for the Needed Data From Virtual Memory (You would try to avoid fetching the virtual memory unless it is absolutely

necessary due to the slow access time)

• Block Replacement — How to Free up a Region in Main Memory to Place a New Block from Virtual Memory

• Write Policy — What to Do If a Block in Main Memory Has to Be Replaced

Page 6: Continuing the Discussion of Memory Hierarchy

Savio Chau

The Basic Unit of Transferring Data From Secondary Storage to Main Memory

• Equal Size Blocks– Paging: Block of Fixed Size in Virtual Memory

– Page Frame: Physical Address Space for Each Page

Example: Alpha has 8KB, 64KB, 512KB, 4MB Page Sizes

• Variable Sized Blocks– Segmentation

Example: Burroughs B4500

• Multiple Page Blocks– Segments Consist of Multiple Pages

Note: Paging is used in most modern machines due to its simplicity

Page 7: Continuing the Discussion of Memory Hierarchy

Savio Chau

Example Paging Organization

Page Size = 1 Kbytes

Address Translation

Map

Smaller (Less Pages)

Larger (More Pages)

Page 8: Continuing the Discussion of Memory Hierarchy

Savio Chau

Page Table• To keep track which page of the secondary store is in main memory and

translate virtual memory address into physical address

• The page table itself is stored in the main memory

• Each entry has a valid bit, access right, and the page’s physical address

• The higher order bits of a virtual memory address (number of bits depending on page size) is used to index the entries. This is how the virtual memory address is translated into physical address

• Usually each program has its own page table. The page table of the running program is pointed to by a Page Table Pointer Register

000F000 X1

... ......

00002000 R1

00001000 R/W0

Physical Page AddressAccess RightValid

Page Table Pointer Note

Note: This register and the page table along with the program counter constitute the state of a program, also known as a process. The page table is loaded from disk to memory when the process is active. Operating System has to make sure no page is assigned to two active programs.

Virtual Page #

C37000

...

737000

29B000

32 bits 24 bits1 bits 1 bits

Page 9: Continuing the Discussion of Memory Hierarchy

Savio Chau

Page Table Example

1

0

0

1

0

0

0

1

1

Data Area of Program A

V Physical Page #

Disk

0

1

2

3

1

3

0

2

Page Table of Program A

Physical Page #

1013

1010

1011

1014

1017

1018

Virtual Page #

1012

10151016

r/w

r/w

-

X

r

-

-

r/w

r

R/W

Data of Virtual Page 1010

Data of Virtual Page 1018Data of Virtual Page 1013Data of Virtual Page 1017

Data of Virtual Page 1010Data of Virtual Page 1011Data of Virtual Page 1012

Data of Virtual Page 1013Data of Virtual Page 1014Data of Virtual Page 1015

Data of Virtual Page 1016Data of Virtual Page 1017Data of Virtual Page 1018

Main (Physical) Memory

Access Rights: R = Read- OnlyR/W = Read/WriteX = Execute Only

Page 10: Continuing the Discussion of Memory Hierarchy

Savio Chau

Protection of Pages by Page Frame Table

• The Page Frame Table is Used by the operating system to know how the pages in main memory are allocated to different active jobs, and to provide the information to use in deciding what pages to replace.

• Some frequently used pages such as critical OS functions can be “locked” into areas of main memory

 

Page Frame # in

Main Memory

Used Bit

Dirty Bit User Virtual Page Address

0 (addr = 000000) 1 1 A 0000029B

1 (addr = 001000) 1 0 B 00000737

... ... ... ... ...

2n- 1 (addr = FFF000) 0 0 A 000C374

Set if page is accessed

Set if page is modified

User program name

Page 11: Continuing the Discussion of Memory Hierarchy

Savio Chau

Address Mapping

• Address Translation Determines If Main Memory Has the Requested Page by Examining the Valid Bit of the Page in the Page Table

• If the Requested Page Is Not in Main Memory, Operating System Transfers Data from Secondary Memory to Main Memory and Then Set the Valid Bit. Write the old page back to memory if necessary (e.g., page modified but not saved).

V=1

To Cache

V=0

New Page

Old Page

Write AddressRead Address

V=1

To Cache

new phy addr

Page 12: Continuing the Discussion of Memory Hierarchy

Savio Chau

Example: Address Mapping with 1KB Pages• Page Table Located in Physical Memory

• V = Valid Bit:– V = 1: Page is in Main Memory

• Access Rights: R = Read- Only, R/ W = Read/ Write, X = Execute Only

AccessRights

Physical Page #

Physical Address

2018

To Memory if V=1

Page 13: Continuing the Discussion of Memory Hierarchy

Savio Chau

• Advantages– Fixed page boundary (usually address =

2N) significantly simplifies control logic (e.g., page number is just the upper bits of the address)

– Flexible: Pages of the same program do not have to be contiguous. Use the page table to locate individual pages

• Disadvantages– Fragmentation: Disjointed Areas of

Unused Memory Space

– Internal Fragmentation: Program or Data Does not use an Integral Number of Pages so Part of the Last Page is Wasted:

Advantages and Disadvantages of Paging

Page 1Page 2Page 3Page 4

memory

Page Table for Program X

memory

Program X

Program XProgram XProgram YProgram YProgram X

Unused

memory

Wasted Memories

Page 14: Continuing the Discussion of Memory Hierarchy

Savio Chau

Segmentation and Paged Segments• Segmentation tries to remove the fragmentation by using vaiable block

size, but it requires much more complex control logic (a segment pointer, an off-set pointer, and a boundary register)

• Paged Segments– Programs and Data Treated as Logical Entities (i.e., Segments of Differing Size)– Each Segment Is then Broken into Fixed Sized Pages and Has Its Own Page Table– Use of Segments is Invisible to the User

• Allows Protection to be Made on the Basis of Logical Entities (Bits Programs Set in Segment Table)

• More Complex Address Translation

memory

Segment pointer

Boundary Reg

Off-set data

Program Y

Program X

Page table for segment

Page 15: Continuing the Discussion of Memory Hierarchy

Savio Chau

Trade-Offs Of Page Size

• Large Page Size Increases Internal Fragmentation, but Decreases the Number of Pages and Page Table Size and Thus Simplifies the Management and Control of the Pages

• Small Page Size Decreases Internal Fragmentation, but Increases Page Table Size and Complicates the Management and Control of the Pages

• Trend Toward Large Page Sizes– Large Memories as RAM Costs Drop

– Wider Gap Between Processor Speed and Disk Speed

– Programmers Want Larger Virtual Address Space

• 4KB Pages are Common

Page 16: Continuing the Discussion of Memory Hierarchy

Savio Chau

Placing a Block in Main Memory• Since the secondary storage is so much slower than the CPU and

main memory, software can be used to manage block placement in main memory without noticeable performance impact

• Now, it is practical to use full associativity for block replacement to reduce page conflicts.

• The full associativity is managed by the page table (as oppose to using tags and comparators in cache). The virtual page number serves as the “index”, and no “tag” is necessary because the index is a full address

• Each program can have its own page table and a hardware page table register is used to point to the active page table.

110110011

Main Memory V Phy Page #

Disk

Virtual Page #in Virtual Address

012345

1

34

5

03

Page Table of Program

Page 17: Continuing the Discussion of Memory Hierarchy

Savio Chau

Page Table for Large Address Space

Two-level Page Tables

32-bit address:

P1 index P2 index page offest

4 bytes

4 bytes

4KB

10 10 12

1KPTEs

• Assuming 4 KB pages, a single-level page table, 4 GB virtual address space requires 1 M page table entries stored in memory

• Assuming 4 KB pages, a two-level page table, 4 GB virtual address space requires 1 K entries in 1st level page table, 1000 2nd level page page of 1 K entries each. However, it is not necessary to load all 1000 2nd level page table in memory at the same time.

Page 18: Continuing the Discussion of Memory Hierarchy

Savio Chau

Finding Data in Main Memory • Using page table to find a data in memory has a problem; every

memory access requires a 2-step process– Step 1: Read page table in order to obtain a physical address– Step 2: Use the physical address to get the data

• The 2-step process doubles the miss panelty of cache misses

• Why not cache the most recently used portion of the page table also? This cache is called the Table Look-Aside Buffer (TLB)

110110011

Main Memory V Phy Page #

Disk

Virtual Page #in Virtual Addr

012345

1

24

5

03

Page Table

1Phy Page #TagV

110

125

TLB

304

012345678

Page 19: Continuing the Discussion of Memory Hierarchy

Savio Chau

Translation Lookaside Buffer

• Cache of Recently Used Page Table Entries

• Can Be Fully Associative, Set Associative, or Direct Mapped

• Direct Mapped TLB Example:

Note: Dirty bit indicates if the page in memory has been modified. If it has not been modified, it will be replaced without copying back to memory.

index

Page 20: Continuing the Discussion of Memory Hierarchy

Savio Chau

Translation with a TLB

(get physical address from page table in memory)

See Class Example

Page 21: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory and Cache MappingsExample: Decstation 3100

Note: Another important bookkeeping bit Write Access Bit for Write Protection Is Not Shown

Virtual Page Number Page Offset

Physical Address

31 12 11 0Virtual Address

====

=

mux

TLB

TLB Hit

Valid Dirty Tag Physical Page #

Valid Tag Data

Cache Hit

Ta

g

Ind

ex

Data

Byte Offset

14

32

2

1220

20

See Class Example

Page 22: Continuing the Discussion of Memory Hierarchy

Savio Chau

Decstation 3100 TLB and Cache (Continued)

Get Data from Memory

Get Page Table Entry from Memory

Page 23: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

Tag = 0111 Page Offset =10

Virtual Address

====

=

mux

TLB

TLB Hit

Valid Dirty Tag Physical Page #

Valid Tag Data

Cache Hit

Tag Index

Data

Virtual Page Number

Index = 01

00

index

011011

1111

1001

0111011011111111

011111100101

Data Cache

Physical Address

00011011

Index

1111

001010010001

AAFFEEBB

TLB Miss! Get physical page # from memory

Page 24: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

0

1

1

0

1

0

1

00

01

10

11

Data Area of Program A

V P Page #

000

011

-

100

111

-

-

Program A Page Table

Physical Page #

011011

011000

011001

011100

V Page #

011010

011101

011110

r/w

r/w

-

X

r

-

-

R/W

Main (Physical) Memory

1 101011111 -

UsedP Page #

010

011

100

101

110

001

000

011100

011010

000010

011110

V Page #

000011

011111

000001

1

0

1

0

0

1

0

Dirty

1

0

1

1

1

1

1

1111 0110011

A

B

B

A

A

A

B

A

Prog

Page Frame Table

001

AA

00

22

BB

Offset Data

00

01

10

11

Physical Page #

010

11

FF

EE

DD

Offset Data

Page not in physical memory! Need to get it from Disk!

But where are you going to put it in the memory after you get the data from disk?

Virtual Page # = 011101

Page 25: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

0

1

1

0

1

0

1

00

01

10

11

Data Area of Program A

V P Page #

000

011

-

100

111

-

-

Program A Page Table

Physical Page #

011011

011000

011001

011100

V Page #

011010

011101

011110

r/w

r/w

-

X

r

-

-

R/W

Main (Physical) Memory

1 101011111 -

UsedP Page #

010

011

100

101

110

001

000

011100

011010

000010

011110

V Page #

000011

011111

000001

1

0

1

0

0

1

0

Dirty

1

0

1

1

1

1

1

1111 0110011

A

B

B

A

A

A

B

A

Prog

Page Frame Table

001

AA

00

22

BB

Offset Data

00

01

10

11

Physical Page #

010

11

FF

EE

DD

Offset DataLeast recently used

Virtual Page # = 011101

Page 26: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

0

1

1

0

1

0

1

00

01

10

11

Data Area of Program A

V P Page #

000

011

-

100

111

-

-

Program A Page Table

Physical Page #

011011

011000

011001

011100

V Page #

011010

011101

011110

r/w

r/w

-

X

r

-

-

R/W

Main (Physical) Memory

1 101011111 -

UsedP Page #

010

011

100

101

110

001

000

011100

011010

011101

011110

V Page #

000011

011111

000001

1

01

0

0

1

0

Dirty

1

11

1

1

1

1

1111 0110011

A

AB

A

A

A

B

A

Prog

Page Frame Table

001

AA

00

22

BB

Offset Data

00

01

10

11

Physical Page #

010

11

FF

EE

DD

Offset Data

0011 r

AA

00

22

BB

Assign Physical Page # 1 to Virtual

Page 011101

Virtual Page # = 011101

Page 27: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

Disk

00

01

10

11

00

01

10

11

80

90

A0

B0

C0

D0

E0

F0

011100

011101

Virtual Page # Offset Data

Virtual Page # = 011101

Page 28: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

0

1

1

0

1

0

1

00

01

10

11

Data Area of Program A

V P Page #

000

011

-

100

111

-

-

Program A Page Table

Physical Page #

011011

011000

011001

011100

V Page #

011010

011101

011110

r/w

r/w

-

X

r

-

-

R/W

Main (Physical) Memory

1 101011111 -

UsedP Page #

010

011

100

101

110

001

000

011100

011010

011101

011110

V Page #

000011

011111

000001

1

01

0

0

1

0

Dirty

1

11

1

1

1

1

1111 0110011

A

AB

A

A

A

B

A

Prog

Page Frame Table

001

AA

00

22

BB

Offset Data

00

01

10

11

Physical Page #

010

11

FF

EE

DD

Offset Data

0011 r

AA

00

22

BB

C0D0E0F0

Update TLB with the Assigned

Physical Page #

Page 29: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

Tag = 0111 Page Offset =10

Virtual Address

====

mux

TLB

TLB Hit

Valid Dirty Tag Physical Page #

Virtual Page Number

Index = 01

00

index

011011

1111

1001

0111011011111111

011111100101

Physical Address

TLB Updated and Physical Address can be obtained

1 0 0111 001

=

Valid Tag Data

Cache Hit

Tag Index

Data

Data Cache

00011011

Index

1111

001010010001

AAFFEEBB

001 10

Page 30: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

Tag = 0111 Page Offset =10

====

mux

TLB

TLB Hit

Valid Dirty Tag Physical Page #

Virtual Page Number

Index = 01

00

index

011011

1111

1001

0111011111111111

011001100101

Physical Address

=

Valid Tag Data

Cache Hit

Tag Index

Data

Data Cache

00011011

Index

1111

001010010001

AAFFEEBB

001 10

Data Cache Miss!

Virtual Address

Page 31: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

0

1

1

0

1

0

1

00

01

10

11

Data Area of Program A

V P Page #

000

011

-

100

111

-

-

Program A Page Table

Physical Page #

011011

011000

011001

011100

V Page #

011010

011101

011110

r/w

r/w

-

X

r

-

-

R/W

Main (Physical) Memory

1 101011111 -

UsedP Page #

010

011

100

101

110

001

000

011100

011010

011101

011110

V Page #

000011

011111

000001

1

01

0

0

1

0

Dirty

1

11

1

1

1

1

1111 0110011

A

AB

A

A

A

B

A

Prog

Page Frame Table

001

AA

00

22

BB

Offset Data

00

01

10

11

Physical Page #

010

11

FF

EE

DD

Offset Data

0011 r

AA

00

22

BB

C0D0E0F0

Page 32: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Read Example

Tag = 0111 Page Offset =10

====

mux

TLB

TLB Hit

Valid Dirty Tag Physical Page #

Virtual Page Number

Index = 01

00

index

011011

1111

1001

0111011111111111

011001100101

Physical Address

=

Valid Tag Data

Cache Hit

Tag Index

Data

Data Cache

00011011

Index

1111

001010010001

AAFFEEBB

001 10

Virtual Address

1 001 E0Data Cache Updated!

Page 33: Continuing the Discussion of Memory Hierarchy

Savio Chau

When to Fetch Secondary Storage?

• Page Fault:– Page Not In Main Memory (i.e., Valid Bit = 0 on Access)– Current Process Suspended While a Page is Fetched From

Secondary Storage (may switch to another process while waiting for data from disk)

• Fetch Policies– Demand Paging

• Pages Loaded Due to Page Faults Only

• If the Page to be Replaced Has Been Written to (i. e., Dirty), It Must be Written to Disk Before the New Page is Fetched.

– Prepaging• Anticipate References and Load Pages Before Their Use

• Reduces Wait Time for a Page Transfer

• Difficult to Predict Future References

– Most Common Implementation is Demand Paging

Page 34: Continuing the Discussion of Memory Hierarchy

Savio Chau

Page Replacement

• Similar to Cache Block Replacement, Except that Software Can Be Used to Decide Which Block Should Be Replaced. Therefore, More Sophisticated Algorithms Can Be Used.

• First-in-First-out– Replace the Page that has been in Memory the Longest

– Replacement of Old but Frequently Used Page Can Happen

– Easy to Implement

• Least Recently Used– Replace the Least Recently Used Page

– Need Access History, It Is Easier in This Case Because It Can Be Implemented in Software Due to the Long Latency of Disk Access.

– Good Performance, Uses Principle of Locality

• Page- Fault Frequency (PFF)– Dynamically Assign Pages to Jobs Based on their Page Fault Rate

– Take Pages from Jobs that Seldom Fault and Give Pages to Jobs that Fault Frequently

Page 35: Continuing the Discussion of Memory Hierarchy

Savio Chau

Page Replacement (Continued)

• During a Page Miss:– A processor switches to another job whose pages are present

– Returns to the current job after the missing pages have been fetched (Hundreds of thousands of cycles later)

• Working Set = the number of pages a job needs to achieve a “Reasonably Low” Miss Ratio.– It varies from program to program, but with too few pages the job

thrashes, and spends all of its time waiting for pages

• Page allocation and replacement strategies should achieve good processing efficiency over the set of jobs in the machine– Too Many Jobs and the whole system thrashes

– Too Few Pages for one job and that job gets nothing done

Page 36: Continuing the Discussion of Memory Hierarchy

Savio Chau

Example Implementation of LRU in Virtual Memory

Associated with each page is a used bit such that used bit = 1 if the page has been referenced in recent

past= 0 otherwise

– If replacement is necessary, choose any page frame such that its used bit is 0. This is a page that has not been referenced in the recent past.

– If more than one page has used bit set to 0, choose a page whose dirty bit is also 0. This page has not been changed and therefore no need to write back to disk.

Question: How to update the used bits?

Page 37: Continuing the Discussion of Memory Hierarchy

Savio Chau

One Possible Way to Update the Used BitAdd a Last Replaced Pointer (LRP) in Page Fault Handler:

– LRP points to the entry that have just been replaced

– If replacement is to take place, advance LRP to next entry until one with a 0 bit is found; this is the target for replacement; As a side effect, all examined page table entries have their reference bits set to zero.

0000

0x02000

usedPage #

0

0x04000x06000x08000x0A000x0C00

Virtual Address

Page Frame Table

Last Replaced Pointer1 0x1000Replace

Read 11Write

Read 1

Assume the Program needs to replace a page again

000

Replace 1 0x1200

Search for an unused entry, reset used bits of examined entries in the process

– Control scheme is simple

– But this is only an approximation of LRU. No guarantee the replaced entries are the LEAST recently used

012345

Page 38: Continuing the Discussion of Memory Hierarchy

Savio Chau

Write Policy

• Due to long latency of disk access, only write-back is practical for virtual memory.

• If accessed page in memory is valid, processor can write data to the page at memory speed rather than at the disk speed, which is several orders of magnitude slower. Set dirty bit after write.

• Write memory data back to disk if the page is candidate for replacement and its dirty bit is set.

• When data are written back, the system can make effective use of a high bandwidth transfer because the entire block is transferred. The latency is amortized over many bytes in the block.

• While old page are written back to the disk, processor can switch to other tasks until the new page have been fetched into the memory.

Page 39: Continuing the Discussion of Memory Hierarchy

Savio Chau

Virtual Memory Summary

• Virtual Memory is Another Level of the Memory Hierarchy

• Creates the Illusion of a Very Large Memory

• Page Tables, Possibly Multi-Level, Map a Virtual Address to a Physical Address

• TLBs are Important for Fast Translation