Question Regarding x64 and x86 CPUs

Post » Fri Jul 25, 2014 5:05 pm

Hello forumers!

I bought a new laptop recently. It has some awesome specs for a laptop.

i7 Intel processor

8GB ddr3 RAM (ddr5 preferred, but for a laptop, and 8Gigs, I'll take it!)

Backlit keyboard, lightweight (less than 2lbs.)

It's some good stuff. But I have a question regarding the CPU. I'm not tech saavy when it comes to PC hardware.

So it's using a x64 CPU.

Does that mean, I can't run x86 programs?

If I am not mistaken, x86 is used for units using 3.5GB of RAM or lower, and x64 is for 4GB+.

I read most computers use x86 architecture. Perhaps then it's because most pcs do not use 4GB+ of RAM.

So then any pc, if I am not mistaken, using 4GB+ of RAM is running with a x64 CPU?

I never thought this would hinder me. I want to buy a book that comes with a liveCD (to learn some low-level programming, assembly, etc.) however the liveCD only runs on x86 architecture. I was advised it would not work on anything else. That's when all of a sudden I came to the question; Am I hindered with this PC?

I mean, gamers ideally would run higher than 4GB of RAM, so I feel like that such a large population is running on x64 architecture computers.

So it comes down to me being concerned whether x64 CPUs are a hindrance, or if x64 computers are common and there's nothing to be worried about, except that the liveCD won't run. Which is fine.

I hope I was able to logically convey my question and concerns.

Thanks forumers!

User avatar
Wayne W
 
Posts: 3482
Joined: Sun Jun 17, 2007 5:49 am

Post » Fri Jul 25, 2014 2:23 pm

Nope, you can do everything an x86 architecture can do. x86 is 32-bit, x64 is the new 64-bit. The only time you might have a problem is if you're running a 32-bit OS on a 64-bit system, but unless you're gonna switch out the stock Windows for Linux or some such, you're good. You've got the current architecture that everything's being designed for.

Now, if it was the other way around, you'd be SOL. 32-bit programs run on 64-bit, but not the other way around.

As for the liveCD, odds are that it was talking about working on Macs. They don't use the same architecture as PCs, and programs have to specifically be designed for Mac to run on it without a compatibility layer such as Wine or Cedega. Give it a go. It should work. Can't think of any reason why it wouldn't.

User avatar
Tracy Byworth
 
Posts: 3403
Joined: Sun Jul 02, 2006 10:09 pm

Post » Fri Jul 25, 2014 11:49 am

Though 64 bit OS can not run very old 16 bit programs anymore. But those are hardly around anymore, i came across that thing when trying install the Eternal Doom mod that requires running some old executables :hehe: DOSBox to the rescue! :goodjob:
User avatar
Nina Mccormick
 
Posts: 3507
Joined: Mon Sep 18, 2006 5:38 pm

Post » Fri Jul 25, 2014 12:49 pm

There's always emulators, but yeah, if it was designed for Windows 3.1 or DOS, also SoL, especially since I don't know if something like a book would play very nicely with DoSBOX. It's optimized for gaming. Can't think of where you'd get something designed for such old stuff in this day and age unless you deliberately went looking for it, though.

User avatar
Lavender Brown
 
Posts: 3448
Joined: Tue Jul 25, 2006 9:37 am

Post » Fri Jul 25, 2014 5:21 am

FBC, you rock! That's exactly what I needed to know.

TojKa, now I know exactly why emulators are popular. ;)

Great to know that I'm in a good boat.

I went ahead and refined keywords used in a search, and I found just what you said, FBC. Awesome.

If a mod wants to lock this thread, as I am sufficiently pleased with the responses, they can.

(is that something they still do? I remember having done that a few times some years ago).

If not, continue discussing CPU-related topics relating to x64 and x86 architectures.

Thanks guys!

User avatar
{Richies Mommy}
 
Posts: 3398
Joined: Wed Jun 21, 2006 2:40 pm

Post » Fri Jul 25, 2014 3:22 am

Any time.

