Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #19762

Re: Program in 32-bit, run on 64-bit OK?

From BGB <cr88192@hotmail.com>
Newsgroups comp.lang.java.programmer
Subject Re: Program in 32-bit, run on 64-bit OK?
Date 2012-11-15 22:46 -0600
Organization albasani.net
Message-ID <k84gkt$mr0$1@news.albasani.net> (permalink)
References (2 earlier) <k80j5b$o67$1@speranza.aioe.org> <50a3d194$0$289$14726298@news.sunsite.dk> <1ime9q5hlhcfs.x8wnfo60hr9g$.dlg@40tude.net> <k81l6c$oh3$1@news.albasani.net> <k83sma$3qm$1@dont-email.me>

Show all headers | View raw


On 11/15/2012 5:08 PM, Stuart wrote:
> On 11/15/12 sl@exabyte wrote:
> [snip]
>> And I suppose only hardware with 64-bit address bus can run 64-bit OS.
>
> Wrong. Typical 64 bit processors have either a 36 bit or a 40 bit
> physical address bus (40 bits are 1 TB, an almost incredible amount of
> RAM, wikipedia mentions that some AMD chips even offer a 48 bit memory
> bus). Note that bus width and register width do not have to have a
> one-to-one relationship. The early 286 processor had a register width of
> 16 bits but an address bus with 24 bits (4MB), so they had to invent
> this segmentation model in order to compute a 20bit address from two 16
> bit registers. Twenty years later, the segmenation unit is still present
> at the Intel architecture while the numbers have been reversed: now the
> 36 or 40 bit physical address is computed from a 16 bit value and a 64
> bit value. Sounds like overkill, and yes, it is. That's just for
> backwards compatibility for applications from 1985.
>

corrections:
24 bits is 16MB (because 2^24 = 16777216), this bus size was used by 
both the 286 and 386SX (the 386DX and 486 used full 32-bits);
the segments:offset -> 20 bit address thing was there since the 8086, 
which could only address 1MB of RAM (in contrast to 64kB on the 8080);
on current 64-bit chips, the segmentation is also non-functional in 64 
bit mode with the partial exception of the FS and GS segments (used 
mostly for implementing TLS and similar).

(so, while the segment registers are still present, they don't really do 
all that much anymore).

in effect, the chip is using a 64-bit flat address model, but may remap 
the addresses mostly through the use of page-based address translation 
(which maps from the program's virtual address space to the physical/RAM 
address space).

yes, the CPU has backwards compatibility, but it actually involves a 
fair amount of mode-changing (as control is passed from one program to 
another, the CPU mode changes), but there are limits to this.

however, real-mode software (IOW: most of the software from 1985) can't 
actually run on the CPU if it is running in "long mode", so it actually 
requires use of either hardware emulation or virtualization to make this 
work (for example, DOSbox does emulation, and VMware does virtualization).

as-is, about the oldest software that can be run directly in modern 
Windows is roughly mid-to-late 90s era software (IOW: from when the 
world moved solidly over to 32 bits), although the hardware can 
technically still support running 16-bit protected-mode software in 
long-mode (theoretically, MS could have made Win3.x apps work without 
emulation, had they wanted to do so...).


or such...

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Program in 32-bit, run on 64-bit OK? "sl@exabyte" <sb5309@hotmail.com> - 2012-11-14 21:58 +0800
  Re: Program in 32-bit, run on 64-bit OK? "sl@exabyte" <sb5309@hotmail.com> - 2012-11-14 22:01 +0800
  Re: Program in 32-bit, run on 64-bit OK? Arne Vajhøj <arne@vajhoej.dk> - 2012-11-14 09:12 -0500
    Re: Program in 32-bit, run on 64-bit OK? Cholo Lennon <chololennon@hotmail.com> - 2012-11-14 14:11 -0300
      Re: Program in 32-bit, run on 64-bit OK? Arne Vajhøj <arne@vajhoej.dk> - 2012-11-14 12:14 -0500
        Re: Program in 32-bit, run on 64-bit OK? Joerg Meier <joergmmeier@arcor.de> - 2012-11-14 18:36 +0100
          Re: Program in 32-bit, run on 64-bit OK? "sl@exabyte" <sb5309@hotmail.com> - 2012-11-15 10:48 +0800
            Re: Program in 32-bit, run on 64-bit OK? Stuart <DerTopper@web.de> - 2012-11-16 00:08 +0100
              Re: Program in 32-bit, run on 64-bit OK? "SL@maxis" <ecp_gen@my-rialto.com> - 2012-11-16 09:23 +0800
                Re: Program in 32-bit, run on 64-bit OK? BGB <cr88192@hotmail.com> - 2012-11-15 22:52 -0600
                Re: Program in 32-bit, run on 64-bit OK? Fritz Wuehler <fritz@spamexpire-201211.rodent.frell.theremailer.net> - 2012-11-16 16:44 +0100
                Re: Program in 32-bit, run on 64-bit OK? Joerg Meier <joergmmeier@arcor.de> - 2012-11-17 13:18 +0100
                Re: Program in 32-bit, run on 64-bit OK? BGB <cr88192@hotmail.com> - 2012-11-17 12:42 -0600
              Re: Program in 32-bit, run on 64-bit OK? BGB <cr88192@hotmail.com> - 2012-11-15 22:46 -0600
                Re: Program in 32-bit, run on 64-bit OK? Stuart <DerTopper@web.de> - 2012-11-16 12:08 +0100
                Re: Program in 32-bit, run on 64-bit OK? BGB <cr88192@hotmail.com> - 2012-11-16 18:08 -0600
                Re: Program in 32-bit, run on 64-bit OK? Stuart <DerTopper@web.de> - 2012-11-17 23:59 +0100
              Re: Program in 32-bit, run on 64-bit OK? Anonymous <nobody@remailer.paranoici.org> - 2012-11-16 12:42 +0000
            Re: Program in 32-bit, run on 64-bit OK? Roedy Green <see_website@mindprod.com.invalid> - 2012-11-16 05:17 -0800
    Re: Program in 32-bit, run on 64-bit OK? Jan Burse <janburse@fastmail.fm> - 2012-11-14 20:08 +0100

csiph-web