In the full bit vector format, for each possible
cache line in
memory, a
bit is used to track whether every individual
processor has that line stored in its
cache. The full bit vector format is the simplest structure to implement, but the least scalable. Each directory entry must have 1 bit stored per processor per cache line, along with bits for tracking the state of the directory. This leads to the total size required being
(number of processors)×number of cache lines, having a storage
overhead ratio of
(number of processors)/(cache block size×8). It can be observed that directory overhead scales linearly with the number of processors. While this may be fine for a small number of processors, when implemented in large systems the size requirements for the directory becomes excessive. For example, with a block size of 32 bytes and 1024 processors, the storage overhead ratio becomes 1024/(32×8) = 400%. == Coarse bit vector format ==