32 bit processor vs 64 bit processor

luck05

n00b
Joined
Mar 17, 2016
Messages
11
hi Friends,
you know,i read a lot of articles about this subject and i watched a lot of videos about them but i still confused because every one of them focus just about ram support (32 bit processor support up to 4 ram but 64 bit more than 4 gb) and this sentence like a dime a dozen in every video and article ,but when i search deeply:
and i used some programs to found out if my cpu is 32 bit or 64 bit but i found a lot things i think that are illogical
for instance when i do this steps i found contradiction:
1- when i wrote this command in start (msinfo32) i found that type:base x86 (this refer to my system is 32 bit)
2-then when i wrote (wmic) in start then i wrote cpu i saw that (addresswidth: 32 , datawidth: 64)
3- when i used cpu-z program i found out that : my cpu support EM64T intel( Extended Memory 64 bit)

from all information(above) , my recap was:
32 bit processor or 64 bit don't depend about just address bus width , it's also depend about data bus width
in my case:
my address width is 32 bit this refers that my system don't accepet more than 4 gb
but cuz my cpu support that EM64T that means that data bus width is 64 bit that means
i can install 64 bit operating system and 64 bit saftware cuz .
so system type that is written when you write msinfo32(32 bit or 64 bit ) depends about address bus width.
is my conclusion correct?!
 
x86 refers to the type of CPU, and just refers to the instruction sets used with the CPU. For instance, ARM is also a type of CPU with different instruction sets. The technical name for current Intel and AMD processors is x86-64, not just 64 bit. Just like there are now ARM-64 processors, before they were 32 bit. So no, just because it is x86 doesn't mean it is 32 bit. It can be 64, 32, heck, it can even be 16.
 
All x86 CPUs since the original Pentium in 1992 (a 32-bit processor) have had a 64-bit data bus, but until x86-64 (aka AMD64, EM64T, x64) processors came out they all had a 32 (or 36 bits for PAE enabled models) address bus and 32 bit registers. All but a handful of their instructions could only work on 32-bits at a time. That's what made them 32-bit.

64-bit CPUs have 64-bit data registers, 64-bit addressing, and have a full set of instructions designed work on 64-bit of data at a time. However, a 32-bit operating system can be installed on them, but it will not be able to take advantage of the 64-bit capabilities and will behave just like a 32-bit system.

You already know your CPU has EM64T. That alone will tell you have a 64-bit processor. Now you just need to know if you have a 64-bit or 32-bit OS.

Windows XP was a 32-bit only OS. Vista and newer have all had x64 version. To see what version you're running open up the System properties and look for System type line. It'll say 32-bit x86 or 64-bit x64.
 
To elaborate on what Ryan said, for me it's mainly the registers' width. Registers are memory areas at the very core of a CPU's... core :D
There aren't that many and they're the fastest.
For example, "IP" is 'instruction pointer' - it stores the memory address of the next command to run.
"CX" is usually used for keeping count during looping code. ECX would be the 32 bit wide version of it.
So, for a CPU to perform, say, arithmetic, it has to load the operands into the proper registers first and only then it may 'crunch' out a sum or some other result.
SO, if you have some big numbers in your program, 64 bit wide, you can do your math at 'one go' (one clock tick).
Internally AMD and Intel do things differently, but both have to understand what instruction was given and be consistent in what the result should be.
 
