0% found this document useful (0 votes)
125 views

Cache Mapping 1

1. In direct mapping, each block of main memory can only map to one cache line. The block maps to the cache line with the same index. No replacement is needed. 2. For a 16KB direct mapped cache with 256B blocks and 128KB main memory, the number of tag bits is 3 and the tag directory size is 24 bytes. 3. For a 512KB direct mapped cache with 1KB blocks and 7 tag bits, the main memory size is 64MB and the tag directory size is 448 bytes.

Uploaded by

Bittu Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
125 views

Cache Mapping 1

1. In direct mapping, each block of main memory can only map to one cache line. The block maps to the cache line with the same index. No replacement is needed. 2. For a 16KB direct mapped cache with 256B blocks and 128KB main memory, the number of tag bits is 3 and the tag directory size is 24 bytes. 3. For a 512KB direct mapped cache with 1KB blocks and 7 tag bits, the main memory size is 64MB and the tag directory size is 448 bytes.

Uploaded by

Bittu Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 29

DIRECT MAPPING

In direct mapping,

 A particular block of main memory can be mapped to one particular cache line only.
 Block ‘j’ of main memory will map to line number (j mod number of cache lines) of the cache.
 There is no need of any replacement algorithm.

Problem-01:

Solution-
Given-

 Cache memory size = 16 KB


 Block size = Frame size = Line size = 256 bytes
 Main memory size = 128 KB

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory

Problem-01:
Consider a direct mapped cache of size 16 KB with block size 256 bytes. The size of main memory is 128 KB. Find-
1. Number of bits in tag
2. Tag directory size

Solution-
Given-

 Cache memory size = 16 KB


 Block size = Frame size = Line size = 256 bytes
 Main memory size = 128 KB

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory

= 128 KB
= 217 bytes
Thus, Number of bits in physical address = 17 bits

Number of Bits in Block Offset-

We have,
Block size
= 256 bytes
= 28 bytes
Thus, Number of bits in block offset = 8 bits

Number of Bits in Line Number-

Total number of lines in cache


= Cache size / Line size
= 16 KB / 256 bytes
= 214 bytes / 28 bytes
= 26 lines
Thus, Number of bits in line number = 6 bits
Number of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – (Number of bits in line number + Number of
bits in block offset)
= 17 bits – (6 bits + 8 bits)
= 17 bits – 14 bits
= 3 bits
Thus, Number of bits in tag = 3 bits

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 26 x 3 bits
= 192 bits
= 24 bytes
Thus, size of tag directory = 24 bytes

Problem-02:
Consider a direct mapped cache of size 512 KB with block size 1 KB. There are 7
bits in the tag. Find-
1. Size of main memory
2. Tag directory size

Solution-

Given-
 Cache memory size = 512 KB
 Block size = Frame size = Line size = 1 KB
 Number of bits in tag = 7 bits

We consider that the memory is byte addressable.

Number of Bits in Block Offset-

We have,
Block size
= 1 KB
= 210 bytes
Thus, Number of bits in block offset = 10 bits

Number of Bits in Line Number-

Total number of lines in cache


= Cache size / Line size
= 512 KB / 1 KB
= 29 lines
Thus, Number of bits in line number = 9 bits
Number of Bits in Physical Address-

Number of bits in physical address


= Number of bits in tag + Number of bits in line number + Number of bits in block
offset
= 7 bits + 9 bits + 10 bits
= 26 bits
Thus, Number of bits in physical address = 26 bits

Size of Main Memory-

We have,
Number of bits in physical address = 26 bits
Thus, Size of main memory
= 226 bytes
= 64 MB

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 29 x 7 bits
= 3584 bits
= 448 bytes
Thus, size of tag directory = 448 bytes

Problem-03:
Consider a direct mapped cache with block size 4 KB. The size of main memory is
16 GB and there are 10 bits in the tag. Find-
1. Size of cache memory
2. Tag directory size

Solution-

Given-
 Block size = Frame size = Line size = 4 KB
 Size of main memory = 16 GB
 Number of bits in tag = 10 bits

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory
= 16 GB
= 234 bytes
Thus, Number of bits in physical address = 34 bits

Number of Bits in Block Offset-

We have,
Block size
= 4 KB
= 212 bytes
Thus, Number of bits in block offset = 12 bits
Number of Bits in Line Number-

Number of bits in line number


= Number of bits in physical address – (Number of bits in tag + Number of bits in
block offset)
= 34 bits – (10 bits + 12 bits)
= 34 bits – 22 bits
= 12 bits
Thus, Number of bits in line number = 12 bits

Number of Lines in Cache-

We have-
Number of bits in line number = 12 bits
Thus, Total number of lines in cache = 212 lines

Size of Cache Memory-

Size of cache memory


