927 views
Cache size 32 KB

Block size = 32 Bytes

Associativity of Cache = 16

Determine what is the hardware requirement to design the 16-way set associative cache.

Hardware requirement -> Mux, Comparator, Demux, Decoder, Encoder etc.

My answer:-  Our requirement are as follow:-

1) 64 Comparator each of size 4 bit.

2) 1 Decoder Dimension -> 6 X 64

3) 1 Mux Dimension -> 32 X 1 where number of select lines are 5.

4) 64 And gates

5) 1 OR gate input line = 64

retagged | 927 views
0
comparators-> 16, size=17bits

size of one MUX-> 64$\times$1 //since there are total 64 sets.
0

@joshi_nitish you are selecting one set out of 64 sets. if yes then how will you extract a particular word from a particular block?

0
there will be 16(no of lines in one set) parallel MUX doing same thing..
0

Number of cache block = $\frac{2^{15}}{2^5}$ = $2^{10}$

Number of sets = $\frac{2^{10}}{2^4}$ = 64

|17|6|5| = |tag bits|set index bits|Block offset|

number of comparators required = 16 ( 16 blocks in 1 set)

Each comparator size  = number of tag bits = 17 bits comparator

MUX required of size Kx1 : 16x1 MUX

by Boss (44.2k points)
0
I think Mux should be 32 X 1, as we have 5 bits for word offset.

and Decoder will take 6 binary bits and select 1 set out of 64 sets.
0
where did you study this?
0
+2
@Manu

MUX size = # of sets$\times$1..

so it should be 64$\times$1...isn't i?
+1
@nitish MUX size is Kx1, where cache is K associative, because there are k blocks in a set, when tag bits of a block matches with the cpu generated tag bits, required word from that block will be transfered to CPU, so we need kx1 MUX to output one tag out of k stored k tags in 1 set.
0
ok...i was using different hardware implementation(not standard), but it was very complicated..
0
which part of address will be selected as select lines in 16 X 1  MUX?
0
0
i think @nitish is right @manu

because we 1st take the set no. bit apply them as input to multiplexer to locate the set no. and then use comparator to compare the tag bits in above example 16 comparator (16 lines per set are used) and then use or gate

therefore the no. of multiplexer would be 64 to 1 mux

correct me if i am wrong
0
i didnt understand this explanation
0
no. of comparator in n-way set associative = n

size of each comparator = no. of bits in Tag field

so, no. of comparator = 16

size of each comparator = 17
i think @nitish is right @manu

because we 1st take the set no. bit apply them as input to multiplexer to locate the set no. and then use comparator to compare the tag bits in above example 16 comparator (since 16 lines per set are used) and then use or gate

therefore the no. of multiplexer would be 64 to 1 mux
in above example even you have used decoder of size 6 to 64
correct me if i am wrong
by (57 points)
+1
correct mux  size is 64 * 1
Tag bit= 17, set bit= 6, offset bit= 5

Firstly 1 multiplexer or set index decoder(size 64 x 1) will be used to reach the required set, then all tag bits of 16 lines in that set will be matched with the help of 16 comparators of size 17(tag bits). Don't bother yourself on how to fetch all tag bits from 16 lines (we could use multiplexer same as we fetch from Associative mapping) because that is advance topic and not required for GATE. Then lastly we required an OR gate or a multiplexer(mux. can work as an "OR" gate) to check whether there is a hit or miss.

Note- A comparator compares 1 bit at a time that's why T.comparator= K * comparator latency
by Active (4.3k points)