# GATE | Sudo GATE 2020 Mock I (27 December 2019) | Question 42

A computer system uses 16-bit memory addresses. It has a 2K-byte cache organized in a direct-mapped manner with 64 bytes per cache block. Assume that the size of each memory word is 1 byte.

When a program is executed, the processor reads data sequentially from the following word addresses:

`128, 144, 2176, 2180, 128, 2176 `

All the above addresses are shown in decimal values. Assume that the cache is initially empty. The cache hits ratio occur for for above given addresses is __________ .
(A) 0.333
(B) 0.666
(C) 0.353
(D) 0.535

Explanation: First, find word, block and tag size:
Block size = 64 bytes = 26 bytes = 26 words (since 1 word = 1 byte)
Therefore, Number of bits in the Word field = 6

Cache size = 2K-byte = 211 bytes
Number of cache blocks = Cache size / Block size = 211/26 = 25
Therefore, Number of bits in the Block field = 5
Total number of address bits = 16
Therefore, Number of bits in the Tag field = 16 – 6 – 5 = 5
For a given 16-bit address, the 5 most significant bits, represent the Tag, the next 5 bits represent the Block, and the 6 least significant bits represent the Word.

Now, check cache hit or miss for given addresses:
The cache is initially empty. Therefore, all the cache blocks are invalid.

Access # 1:
(Note: Address is shown as a 16-bit number, because the computer uses 16-bit addresses)
For this address, Tag = 00000, Block = 00010, Word = 000000
Since the cache is empty before this access, this will be a cache miss
After this access, Tag field for cache block 00010 is set to 00000

• Access # 2:
For this address, Tag = 00000, Block = 00010, Word = 010000
Since tag field for cache block 00010 is 00000 before this access, this will be a cache hit (because

• Access # 3:
For this address, Tag = 00001, Block = 00010, Word = 000000
Since tag field for cache block 00010 is 00000 before this access, this will be a cache miss
After this access, Tag field for cache block 00010 is set to 00001

• Access # 4:
For this address, Tag = 00001, Block = 00010, Word = 000100
Since tag field for cache block 00010 is 00001 before this access, this will be a cache hit (address
tag = block tag)

• Access # 5:
For this address, Tag = 00000, Block = 00010, Word = 000000
Since tag field for cache block 00010 is 00001 before this access, this will be a cache miss
After this access, Tag field for cache block 00010 is set to 00000

• Access # 6:
For this address, Tag = 00001, Block = 00010, Word = 000000
Since tag field for cache block 00010 is 00001 before this access, this will be a cache miss
After this access, Tag field for cache block 00010 is set to 00001

Therefore, cache hit rate = Number of hits / Number of accesses = 2/6 = 0.333.

Option (A) is true.

Quiz of this Question

My Personal Notes arrow_drop_up
Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.