DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-17-18-19-35-36 out of 36 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

PowerPoint PresentationReview: Direct-Mapped CacheIssues with Direct-MappedDirect-Mapped Cache TerminologyDirect-Mapped Cache Example (1/3)Direct-Mapped Cache Example (2/3)Direct-Mapped Cache Example (3/3)TIO Dan’s great cache mnemonicCaching TerminologyAccessing data in a direct mapped cacheSlide 1116 KB Direct Mapped Cache, 16B blocks1. Read 0x00000014So we read block 1 (0000000001)No valid dataSo load that data into cache, setting tag, validRead from cache at offset, return word b2. Read 0x0000001C = 0…00 0..001 1100Index is ValidIndex valid, Tag MatchesIndex Valid, Tag Matches, return d3. Read 0x00000034 = 0…00 0..011 0100So read block 3Slide 24Load that cache block, return word f4. Read 0x00008014 = 0…10 0..001 0100So read Cache Block 1, Data is ValidCache Block 1 Tag does not match (0 != 2)Miss, so replace block 1 with new data & tagAnd return word jDo an example yourself. What happens?AdministriviaAnswersPeer InstructionPeer InstructionsAnd in Conclusion…CS61C L33 Caches II (1)Garcia, Fall 2004 © UCBLecturer PSOE Dan Garciawww.cs.berkeley.edu/~ddgarciainst.eecs.berkeley.edu/~cs61c CS61C : Machine StructuresLecture 33 Caches II2004-11-15The Incredibles!Cal wins AGAIN, upping them to8-1 with a 42-12 victory over UW. JJ Arrington rushed for 121 yards, and has 100+ yard efforts in all 9 games this year. (The Pac-10 record is 11 by Marcus Allen when he won the Heisman.) The Big Game is next Sat; we’re 4th in ALL polls! calbears.collegesports.com/sports/m-footbl/recaps/111304aaa.htmlCS61C L33 Caches II (2)Garcia, Fall 2004 © UCBReview: Direct-Mapped Cache•Cache Location 0 can be occupied by data from:•Memory location 0, 4, 8, ... •4 blocks => any memory location that is multiple of 4MemoryMemory Address0123456789ABCDEF4 Byte Direct Mapped CacheCache Index0123CS61C L33 Caches II (3)Garcia, Fall 2004 © UCBIssues with Direct-Mapped•Since multiple memory addresses map to same cache index, how do we tell which one is in there?•What if we have a block size > 1 byte?•Answer: divide memory address into three fieldsttttttttttttttttt iiiiiiiiii ooootag index byteto check to offsetif have select withincorrect block block blockWIDTHHEIGHTTag Index OffsetCS61C L33 Caches II (4)Garcia, Fall 2004 © UCBDirect-Mapped Cache Terminology•All fields are read as unsigned integers.•Index: specifies the cache index (which “row” of the cache we should look in)•Offset: once we’ve found correct block, specifies which byte within the block we want -- I.e., which “column”•Tag: the remaining bits after offset and index are determined; these are used to distinguish between all the memory addresses that map to the same locationCS61C L33 Caches II (5)Garcia, Fall 2004 © UCBDirect-Mapped Cache Example (1/3)•Suppose we have a 16KB of data in a direct-mapped cache with 4 word blocks•Determine the size of the tag, index and offset fields if we’re using a 32-bit architecture•Offset•need to specify correct byte within a block•block contains 4 words = 16 bytes = 24 bytes•need 4 bits to specify correct byteCS61C L33 Caches II (6)Garcia, Fall 2004 © UCBDirect-Mapped Cache Example (2/3)•Index: (~index into an “array of blocks”)•need to specify correct row in cache•cache contains 16 KB = 214 bytes•block contains 24 bytes (4 words)•# blocks/cache = bytes/cache bytes/block = 214 bytes/cache 24 bytes/block = 210 blocks/cache•need 10 bits to specify this many rowsCS61C L33 Caches II (7)Garcia, Fall 2004 © UCBDirect-Mapped Cache Example (3/3)•Tag: use remaining bits as tag•tag length = addr length - offset - index = 32 - 4 - 10 bits = 18 bits•so tag is leftmost 18 bits of memory address•Why not full 32 bit address as tag?•All bytes within block need same address (4b)•Index must be same for every address within a block, so its redundant in tag check, thus can leave off to save memory (10 bits in this example)CS61C L33 Caches II (8)Garcia, Fall 2004 © UCBTIO Dan’s great cache mnemonicAREA (cache size, B)= HEIGHT (# of blocks) * WIDTH (size of one block, B/block)WIDTH (size of one block, B/block)HEIGHT(# of blocks)AREA(cache size, B)2(H+W) = 2H * 2WTag Index OffsetCS61C L33 Caches II (9)Garcia, Fall 2004 © UCBCaching Terminology•When we try to read memory, 3 things can happen: 1. cache hit: cache block is valid and contains proper address, so read desired word2. cache miss: nothing in cache in appropriate block, so fetch from memory3. cache miss, block replacement: wrong data is in cache at appropriate block, so discard it and fetch desired data from memory (cache always copy)CS61C L33 Caches II (10)Garcia, Fall 2004 © UCBAccessing data in a direct mapped cache•Ex.: 16KB of data, direct-mapped, 4 word blocks•Read 4 addresses1. 0x000000142. 0x0000001C3. 0x000000344. 0x00008014•Memory values on right:•only cache/ memory level of hierarchy Address (hex)Value of WordMemory0000001000000014000000180000001Cabcd... ...0000003000000034000000380000003Cefgh0000801000008014000080180000801Cijkl... ...... ...... ...CS61C L33 Caches II (11)Garcia, Fall 2004 © UCBAccessing data in a direct mapped cache•4 Addresses:•0x00000014, 0x0000001C, 0x00000034, 0x00008014•4 Addresses divided (for convenience) into Tag, Index, Byte Offset fields000000000000000000 0000000001 0100000000000000000000 0000000001 1100000000000000000000 0000000011 0100000000000000000010 0000000001 0100 Tag Index OffsetCS61C L33 Caches II (12)Garcia, Fall 2004 © UCB16 KB Direct Mapped Cache, 16B blocks•Valid bit: determines whether anything is stored in that row (when computer initially turned on, all entries invalid) ...ValidTag0x0-30x4-7 0x8-b 0xc-f0123456710221023...Index0000000000CS61C L33 Caches II (13)Garcia, Fall 2004 © UCB1. Read 0x00000014...ValidTag0x0-30x4-7 0x8-b 0xc-f0123456710221023...•000000000000000000 0000000001 0100IndexTag field Index field Offset0000000000CS61C L33 Caches II (14)Garcia, Fall 2004 © UCBSo we read block 1 (0000000001)...ValidTag0x0-30x4-7 0x8-b 0xc-f0123456710221023...•000000000000000000 0000000001 0100IndexTag field Index field Offset0000000000CS61C L33 Caches II (15)Garcia, Fall 2004 © UCBNo valid data...ValidTag0x0-30x4-7 0x8-b 0xc-f0123456710221023...•000000000000000000 0000000001 0100IndexTag field Index field Offset0000000000CS61C L33 Caches II (16)Garcia, Fall 2004 © UCBSo load that data into cache, setting tag, valid...ValidTag0x0-30x4-7 0x8-b


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?