The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+12 votes
2.1k views

A CPU has 32-bit memory address and a 256 KB cache memory. The cache is organized as a 4-way set associative cache with cache block size of 16 bytes.

  1. What is the number of sets in the cache?
  2. What is the size (in bits) of the tag field per cache block?
  3. What is the number and size of comparators required for tag matching?
  4. How many address bits are required to find the byte offset within a cache block?
  5. What is the total amount of extra memory (in bytes) required for the tag bits?
asked in CO & Architecture by Veteran (59.5k points)
edited by | 2.1k views
0

For answering part (C) of this question refer diagram of Four‐Way Set Associative Cache on 

http://www.ece.ucsb.edu/~strukov/ece154aFall2012/lecture15.pdf

2 Answers

+24 votes
Best answer

What is the number of sets in the cache

 $\text{Number of sets}=\dfrac{\text{Cache memory}}{\text{(set associativity $\times$ cache block size)}}$

 $=\dfrac{256KB}{(4\times 16 B)}$

 $=4096$

What is the size (in bits) of the tag field per cache block?

 Memory address size $=32\text{-bit}$

 Number of bits required to identify a particular set  $=12\text{ (Number of sets}= 4096)$

 Number of bits required to identify a paticular location in cache line $=4\text{ (cache block size = 16)}$

 Size of tag field $=32-12-4=16\text{-bit}$

What is the number and size of comparators required for tag matching?

We use $4\text{-way}$ set associate cache. So, we need $4$ comparators each of size $16\text{-bits}$

http://ecee.colorado.edu/~ecen2120/Manual/caches/cache.html

How many address bits are required to find the byte offset within a cache block?

Cache block size is $16\text{-byte.}$ so $4\text{-bits}$ are required to find the byte offset within a cache block.

What is the total amount of extra memory (in bytes) required for the tag bits?

size of tag $=16\text{-bits}$

Number of sets $=4096$

Set associativity $=4$

Extra memory required to store the tag bits $=16\times 4096\times 4\text{-bits}= 2^{18}\text{ bits}=2^{15}\text{ bytes}.$

answered by Loyal (5.6k points)
edited by
+4
Extra memory required for tag bits=2^18 bytes
+2
I think, the extra memory required to store the tag bits=$2^{18}$ bits. In bytes, it should be $2^{15}$B.

Am i thinking wrong?
+2

Extramemory required to store the tag bits = 16 * 4096 * 4 bits = 218 bytes

                  here it is not 218 bytes but it is 218 bits, which implies 215 Bytes or 32 KB. Thus 32 KB extra memory is required....

+1
can someone explain how byte offset is determined from the block size??
+1

@Anshul Shankar, Byte offset means how many bits will be required to address the no of bytes in a cache Block. As cache block is of 16B and thus only log2(16) i.e. 4 bits will be required.

0
Is that similar to the word offset and just the context with word and byte differs??
+1 vote

A. To find the number of sets we need to determine the number of rows. To do that we need to determine the number of blocks. We are given that this is a 4-way set associative cache, hence each set has four blocks.

It holds:

#Blocks = Capacity / BlockSize = 218 / 24 = 214. There are 214 blocks.

#Sets = #Blocks / #ways = 214 / 22 = 212. There are 212 sets.

answered by Active (1.6k points)
edited by
0
256 KB, not 256 B :)
+1
Thanks for pointing out. I've corrected it.


Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

37,111 questions
44,694 answers
127,237 comments
43,753 users