Help - Search - Members - Calendar
Full Version: What Are The Advantages Of 64-bit Mode Under Sl?
Project OS X Forums > OS X 10.6 (Snow Leopard) > Hardware Discussion
Mikehunt79
I have read that a machine will run faster under 64-bit mode, tho I'm not really sure if this is really the case. As I understand it, the main advantage of running in 64-bit more is that it allows apps to access more RAM, due to the registers holding more digits.

Are there any other advantages? I've heard some people say 64-bit mode is faster, but I have yet to see xbench results to prove this...

I ask because I've just managed to get my little Atom based Acer Aspire One running nicely under SL, and I only need a few kexts, and most of them seem to have 64-bit versions. Now, I'm not even 100% sure if the Atom can run 64-bit stuff, but I do find it struggles with things like HD video, and if 64-bit would give a faster machine then it may be worth the effort. Even if the Atom will not do 64-bit, I'd like to know what all the hoo-haa is about 64bit mode. smile.gif

Finally, feel free to move this topic, I couldn't really find an ideal section for it...
realityiswhere
QUOTE (Mikehunt79 @ Sep 27 2009, 07:40 PM) *
I have read that a machine will run faster under 64-bit mode, tho I'm not really sure if this is really the case. As I understand it, the main advantage of running in 64-bit more is that it allows apps to access more RAM, due to the registers holding more digits.

Are there any other advantages? I've heard some people say 64-bit mode is faster, but I have yet to see xbench results to prove this...

I ask because I've just managed to get my little Atom based Acer Aspire One running nicely under SL, and I only need a few kexts, and most of them seem to have 64-bit versions. Now, I'm not even 100% sure if the Atom can run 64-bit stuff, but I do find it struggles with things like HD video, and if 64-bit would give a faster machine then it may be worth the effort. Even if the Atom will not do 64-bit, I'd like to know what all the hoo-haa is about 64bit mode. smile.gif

Finally, feel free to move this topic, I couldn't really find an ideal section for it...


Required reading on the subject of 64bit from a true genius: Amit Singh, the author of OS X Internals: A Systems Approach, creator of MacFUSE, and he works at Google no less.

In summary though: K64 doesn't matter at all to end users.. admittedly people in this community are tinkerers, and not end-users, so I think some people are going to use it regardless biggrin.gif
Mikehunt79
QUOTE (realityiswhere @ Sep 28 2009, 03:55 AM) *
Required reading on the subject of 64bit from a true genius: Amit Singh, the author of OS X Internals: A Systems Approach, creator of MacFUSE, and he works at Google no less.

In summary though: K64 doesn't matter at all to end users.. admittedly people in this community are tinkerers, and not end-users, so I think some people are going to use it regardless biggrin.gif

Excellent information, thanks. By the looks of it, there is very little point in me trying to get x64 kernel working at this point in time, in fact I don't think a measley Atom CPU can run 64bit code anyway... smile.gif

That's pretty cool how he managed to trick a non-pro real mac into running x64 kernel tho biggrin.gif
realityiswhere
QUOTE (Mikehunt79 @ Sep 29 2009, 08:27 PM) *
Excellent information, thanks. By the looks of it, there is very little point in me trying to get x64 kernel working at this point in time, in fact I don't think a measley Atom CPU can run 64bit code anyway... smile.gif

That's pretty cool how he managed to trick a non-pro real mac into running x64 kernel tho biggrin.gif


two atoms can actually, the 230 and the 330.

http://processorfinder.intel.com , wonderful resource for finding out exact features/specifications for every intel processor. you can even filter them by specific features of a family of processors, EM64T (x64 in other words) is on the 230 and 330.
apocolipse269
QUOTE (realityiswhere @ Sep 27 2009, 10:55 PM) *
Required reading on the subject of 64bit from a true genius: Amit Singh, the author of OS X Internals: A Systems Approach, creator of MacFUSE, and he works at Google no less.

