Today Google Nexus 6 goes on sale via Google Play Store. The latest Google Nexus flagship phone comes with the latest Android L version, the Android Lollipop which is a 64-bit version of Android. Accordingly the chipset manufacturers like Qualcomm, Mediatek, Samsung, Intel are releasing 64-bit SoC.
So, today I am going to demonstrate what this 64-bit really means and how it will affect are usability of smartphones. This topic is purely technical and if you will not understand anything or if you want to know more then you can use the COMMENTS SECTION to get more out of this article. Here we go…
What does 64-bit really mean?
It really means that the CPU register size will be of 64-bit. The register can hold 64-bit data in that or that can hold a pointer (address location of another register or RAM memory).
So, the above statement implies the following:
- Increased number of registers
- Extended address space
- Increased RAM
This 64-bit is nothing to do with Android specifically but it is a hardware specific thing. I mean to say that the Processor that processes all of the instructions beneath the Android (or any other OS) is capable of doing 64-bit operations in a single clock cycle. So to take advantage of such 64-bit hardware architectures the OS must be capable of processing 64-bit data.
What exactly Android has to do to support 64-bit computing?
Android is currently a 32-bit OS and there is no room for any 64-bit questions.
The Android OS stack consists of Linux kernel as the base and the Android application runs on top of Dalvik virtual machine or Android Run Time (ART). The ART was introduced in the past release of Android i.e Android KitKat. The Linux kernel has supported 64-bit computing for years. So, to fully support 64-bit processing, Android must have to make the virtual machine framework (Either the Dalvik or the ART) 64-bit compatible.
On the other hand a Dalvik application (written only in Java) will work without any changes on a 64 bit device. Because the application code is converted to bytecodes before it is executed by the virtual machines which is platform independent. However, Dalvik application developers can take better advantage of 64-bit chips by recompiling their applications to target 64 bit processors.
I think Android has made the ART as the default VM in the Android Lollipop release and is made 64-bit compatible.
How does the increased size of the 64-bit CPU registers make the software faster?
Memory(RAM) is extremely slow as compared to that of the CPU memory. Reading from and writing to memory take a long time compared to how long it takes the CPU to process an instruction. CPUs try to hide this with layers of caches, but even the fastest layer of cache is slow compared to internal CPU registers. More registers means more data can be kept on the internal memory of the CPU itself, thereby reducing memory accesses and increasing performance.
The difference that this really makes will depend on the specific code in question, as well as how good the compiler is at optimizing it to make the best use of available registers. When the Intel architecture moved from 32-bit to 64-bit, the number of registers doubled from 8 to 16, and this made for a substantial performance improvement.
Android 64-bit impact on applications over 32-bit
Typically on a 32-bit processor, the addressable memory space available to a program is between 1-3 GB because only 4 GB is addressable. Even if 1-3 GB is available, a single program cannot use all the memory that is addressable unless it resorts to some techniques like splitting the program into multiple processes, which takes a lot of programming effort. On a 64-bit operating system, this is of no concern as the addressable memory space is pretty large.
64-bit pointers also come with a substantial downside: most programs would use more memory because pointers need to be stored and they consume twice as much memory. An identical program running on a 64-bit CPU takes more memory than on a 32-bit CPU. Since pointers are very common in programs, it can increase the cache sizes and have an impact on performance.
How does the Android 64-bit really matters to the end users?
This is the most interesting question to be answered and is the only thing that makes the difference ultimately.
I believe that this needs some technical and some historical explanations.
A 32-bit OS has a limitation that it can have a maximum of 4GB of RAM (Theoretically) and not more than that. So, if you will see carefully, the Android 64-bit will enhance the hardware specification in the future devices much more than you can imagine.
As in a 64-bit hardware the register size is of 64-bit and vice versa for a 32-bit machine, theoretically it can work twice as the 32-bit hardware.
The same hardware spec with 64-bit will perform more than that of a 32-bit hardware in comparison.
As in the increase of the processor address space, there is more room to mount extra on chip hardwares.
Similar to the Laptops that have hot pluggable device slots, like expandable RAM slots, USB slots and much more, who knows that the enhanced address space of 64-bit computing will take you to have the similar options in your hand held devices too.
Couple of years back there were Apple and Blackberry and some of the Windows phones whose devices were coming with high performance chipsets and lot more on chip hardwares as compared to others.
It is Android after whose evolution the mobile computing really has gone on a boom. When Android introduced itself I observed that 500MHz or 528MHz devices were present. But after 3 years of that the SoC usability has reached to 2.3GHz or even 2.7GHz of frequency.
I never saw a hand held device to have 2GB or 3GB of RAM earlier to Android. Now a days Android devices are common with 1GB of RAM. After all of the above points you must have to notice that the price range of the devices has hardly changed.
If you have any thoughts on this topic then just login to place a comment in the below comment box.