Reputation: 111
Why are 64-bit registers used in modern general-purpose processors (eg ARM)? For most user tasks, a 16-bit ALU is enough (+ more bit SIMD for media and others).
(for mOOderators: do not block this question, there is no answer to it on the stackoverflow, it is not duplicated!)
Upvotes: 0
Views: 405
Reputation: 7842
In general, the processors are launched with expectation/requirement that might be ahead/ongoing and based on the evolution of the ecosystem in terms of other hardware components , software components/features and emerging technologies.
The reduction in cost of memory paved way for systems with high RAM sizes and the use of virtual memory spaces more than 4GB became desirable for handling certain types of use case scenarios/problems/solutions. For addressing this requirement, MIPS and DEC came up with initial 64-bit architectures, targeted towards server machine and high-end workstations.
A 64-bit processor can handle more data at once, can store more computational values, including memory addresses and hence can access high amount of memory compared to that of a 32-bit processor. Accordingly, the 32-bit processors have 4GB addressable space while 64-bit processors have 16GB addressable space.
This enables an application to perform memory read, other operations smoothly as the OS does not have overhead of "translation" (packing/unpacking of memory etc.) for the commands that the application is using. Also, if the application is having huge need for memory then a 64-bit version will give an advantage. If the system is of 16GB RAM, then it is better to go with 64-bit for maximum utilization of the RAM. Applications that need multitasking benefit greatly as it can switch quickly between multiple tasks . For example, an Image processing / editing software that need to save huge contexts and open / operate multiple huge set of files simultaneously, benefit from this. Also systems that need to do handle load / stress tests benefit from this. Increase in larger RAM availability and the 64-bit processors have enabled top OS manufacturers to build OS that takes full advantage of 64-bit support. Accordingly, applications & gaming software that require high performance demands take full advantage of the RAM availability.
The benefit from 64-bit support is not applicable for all applications and unless applications require a large address space or process 64-bit data items, 64-bit environment/system might not be considered. Hence it is applicable for applications that may need this requirement.
Also, it should be noted that all algorithms may not require or operated with SIMD technology and hence the usage shall be as applicable based on the product / application requirement.
Upvotes: 1
Reputation: 78845
The main reason is the address space. With a 32 bit register, you can address 4 GByte of memory (or more likely only 2 GByte as part of the address space is needed for memory-mapped IO). 2 GByte is clearly insufficient for today's servers, desktop computers and smartphones. So 64 bit registers are used.
Since registers and ALUs are general-purpose registers ALUs, i.e. used both for computing addresses in memory and general numeric computation, 64 bit architecture have prevailed.
I would also reject your claim that a 16-bit ALU is sufficient in most cases. 16-bit numbers are very limited. I guess that 32-bit ALU is usually sufficient.
Upvotes: 1