I'm working on problem 8.6 from the book "Computer organization and embedded systems, 6th edition" and I'm struggling with understanding the setup of the problem. I've taken a screenshot of the problem and posted it below:
I'm having difficulties understanding the functionality of the cache. The problem statement specifies the cache as "small for illustrative purposes" and that "It contains only four 16-bit words". As I understand it the cache literally only contains these 4 slots for word-length data or instructions. Furthermore the cache is direct-mapped so instructions/data loaded into it should be placed into it by their "main-memory address" modulo "number of blocks in the cache". Now the cache only has four blocks (which aren't even blocks) so it's just "memory address" modulo 4? That seem ridiculous. Another problem I have is that "Words are accessed in the cache using the low-order 3 bits of an address". I don't even know how that would work with the tag saved in the cache, or rather what is the purpose of the tag then since there are only 4 places in the cache.
English is not my first language so I'm afraid that maybe there are nuances in the specification I don't fully understand but either way I can't make heads or tails of it.