LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   machine 32 or 64 bts? (https://www.linuxquestions.org/questions/linux-hardware-18/machine-32-or-64-bts-752669/)

ufmale 09-04-2009 10:10 AM

machine 32 or 64 bts?
 
Can i tell if my computer is 32 bits or 64 bits?
It looks like the below result says that it is 32 b, but i installed Ubuntu x86_64 version. It seems to work fine. will there be any problem for doing so?

Code:

$ uname -a
processor        : 0
vendor_id        : GenuineIntel
cpu family        : 15
model                : 4
model name        : Intel(R) Pentium(R) D CPU 2.80GHz
stepping        : 4
cpu MHz                : 2793.036
cache size        : 1024 KB
physical id        : 0
siblings        : 1
core id                : 0
cpu cores        : 1
apicid                : 0
initial apicid        : 0
fpu                : yes
fpu_exception        : yes
cpuid level        : 5
wp                : yes
flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr
bogomips        : 5586.07
clflush size        : 64
cache_alignment        : 128
address sizes        : 36 bits physical, 48 bits virtual
power management:


GrapefruiTgirl 09-04-2009 10:22 AM

Since the 64 bit OS is running, it's a good sign that your machine is 64bit capable.

I don't see a 64bit flag on your CPU info though :scratch: where I would expect to see something like x86_64 or em64t or similar...

Do you by chance have the "dmidecode" tool? Try the following commands:

shell# /usr/sbin/dmidecode

or

shell# /sbin/dmidecode

and look for something like "64-bit capable" in the output.

It may also be helpful to tell us what exact model of CPU you have, and the motherboard you're running.

Sasha

PS - the above output is not what one would expect from the "uname -a" command.. uname -r should tell you what kernel you're running though.

djeikyb 09-04-2009 10:25 AM

uname -i should tell you the hardware platform. But, first and foremost, you cannot run 64-bit stuff on a 32-bit system. Thus, you have a 64-bit system.

By the by, that doesn't look like any uname -a output I've ever seen. Looks more like cat /proc/cpuinfo

johnsfine 09-04-2009 11:05 AM

Quote:

Originally Posted by ufmale (Post 3669734)
Can i tell if my computer is 32 bits or 64 bits?

Yes. The output you quoted shows your CPU is 64 bit.

Quote:

i installed Ubuntu x86_64 version. It seems to work fine.
That is an even more certain way to know your CPU is 64 bit.

Quote:

$ uname -a
processor : 0
I think you messed up your copy/paste. You showed us the uname -a command but not its output and you showed us the contents of /proc/cpuinfo. I assume you intended to show both.

Quote:

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc up pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr
That line tells you it is 64 bit. Notice the lm (meaning "long mode") that I highlighted.

Quote:

address sizes : 36 bits physical, 48 bits virtual
That line also tells you your cpu is 64 bit.

All 32 bit x86 cpu's have 32 bit virtual addressing. All current x86-64 cpus have 48 bit virtual addressing. Future 64 bit cpus are expected to have more than 48 bit addressing.

The physical address size is more varied by CPU model. A 32 bit cpu could have 36 bit physical addresses. Apparently a 64 bit cpu also can have 36 bit physical addresses (I think typical 64 bit cpus have 38 or more bits physical address).

mushroomboy 09-04-2009 11:05 AM

Quote:

Originally Posted by djeikyb (Post 3669757)
uname -i should tell you the hardware platform. But, first and foremost, you cannot run 64-bit stuff on a 32-bit system. Thus, you have a 64-bit system.

By the by, that doesn't look like any uname -a output I've ever seen. Looks more like cat /proc/cpuinfo

Stated perfectly, if the installer and OS runs it's 64 bit. It's impossible to run 64bit code on a 32bit platform, though you can always (well 99.9%) run 32bit on 64bit due how they created the cpu's. In reality they could make the cpu 64bit only but I don't think that's going to come for a while yet.

GrapefruiTgirl 09-04-2009 11:20 AM

Quote:

Originally Posted by johnsfine (Post 3669808)
That line tells you it is 64 bit. Notice the lm (meaning "long mode") that I highlighted.


That line also tells you your cpu is 64 bit.

Thanks Johnsfine -- always something new to learn around here, every day!

lazlow 09-04-2009 11:23 AM

Intel made some goofy motherboards for a while. The CPU was 64bit but the memory controller was only 32bit. Which meant that you could run a 64bit OS but you were stuck with the 32bit memory limit(roughly 3.2 GB). I am GUESSING that is what the "address sizes : 36 bits physical" may be hinting at. All of which means that you are fine unless you need to upgrade your memory beyond 3.2GB and even then I may be wrong in my interpretation of the 36bit stuff.

mushroomboy 09-04-2009 11:48 AM

Quote:

Originally Posted by lazlow (Post 3669832)
Intel made some goofy motherboards for a while. The CPU was 64bit but the memory controller was only 32bit. Which meant that you could run a 64bit OS but you were stuck with the 32bit memory limit(roughly 3.2 GB). I am GUESSING that is what the "address sizes : 36 bits physical" may be hinting at. All of which means that you are fine unless you need to upgrade your memory beyond 3.2GB and even then I may be wrong in my interpretation of the 36bit stuff.

No, I think the 36 bits physical is correct...

Code:

cat /proc/cpuinfo
processor      : 0
vendor_id      : AuthenticAMD
cpu family      : 15
model          : 12
model name      : AMD Athlon(tm) 64 Processor 2800+
stepping        : 0
cpu MHz        : 2204.991
cache size      : 512 KB
fpu            : yes
fpu_exception  : yes
cpuid level    : 1
wp              : yes
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up rep_good
bogomips        : 4409.98
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes  : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp

I think Intel does there 64bit extentions different than AMD. If you want to get technical neither are pure 64 bit as they run an emulation layer, but by 'definition' they are both 64 bit.

http://www.flexbeta.net/forums/lofiv...php/t5534.html

The address size is probably in refrence to the amount of RAM supported...

Code:

The EM64T chips from intel and the x86-64 chips from AMD are based on the same idea: 32 bit pricessing still works. But
weve hit the memory cap, so we need to increase the maximum amount of memory that it can support. now, if im not
mistaken, the amd chips support up to 1 terabyte of RAM (40 bit) even though it is marked as 64 bit.
another thing,
though: windows has no support for the 64 bit mem architecture. with the x64 releases, xp has upped its upper memory limit
to 64 bits (not 40 bits) which means that this time around, windows xp supports many exabytes of memory.

I do think he can go over 3.2G of ram as that would probably be 32bit physical if I'm not mistaken.

Quakeboy02 09-04-2009 11:49 AM

"address sizes : 36 bits physical" calculates to 64GB. That probably means it's PAE compatible. But, who's to know until they install the OS? :)

