39
KAIST 전전전전 [email protected] Memory Management Unit

KAIST 전산학과 맹 승 렬 [email protected] Memory Management Unit

Embed Size (px)

Citation preview

Page 1: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

KAIST 전산학과

맹 승 렬[email protected]

Memory Management UnitMemory Management Unit

Page 2: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

2 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

The Memory SystemThe Memory System

Embedded systems and applications• The memory system requirements: vary

considerably– Simple blocks– Multiple types of memory– Caches– Write buffers– Virtual memory

Page 3: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

3 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Memory management unitsMemory management units

Memory management unit (MMU) translates addresses: Protection checks

CPUmain

memory

memorymanagement

unit

logicaladdress

physicaladdress

Page 4: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

4 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Memory management tasksMemory management tasks

Allows programs to move in physical memory during execution

Allows virtual memory:• memory images kept in secondary storage;• images returned to main memory on demand

during execution

Page fault: request for location not resident in memory

Page 5: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

5 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Address translationAddress translation

Requires some sort of register/table to allow arbitrary mappings of logical to physical addresses

Two basic schemes:• segmented• paged

Segmentation and paging can be combined (x86)

Page 6: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

6 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Segments and pagesSegments and pages

memory

segment 1

segment 2

page 1page 2

Page 7: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

7 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Segment address translationSegment address translation

segment base address logical address

rangecheck

physical address

+

rangeerror

segment lower boundsegment upper bound

Page 8: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

8 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Page address translationPage address translation

page offset

page offset

page i base

concatenate

Page 9: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

9 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Page table organizationsPage table organizations

flat

page descriptor

tree

pagedescriptor

Page 10: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

10 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Caching address translationsCaching address translations

Large translation tables require main memory access

TLB: cache for address translation• Typically small

Page 11: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

KAIST 전산학과

맹 승 렬[email protected]

ARM Memory Management Unit

ARM Memory Management Unit

Page 12: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

12 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

ARM Memory ManagementARM Memory Management

System control coprocessor(CP15)• Memory• Write Buffers• Caches

Registers• Up to 16 primary registers• Physical registers in CP15 more than 16

Register access instructions• MCR (ARM to CP15)• MRC (CP15 to ARM)

Page 13: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

13 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Cached MMU memory systemCached MMU memory system

Page 14: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

14 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

ARM Memory ManagementARM Memory Management

MMU can be enabled and disabled Memory region types:

• section: 1 Mbytes block• large page: 64 Kbytes• small page: 4 Kbytes• tiny Page: 1 Kbytes

Two-level translation scheme (why?)• First-level table• Second-level table

Page table size for 4-KB pages : 220 X 4 bytes = 4 MB

Page 15: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

15 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

ARM address translationARM address translation

offset1st index 2nd index

physical address

Translation tablebase register

1st level tabledescriptor

2nd level tabledescriptor

concatenate

Page 16: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

16 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

First-level descriptorsFirst-level descriptors

AP: access permission C,B: cachability and bufferability

Page 17: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

17 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Section descriptor and translating section referencesSection descriptor and translating section references

CP reg 2:

16 KB boundar

y

4K Entries1 MB block (section)

Max: 16KB

Page 18: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

18 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Coarse Page table descriptorCoarse Page table descriptor

4 K entries

Max: 16KB

256 entries

Max: 1KB

Page 19: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

19 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Fine page table descriptorFine page table descriptor

1 K entries

Max: 4 KB

Page 20: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

20 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Second-level descriptorSecond-level descriptor

Page 21: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

21 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Translating large page referencesTranslating large page references

Page 22: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

22 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Access permissionsAccess permissions

System (S) and ROM (R) in CP15 register 1

Page 23: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

23 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

TLB functionsTLB functions

Invalidate instruction TLB Invalidate instruction single entry Invalidate entire data TLB Invalidate data single entry

TLB lockdown

Page 24: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

KAIST 전산학과

맹 승 렬[email protected]

MPC 850 MMUMPC 850 MMU

Page 25: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

25 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

MPC850 MMUMPC850 MMU

Does not support some PowerPC MMU features

4-, 16-, 512- Kbyte, or 8-Mbyte pages• 1-KB subpages for 4-Kbyte pages

Separate instruction and data MMUs• Can be disabled separately

Supports up to 16 virtual address spaces Supports 16 access protection groups

Page 26: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

26 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

MPC 850 MMU, cont’dMPC 850 MMU, cont’d

Separate 8-entry, fully-associative data translation lookaside buffer (DTLB) and instruction TLB (ITLB)

High performance and low power consumption

TLB locking, invalidation

Page 27: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

27 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Address TranslationAddress Translation

Translation disabled• MSR[DR], MSR[IR]• Effective address = physical address

Translation enabled• TLB

– SW handles the table lookup and TLB reload with little HW assistance in the MPC 850

• MMU supports a multiple virtual address space– Address space ID (ASID)

Page 28: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

28 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Address Translation, cont’dAddress Translation, cont’d

Not implemented in the DTLB

Page 29: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

29 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

TLB operationTLB operation

Current Address ID

Privilege level

8?

Page 30: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

30 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Translation Table (4 KB pages)Translation Table (4 KB pages)

Page 31: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

31 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Translation Tables (1 KB pages)Translation Tables (1 KB pages)

Page 32: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

32 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Level-One descriptorLevel-One descriptor

Page 33: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

33 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Level-Two DescriptorLevel-Two Descriptor

1KB protection4KB page HW assist

4KB page 1KB subpage

Page 34: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

34 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Page SizePage Size

Page 35: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

35 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Programming ModelProgramming Model

Page 36: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

36 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Programming Model (cont’d)Programming Model (cont’d)

Page 37: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

37 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

TLB operationsTLB operations

tlbia: translation lookaside buffer invalidate all

tlbie: translation lookaside buffer invalidate entry

Locking TLB entries

Page 38: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

38 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

Locking TLB EntriesLocking TLB Entries

IMMU control register(MI_CTR bit 4)

DMMU control register(MD_CTR bit 4)

Page 39: KAIST 전산학과 맹 승 렬 maeng@kaist.ac.kr Memory Management Unit

39 2004 년 전문대교수연수 ([email protected])2004 CS310 Microprocessors & Lab

DTLB reloadDTLB reload