1. a. 16 MB = 2^24 24 bits.
b. 16 bytes = 2^4, 256 lines = 2^8
24 - 12 = 12 bit tag
256 lines * ( 16 bytes/line + 1 bit flag/line + 12 bit tag/line )
c. 912739h
byte id 9h
line id 73h
tag id 912h
2. a. 256 MB = 2^8 * 2^20 28 bits.
b. 16 bytes = 2^4, 16 lines = 2^4
28 - 8 = 20 bit tag.
16 lines * ( 16 bytes/line + 1 bit flag/line + 20 bit tag/line )
c. 312739h
byte id 9h
line id 3h
tag id 3127h
3. a. 64MB = 2^6 * 2^20 26 bits.
b. 64 bytes = 2^6, 4096 lines = 2^2 * 2^10 = 2^12
26 - 18 - 8 bit tag
4096 lines * ( 64 bytes/line + 1 bit flag/line + 8 bit tag/line )
c. 612739 = 0001 1000 0100 1001 1100 11 1001b
byte id = 11 1001b = 39h
line id = 0100 1001 1100b = 49Ch
tag id = 0001 1000 = 18h
4. a. 32MB = 2^5 * 2^20 = 25 bits.
b. 8 bytes = 2^3, 128 lines = 2^7.
25 - ( 3 + 7 ) = 15 bit tag
128 lines * ( 8 bytes/line + 1 bit flag/line + 15 bit tag/line )
c. 712739h = 0 0111 0001 0010 0111 0011 1001
c. 712739h = 001 1l00 0100 1001 110 0111 001
byte id = 001b = 1H
line id = 110 0111b = 67h
tag id = 001 0000 0100 1001 = 1E49h
5. a. 16 MB = 2^4*2^20 = 24 bits
b. 16 byte = 2^4, 1024 lines = 2^10
24 - 14 = 10 bit tag
1024 lines * ( 16 bytes/line + 1 bit flag/line = 10
c. 412739h = 0100 0001 0010 0111 0011 1001b
byte id = 1001b = 9
line id = 10 0111 0011 = 273h
tag id = 01 0000 0100 = 104h