= Total number of lines in cache x Line size
= 212 x 4 KB
= 214 KB
= 16 MB
Thus, Size of cache memory = 16 MB

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 212 x 10 bits
= 40960 bits
= 5120 bytes
Thus, size of tag directory = 5120 bytes

Also Read- Practice Problems On Set Associative Mapping

Problem-04:

Consider a direct mapped cache of size 32 KB with block size 32 bytes. The CPU
generates 32 bit addresses. The number of bits needed for cache indexing and the
number of tag bits are respectively-
1. 10, 17
2. 10, 22
3. 15, 17
4. 5, 17

Solution-

Given-
 Cache memory size = 32 KB
 Block size = Frame size = Line size = 32 bytes
 Number of bits in physical address = 32 bits

Number of Bits in Block Offset-

We have,
Block size
= 32 bytes
= 25 bytes
Thus, Number of bits in block offset = 5 bits

Number of Bits in Line Number-

Total number of lines in cache


= Cache size / Line size
= 32 KB / 32 bytes
= 210 lines
Thus, Number of bits in line number = 10 bits

Number of Bits Required For Cache Indexing-

Number of bits required for cache indexing


= Number of bits in line number
= 10 bits

Number Of Bits in Tag-


Number of bits in tag
= Number of bits in physical address – (Number of bits in line number + Number of
bits in block offset)
= 32 bits – (10 bits + 5 bits)
= 32 bits – 15 bits
= 17 bits
Thus, Number of bits in tag = 17 bits

Thus, Option (A) is correct.

Problem-05:

Consider a machine with a byte addressable main memory of 232 bytes divided into
blocks of size 32 bytes. Assume that a direct mapped cache having 512 cache lines
is used with this machine. The size of the tag field in bits is ______.

Solution-

Given-
 Main memory size = 232 bytes
 Block size = Frame size = Line size = 32 bytes
 Number of lines in cache = 512 lines

Number of Bits in Physical Address-

We have,
Size of main memory
= 232 bytes
Thus, Number of bits in physical address = 32 bits
Number of Bits in Block Offset-

We have,
Block size
= 32 bytes
= 25 bytes
Thus, Number of bits in block offset = 5 bits

Number of Bits in Line Number-

Total number of lines in cache


= 512 lines
= 29 lines
Thus, Number of bits in line number = 9 bits
Number Of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – (Number of bits in line number + Number of
bits in block offset)
= 32 bits – (9 bits + 5 bits)
= 32 bits – 14 bits
= 18 bits
Thus, Number of bits in tag = 18 bits

Problem-06:

An 8 KB direct-mapped write back cache is organized as multiple blocks, each of


size 32 bytes. The processor generates 32 bit addresses. The cache controller
maintains the tag information for each cache block comprising of the following-
 1 valid bit
 1 modified bit
 As many bits as the minimum needed to identify the memory block mapped in
the cache
What is the total size of memory needed at the cache controller to store meta data
(tags) for the cache?
1. 4864 bits
2. 6144 bits
3. 6656 bits
4. 5376 bits

Solution-

Given-
 Cache memory size = 8 KB
 Block size = Frame size = Line size = 32 bytes
 Number of bits in physical address = 32 bits

Number of Bits in Block Offset-

We have,
Block size
= 32 bytes
= 25 bytes
Thus, Number of bits in block offset = 5 bits

Number of Bits in Line Number-

Total number of lines in cache


= Cache memory size / Line size
= 8 KB / 32 bytes
= 213 bytes / 25 bytes
= 28 lines
Thus, Number of bits in line number = 8 bits

Number Of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – (Number of bits in line number + Number of
bits in block offset)
= 32 bits – (8 bits + 5 bits)
= 32 bits – 13 bits
= 19 bits
Thus, Number of bits in tag = 19 bits

Memory Size Needed At Cache Controller-

Size of memory needed at cache controller


= Number of lines in cache x (1 valid bit + 1 modified bit + 19 bits to identify block)
= 28 x 21 bits
= 5376 bits

FULLY ASSOCITATIVE MEMORY


In fully associative mapping,

 A block of main memory can be mapped to any freely available cache line.
 This makes fully associative mapping more flexible than direct mapping.
 A replacement algorithm is needed to replace a block if the cache is full.

Problem-01:
Consider a fully associative mapped cache of size 16 KB with block size 256 bytes. The size of main memory is 128 KB. Find-
1. Number of bits in tag
2. Tag directory size

Solution-
Given-

 Cache memory size = 16 KB


 Block size = Frame size = Line size = 256 bytes
 Main memory size = 128 KB

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory
= 128 KB
= 217 bytes
Thus, Number of bits in physical address = 17 bits

Number of Bits in Block Offset-

We have,
Block size
= 256 bytes
= 28 bytes
Thus, Number of bits in block offset = 8 bits