In summary though: K64 doesn't matter at all to end users.. admittedly people in this community are tinkerers, and not end-users, so I think some people are going to use it regardless biggrin.gif

The essentials of x64 in general compared to x32: Extended primary use registers (64bits compared to 32bits), now what this means in simple terms is the biggest number that can be stored in there. Since processors use binary, those numbers are going to be exponents of 2, that is 2^x (2,4,8,16,32,64,128,256,512 etc etc, notice the pattern? yeah that is why). Well, 2^32=4294967296, meaning that when it comes to addressing (seeing as memory is addressed byte by byte, or 1 count for each byte), that is ~4gb (for flat addressing model) 2^64=18446744073709551616, which is about 16 exabytes (1 exabyte = 1024 petabytes = 1048576 terabytes...), so yeah when you start getting into memory amounts like that it is extremely benefitial. Now dont take that to mean 32bit can only handle up to 4gb of ram, Most modern cpus have PAE, or physical address extension, which extends the registers 4 bits for addressing memory (2^36=64gb).

With that in mind, your 32bit kernel will operate the same as the 64bit kernel, provided you do not exceed the maximum memory, which is 64gb...

The other function of the larger registers is math. Now, remember that number for 2^32? well that is the biggest number storable in a 32bit register, meaning if you're doing math with a number bigger, you need to break the number and put it into 2 registers and do some asm magic to do the math (keep in mind, this also applies to verry long verry precise floating point numbers, think pi) With the 64bit registers, you can do that math with less operations, because numbers fit better, however if you reach the maximum for a 64bit number you still must do the asm magic tongue.gif. What does this have to do with the kernel? nothing at all, teh kernel doesnt do math like that smile.gif.

Applications however do, and these applications can already run in 64bit so long as you have a 64bit processor. They, like the kernel though, can only address up to the kernels maximum memory, so 64bit app can do 64bit math and operations, but only address the 32bit memory with k32.

