I've been given the following problem and I'm not sure exactly how to approach it:
Consider a virtual memory system with the following properties:
· 35-bit virtual address
· 16 KB pages
· 32-bit physical address
Assume that this virtual memory system is implemented with an eight-way set associative TLB. The TLB has total of 256 TLB entries, with each TLB entry representing one virtual-to-physical page number translation.
A 64 KB data cache is a two-way set associative cache. The data cache’s block size is 128 Bytes.
Show the virtual to physical mapping with a figure drawn in a way similar to the figure below (but with all necessary changes required for the TLB and the data cache specified in this question).
Specify the width of all fields and signals coming in and out of (as well as the number of comparisons done by) the TLB and the data cache for each memory address.
I sort of have an idea on how to compute some parameters, but otherwise, I'm lost.
For instance, since the virtual address is 35-bits wide, I know that I have 2^35 possible virtual addresses.
Since I have 16KB pages (16*1KB = 2^4 * 2^10 = 2^14KB), I know that I must have (3^35)/(2^14) = 2^21 page table entries.
Finally, I know that my cache size is 64 * 1KB = 2^16 bytes of cache.
But I am lost after these steps. Any help would be appreciated.