Number of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – Number of bits in block offset
= 17 bits – 8 bits
= 9 bits
Thus, Number of bits in tag = 9 bits
Number of Lines in Cache-

Total number of lines in cache


= Cache size / Line size
= 16 KB / 256 bytes
= 214 bytes / 28 bytes
= 26 lines

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 26 x 9 bits
= 576 bits
= 72 bytes
Thus, size of tag directory = 72 bytes

Problem-02:
Consider a fully associative mapped cache of size 512 KB with block size 1 KB. There are 17 bits in the tag. Find-
1. Size of main memory
2. Tag directory size

Solution-
Given-

 Cache memory size = 512 KB


 Block size = Frame size = Line size = 1 KB
 Number of bits in tag = 17 bits

We consider that the memory is byte addressable.

Number of Bits in Block Offset-


We have,
Block size
= 1 KB
= 210 bytes
Thus, Number of bits in block offset = 10 bits

Number of Bits in Physical Address-

Number of bits in physical address


= Number of bits in tag + Number of bits in block offset
= 17 bits + 10 bits
= 27 bits
Thus, Number of bits in physical address = 27 bits

Size of Main Memory-

We have,
Number of bits in physical address = 27 bits
Thus, Size of main memory
= 227 bytes
= 128 MB

Number of Lines in Cache-

Total number of lines in cache


= Cache size / Line size
= 512 KB / 1 KB
= 512 lines
= 29 lines
Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 29 x 17 bits
= 8704 bits
= 1088 bytes
Thus, size of tag directory = 1088 bytes

Also Read- Practice Problems On Set Associative Mapping

Problem-03:
Consider a fully associative mapped cache with block size 4 KB. The size of main memory is 16 GB. Find the number of bits in
tag.

Solution-
Given-

 Block size = Frame size = Line size = 4 KB


 Size of main memory = 16 GB

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory
= 16 GB
= 234 bytes
Thus, Number of bits in physical address = 34 bits

Number of Bits in Block Offset-

We have,
Block size
= 4 KB
= 212 bytes
Thus, Number of bits in block offset = 12 bits

Number of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – Number of bits in block offset
= 34 bits – 12 bits
= 22 bits
Thus, Number of bits in tag = 22 bits

SET ASSOCITATIVE CACHE


In set associative mapping,

 A particular block of main memory can be mapped to one particular cache set only.
 Block ‘j’ of main memory will map to set number (j mod number of sets in cache) of the cache.
 A replacement algorithm is needed if the cache is full.

Problem-01:
Consider a 2-way set associative mapped cache of size 16 KB with block size 256 bytes. The size of main memory is 128 KB.
Find-
1. Number of bits in tag
2. Tag directory size

Solution-
Given-

 Set size = 2
 Cache memory size = 16 KB
 Block size = Frame size = Line size = 256 bytes
 Main memory size = 128 KB

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory
= 128 KB
= 217 bytes
Thus, Number of bits in physical address = 17 bits

Number of Bits in Block Offset-

We have,
Block size
= 256 bytes
= 28 bytes
Thus, Number of bits in block offset = 8 bits

Number of Lines in Cache-

Total number of lines in cache


= Cache size / Line size
= 16 KB / 256 bytes
= 214 bytes / 28 bytes
= 64 lines
Thus, Number of lines in cache = 64 lines
Number of Sets in Cache-

Total number of sets in cache


= Total number of lines in cache / Set size
= 64 / 2
= 32 sets
= 25 sets
Thus, Number of bits in set number = 5 bits

Number of Bits in Tag-

Number of bits in tag


= Number of bits in physical address – (Number of bits in set number + Number of bits in block offset)
= 17 bits – (5 bits + 8 bits)
= 17 bits – 13 bits
= 4 bits
Thus, Number of bits in tag = 4 bits

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 64 x 4 bits
= 256 bits
= 32 bytes
Thus, size of tag directory = 32 bytes
Also Read- Practice Problems On Direct Mapping

Problem-02:
Consider a 8-way set associative mapped cache of size 512 KB with block size 1 KB. There are 7 bits in the tag. Find-
1. Size of main memory
2. Tag directory size

Solution-
Given-

 Set size = 8
 Cache memory size = 512 KB
 Block size = Frame size = Line size = 1 KB
 Number of bits in tag = 7 bits

We consider that the memory is byte addressable.

Number of Bits in Block Offset-

We have,
Block size
= 1 KB
= 210 bytes
Thus, Number of bits in block offset = 10 bits

Number of Lines in Cache-

Total number of lines in cache


= Cache size / Line size
= 512 KB / 1 KB
= 512 lines
Thus, Number of lines in cache = 512 lines

Number of Sets in Cache-

Total number of sets in cache


= Total number of lines in cache / Set size
= 512 / 8
= 64 sets
= 26 sets
Thus, Number of bits in set number = 6 bits