[QUOTE="ryan_975, post: 1042197465, member: 132036"

Windows XP was a 32-bit only OS. Vista and newer have all had x64 version. To see what version you're running open up the System properties and look for System type line. It'll say 32-bit x86 or 64-bit x64.[/QUOTE]

Incorrect. When AMD publically launched the Opteron at MillionManLAN in Louisville, KY(I met KyleB during this event) they did so on a beta build of 64bit WindowsXP, which ended up turning RTM.

You can also run the command "winver".
 
Yeah, XP did indeed have a 64 bit version - I remember trying it out and being frustrated by the utter lack of 64 bit programs at the time.
 
Yeah, it was pretty bad. Programs weren't my problem, but drivers... They were horrid.
 
Yeah one of my buddies ran 64-bit XP back around 2006-2008.

I remember it being a nightmare for multiple reasons.
 
I ran it on my A64 3200+. Nightmare makes it sound like unicorns and rainbows
 
All x86 CPUs since the original Pentium in 1992 (a 32-bit processor) have had a 64-bit data bus, but until x86-64 (aka AMD64, EM64T, x64) processors came out they all had a 32 (or 36 bits for PAE enabled models) address bus and 32 bit registers. All but a handful of their instructions could only work on 32-bits at a time. That's what made them 32-bit.

64-bit CPUs have 64-bit data registers, 64-bit addressing, and have a full set of instructions designed work on 64-bit of data at a time. However, a 32-bit operating system can be installed on them, but it will not be able to take advantage of the 64-bit capabilities and will behave just like a 32-bit system.

You already know your CPU has EM64T. That alone will tell you have a 64-bit processor. Now you just need to know if you have a 64-bit or 32-bit OS.

Windows XP was a 32-bit only OS. Vista and newer have all had x64 version. To see what version you're running open up the System properties and look for System type line. It'll say 32-bit x86 or 64-bit x64.
XP has a 64 Bit version... just putting it out there

*ninja* duh in should have read the entire thread.
 
Last edited:
The poster could of been talking about the fact it was never built with the intention of getting a 64bit extension, it was also lacking in a lot of x64 support causing tons of issues (mainly with drivers).

Vista and forward was built around 64bit.
 
In my experience Vista was way more nightmarish in 2006 than Vista was.
Vista (32 OR 64) was no where near as bad as XP 64 bit. It couldn't believe they even released XP in 64 bit. No driver support was the biggest issue.
 
Vista was largely head ache free if you had 4gb of memory at the very least. A few culprits that caused quite a bit of issue were Creative sound drivers and HP printers.

Other than that people thought they constantly had some type of malware due to the dynamic caching it had, leave it on over night and it would finish and never start again until you install something new. Plus it was easy to disable.
 
In modern computing, 64 bit processors really only enable more RAM adressed for the system as well as per-application. A 32 bit program will not be able to adress more than 4GB of RAM even if it is running in a 64 bit OS.

The there are little differences, but RAM is the only real reason that is relavent to 99.99% of computer users.
 
another thing's : my operating system is 32 bit so from what i said above and cuz i have EM64T i can install os 64 bit but even if my os 64 bit i can add more than 4 gb ram
cuz my address bus width is 32 bit ,.... is'nt it ?
 
General rule:

32bit OS only sees 4gb of RAM
64bit OS sees a lot more

You can add more ram to a 32bit OS but you won't be able to access it.
 
yeah i know that but as i said when i write msinfo32 i saw that my type: x86 that means 32 bit and my os system is 32 bit,so my recap was cuz my cpu 32 bit i can't install os 64 bit and this is logicallly.
but when i used cpu-z program i found out that my cpu support EM64t and after using this command wmic i (as i said before) i found out address width 32, datawidth 64
and after using securable.exe program it told me my cpu is 64 bit and this is very contradiction between when i used msinfo32 and after using this programs
my second recap was because my cpu 64 bit i can install os 64 and sftware 64 bit but i can't add more than 4 gb ram cuz my addresswidth is 32 bit and it can't address more than 4 gb even if my os 64.
is'nt it ?
so why this contradiction between when i use msinfo32 to known my cpu type and when i use programs(secureable.exe)? and what's really mean EM64T intel ?
 
Read my post again. x86 DOES NOT mean the processor is 32 bit. It only means the processor uses the x86 instruction set. An x86 processor can be 16, 32, or 64 bit.
 
aa okey so after i used secureable.exe that tells me that my cpu 64 bit but as i said and as i unserstand cuz now i'm learning A+ certs for this i wanna understand it very well
so my cpu is 64 bit that means it can proccess 64 bit at one a time so i can install os 64 bit but (focus on that plz) : because addresswidth 32 bit i can't add more than 4 gb ram even if i installed 64 bit os !
is it correct ?
 
Correct, your OS needs to be able to address the entire pool before you will see it. But your bios will see the correct amount.
 
Sorry about saying XP was 32-bit only... I was going to say there was x64 edition, but since it was so rarely used and only then for just a couple of years I decided best to leave it out since the vast majority of people who would still be running XP would not be running the x64 version of it. If they are, then they probably wouldn't be asking the questions the OP is asking.



OP, what chipset do you have? There's a few budget and mobile chipsets that limit the address space to 32-bits, even if you have a 64-bit processor. If you don't have one of those, and the motherboard's BIOS doesn't limit you, then installing a 64-bit OS should allow you to install more than 4GB. MSinfo32 saying you're address width is only 32-bits could just be telling you that the OS is addressing memory at 32-bits.


BTW: EM64T is what Intel use to call it's 64-bit x86 CPU technology; now they just call it Intel 64. AMD calls theirs AMD64. Both are just a group of instructions and the necessary architectural features that allow you to run 64-bit applications.
 
Last edited:
so EM64T feature is that let the cpu to use 64 instruction that means data width 64 bit but it (Em64T) doesn't include address width ...is it correct ?
 
so EM64T feature is that let the cpu to use 64 instruction that means data width 64 bit but it (Em64T) doesn't include address width ...is it correct ?

No. The address bus is one of those "necessary architectural features" I mentioned. EM64T includes support for 64-bit addresses in the CPU.

What might limit you to 32-bits are things that aren't part of the CPU: chipset, BIOS, and OS. For example, The Intel P31 and G31 chipsets limit your system to 4GB of RAM, even though they're compatible with 64-bit CPUs.
 
Why you're going for A+ cert and dont have this stuff figured out yet is a little weird.
 
  • Like
Reactions: Elios
like this
He's digging deep and is genuinely curious and it's to be commended.

OP, I'll repeat myself - try to focus on the registers.
Look at the below piece of assembly code - it's a bit edited for simplicity, and has some pseudocode but I feel that's the missing piece. It just adds two numbers.

Code:
.data         // data segment definition - the numbers to add
opr1 dw 1234h   // operand 1 (in hexadecimal) -
              //a 'dw', is in this case 16 bits long
opr2 dw 0002h  //operand 2

.code        //actual instructions for runtime - the code segment
mov ax,@data  //mov - mnemonic for the CPU instruction move
             //- move the data segment address into register (e)ax
mov ds,ax      //move the location of the operands (now in ax)
            //to the special CPU register DS (Data Segment)
           //so that we can quickly retrieve the values stored in the opr1 and opr2 variables
mov ax,opr1   //load operand one to register (e)ax
mov bx,opr2   //load operand two to register (e)bx
add ax,bx      //add is a CPU instruction. X86 specification
            //defines that it must take bx, add it into what's in ax
           //and store the result in ax.

The difference? Size of the operands that you can add in one 'go'.

AX is a 16-bit wide Accumulator Register.
It can be divided into AH and AL (Accumulator High - first 8 bits, Accumulator Lower - the latter 8 bits)
EAX is the 32 bit wide version of the Accumulator
RAX is the 64 bit wide version. So, a RAX register can store four 16 bit long numbers.
 
Expanding the scope: Will there every be processors wider than 64-bit., e.g. 128-bit and corresponding 128-bit operating systems? This of course would not be related to the addressable memory space as 64-bit is more than enough but rather to the width of data fetched and processed simultaneously.
 
With quad channel memory, we're already getting data at 256-bits. Reality is though the data-bus width really doesn't matter for fetching information, it'll just take longer to get the requested data. The Intel 8088 was a 16-bit processor that could only fetch memory 8-bits at a time. Same with the 32-bit 80386SX and it's 16-bit data bus.


Instruction extensions like SSE and AVX already operate on 128-512bits of data. The only benefit x64 gave us for data was 64-bit integers, which means we can play with numbers as large as 18.4 quintillion. I don't think we're going to see any processors with 128-bit GP registers any time soon. But will there ever be any? Sure.
 
When you don't even know basics like x86 does not mean 32 bit in computer lingo…
 
Remember what mikeblas would often say? everyone learns in a different way.
I just can't sit in a class, I have always struggled with picking up a book and just learning like normal people do. I have practically no formal education, I'm just curious.
So if the OP didn't really care about computer architecture and has been operating in some distant area of IT then I find it impressive he even cares to actually understand.
 
So if the OP didn't really care about computer architecture and has been operating in some distant area of IT then I find it impressive he even cares to actually understand.

I know in my city, the vo-techs will teach A+ courses to high school students. OP could even be 16 years old and enrolled in classes to learn more.
 
I know in my city, the vo-techs will teach A+ courses to high school students. OP could even be 16 years old and enrolled in classes to learn more.

Indeed. I earned my A+, Net+, and CCNA in highschool votech before I was 17. Worked at the county DTO after for a couple years, got tired of sitting at a desk, picked up a multimeter, a toolbag, and an apprenticeship at the worlds largest industrial crane service/manufacturer company. Now, I'm a field service engineer and fix shit that others cante figure out. Some real whoppers on occasion!
 
Back
Top