56
ECE3055 ECE3055 Computer Architecture Computer Architecture and Operating Systems and Operating Systems Lecture 9 Memory Subsystem (II) Lecture 9 Memory Subsystem (II) OS Perspective OS Perspective Prof. Hsien-Hsin Sean Lee Prof. Hsien-Hsin Sean Lee School of Electrical and Computer School of Electrical and Computer Engineering Engineering Georgia Institute of Technology Georgia Institute of Technology

ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Embed Size (px)

Citation preview

Page 1: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

ECE3055 ECE3055 Computer Architecture and Computer Architecture and Operating SystemsOperating Systems

Lecture 9 Memory Subsystem (II) Lecture 9 Memory Subsystem (II) OS Perspective OS Perspective

Prof. Hsien-Hsin Sean LeeProf. Hsien-Hsin Sean Lee

School of Electrical and Computer EngineeringSchool of Electrical and Computer Engineering

Georgia Institute of TechnologyGeorgia Institute of Technology

Page 2: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

BackgroundBackground

Program must be brought into memory and placed within a process for it to be run

Input queue – collection of processes on the disk that are waiting to be brought into memory to run the program

User programs go through several steps before being run

Page 3: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Binding of Instructions and Data to MemoryBinding of Instructions and Data to Memory

Compile time: If memory location known a priori, absolute code can be generated; must recompile code if starting location changes

Load time: Must generate relocatable code if memory location is not known at compile time

Execution time: Binding delayed until run time if the process can be moved during its execution from one memory segment to another. Need hardware support for address maps (e.g., base and limit registers).

Address binding of instructions and data to memory addresses canhappen at three different stages

Page 4: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Multi-step Processing of a User Program Multi-step Processing of a User Program

Page 5: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Virtual vs. Physical Address SpaceVirtual vs. Physical Address Space

The concept of a virtual (or logical) address space that is bound to a separate physical address space is central to proper memory management Virtual address – generated by the CPU; also referred to as

virtual address Physical address – address seen by the memory unit

Virtual and physical addresses are the same in compile-time and load-time address-binding schemes; virtual and physical addresses differ in execution-time address-binding scheme

Page 6: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Virtual MemoryVirtual Memory

Virtual memory – separation of user logical memory from physical memory. Only part of the program needs to be in memory for

execution. Logical address space can therefore be much larger than

physical address space. Allows address spaces to be shared by several processes. Allows for more efficient process creation.

Virtual memory can be implemented via: Demand paging Demand segmentation

Page 7: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Virtual Address SpaceVirtual Address Space

Page 8: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Other Uses of Virtual MemoryOther Uses of Virtual Memory

Page 9: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Virtual Memory Larger than PhysicalVirtual Memory Larger than Physical

Page 10: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Schematic View of SwappingSchematic View of Swapping

Page 11: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

PagingPaging

Virtual address space of a process can be non-contiguous in physical address space; process is allocated physical memory whenever the latter is available

Divide physical memory into fixed-sized blocks called frames (size is power of 2, between 512 bytes and 8192 bytes)

Divide logical memory into blocks of same size called pages. Keep track of all free frames To run a program of size n pages, need to find n free frames and

load program OS sets up a page tablepage table to translate virtual to physical addresses Internal fragmentation

Page 12: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Virtual-to-Physical Address TranslationVirtual-to-Physical Address Translation

Address generated by CPU is divided into:

Page number (p) – used as an index into a page table which contains base address of each page in physical memory

Page offset (d) – combined with base address to define the physical memory address that is sent to the memory unit

Page 13: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Transfer of a Paged Memory to Transfer of a Paged Memory to Contiguous Disk SpaceContiguous Disk Space

Page 14: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Paging Example Paging Example

Page 15: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Paging ExamplePaging Example

Page 16: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Demand PagingDemand Paging

Bring a page into memory only when it is needed Less I/O needed Less memory needed Faster response More users

Page is needed reference to it invalid reference abort not-in-memory bring to memory

Page 17: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Address Translation: Page TableAddress Translation: Page Table

With each page table entry a valid–invalid bit is associated(1 in-memory, 0 not-in-memory)

Initially valid–invalid but is set to 0 on all entries Example of a page table snapshot:

During address translation, if valid–invalid bit in page table entry is 0 page faultpage fault

111

1

0

00

Frame # valid-invalid bit

page tablepage table

Page 18: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Free FramesFree Frames

Before allocation After allocation

Page 19: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Address Translation Architecture Address Translation Architecture

Page 20: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Page Table When Some Pages Are Page Table When Some Pages Are Not in Main MemoryNot in Main Memory

Page 21: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Page FaultPage Fault

If there is ever a reference to a page, first reference will trap to OS page fault

OS looks at another table to decide: Invalid reference abort. Just not in memory.

Get empty frame. Swap page into frame. Reset tables, validation bit = 1. Restart instruction: Least Recently Used

block move

auto increment/decrement location

Page 22: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Handling Page FaultHandling Page Fault

Page 23: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

What happens if there is no free frame?What happens if there is no free frame?

Page replacement – find some page in memory, but not really in use, swap it out algorithm performance – want an algorithm which will result in

minimum number of page faults

Same page may be brought into memory several times

Page 24: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Page Table SizePage Table Size

Not all programs will use the entire available address range

Wasteful to create a page table for every page in the address range

Page table is in main memory, some systems provide the following to indicate the size of the page table for faster checking page table base registerpage table base register page table length registerpage table length register

However, the size of a linear page table can be still overwhelmingly large

Page 25: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Page Table StructurePage Table Structure

Multi-level Paging

Hashed Page Tables

Inverted Page Tables

Page 26: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Multi-Level (Hierarchical) Page TableMulti-Level (Hierarchical) Page Table

Break up the virtual address space into multiple page tables

Increase the utilization and reduce the physical size of a page table

A simple technique is a two-level page table

Page 27: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Two-Level Paging ExampleTwo-Level Paging Example

A logical address (on 32-bit machine with 4K page size) is divided into:

a page number consisting of 20 bits a page offset consisting of 12 bits

Since the page table is paged, the page number is further divided into:

a 10-bit page number a 10-bit page offset

Thus, a logical address is as follows:

where pi is an index into the outer page table, and p2 is the displacement within the page of the outer page table

page number page offset

pi p2 d

10 10 12

Page 28: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Two-Level Page-Table SchemeTwo-Level Page-Table Scheme

Page 29: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Address-Translation SchemeAddress-Translation Scheme

Address-translation scheme for a two-level 32-bit paging architecture

Page 30: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Hashed Page TableHashed Page Table

Common in address spaces > 32 bits

The virtual page number is hashed into a page table. This page table contains a chain of elements hashing to the same location.

Virtual page numbers are compared in this chain searching for a match. If a match is found, the corresponding physical frame is extracted.

Page 31: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Hashed Page TableHashed Page Table

Page 32: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Inverted Page TableInverted Page Table

One entry for each real page of memory Shared by all active processes Entry consists of the virtual address of the page

stored in that real memory location, with PID information

Decreases memory needed to store each page table, but increases time needed to search the table when a page reference occurs

Page 33: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Inverted Page Table ArchitectureInverted Page Table Architecture

Page 34: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Linear Inverted Page TableLinear Inverted Page Table

Contain entries (size of physical memory) in a linear array Need to traverse the array sequentially to find a match Can be time consuming

PID VPNOffsetVPN = 0x2AA70

1 0x7409412 0xFEA001 0x00023

8 0x2AA70

.. . . . . . .

PID = 8

Linear Inverted Page Table

PPN Index

012

0x120C

.. . . . . .

0x120D14 0x2409A

match

OffsetPPN = 0x120DPhysical Address

Virtual Address

Page 35: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Hashed Inverted Page TableHashed Inverted Page Table

Use hash table to limit the search to smaller number of page-table entries

OffsetVPN = 0x2AA70PID = 8

Virtual Address

Hash PID VPN1 0x7409412 0xFEA001 0x00023

8 0x2AA70

.. . . . . . .

012

0x120C

.. . . . . .

0x120D14 0x2409A

0x0012Next

---0x120D

0x00A00x0980

. . . .

. . . .match

Page 36: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Implementation of Page TableImplementation of Page Table

Page table is kept in main memory Page-table base register (PTBR) points to the start of

the page table Page-table length register (PRLR) indicates size of the

page table In this scheme every data/instruction access requires