User avatar
Eileen Müller
 
Posts: 3366
Joined: Fri Apr 13, 2007 9:06 am

Post » Fri Jul 25, 2014 6:24 am

A little history here. X86 refers to the original 8086 CPU processor. Anything that came after it was made to be compatible programming wise with that CPU. This was so they could put out new hardware and not make existing software obsolete. X64 is just more marketing fluff than anything else as they current crop of CPUs will run X86 programs.

User avatar
Marcin Tomkow
 
Posts: 3399
Joined: Sun Aug 05, 2007 12:31 pm

Post » Fri Jul 25, 2014 3:24 pm

x64 isn't an architecture. It's often time used as shorthand to refer to 64-bit.

x86 is the Intel Archiecture with the latest branch supporting a 32-bit instruction set.

x86-64 (AKA: AMD64, which, historically, is a more accurate name though one that has some problem points these days) is an extension of the x86 instruction set to include 64-bit registers and other improvements. Basically: Bigger, Stronger, Faster x86. It was created by AMD (hence AMD64) and later adopted by Intel (with some very minor differences, hence why AMD64 isn't as accurate). The important thing about this is that it retained backwards compatibility with x86, allowing you to run your x86 applications (including even 16-bit x86 applications, but that has problems, resulting in exclusion in most platforms to only support 32-bit x86 programs). As such, you will have no problem running 32-bit x86-compatible programs on an x86-64-powered computer given it is compatible with your OS.

x86-64 is a bit long so isn't commonly said. Instead you end up with shortening it to x64, even though that's not correct. There are many 64-bit architectures. Noteably was IA-64 which competed with x86-64, created by Intel, and NOT backwards compatible with x86. Also there is ARM64, which is ARM-based 64-bit processors, also obviously incompatible with the x86 instruction set, and therefore all x86 programs regardless of bitness.

It's a long answer but that's because x64 and x86 aren't simple things, and even this long answer was a great simplification.

If you want an even simpler answer: Yes, Windows x86 programs will run fine on windows x64.

User avatar
Jonathan Windmon
 
Posts: 3410
Joined: Wed Oct 10, 2007 12:23 pm

Post » Fri Jul 25, 2014 7:35 am

32-bit provides compatibility with older applications and has a much wider range of drivers available. (But today the most, if not all devices having support for a 32bit or 64 bit operating system)

However, 64-bit is required for the operating system to recognize more than 4gb of memory.

It also allows better utilizing memory on systems with 4GB and above. (in 32-bit Windows only 3.25-3.5gb of RAM is actually usable.)

So in general, 64-bit is preferred, unless you have some specific requirements for legacy software or hardware that requires 32-bit.

Except that, Windows 7 64-bit provides a 32-bit compatibility mode called WOW32 that can run most if not all your applications. !!!

User avatar
Lily
 
Posts: 3357
Joined: Mon Aug 28, 2006 10:32 am

Post » Fri Jul 25, 2014 5:29 am

I'm feeling quite facetious today, so don't hold this against me :tongue:

x86 provides backwards compatibility with x86, not 32-bit :teehee: It still doesn't provide legacy support to applications older than x86 :tongue:

http://en.wikipedia.org/wiki/Physical_Address_Extension :teehee:

That limitation is actually a result of Microsoft not wanting to use PAE on desktops because of certain headaches it'd cause for them :tongue:

Legacy be damned! We can now virtualize x86 in the web browser :tongue:

As I mentioned in my earlier post, this is a feature of x86-64, not a feature of an OS, though the OS does need to support the 32-bit version of libraries and have a way of letting programs access them. On Windows this is done via WOW64. which stands for "Windows(x86) on Windows x86-64"... which actually caused something intereting: for legacy reasons System32 is the 64-bit system directory of Windows, and SysWOW64 is the 32-bit system directory of Windows :tongue: (actually it was for this point that I bothered replying because it's a curiousness I still can't help but chuckle over, the other bits above this was just me being facetious :tongue:)

Other OSes also support 32-bit libraries and therefore running 32-bit applications on the x86-64 release of the OS. In Arch this is called https://wiki.archlinux.org/index.php/multilib (for multiple architecture libraries), on Debian-based distros it's called https://help.ubuntu.com/community/MultiArch (for similar reasons), and in Fedora it's not formally named (but also known as multiarch), and instead support is http://linuxg.net/how-to-install-skype-4-2-on-fedora-19-18-17/, with packages of the 32-bit applications being given a suffix of .i586

Reality is weird and complex, not simple. The reality of computing is no different. Ironically, Microsoft most likely would be in better shape today if IA-64 had won over instead of x86-64, as a clean break of backwards compatibility back then would have been less painful than it would be today. (of course IA-64 had horrible problems back then and needed more time to mature)

User avatar
Matthew Barrows
 
Posts: 3388
Joined: Thu Jun 28, 2007 11:24 pm

Post » Fri Jul 25, 2014 9:14 am

Fair enough. My knowledge of computers is only slightly better than your average layman. I've pretty much just learned what I need to know to fix problems that come up. Thanks for correcting that.

User avatar
Anna Beattie
 
Posts: 3512
Joined: Sat Nov 11, 2006 4:59 am

Post » Fri Jul 25, 2014 10:50 am

> x86 provides backwards compatibility with x86, not 32-bit <

Hmm....wait a moment.... :woot:

Okay i know, there is the "x86" (the common 32-bit platform), and the "x64" (the modern 64-bit one)

But, x86 refers to the Intel processor architecture that are used in PC's. Right ???

I know that x86 is not a commonly accepted term, but it tends to be used to mean "32-bit" :tongue:

-------------------

> It still doesn't provide legacy support to applications older than x86 <

Are we talking about legacy systems, or legacy software. ???

User avatar
Wane Peters
 
Posts: 3359
Joined: Tue Jul 31, 2007 9:34 pm

Post » Fri Jul 25, 2014 3:03 pm

It originally was used to refer to the architecture, but these days it's used more often juxtaposed with "x64" to indicate the support of one http://en.wikipedia.org/wiki/Instruction_set or the other. Even though, yeah, technically x86 is an architecture. I think it might be the first time a "computer term" has been used incorrectly. :P

User avatar
Nadia Nad
 
Posts: 3391
Joined: Thu Aug 31, 2006 3:17 pm

Post » Fri Jul 25, 2014 12:47 am

Actually the first two generations of x86 weren't 32-bit. x64, as I mentioned, just means 64-bit. x86-64 is the 64-bit extension of x86 that's backwards compatible. I'd also wager that ARM32 is the more common 32-bit platform currently.

Commonly used in desktop/laptops and SMB-sized servers, yes.

But x86 doesn't mean 32-bit, not in the least. x86 ranges from 16-bit to 64-bit depending on the generation

Legacy software. That's what applications are, after all. Software didn't come to existance with x86. Heck, a LOT (I'd actually argue the majority) of modern software isn't even compatible with x86 without a recompile.


I know it may seem nitpicky, and maybe it is, but x86 is NOT synonymous with 32-bit (or vice-versa) and x64 does NOT mean x86-64 (or vice versa), which is how they're being used by most in this thread.

Furthermore, many modern 32-bit Linux Distros (not sure about Windows) won't even run on early versions of 32-bit x86 (i386, i486, i586) as they set the bar at i686. So even though it is "32-bit" and even "x86" it's important to note that compatibility goes deeper than just face numbers.

User avatar
Nancy RIP
 
Posts: 3519
Joined: Mon Jan 29, 2007 5:42 am

Post » Fri Jul 25, 2014 1:37 am

You guys are adding even more sense to this previously unknown territory.

Brilliant. Thanks guys! Any additional information is greatly welcomed. :)

User avatar
Amanda Leis
 
Posts: 3518
Joined: Sun Dec 24, 2006 1:57 am

Post » Fri Jul 25, 2014 11:26 am

And that's just plain wrong, as is pointed out good enough in previous posts.

Almost every 64-bit Intel CPU is still http://en.wikipedia.org/wiki/X86. Those all use the x86 instruction set. x64 as it's commonly used is just shorthand for x86 cpu's that support the 64-bit extension to the x86 instruction set. A better way to accurately describe those 64-bit CPU's would be http://en.wikipedia.org/wiki/X86-64.

X86 has evolved from 16-bit, through 32-bit, to 64-bit.

Note that when people talk CPU design and software compatibility, Intel based CPU's are generally referred to as x86. Including those from license takers like AMD, VIA, Cyrix / National Semiconductor, etc. Contrary to for example Intel's own IA-64 (Itanium) CPU's and CPU's based on PowerPC, SPARC, MIPS, ARM, etc, etc.)

