Memory Organization 1 MEMORY ORGANIZATION Memory Hierarchy Main

  • Slides: 32
Download presentation
Memory Organization 1 MEMORY ORGANIZATION • Memory Hierarchy • Main Memory • Auxiliary Memory

Memory Organization 1 MEMORY ORGANIZATION • Memory Hierarchy • Main Memory • Auxiliary Memory • Associative Memory • Cache Memory • Virtual Memory • Memory Management Hardware Computer Organization Computer Architectures Lab

Memory Organization 2 Memory Hierarchy MEMORY HIERARCHY Memory Hierarchy is to obtain the highest

Memory Organization 2 Memory Hierarchy MEMORY HIERARCHY Memory Hierarchy is to obtain the highest possible access speed while minimizing the total cost of the memory system Auxiliary memory Magnetic tapes I/O processor Main memory CPU Cache memory Magnetic disks Register Cache Main Memory Magnetic Disk Magnetic Tape Computer Organization Computer Architectures Lab

Memory Organization 3 Main Memory MAIN MEMORY RAM and ROM Chips Typical RAM chip

Memory Organization 3 Main Memory MAIN MEMORY RAM and ROM Chips Typical RAM chip Chip select 1 Chip select 2 Read Write 7 -bit address CS 1 CS 2 0 0 0 1 1 0 1 0 1 1 CS 2 RD WR AD 7 RD x x 0 0 1 x WR x x 0 1 x x 128 x 8 RAM 8 -bit data bus Memory function Inhibit Write Read Inhibit State of data bus High-impedence Input data to RAM Output data from RAM High-impedence Typical ROM chip Chip select 1 Chip select 2 9 -bit address Computer Organization CS 1 CS 2 512 x 8 ROM 8 -bit data bus AD 9 Computer Architectures Lab

Memory Organization 4 Main Memory MEMORY ADDRESS MAP Address space assignment to each memory

Memory Organization 4 Main Memory MEMORY ADDRESS MAP Address space assignment to each memory chip Example: 512 bytes RAM and 512 bytes ROM Component RAM RAM ROM 1 2 3 4 Hexa address 0000 - 007 F 0080 - 00 FF 0100 - 017 F 0180 - 01 FF 0200 - 03 FF Address bus 10 9 0 0 1 1 x 8 7 6 5 4 3 2 1 0 1 x x x x x x x x x Memory Connection to CPU - RAM and ROM chips are connected to a CPU through the data and address buses - The low-order lines in the address bus select the byte within the chips and other lines in the address bus select a particular chip through its chip select inputs Computer Organization Computer Architectures Lab

Memory Organization 5 Main Memory CONNECTION OF MEMORY TO CPU CS 1 CS 2

Memory Organization 5 Main Memory CONNECTION OF MEMORY TO CPU CS 1 CS 2 128 x 8 RD RAM 2 WR AD 7 CS 1 CS 2 128 x 8 RD RAM 3 WR AD 7 CS 1 CS 2 128 x 8 RD RAM 4 WR AD 7 1 - 7 8 9 Computer Organization CS 1 CS 2 512 x 8 AD 9 ROM Data CS 1 CS 2 128 x 8 RD RAM 1 WR AD 7 Data Decoder 3 2 1 0 Data bus Data RD WR Data 7 -1 Data Address bus 16 -11 10 9 8 Computer Architectures Lab

Memory Organization 6 Auxiliary Memory AUXILIARY MEMORY Information Organization on Magnetic Tapes file i

Memory Organization 6 Auxiliary Memory AUXILIARY MEMORY Information Organization on Magnetic Tapes file i block 1 R 2 R 3 block 2 R 4 block 3 R 5 block 3 IRG EOF R 5 R 4 EOF R 6 R 1 R 3 R 2 block 1 block 2 Organization of Disk Hardware Moving Head Disk Fixed Head Disk Track Computer Organization Computer Architectures Lab

Memory Organization 7 Associative Memory ASSOCIATIVE MEMORY - Accessed by the content of the

