My confusion is based on these 3 thoughts -
Is it 2^(number of all address pin available on the cpu)?
Is it the 2^(size of one specific register)?
Is it a hardware circuit which understands all the addresses within a range of addresses? Then what is it?
I'm not asking about virtual address space here, I don't know what it's called , maybe it's the physical address space of all physical devices including ram. Besides even if I get a correct answer then I would like to ask, why does my cpu has 2^39 bits(512GB) of memory address space and 64KB+3 I/O memory space. This information is written on intel documentation for my system in package (intel core i3-4005U with an integrated lynx point-m PCH).
You are welcome to edit my question if I'm asking it wrong. Thank you.