Number of Bits in Physical Address-

Number of bits in physical address


= Number of bits in tag + Number of bits in set number + Number of bits in block offset
= 7 bits + 6 bits + 10 bits
= 23 bits
Thus, Number of bits in physical address = 23 bits

Size of Main Memory-

We have,
Number of bits in physical address = 23 bits
Thus, Size of main memory
= 223 bytes
= 8 MB

Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 512 x 7 bits
= 3584 bits
= 448 bytes
Thus, size of tag directory = 448 bytes

Problem-03:
Consider a 4-way set associative mapped cache with block size 4 KB. The size of main memory is 16 GB and there are 10 bits
in the tag. Find-
1. Size of cache memory
2. Tag directory size
Solution-
Given-

 Set size = 4
 Block size = Frame size = Line size = 4 KB
 Main memory size = 16 GB
 Number of bits in tag = 10 bits

We consider that the memory is byte addressable.

Number of Bits in Physical Address-

We have,
Size of main memory
= 16 GB
= 234 bytes
Thus, Number of bits in physical address = 34 bits

Number of Bits in Block Offset-

We have,
Block size
= 4 KB
= 212 bytes
Thus, Number of bits in block offset = 12 bits

Number of Bits in Set Number-


Number of bits in set number
= Number of bits in physical address – (Number of bits in tag + Number of bits in block offset)
= 34 bits – (10 bits + 12 bits)
= 34 bits – 22 bits
= 12 bits
Thus, Number of bits in set number = 12 bits

Number of Sets in Cache-

We have-
Number of bits in set number = 12 bits
Thus, Total number of sets in cache = 212 sets

Number of Lines in Cache-

We have-
Total number of sets in cache = 212 sets
Each set contains 4 lines

Thus,
Total number of lines in cache
= Total number of sets in cache x Number of lines in each set
= 212 x 4 lines
= 214 lines

Size of Cache Memory-

Size of cache memory


= Total number of lines in cache x Line size
= 214 x 4 KB
= 216 KB
= 64 MB
Thus, Size of cache memory = 64 MB
Tag Directory Size-

Tag directory size


= Number of tags x Tag size
= Number of lines in cache x Number of bits in tag
= 214 x 10 bits
= 163840 bits
= 20480 bytes
= 20 KB
Thus, size of tag directory = 20 KB

Also Read- Practice Problems On Fully Associative Mapping

Problem-04:
Consider a 8-way set associative mapped cache. The size of cache memory is 512 KB and there are 10 bits in the tag. Find the
size of main memory.

Solution-
Given-

 Set size = 8
 Cache memory size = 512 KB
 Number of bits in tag = 10 bits

We consider that the memory is byte addressable.


Let-

 Number of bits in set number field = x bits


 Number of bits in block offset field = y bits

Sum of Number Of Bits Of Set Number Field And Block Offset Field-

We have,
Cache memory size = Number of sets in cache x Number of lines in one set x Line size
Now, substituting the values, we get-
512 KB = 2x x 8 x 2y bytes
219 bytes = 23+x+y bytes
19 = 3 +x + y
x + y = 19 – 3
x + y = 16

Number of Bits in Physical Address-

Number of bits in physical address


= Number of bits in tag + Number of bits in set number + Number of bits in block offset
= 10 bits + x bits + y bits
= 10 bits + (x + y) bits
= 10 bits + 16 bits
= 26 bits
Thus, Number of bits in physical address = 26 bits

Size of Main Memory-

We have,
Number of bits in physical address = 26 bits
Thus, Size of main memory
= 226 bytes
= 64 MB
Thus, size of main memory = 64 MB

Problem-05:
Consider a 4-way set associative mapped cache. The size of main memory is 64 MB and there are 10 bits in the tag. Find the
size of cache memory.

Solution-
Given-

 Set size = 4
 Main memory size = 64 MB
 Number of bits in tag = 10 bits

We consider that the memory is byte addressable.


Number of Bits in Physical Address-

We have,
Size of main memory
= 64 MB
= 226 bytes
Thus, Number of bits in physical address = 26 bits

Sum Of Number Of Bits Of Set Number Field And Block Offset Field-

Let-

 Number of bits in set number field = x bits


 Number of bits in block offset field = y bits

Then, Number of bits in physical address


= Number of bits in tag + Number of bits in set number + Number of bits in block offset

So, we have-
26 bits = 10 bits + x bits + y bits
26 = 10 + (x + y)
x + y = 26 – 10
x + y = 16
Thus, Sum of number of bits of set number field and block offset field = 16 bits

Size of Cache Memory-

Cache memory size


= Number of sets in cache x Number of lines in one set x Line size
= 2x x 4 x 2y bytes
= 22+x+y bytes
= 22+16 bytes
= 218 bytes
= 256 KB

You might also like