Memory Organization 7 Associative Memory ASSOCIATIVE MEMORY - Accessed by the content of the data rather than by an address - Also called Content Addressable Memory (CAM) Hardware Organization Argument register(A) Key register (K) Match register Input Read Write Associative memory array and logic M m words n bits per word - Compare each word in CAM in parallel with the content of A(Argument Register) - If CAM Word[i] = A, M(i) = 1 - Read sequentially accessing CAM for CAM Word(i) for M(i) = 1 - K(Key Register) provides a mask for choosing a particular field or key in the argument in A (only those bits in the argument that have 1’s in their corresponding position of K are compared) Computer Organization Computer Architectures Lab

Memory Organization 8 Associative Memory ORGANIZATION OF CAM A 1 Aj An K 1

Memory Organization 8 Associative Memory ORGANIZATION OF CAM A 1 Aj An K 1 Kj Kn Word 1 C 1 j C 1 n M 1 Word i Ci 1 Cij Cin Mi Word m Cm 1 Cmj Cmn Mm Bit 1 Bit j Bit n Internal organization of a typical cell Cij Aj Input Kj Write R Read S F ij Match logic To M i Output Computer Organization Computer Architectures Lab

Memory Organization 9 Associative Memory MATCH LOGIC K 1 A 1 F'i 1 F

Memory Organization 9 Associative Memory MATCH LOGIC K 1 A 1 F'i 1 F i 1 K 2 A 2 F'i 2 F i 2 Kn. . F'in An F in Mi Computer Organization Computer Architectures Lab

Memory Organization 10 Cache Memory CACHE MEMORY The references to memory at any given

Memory Organization 10 Cache Memory CACHE MEMORY The references to memory at any given time interval of time tend to be confined within a few localized areas in memory. This phenomenon is known as the property of locality of reference. If the active portions of the program and data are placed in a fast small memory, the average memory access time can be reduced, thus reducing the total execute on time of the program. Such a fast small memory is referred to as a cache memory. The performance of cache memory is frequently measured in terms of a quantity called hit ratio. When the CPU refers to memory and finds the word in cache, it is said to produce a hit. If the word is not found in cache, it is in main memory and it counts as a miss. The ratio of the number of hits divided by the total CPU references to memory is the hit ratio. Main memory CPU Cache memory Computer Organization Computer Architectures Lab

Memory Organization 11 Cache Memory MEMORY AND CACHE MAPPING - ASSOCIATIVE MAPPLING Mapping Function

Memory Organization 11 Cache Memory MEMORY AND CACHE MAPPING - ASSOCIATIVE MAPPLING Mapping Function The transformation of data from main memory to cache memory is Referred to as a mapping process. Associative mapping Direct mapping Set-associative mapping Associative Mapping -The associative memory stores both the address and content Of the memory word. address (15 bits) Argument register CAM Computer Organization Address Data 01000 02777 22235 3450 6710 1234 Computer Architectures Lab

Memory Organization 12 Cache Memory MEMORY AND CACHE MAPPING - DIRECT MAPPING - Each

Memory Organization 12 Cache Memory MEMORY AND CACHE MAPPING - DIRECT MAPPING - Each memory block has only one place to load in Cache - Mapping Table is made of RAM instead of CAM - n-bit memory address consists of 2 parts; k bits of Index field and n-k bits of Tag field - n-bit addresses are used to access main memory and k-bit Index is used to access the Cache Addressing Relationships Tag(6) Index(9) 00 000 32 K x 12 000 Main memory Address = 15 bits Data = 12 bits Direct Mapping Cache Organization Memory address 00000 Memory data 1220 00777 01000 2340 3450 01777 02000 4560 5670 02777 6710 Computer Organization 77 777 Index address 000 777 512 x 12 Cache memory 777 Address = 9 bits Data = 12 bits Cache memory Tag 00 Data 1220 02 6710 Computer Architectures Lab

Memory Organization 13 Cache Memory DIRECT MAPPING Operation - CPU generates a memory request

Memory Organization 13 Cache Memory DIRECT MAPPING Operation - CPU generates a memory request with (TAG; INDEX) - Access Cache using INDEX ; (tag; data) Compare TAG and tag - If matches -> Hit Provide Cache[INDEX](data) to CPU - If not match -> Miss M[tag; INDEX] <- Cache[INDEX](data) Cache[INDEX] <- (TAG; M[TAG; INDEX]) CPU <- Cache[INDEX](data) Direct Mapping with block size of 8 words Index tag data 000 007 010 017 01 01 3450 6578 Block 63 770 777 02 02 6710 Block 1 Computer Organization 6 Tag 6 Block 3 Word INDEX Computer Architectures Lab