two memory accesses. One for the page table and one for the data/instruction.

The two memory access problem can be solved by the use of a special fast-lookup hardware cache called associative memory or translation look-aside buffers (TLBs)

Page 37: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Associative MemoryAssociative Memory

Associative memory – parallel search

Address translation (A´, A´´) If A´ is in associative register, get frame # out Otherwise get frame # from page table in memory

Page # Frame #

Page 38: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Paging Hardware With TLBPaging Hardware With TLB

Page 39: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Effective Access TimeEffective Access Time

Associative Lookup = time unit Assume memory cycle time is 1 microsecond Hit ratio – percentage of times that a page number is

found in the associative registers; ration related to number of associative registers

Hit ratio = Effective Access Time (EAT)

EAT = (1 + ) + (2 + )(1 – )

= 2 + –

Page 40: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Memory ProtectionMemory Protection

Memory protection implemented by associating protection bit with each frame

Valid-invalid bit attached to each entry in the page table: “valid” indicates that the associated page is in the process’

logical address space, and is thus a legal page “invalid” indicates that the page is not in the process’ logical

address space

Page 41: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Shared PagesShared Pages

Shared code One copy of read-only (reentrant) code shared among

processes (i.e., text editors, compilers, window systems). Shared code must appear in same location in the logical

address space of all processes

Private code and data Each process keeps a separate copy of the code and data The pages for the private code and data can appear

anywhere in the logical address space

Page 42: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Shared Pages ExampleShared Pages Example

Page 43: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

SegmentationSegmentation

Memory-management scheme that supports user view of memory

A program is a collection of segments. A segment is a logical unit such as:

main program,procedure, function,method,object,local variables, global variables,common block,stack,symbol table, arrays

Page 44: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

User’s View of a ProgramUser’s View of a Program

Page 45: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Logical View of SegmentationLogical View of Segmentation

1

3

2

4

1

4

2

3

user space physical memory space

Page 46: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation Architecture Segmentation Architecture

Logical address consists of a two tuple:

<segment-number, offset>, Segment table – maps two-dimensional physical

addresses; each table entry has: base – contains the starting physical address where the

segments reside in memory limit – specifies the length of the segment

Segment-table base register (STBR) points to the segment table’s location in memory

Segment-table length register (STLR) indicates number of segments used by a program;

segment number s is legal if s < STLR

Page 47: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation Architecture (Cont.)Segmentation Architecture (Cont.)

Relocation. dynamic by segment table

Sharing. shared segments same segment number

Allocation. first fit/best fit external fragmentation

Page 48: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation Architecture (Cont.)Segmentation Architecture (Cont.)

Protection. With each entry in segment table associate: validation bit = 0 illegal segment read/write/execute privileges

Protection bits associated with segments; code sharing occurs at segment level

Since segments vary in length, memory allocation is a dynamic storage-allocation problem

A segmentation example is shown in the following diagram

Page 49: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation HardwareSegmentation Hardware

Page 50: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Example of SegmentationExample of Segmentation

Page 51: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Sharing of SegmentsSharing of Segments

Page 52: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation with Paging – MULTICSSegmentation with Paging – MULTICS

The MULTICS system solved problems of external fragmentation and lengthy search times by paging the segments

Solution differs from pure segmentation in that the segment-table entry contains not the base address of the segment, but rather the base address of a page table for this segment

Page 53: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

MULTICS Address Translation MULTICS Address Translation SchemeScheme

Page 54: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Segmentation with Paging – Intel x86Segmentation with Paging – Intel x86

As shown in the following diagram, the Intel x86 uses segmentation with paging for memory management with a two-level paging scheme

Page 55: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Intel 30386 Address TranslationIntel 30386 Address Translation

Page 56: ECE3055 Computer Architecture and Operating Systems Lecture 9 Memory Subsystem (II) OS Perspective Prof. Hsien-Hsin Sean Lee School of Electrical and Computer

Linux on Intel 80x86Linux on Intel 80x86

Uses minimal segmentation to keep memory management implementation more portable

Uses 6 segments: Kernel code Kernel data User code (shared by all user processes, using logical

addresses) User data (likewise shared) Task-state (per-process hardware context) LDT

Uses 2 protection levels: Kernel mode User mode