Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <blockquote> <p>"If we now decide to use only 48 of the 64 bits for addressing". Why? &amp; Why only 48bits? Why not some other number?</p> </blockquote> <p>System architects make tradeoffs. 256TB seems like more than enough room for 1 process's address space. Remember virtual address != physical address, and generally speaking, each process has its own address space.</p> <p>As long as pointers are 64 bits, this is more of a performance capability issue than anything else. If &amp; when 48 bits becomes a limitation, the OS could be tweaked to use more bits of the 64-bit address space without breaking application incompatibility. For now, the architects are just buying themselves a very comfortable amount of time.</p> <p>It may have to do with processor-side virtual addressing capabilities, as many processors now have <a href="http://en.wikipedia.org/wiki/Memory_management_unit" rel="nofollow noreferrer">memory management units</a> to handle the virtual -> physical memory mapping.</p> <blockquote> <p>How to know the number of address pins (= size of address bus) for a processor. <a href="http://ark.intel.com" rel="nofollow noreferrer">http://ark.intel.com</a> specifications of a processor doesn't include this spec.</p> </blockquote> <p>This is for the most part irrelevant. It's a way for a processor to implement various physical addressing schemes. A 64-bit processor could achieve external address/data buses for its complete address space with 64, 32, 16, 8, 4, 2, or 1 address pin if the bus is synchronous and the address bits get multiplexed in time. Again, virtual address != physical address; 64-bit virtual addressing could be implemented with 48-bit or 32-bit physical addresses (just that you would be limited to 2<sup>48</sup> or 2<sup>32</sup> words of memory).</p> <p><strong>update:</strong> if you really want to know, you have to look at the datasheet of each processor in question. E.g. <a href="http://www.intel.com/design/core2duo/documentation.htm#datashts" rel="nofollow noreferrer">Intel Core 2 Duo</a> -- section 4.2 of the datasheet talks about the signals -- the address bus is 36-bits wide (but is really 33 signal lines; the data width is 64-bit = 8 bytes so the other 3 lines are probably unnecessary with proper data alignment)</p> <blockquote> <p>Well, I'm just a regular PC user &amp; programmer. Its just hard to believe for me that 32-bit addressing ie.. 4GB (2GB/3GB to be more correct) address space per process is a limit. If you really encountered this limit. Please give me example.</p> </blockquote> <p>Two words: <em><a href="http://en.wikipedia.org/wiki/Memory-mapped_file" rel="nofollow noreferrer">memory-mapped files</a></em>.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload