A Direct-Mapped Cache (Cont.)


The block size of the previous cache was one word, but normally it is several. Assume a direct-mapped cache has the following features (note that the following figure is only one of the caches described):

  • 32-bit byte addresses,

  • the cache size is 2n blocks, so n bits are used for the index, and

  • the block size is 2m words (2m+2 bytes), so m bits are used for the word within the block, and two bits are used for the byte part of the address.

The size of the tag field is therefore
     32 - ( n + m + 2 )
The total number of bits in a direct-mapped cache is
     2n × ( block size + tag size + valid field size )
Since the block size is 2m words (2m+5 bits), and we need 1 bit for the valid field, the number of bits in such a cache is
     2n×(2m×32+(32-n-m-2)+1) = 2n×(2m×32+31-n-m)

Question I
How many total bits are required for a direct-mapped cache with 4 KiB of data and 2-word blocks, assuming a 32-bit byte address?

Answer:   Kibibits