Hi everyone. So, I've got some homework that looks like this:
And I'm searching through my book and cannot find the differentiation between address lines and blocks.
But, regardless, I have two attempts at solving part A):
Attempt 1: the cache is 32kB in size, and has a block size of 64B. So 32kB/64B = 512 Blocks
Attempt 2: I found a PDF online that says that if there are 32 address lines, that corresponds to 2^32 words of memory. If the block size/length is 64B and word size is 32bits, then each block holds 16 words. So 2^32 words/16 words per block = 268435456 blocks.
PDF http://umcs.maine.edu/~cmeadow/courses/cos335/COA04.pdf
Those are my thought processes. Which, if either, are correct? How do I find that? Because A block in a cache is one "row" if we're visualizing things, hence my 1st attempt. But, the PDF says that bit of information about address lines, which confuses me because I don't know (and can't find) where they are.
For part b, here's my though process. Assuming my first attempt at part A is correct, the cache size is 2^n=512 blocks, meaning we need an n bit index, in this case a 9 bit index. So, if 9 of the block size is 64 bytes, that is 512 bits. Meaning, 512-9 = 503 bit tag.
Once more I'm thrown for a loop by something else though. My book says:
Which leads me to think I'm completely wrong. Hopefully someone can help clarify this all!
Thanks