johnsfine 09-04-2009 12:01 PM

Quote:

Originally Posted by Quakeboy02 (Post 3669861)
"address sizes : 36 bits physical" calculates to 64GB. That probably means it's PAE compatible. But, who's to know until they install the OS? :)

The 36 bits refers to the address that the CPU sends to the memory controller. In an Intel design, that doesn't necessarily tell you the size of the address the memory controller receives from the CPU. The CPU might send 36 bits, but the memory controller might only listen to 32 bits (giving you the three point something GB limit of physical ram).

All the x86_64 CPUs are compatible with 32 bit PAE. A 36 bit physical address probably means they haven't change the interface between the CPU and memory controller that was used for earlier 32 bit chips. But other x86-64 chips with more physical address bits are still compatible with 32 bit PAE. You just don't get to use the extra bits (beyond 36) when the OS is 32 bit PAE.

Quote:

Originally Posted by mushroomboy (Post 3669858)
If you want to get technical neither are pure 64 bit

You can define "pure 64 bit" to make that statement true or false. Either way, it isn't a particularly meaningful statement.

Quote:

as they run an emulation layer
That is more fundamentally false (though one can always distort the meaning of words far enough to make such statements true).

http://www.flexbeta.net/forums/lofiv...php/t5534.html

Almost all the posts near the top of that thread are nonsense as clearly explained by some one the later posts.

Quote:

with the x64 releases, xp has upped its upper memory limit
to 64 bits (not 40 bits)
That is also pretty solidly false.

I'm not certain of the xp64 memory limit in x86-64 architecture. I think it is less than the limit in x86-64 architecture itself (which is less than 64 bit). But it certainly is not more than the architecture limit.

lazlow 09-04-2009 12:01 PM

The chipset I was referring to is Intel 945GM.

Edit: http://en.wikipedia.org/wiki/List_of...2Fx4x_Chipsets

Quote:

1 Lakeport chipsets lacks support for remapping memory; the size of addressable memory space may be less than 4 GB, regardless whether the processor operates in 64-bit mode.

Shadow_7 09-04-2009 12:29 PM

lm on the flags is the main indicator. You have it, so you should be good to go 64 bit.

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow up rep_good

mushroomboy 09-04-2009 01:01 PM

Sorry about the mem limit:


http://en.wikipedia.org/wiki/X86-64
Code:

* Larger physical address space: Current implementations of the AMD64 architecture can address up to 1 TB (2^40 or 1,099,511,627,776 bytes) of RAM; the architecture permits extending this to 4 PB (2^52 or 4,503,599,627,370,496 bytes) in the future (limited by the page table entry format). In legacy mode, Physical Address Extension (PAE) is included, as it is on most current 32-bit x86 processors, allowing access to a maximum of 64 GB (2^36 or 68,719,476,736 bytes).
I don't know if the math is correct or not, but I'm guessing that's where the 40 and 36 play into effect.

Electro 09-04-2009 06:27 PM

The 36-bit relates to PSE36. PSE36 is similar or PAE, but the memory pages for PSE36 assignment is 4 KiB for the first 4 GiB of RAM and using memory above 4 GiB uses 8 KiB pages. It is nothing do with the processor if it can execute 64-bit instructions.

The utility dmidecode is not good as lshw of telling what hardware you have and its capabilities. I suggest lshw because it is thoroughly when looking up data about your computer.

mushroomboy 09-04-2009 06:29 PM

That seems reasonable, as PAE can probably address the same amount of RAM which then you really can't just assume it's 64bit because of how much ram it uses. =S


All times are GMT -5. The time now is 05:07 PM.