User avatar
c.o.s.m.o
 
Posts: 3419
Joined: Sat Aug 12, 2006 9:21 am

Post » Fri Jul 25, 2014 7:47 am

As the x86 term became common after the introduction of the 80386, it usually implies a binary compatibility with the 32-bit instruction set of the 80386.

This may sometimes be emphasized as x86-32 to distinguish it either from the original 16-bit x86-16 or from the newer 64-bit x86-64 (also called x64).

Although most x86-processors used in new personal computers and servers have 64-bit capabilities, to avoid compatibility problems with older computers or systems,

The term x86-64 is often used to denote 64-bit software, with the term x86 implying only 32-bit.

----------

So guys, my head is spinning, i have a conversation with a guy about first time modding with skyrim.

So, it took me one hour, and it seems it will take me another hour or so. So don't be aggressive...

User avatar
Amanda Leis
 
Posts: 3518
Joined: Sun Dec 24, 2006 1:57 am

Post » Fri Jul 25, 2014 5:35 am

Again, I think the confusion probably comes from the fact that "x86" is oftentimes used to distinguish the 32-bit x86 instruction set from the 64-bit x86 extensions, but this is an incorrect/imprecise use of the monicker. From a practical perspective, both the 32-bit x86 instructions and the 64-bit extensions are "x86."

