Why is a 64-bit system needed for Khadas?

Question to the connoisseur of thirsty 64 bits! Please explain why you need a 64-bit system on Khadas with a maximum RAM of 4 gigabytes, if a 64-byte system is needed only to support more than 4 gigabytes of RAM ?!
:thinking:

1 Like

aes encryption instructions only work in 64 bit mode

Of course, it is impractical to use 32-bit operating systems on hardware that supports the 64-bit architecture (it will be impossible to squeeze the full potential out of them).
:man_shrugging:t3:

Actually 32-bit ARM os has better support than 64-bit…

but yeah use of multiarch can run certain 32 bit programs in 64 bit kernel…

may I know why you want a 32-bit kernel

1 Like

Hello! in fact, my question is in order to understand whether a 64-bit system is really needed in Khadas boards, especially for the Android system, and indeed other operating systems in general. As far as I understand, you are using Ubuntu, I will be interested in your opinion of course!
Thank!

A 64 bit kernel is required to use the AArch64 instruction set and instruction set extensions exclusive to AArch64 mode. The 64 bit instruction set is more efficient and powerful than AArch32 (which can still be used with a 64 bit kernel) but requires a 64 bit kernel to use.

Hi,
but 64 bit window is good in comparison to 32, plesae consider. and i have some question to ask mcdvoice

@Vladimir.v.v basically when it comes down to 32bit vs 64bit at the fundamental level, 64bit means a bigger (or) Double CPU register size compared to 32bit, meaning that memory bound tasks will be easily 2x fast, but overall system wise it only gives you about 15% of Higher speed in normal usage…

However in Android system, a 64bit processer is a must have nowadays…
and I shall explain to you as simple as I can…

Android has lots of apps, and these apps are made the coding language called java,
java is like a semi-compiled language, after you write the code, you compile it into a intermediate called a *.jar file, this is not fully ready as an executable app, you need something called a JVM (Java Virtual machine) to run your *.jar as an app…

In Android, this task is handled by the infamous Dalvik virtual machine.
A virtual machine is like a computer running inside a computer…

It is infamous because of two reasons…

  1. Java is a hog when it comes to CPU and Memory resources, and
  2. Virtual machines are not very efficient when you want to run a program…

So, to keep the system fast, you need high memory bandwidth and a fast CPU,
hence we need 64bit CPUs as they can keep up with the memory bandwidth as explained before, they have the bigger CPU register size

but other than that, 64 bit CPUs have other plus points too…

  • you can run 32 bit OS and 32bit apps, but 32/64bit apps can only run on 64bit OS

whereas 32bit CPUs can’t offer that part of flexibility…

Memory size maybe a requirement for things like apps and games, but the maximum that can be attached due to the CPU register size is just the tip of the iceberg, you also need a higher bit MMU (memory management unit) that can handle more than just 4GB of RAM, currently the VIM3 and EDGE have 32bit MMU which limits the maximum memory they can use…

Hello, 64 bit on a smartphone is quite justified, they put up to 8 gigabytes of RAM there. Pay attention, in our case, the processor costs 64 bits, while Amlogic from the factory release the Android OS 9 (32bit), where is the logic?

Dude, if that doesn’t have logic, you should see the old iPhones, it had 2GB of RAM and a 64bit Processer…

The 64bit has nothing to do with how much RAM is equipped, it is only related as you need a 64 bit processer for more than 4GB of RAM, other than that, it doesn’t matter if you give 2GB , 4GB or 8GB of RAM…, 64bit just provide better bandwidth for the CPU registers…

Remember, what I said, for more than 4GB of RAM on 64bit CPU, you also need a MMU that can handle more memory…

as for Amlogic releasing Android 9 (32bit), it is because you need separate drivers for 64bit OS and they are very slow in creating them…
If they can hurry up, we can have Android 64bit in our hands very soon…

dude, trust me, s912 is completely 64 bit out of the factory for Android 7 (64bit), and this year Android 9 (32bit) came out and it looks a lot better !! where is the logic??!!
:rofl:

What !? well, that was… unexpected :sweat_smile:
but Android 9 itself is better than Android 7… couldn’t that also be a reason ?

Are you saying that Android 9 (32bit) will be better than Android 7 (64bit)?
:thinking::roll_eyes:

Depends on the task, as I said, the bit part is only exaggerated more when the memory/CPU register bandwidth comes into play…

Try running geekbench to see the difference in the bandwidth performance…

@Vladimir.v.v as @NekoMay says ARMV8 instruction set is much better than armhf (32 bit)

@Electr1 Though you are correct in the register size, Memory bandwidth is not dependent of the OS architecture… It is mostly dependent on BUS speed and BUS width… for DDR4 bus width is 8 Bytes iirc, This does not change with OS architecture… What changes is the addressable memory ranges…

for normal small applications there will be little to no difference between 32bit and 64bit… If applications are optimized to make use of 64 bit registers then noticeable speed up can occur

2 Likes

I thought that single 64 bit could be able to handle the data required for 2 independent 32 bit instructions…

In that case…, Intel has been very misguiding :expressionless:

You see they only mention memory capacity…

what about those data pipelines ?

the pipelines will be the same… remember the SoC is still 64 Bit so it can process 64 bit data… its just OS is not using them

other than the software, the hardware should be capable right ?