On a side note, the 64bit instrucitonset does provide 10 "extra" registers (r1 - r10), which classify as extended use registers (not usable with 32bit instruction set) These registers are only there, though, to ease flip/flopping of data in registers (if you've ever coded in x86 assembly you'll know what i'm talking about tongue.gif, moving data in and out and in and out and back and forth and back and forth between registers is 80% of coding in asm haha) This doesnt really improve efficiency, efficient asm coders (and experienced ones at that) usually code without them because they can manage registers efficiently as is
Slice
Don't know why but Snow-64 is really faster then Leo-32
Leo xbench
CODE
Results 64.51
System Info
Xbench Version 1.3
System Version 10.5.8 (9L30)
Physical RAM 2048 MB
Model MacBook4,1
Drive Type WDC WD2500BEVS-75UST0
CPU Test 124.22
GCD Loop 225.21 11.87 Mops/sec
Floating Point Basic 100.31 2.38 Gflop/sec
vecLib FFT 84.45 2.79 Gflop/sec
Floating Point Library 168.01 29.25 Mops/sec
Thread Test 251.56
Computation 414.67 8.40 Mops/sec, 4 threads
Lock Contention 180.54 7.77 Mlocks/sec, 4 threads
Memory Test 155.86
System 165.54
Allocate 265.64 975.51 Kalloc/sec
Fill 134.63 6546.06 MB/sec
Copy 144.29 2980.30 MB/sec
Stream 147.26
Copy 140.13 2894.31 MB/sec
Scale 137.91 2849.27 MB/sec
Add 156.94 3343.07 MB/sec
Triad 156.14 3340.30 MB/sec
Quartz Graphics Test 197.66
Line 160.04 10.66 Klines/sec [50% alpha]
Rectangle 205.96 61.49 Krects/sec [50% alpha]
Circle 174.90 14.26 Kcircles/sec [50% alpha]
Bezier 165.95 4.19 Kbeziers/sec [50% alpha]
Text 408.38 25.55 Kchars/sec
OpenGL Graphics Test 22.05
Spinning Squares 22.05 27.98 frames/sec
User Interface Test 76.15
Elements 76.15 349.47 refresh/sec
Disk Test 37.69
Sequential 50.24
Uncached Write 48.04 29.49 MB/sec [4K blocks]
Uncached Write 45.25 25.60 MB/sec [256K blocks]
Uncached Read 53.34 15.61 MB/sec [4K blocks]
Uncached Read 55.72 28.00 MB/sec [256K blocks]
Random 30.16
Uncached Write 12.69 1.34 MB/sec [4K blocks]
Uncached Write 51.59 16.52 MB/sec [256K blocks]
Uncached Read 56.46 0.40 MB/sec [4K blocks]
Uncached Read 59.84 11.10 MB/sec [256K blocks]

Snow-64 xbench
CODE
Results 198.55
System Info
Xbench Version 1.3
System Version 10.6.1 (10B504)
Physical RAM 2048 MB
Model MacBook4,1
Drive Type WDC WD2500BEVS-75UST0
CPU Test 169.42
GCD Loop 280.48 14.78 Mops/sec
Floating Point Basic 136.72 3.25 Gflop/sec
vecLib FFT 110.95 3.66 Gflop/sec
Floating Point Library 269.00 46.84 Mops/sec
Thread Test 298.48
Computation 421.31 8.53 Mops/sec, 4 threads
Lock Contention 231.10 9.94 Mlocks/sec, 4 threads
Memory Test 170.75
System 194.87
Allocate 498.55 1.83 Malloc/sec
Fill 136.28 6626.14 MB/sec
Copy 165.25 3413.20 MB/sec
Stream 151.94
Copy 143.76 2969.29 MB/sec
Scale 141.60 2925.34 MB/sec
Add 162.92 3470.49 MB/sec
Triad 162.10 3467.74 MB/sec
Quartz Graphics Test 210.87
Line 164.81 10.97 Klines/sec [50% alpha]
Rectangle 207.50 61.95 Krects/sec [50% alpha]
Circle 177.91 14.50 Kcircles/sec [50% alpha]
Bezier 190.59 4.81 Kbeziers/sec [50% alpha]
Text 511.01 31.97 Kchars/sec
OpenGL Graphics Test 23.28
Spinning Squares 23.28 29.53 frames/sec
User Interface Test 257.51
Elements 257.51 1.18 Krefresh/sec
Disk Test 54.88
Sequential 74.14
Uncached Write 73.16 44.92 MB/sec [4K blocks]
Uncached Write 75.60 42.77 MB/sec [256K blocks]
Uncached Read 63.00 18.44 MB/sec [4K blocks]
Uncached Read 89.42 44.94 MB/sec [256K blocks]
Random 43.56
Uncached Write 18.15 1.92 MB/sec [4K blocks]
Uncached Write 83.90 26.86 MB/sec [256K blocks]
Uncached Read 68.54 0.49 MB/sec [4K blocks]
Uncached Read 97.98 18.18 MB/sec [256K blocks]
apocolipse269
QUOTE (Slice @ Oct 30 2009, 07:00 AM) *
Don't know why but Snow-64 is really faster then Leo-32
Leo xbench



Slice yes Snow is faster than Leo, show me xbench results from booting snow with arch=i386 vs arch=x86_64
Slice
QUOTE (apocolipse269 @ Nov 4 2009, 10:55 AM) *
Slice yes Snow is faster than Leo, show me xbench results from booting snow with arch=i386 vs arch=x86_64

Snow-32
CODE
Results 135.43
System Info
Xbench Version 1.3
System Version 10.6.2 (10C540)
Physical RAM 2048 MB
Model MacBook4,1
Drive Type WDC WD2500BEVS-75UST0
CPU Test 122.62
GCD Loop 198.48 10.46 Mops/sec
Floating Point Basic 99.49 2.36 Gflop/sec
vecLib FFT 80.55 2.66 Gflop/sec
Floating Point Library 195.50 34.04 Mops/sec
Thread Test 178.94
Computation 276.26 5.60 Mops/sec, 4 threads
Lock Contention 132.33 5.69 Mlocks/sec, 4 threads
Memory Test 118.93
System 129.38
Allocate 190.79 700.64 Kalloc/sec
Fill 103.34 5024.54 MB/sec
Copy 120.92 2497.59 MB/sec
Stream 110.05
Copy 105.04 2169.49 MB/sec
Scale 103.06 2129.22 MB/sec
Add 117.58 2504.81 MB/sec
Triad 116.02 2481.93 MB/sec
Quartz Graphics Test 150.24
Line 117.14 7.80 Klines/sec [50% alpha]
Rectangle 146.47 43.73 Krects/sec [50% alpha]
Circle 126.03 10.27 Kcircles/sec [50% alpha]
Bezier 137.96 3.48 Kbeziers/sec [50% alpha]
Text 366.09 22.90 Kchars/sec
OpenGL Graphics Test 17.78
Spinning Squares 17.78 22.56 frames/sec
User Interface Test 138.38
Elements 138.38 635.07 refresh/sec
Disk Test 52.29
Sequential 64.35
Uncached Write 64.36 39.52 MB/sec [4K blocks]
Uncached Write 65.21 36.90 MB/sec [256K blocks]
Uncached Read 54.53 15.96 MB/sec [4K blocks]
Uncached Read 77.22 38.81 MB/sec [256K blocks]
Random 44.03
Uncached Write 17.96 1.90 MB/sec [4K blocks]
Uncached Write 91.61 29.33 MB/sec [256K blocks]
Uncached Read 70.42 0.50 MB/sec [4K blocks]
Uncached Read 99.56 18.47 MB/sec [256K blocks]

another result with AppleCPUPowerManagement native working
CODE
Results 195.51
System Info
Xbench Version 1.3
System Version 10.6.2 (10C540)
Physical RAM 2048 MB
Model MacBook4,1
Drive Type WDC WD2500BEVS-75UST0
CPU Test 170.62
GCD Loop 282.06 14.87 Mops/sec
Floating Point Basic 137.48 3.27 Gflop/sec
vecLib FFT 112.14 3.70 Gflop/sec
Floating Point Library 269.68 46.96 Mops/sec
Thread Test 298.92
Computation 439.87 8.91 Mops/sec, 4 threads
Lock Contention 226.38 9.74 Mlocks/sec, 4 threads
Memory Test 162.91
System 179.42
Allocate 297.49 1.09 Malloc/sec
Fill 136.57 6640.54 MB/sec
Copy 165.64 3421.18 MB/sec
Stream 149.19
Copy 141.31 2918.66 MB/sec
Scale 139.39 2879.78 MB/sec
Add 159.37 3394.82 MB/sec
Triad 159.08 3403.03 MB/sec
Quartz Graphics Test 206.82
Line 160.43 10.68 Klines/sec [50% alpha]
Rectangle 206.91 61.77 Krects/sec [50% alpha]
Circle 176.45 14.38 Kcircles/sec [50% alpha]
Bezier 183.73 4.63 Kbeziers/sec [50% alpha]
Text 500.36 31.30 Kchars/sec
OpenGL Graphics Test 23.44
Spinning Squares 23.44 29.74 frames/sec
User Interface Test 237.29
Elements 237.29 1.09 Krefresh/sec
Disk Test 56.13
Sequential 77.15
Uncached Write 84.13 51.65 MB/sec [4K blocks]
Uncached Write 86.60 49.00 MB/sec [256K blocks]
Uncached Read 56.44 16.52 MB/sec [4K blocks]
Uncached Read 93.48 46.98 MB/sec [256K blocks]
Random 44.11
Uncached Write 17.35 1.84 MB/sec [4K blocks]
Uncached Write 107.29 34.35 MB/sec [256K blocks]
Uncached Read 69.65 0.49 MB/sec [4K blocks]
Uncached Read 106.68 19.80 MB/sec [256K blocks]

So there is no differencies in 32 and 64 bit modes in Snow if all is right.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.