Raspberry Pi Type 3 has 64-bit CPU, but its architecture is not arm64
but armhf
. What is the difference between arm64
and armhf
?
ARMhf port: supports atleast an ARM 32-bit processor with ARMv7 architecture, Thumb-2 and VFP3D16. ARM64 port: works on 64-bit processors that implement at least the ARMv8 architecture.
Does that mean armv8 and arm64 is the same thing? It says that version 1.5. 1 of this binary supports armv8 architecture. That also indicates that armv8 and arm64 are the same thing.
ARM64 is simply an extension or evolution of the ARM architecture that supports 64-bit processing. 64-bit processing is far superior to 32-bit, and thus, ARM64 processors tend to perform better than ARM processors.
Open the Settings app. Navigate to System > About. On the right, check out the System type value. It shows either a x86-based processor (32-bit), x64-based processor (64-bit), or ARM-based processor depending on the hardware you have.
Update: Yes, I understand that this answer does not explain the difference between arm64
and armhf
. There is a great answer that does explain that on this page. This answer was intended to help set the asker on the right path, as they clearly had a misunderstanding about the capabilities of the Raspberry Pi at the time of asking.
Where are you seeing that the architecture is armhf
? On my Raspberry Pi 3, I get:
$ uname -a armv7l
Anyway, armv7
indicates that the system architecture is 32-bit. The first ARM architecture offering 64-bit support is armv8. See this table for reference.
You are correct that the CPU in the Raspberry Pi 3 is 64-bit, but the Raspbian OS has not yet been updated for a 64-bit device. 32-bit software can run on a 64-bit system (but not vice versa). This is why you're not seeing the architecture reported as 64-bit.
You can follow the GitHub issue for 64-bit support here, if you're interested.
armhf
stands for "arm hard float", and is the name given to a debian port for arm processors (armv7+) that have hardware floating point support.
On the beaglebone black, for example:
:~$ dpkg --print-architecture armhf
Although other commands (such as uname -a
or arch
) will just show armv7l
:~$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 2 (v7l) BogoMIPS : 995.32 Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls ...
The vfpv3
listed under Features
is what refers to the floating point support.
Incidentally, armhf
, if your processor supports it, basically supersedes Raspbian, which if I understand correctly was mainly a rebuild of armhf
with work arounds to deal with the lack of floating point support on the original raspberry pi's. Nowdays, of course, there's a whole ecosystem build up around Raspbian, so they're probably not going to abandon it. However, this is partly why the beaglebone runs straight debian, and that's ok even if you're used to Raspbian, unless you want some of the special included non-free software such as Mathematica.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With