Memory Organization 14 Cache Memory MEMORY AND CACHE MAPPING - SET ASSOCIATIVE MAPPING -

Memory Organization 14 Cache Memory MEMORY AND CACHE MAPPING - SET ASSOCIATIVE MAPPING - Each memory block has a set of locations in the Cache to load Set Associative Mapping Cache with set size of two Index Tag Data 000 01 3450 02 5670 777 02 6710 00 2340 Operation - CPU generates a memory address(TAG; INDEX) - Access Cache with INDEX, (Cache word = (tag 0, data 0); (tag 1, data 1)) - Compare TAG and tag 0 and then tag 1 - If tag i = TAG -> Hit, CPU <- data i - If tag i TAG -> Miss, Replace either (tag 0, data 0) or (tag 1, data 1), Assume (tag 0, data 0) is selected for replacement, (Why (tag 0, data 0) instead of (tag 1, data 1) ? ) M[tag 0, INDEX] <- Cache[INDEX](data 0) Cache[INDEX](tag 0, data 0) <- (TAG, M[TAG, INDEX]), CPU <- Cache[INDEX](data 0) Computer Organization Computer Architectures Lab

Memory Organization 15 Cache Memory CACHE WRITE Write Through When writing into memory If

Memory Organization 15 Cache Memory CACHE WRITE Write Through When writing into memory If Hit, both Cache and memory is written in parallel If Miss, Memory is written For a read miss, missing block may be overloaded onto a cache block Write-Back (Copy-Back) When writing into memory If Hit, only Cache is written If Miss, missing block is brought to Cache and write into Cache For a read miss, candidate block must be written back to the memory Computer Organization Computer Architectures Lab

Memory Organization 16 Virtual Memory VIRTUAL MEMORY Give the programmer the illusion that the

Memory Organization 16 Virtual Memory VIRTUAL MEMORY Give the programmer the illusion that the system has a very large memory, even though the computer actually has a relatively small main memory Address Space(Logical) and Memory Space(Physical) address space virtual address (logical address) memory space Mapping address generated by programs physical address actual main memory address Address Mapping Memory Mapping Table for Virtual Address -> Physical Address Virtual address register Memory mapping table Memory table buffer register Computer Organization Main memory address register Physical Address Main memory buffer register Computer Architectures Lab

Memory Organization 17 Virtual Memory PAGE REPLACEMENT Decision on which page to displace to

Memory Organization 17 Virtual Memory PAGE REPLACEMENT Decision on which page to displace to make room for an incoming page when no free frame is available Modified page fault service routine 1. Find the location of the desired page on the backing store 2. Find a free frame - If there is a free frame, use it - Otherwise, use a page-replacement algorithm to select a victim frame - Write the victim page to the backing store 3. Read the desired page into the (newly) free frame 4. Restart the user process valid/ frame invalid bit 2 change to f 0 v i invalid 4 v f reset page table for new page table swap out 1 victim page victim 3 swap desired page in backing store physical memory Computer Organization Computer Architectures Lab

Memory Organization 18 Virtual Memory PAGE REPLACEMENT ALGORITHMS FIFO Reference string 7 0 1

Memory Organization 18 Virtual Memory PAGE REPLACEMENT ALGORITHMS FIFO Reference string 7 0 1 7 2 7 0 0 3 2 0 1 7 0 1 0 2 3 1 4 2 3 0 2 4 3 0 4 2 3 4 2 0 3 2 1 2 0 1 3 0 2 3 0 1 7 0 1 2 0 7 1 2 1 7 0 2 7 0 1 Page frames FIFO algorithm selects the page that has been in memory the longest time Using a queue - every time a page is loaded, its identification is inserted in the queue Easy to implement May result in a frequent page fault Optimal Replacement (OPT) - Lowest page fault rate of all algorithms Replace that page which will not be used for the longest period of time Reference string 7 0 7 1 7 0 2 7 0 1 0 2 0 1 3 0 2 0 3 4 2 2 4 3 3 0 3 2 1 2 2 0 1 7 0 1 Page frames Computer Organization Computer Architectures Lab

