Official answer: C) (0, 8, 16, 24)
Cache Memory and HierarchyTo find the starting address in decimal for each 1 KB memory block (indicated as X1, X2, X3, X4), consider the 12-bit input address IA11–IA0:
Starting location condition:
For the starting location of each memory block, the internal address is Addr=0. Since the remaining 10 address lines (IA11–IA5 and IA2–IA0) form the 10-bit Addr input, all these 10 lines must be 0:
IA11=IA10=IA9=IA8=IA7=IA6=IA5=0 IA2=IA1=IA0=0 Decoder inputs:
The 2-to-4 decoder selects the memory blocks based on lines IA4 (connected to A1) and IA3 (connected to A0):
Block X1 (selected by Q0):(A1,A0)=(0,0)⟹IA4=0,IA3=0
Address=(000000000000)2=0 Block X2 (selected by Q1):(A1,A0)=(0,1)⟹IA4=0,IA3=1
Address=(000000001000)2=23=8 Block X3 (selected by Q2):(A1,A0)=(1,0)⟹IA4=1,IA3=0
Address=(000000010000)2=24=16 Block X4 (selected by Q3):(A1,A0)=(1,1)⟹IA4=1,IA3=1
Address=(000000011000)2=24+23=24
Thus, the starting addresses for blocks X1, X2, X3, and X4 are (0,8,16,24), which corresponds to Option (C).