User avatar
Michelle Chau
 
Posts: 3308
Joined: Sat Aug 26, 2006 4:24 am

Post » Fri Jul 25, 2014 9:16 am

Which is what I said. Note that this says "binary compatibilty with the 32-bit instruction set of the 80386" This is because 32-bit and x86 are two different things. the x86 architecture is only one of many 32-bit architectures.

To use the term x86 to refer to 32-bit is a minor misnomer (since there are 16-bit x86 CPUs), but to use the term 32-bit to refer to x86 (which is what you did in your first post) is as wrong as calling all rectangles squares.

calling x86-64 x64 is erroneous in my book for the exact same reason it isn't correct to call x86 32-bit. x86 is just one example of a 32-bit architecture.

Now this is something fine. It's using the term x86 (though i386 or IA-32 are better terms from a strictly accurate standpoint) to refer to... x86 CPUs, which is correct. Or in other words:

Windows x86 means: A version of Windows that can run on x86 CPUs. It is most likely built against the 32-bit instruction set of x86. If so it is also a 32-bit application, HOWEVER, it CANNOT run on JUST ANY 32-bit computer (it also cannot run on just any x86 processor which is very weird given its name)

Windows x86-64 means: A version of Windows that can run on x86 CPUs AND take advantage of the extra registers and instructions added via the 64-bit extension. It is 64-bit compatible, but ONLY with x86-64. It CANNOT run on IA-64 for example.

Now go back and look at your original post: you used the terms 32-bit and 64-bit, and furthermore you implied in your post that 64-bit Windows could run 32-bit applications. This is not the case (and yes, Windows does support multiple architectures) The reason it works with x86-64 is because it's just an extension of x86, but other architectures exist that are 64-bit and are NOT backwards compatible with their earlier 32-bit architectures, let alone with x86.

x86-64 is a unique and very weird example of dragging our feet for backwards compatibility :tongue:
User avatar
Jack Moves
 
Posts: 3367
Joined: Wed Jun 27, 2007 7:51 am


Return to Othor Games