I’m confused by the cache graphs: it looks like the direct-mapped cache has multiple lines drawn from a single cache line to different blocks in main memory.
From what I understand, a hardware cache wouldn’t store a line multiple times in main memory.