Memory Organization 19 Virtual Memory PAGE REPLACEMENT ALGORITHMS LRU - OPT is difficult to

Memory Organization 19 Virtual Memory PAGE REPLACEMENT ALGORITHMS LRU - OPT is difficult to implement since it requires future knowledge - LRU uses the recent past as an approximation of near future. Replace that page which has not been used for the longest period of time Reference string 7 0 1 2 7 7 0 1 0 2 0 1 3 0 2 0 3 4 2 4 0 3 3 4 0 2 0 4 3 2 1 0 3 2 2 1 3 2 0 1 1 0 2 7 0 1 1 0 7 Page frames - LRU may require substantial hardware assistance - The problem is to determine an order for the frames defined by the time of last use Computer Organization Computer Architectures Lab

Memory Organization 20 Memory Management Hardware MEMORY MANAGEMENT HARDWARE Basic Functions of MM -

Memory Organization 20 Memory Management Hardware MEMORY MANAGEMENT HARDWARE Basic Functions of MM - Dynamic Storage Relocation - mapping logical memory references to physical memory references - Provision for Sharing common information stored in memory by different users - Protection of information against unauthorized access Segmentation - A segment is a set of logically related instructions or data elements associated with a given name - Variable size User's view of memory Stack Subroutine Symbol Table SQRT Main Program The user does not think of memory as a linear array of words. Rather the user prefers to view memory as a collection of variable sized segments, with no necessary ordering among segments. User's view of a program Computer Organization Computer Architectures Lab

Memory Organization 21 Memory Management Hardware SEGMENTATION - A memory management scheme which supports

Memory Organization 21 Memory Management Hardware SEGMENTATION - A memory management scheme which supports user's view of memory - A logical address space is a collection of segments - Each segment has a name and a length - Address specify both the segment name and the offset within the segment. - For simplicity of implementations, segments are numbered. Segmentation Hardware Segment Table s limit CPU base (s, d) Memory < y + n error Computer Organization Computer Architectures Lab

Memory Organization 22 Memory Management Hardware SEGMENTATION EXAMPLE Subroutine Segment 0 Stack Segment 3

Memory Organization 22 Memory Management Hardware SEGMENTATION EXAMPLE Subroutine Segment 0 Stack Segment 3 1400 Segment 0 2400 Symbol Table SQRT Segment 1 Segment 4 Main Program Segment 2 3200 Segment 3 Segment 2 Logical Address Space 4300 4700 Segment 4 5700 Segment Table limit base 1000 1400 0 1 400 6300 2 400 4300 3 1100 3200 4 1000 4700 Computer Organization Segment 1 6300 6700 Computer Architectures Lab

Memory Organization 23 Memory Management Hardware SHARING OF SEGMENTS Editor limit Segment 0 Data

Memory Organization 23 Memory Management Hardware SHARING OF SEGMENTS Editor limit Segment 0 Data 1 Segment 1 base 0 25286 43062 1 4425 68348 Segment Table (User 1) 43062 Editor Data 1 68348 72773 Logical Memory (User 1) 90003 Data 2 98556 Editor Segment 0 Data 2 limit base 0 25286 43062 1 8550 90003 Physical Memory Segment Table (User 2) Segment 1 Logical Memory (User 2) Computer Organization Computer Architectures Lab

Memory Organization 24 Memory Management Hardware SEGMENTED PAGE SYSTEM Logical address Segment Page Segment

Memory Organization 24 Memory Management Hardware SEGMENTED PAGE SYSTEM Logical address Segment Page Segment table Word Page table + Block Word Physical address Computer Organization Computer Architectures Lab

Memory Organization 25 Memory Management Hardware IMPLEMENTATION OF PAGE AND SEGMENT TABLES Implementation of

