Announcement

Collapse
No announcement yet.

Vista 32bit vs. Vista 64bit

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

    #46
    Originally posted by Xenithar View Post
    Being a software programmer myself...

    Oh, and 32bit memory can easily go to 4GB. The thing is, the top 384MB or so is used for memory-address information. Think of it like a file-allocation table for memory. The more memory you have, the more is used for storing address information. Assuming 4GB configurations used exactly 384MB, that means an 8GB configuration would use 768MB. 16GB would use 1.5GB! So yes, a 32bit OS can easily use every bit of 4GB of RAM.
    Oh dear... do most of your programmes you write crash?

    32 bit OS have reservered memory adresses for hardware memory. This starts at 3.2 GB and goes to 4GB. You can't go above 4GB of total system memory on 32 bit as obviously you can't address more than 4GB with 32 bits.

    Comment


      #47
      Originally posted by Benfica View Post
      It does. With segment registers, it would already be possible to use 32 bit addressing, but it was shrinked to 20. And the Pentium MMX had 64 bit registers.
      Not to argue, but NO, it doesn't. I can set and give specs all day long about memory access for those old systems, but I'll refrain from typing all that and quote a segment from Wiki and post the link.

      Buses and operation
      All internal registers as well as internal and external data buses are 16 bits wide, firmly establishing the "16-bit microprocessor" moniker of the 8086. A 20-bit external address bus gives a 1 MB (segmented) physical address space (220 = 1,048,576). 16-bit I/O addresses give 64 KB of separate I/O space. (216 = 65,536). The control pins carry the essential signals for all external operations.

      The data bus was multiplexed with the address bus, this was only slightly diminishing performance however, as other factors, more important for this particular chip, shadow this design choice; transfers of 16 (or 8) bit quantities are done in a four-clock memory access cycle. 8086 instructions varied from 1 to 6 bytes. Therefore, fetch and execution were concurrent (as it remains in todays x86 designs): The bus interface unit feeds the instruction stream to the execution unit through a 6 byte prefetch queue (a form of loosely coupled pipelining), speeding up operations on register and immediates, while memory operations unfortunately became slower (4 years later, this performance problem was fixed with the 80186 and 80286). The performance gain over the 8080 and 8085 resulting from the full (instead of partial) 16-bit architecture, the operand versus operation orthogonalization, and other enhancements, were still fairly significant, despite cases where the older chips may be faster (see below).

      The maximum linear address space is limited to 64 KB, simply because internal registers are only 16 bits wide. Programming over 64 KB boundaries involves adjusting segment registers (see below) and is therefore fairly awkward (and remains so until the 80386). Some control pins have more than one function depending upon whether the device is operated in the "min" or "max" mode. The former is intended for small single processor systems whilst the latter is for medium or large systems using more than one processor. The processor had some new instructions (not present in the 8085) to better support stack based high level programming languages such as Pascal and C; some of the more useful ones were push immed, push mem-op, and ret size (several others would be added in the subsequent 80186, 80286, and 80386 designs).
      Note the part in red. Basically what I said above.

      http://en.wikipedia.org/wiki/Intel_8086


      Originally posted by s8nskeep View Post
      32 bit OS have reservered memory adresses for hardware memory. This starts at 3.2 GB and goes to 4GB. You can't go above 4GB of total system memory on 32 bit as obviously you can't address more than 4GB with 32 bits.
      Windows Server 32-bit can access more than 4GB. Consumer versions of Windows do not unless they are 64-bit.

      Comment


        #48
        @[FfFC]_-(MAD)-_, I wasn't asking for an explanation I was just becoming bored that the thread had some myths about 32 vs 64 bits.

        @MrCobra, I'm (or was well aware when I remembered all the details) of segmentation arithmetic, because I was an asm programmer. The question:
        And remember the old 8086 which was a 16 bit CPU? That's 64KB max. How come they could have 640KB + video memory + ROMS + extra address space?
        has got nothing to do with not knowing the answer.

        If I didn't manage to make my point across, which was that "32 vs 64" bits is way complex on x86, and x86-64 mode is not only larger addressing, I'm sorry. Language barrier, too tired, whatever.

        Comment


          #49
          Originally posted by Benfica View Post
          @[FfFC]_-(MAD)-_, I wasn't asking for an explanation I was just becoming bored that the thread had some myths about 32 vs 64 bits.

          @MrCobra, I'm (or was well aware when I remembered all the details) of segmentation arithmetic, because I was an asm programmer. The question:

          has got nothing to do with not knowing the answer.

          If I didn't manage to make my point across, which was that "32 vs 64" bits is way complex on x86, and x86-64 mode is not only larger addressing, I'm sorry. Language barrier, too tired, whatever.
          OK, sry. Im german, and sometimes i dont understand it like i should ^^

          Comment


            #50
            Originally posted by Harmatia View Post
            Exactly the question I was going to ask.
            Man, the world really needs to move to 64 bit...
            I got an AMD64 CPU 4 years ago and ever since that time I've been using a 64-bit OS; Linux .

            Comment

            Working...
            X