10
Cache Memory Exercises

12 cache questions

Embed Size (px)

Citation preview

Page 1: 12 cache questions

Cache Memory

Exercises

Page 2: 12 cache questions

Questions I

• Given:– memory is little-endian and byte addressable;

memory size;– number of cache blocks, size of cache block– An instruction lw $t0, x or lbu $t0, x;

• Determine – HIT or MISS?– What value is in $t0?; and– Show the cache after word is brought in if needed

Page 3: 12 cache questions

Address (binary)

Contents (Hex)

000000 aa bb cc dd

000100 00 11 00 33

001000 ff ee 01 23

001100 45 67 89 0a

010000 bc de f0 1a

010100 2a 3a 4a 5a

011000 6a 7a 8a 9a

011100 1b 2b 3b 4b

100000 b2 b3 b4 b5

100100 c1 c2 c3 c4

101000 d1 d2 d3 d4

101100 e1 e2 e3 e4

110000 f1 f2 f3 f4

110100 a1 a2 a3 a4

111000 2c 3c 4c 5c

111100 2d 3d 4d 5d

V Tag data(hex)

0 10 11 11 00 01

1 00 00 01 01 33

0 11 11 11 11 11

1 00 45 67 89 0a

lbu $t0, x # x = 001101

Question 1: cache HIT or MISS? What is in $t0?

Draw the cache after data is brought in

00

01

10

11

Assume memory is little-endian and byte addressable; cache block = 1 word;

Cache holds 4 blocks of data ( 4 words)

Page 4: 12 cache questions

Address (binary)

Contents (Hex)

000000 aa bb cc dd

000100 00 11 00 33

001000 ff ee 01 23

001100 45 67 89 0a

010000 bc de f0 1a

010100 2a 3a 4a 5a

011000 6a 7a 8a 9a

011100 1b 2b 3b 4b

100000 b2 b3 b4 b5

100100 c1 c2 c3 c4

101000 d1 d2 d3 d4

101100 e1 e2 e3 e4

110000 f1 f2 f3 f4

110100 a1 a2 a3 a4

111000 2c 3c 4c 5c

111100 2d 3d 4d 5d

V Tag data(hex)

0 10 11 11 00 01

0 00 00 01 01 11

0 00 Ffee 01 23

0 00 00 00 00 00

lbu $t0, x # x = 001010

Question 2: cache HIT or MISS? What is in $t0?

Draw the cache after data is brought in

00

01

10

11

Assume memory is little-endian and byte addressable; cache block = 1 word;

Cache holds 4 blocks of data ( 4 words)

Page 5: 12 cache questions

Address (binary)

Contents (Hex)

000000 aa bb cc dd

000100 00 11 00 33

001000 ff ee 01 23

001100 45 67 89 0a

010000 bc de f0 1a

010100 2a 3a 4a 5a

011000 6a 7a 8a 9a

011100 1b 2b 3b 4b

100000 b2 b3 b4 b5

100100 c1 c2 c3 c4

101000 d1 d2 d3 d4

101100 e1 e2 e3 e4

110000 f1 f2 f3 f4

110100 a1 a2 a3 a4

111000 2c 3c 4c 5c

111100 2d 3d 4d 5d

V Tag data(hex)

0 10 11 11 00 01

1 00 00 11 00 33

0 11 11 11 11 11

1 00 00 00 00 00

lbu $t0, x # x = 000111

Question 3: cache HIT or MISS? What is in $t0?

Draw the cache after data is brought in

00

01

10

11

Assume memory is little-endian and byte addressable; cache block = 1 word;

Cache holds 4 blocks of data ( 4 words)

Page 6: 12 cache questions

Address (binary)

Contents (Hex)

000000 11 11 00 01

000100 00 11 00 33

001000 ff ee 01 23

001100 45 67 89 0a

010000 bc de f0 1a

010100 2a 3a 4a 5a

011000 6a 7a 8a 9a

011100 1b 2b 3b 4b

100000 b2 b3 b4 b5

100100 c1 c2 c3 c4

101000 d1 d2 d3 d4

101100 e1 e2 e3 e4

110000 f1 f2 f3 f4

110100 a1 a2 a3 a4

111000 2c 3c 4c 5c

111100 2d 3d 4d 5d

V Tag data(hex)

0 01 11 11 00 01

1 00 00 01 01 11

0 11 11 11 11 11

1 00 00 00 00 00

lbu $t0, x # x = 010010

Question 4: cache HIT or MISS? What is in $t0?

Draw the cache after data is brought in

00

01

10

11

Assume memory is little-endian and byte addressable; cache block = 1 word;

Cache holds 4 blocks of data ( 4 words)

Page 7: 12 cache questions

Address (binary)

Contents (Hex)

000000 aa bb cc dd

000100 00 11 00 33

001000 ff ee 01 23

001100 45 67 89 0a

010000 bc de f0 1a

010100 2a 3a 4a 5a

011000 6a 7a 8a 9a

011100 1b 2b 3b 4b

100000 b2 b3 b4 b5

100100 c1 c2 c3 c4

101000 d1 d2 d3 d4

101100 e1 e2 e3 e4

110000 f1 f2 f3 f4

110100 a1 a2 a3 a4

111000 2c 3c 4c 5c

111100 2d 3d 4d 5d

V Tag data(hex)

0 10 11 11 00 01

0 00 00 01 01 11

0 11 11 11 11 11

0 00 00 00 00 00

lbu $t0, x # x = 011011

Question 5: cache HIT or MISS? What is in $t0?

Draw the cache after data is brought in

00

01

10

11

Assume memory is little-endian and byte addressable; cache block = 1 word;

Cache holds 4 blocks of data ( 4 words)

Page 8: 12 cache questions

Cache Question II-1

• Suppose: 256 bytes of memory, cache holds 4 blocks, each block is 1 word. What is the cache size?

• Answer:

aaaaaaaa t t t t i i o o

cache: valid tag data

Cache size: 1 4 32

(4+1+32)*4 bits

Page 9: 12 cache questions

Cache Question II-2

• Suppose: 256 bytes of memory, cache holds 8 blocks , each block is 1 word. What is the cache size?

• Answer:

aaaaaaaa t t t i i i o o

cache: valid tag data

Cache size: 1 3 32

(3+1+32)*8 bits

Page 10: 12 cache questions

Question II-3

• What is the cache size (total number of bits) for a cache that holds 64KB of data (block == 1 word; 2**32 bytes of memory)

• Answer:• 64KB == 16K words;

– 16K = (2**4) *(2**10) = 2**14– So 14 bits are needed for the cache index

• Tag size = 32 – 14 -2 = 16 bits• Cache size = (1 + (32-14-2) + 32) * (2**14)

= 784 K bits = 98 KB