Memory Organization 25 Memory Management Hardware IMPLEMENTATION OF PAGE AND SEGMENT TABLES Implementation of the Page Table - Hardware registers (if the page table is reasonably small) - Main memory - Page Table Base Register(PTBR) points to PT - Two memory accesses are needed to access a word; one for the page table, one for the word - Cache memory (TLB: Translation Lookaside Buffer) - To speedup the effective memory access time, a special small memory called associative memory, or cache is used Implementation of the Segment Table Similar to the case of the page table Computer Organization Computer Architectures Lab

Memory Organization 26 Memory Management Hardware EXAMPLE Logical and Physical Addresses Logical address format:

Memory Organization 26 Memory Management Hardware EXAMPLE Logical and Physical Addresses Logical address format: 16 segments of 256 pages each, each page has 256 words 4 8 Page Segment 8 Word 20 2 x 32 Physical memory Physical address format: 4096 blocks of 256 words each, each word has 32 bits 12 Block 8 Word Logical and Physical Memory Address Assignment Hexa address Page number 60000 Page 0 60100 Page 1 60200 Page 2 60300 604 FF Page 3 Page 00 01 02 03 04 Block 012 000 019 053 A 61 Page 4 (a) Logical address assignment Computer Organization Segment 6 6 6 (b) Segment-page versus memory block assignment Computer Architectures Lab

Memory Organization 27 Memory Management Hardware LOGICAL TO PHYSICAL MEMORY MAPPING Segment and page

Memory Organization 27 Memory Management Hardware LOGICAL TO PHYSICAL MEMORY MAPPING Segment and page table mapping Logical address (in hexadecimal) 6 02 Segment table Page table 00 0 7 E Physical memory 00000 000 FF 6 F 35 35 36 37 38 39 A 3 012 000 019 053 A 61 01200 012 FF 01900 0197 E 019 FF Block 0 Block 12 32 -bit word Associative memory mapping Segment 6 6 Computer Organization Page 02 04 Block 019 A 61 Computer Architectures Lab

Memory Organization 28 Memory Management Hardware MEMORY PROTECTION Protection information can be included in

Memory Organization 28 Memory Management Hardware MEMORY PROTECTION Protection information can be included in the segment table or segment register of the memory management hardware - Format of a typical segment descriptor Base address Length Protection - The protection field in a segment descriptor specifies the Access Rights to the particular segment - In a segmented-page organization, each entry in the page table may have its own protection field to describe the Access Rights of each page - Access Rights: Computer Organization Full read and write privileges. Read only (write protection) Execute only (program protection) System only (O. S. Protection) Computer Architectures Lab

Memory Organization 29 A Typical Cache and TLB Design From translator Virtual Real Address

Memory Organization 29 A Typical Cache and TLB Design From translator Virtual Real Address Hash Function CPU Virtual Address Page Line Word in Number Line To translator A CPU Memory Real Address Data TLB Cache S S A Real Compare Virtual Addresses Compare Addresses & Select Data Word Select & Align S = Select Computer Organization To Main Memory Data Out Computer Architectures Lab

Memory Organization 30 Structure of Cache Entry and Cache Set Real Address Tag Data

Memory Organization 30 Structure of Cache Entry and Cache Set Real Address Tag Data Valid Cache Entry 1 Entry 2 Entry E Replacement status Cache Set Computer Organization Computer Architectures Lab

Memory Organization 31 Cache Operation Flow Chart Receive Virtual Address Use Line Number to

Memory Organization 31 Cache Operation Flow Chart Receive Virtual Address Use Line Number to Select Set Hash Page Number Search TLB A In TLB ? yes Compare Addresses no Send Virtual Address to Translator Read Out Address Tags yes Update Replacement Status in TLB Use Page & Segment tables to Translate Address Update Replacement Status Select Correct Line Match ? no Send Real Address to Main Memory Receive Line from Main Memory Store Line in Cache Put in TLB A Select Correct Word from Line Read Out Computer Organization Computer Architectures Lab

Memory Organization 32 Virtual Address Format - Example Page number Byte within page Byte

Memory Organization 32 Virtual Address Format - Example Page number Byte within page Byte within line 31 21 Map through page directory 20 17 12 Select set in TLB Map through page table 11 10 4 3 Select set in cache Line number 2 1 0 Byte within word Word within line Virtual Address of Fairchild Clipper Computer Organization Computer Architectures Lab