Announcement

Collapse
No announcement yet.

Vista 64 vs Vista 32?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Jon P. Inghram View Post
    I was going by the Wiki x86-64 article, specifically the AMD64 stuff.
    A perfectly reasonable thing to do

    Just looking at the first two items, I see trouble:
    Full support for 64-bit integers: All general-purpose registers (GPRs) are expanded from 32 bits to 64 bits, and all arithmetic and logical operations, memory-to-register and register-to-memory operations, etc., are now directly supported for 64-bit integers. Pushes and pops on the stack are always in eight-byte strides, and pointers are eight bytes wide.
    Since data is pushed onto the stack for function calls and interrupts, changing the arrangement of stack data causes problems. Since pointers are 8 bytes in 64-bit mode (and only 4 in 32-bit mode), some translation needs to be done for those as well.
    Additional registers: In addition to increasing the size of the general-purpose registers, the number of named general-purpose registers is increased from eight (i.e. eax,ebx,ecx,edx,ebp,esp,esi,edi) in x86-32 to 16. It is therefore possible to keep more local variables in registers rather than on the stack, and to let registers hold frequently accessed constants — this should be a significant area of speed improvement for software with computationally intensive deeply nested loops; arguments for small and fast subroutines may also be passed in registers to a greater extent. However, more registers also involves more saving and restoring of register contents, and AMD64 still has fewer registers than many common RISC processors (which typically have 31–64 registers) or VLIW-like machines such as the IA-64 (which has 128 registers).
    When a function is called, the caller and callee have to agree on where the function parameters and return value(s) are passed. Since X86-64 provides 16 registers (at 64 bits each), a lot more data can be pased in registers. A driver call from the 64-bit system may have significantly more information passed before it requires a stack frame. The 64-bit system will expect information to be in registers, but the 32-bit system will be sending it on the stack (or vice versa). That's a problem.

    I'm sure there are workarounds for any of these issues, but it's a real pain and may not be worth it. After all, what is the impetus for Microsoft to deal with it when they can just have the manufacturers port their drivers to 64-bit? Do you have old hardware that doesn't work yet? Well, just call the manufacturer's support line and ask them why. Aside from that, there's also the idea that a legacy driver will seem to be slow (due to translation, if nothing else), and the user will think that Vista and/or X86-64 just sucks. Also, I'd probably prefer to have a pure 64-bit architecture, since it's easier to support.

    - Steve

    Comment


    • #17
      Originally posted by schmosef View Post
      What i felt from playing with XP Pro 64bit was that the system seemed to handle heavy multitasking better. not sure it that's because of the OS itself or simply because it could use all 4GB of RAM I had installed at the time.

      What I've done is install Vista 64 in Dual boot with XP 32bit. Everything works in XP and I can gradually migrate to Vista at my own pace.

      It's the OS itself. XP x64 is the true client for Server 2k3. It runs out of a significantly more updated code base.

      As far as driver compatability... Sheer compatability problems aside, there are a lot of potential security holes involved in trying to load 32bit binaries into a 64bit kernel space. Lots and lots of bad things could happen. Like your computer catching fire and burning down the house. Fire and brimstone sort of things.

      Right now Microsoft is not pushing any x64 OS as a consumer orientated platform. They are business/enterprise platforms and will likely remain that way until close to the release of their next OS. Right now Vista is the platform that will allow them to bring it to the masses via driver and software compatability. It doesn't mean it is nessicarily intended to be used by the masses, especially right off the bat.

      Eventually they will likely transition to a 64bit clean platform and 32bit code is going to be legacy software. Just like Win16 in the past, Win32 will eventually be phased out.
      "And yet, after spending 20+ years trying to evolve the user interface into something better, what's the most powerful improvement Apple was able to make? They finally put a god damned shell back in." -jwz

      Comment

      Working...
      X