Now whether it is the x86 processor in the computer or the ARM processor in the mobile phone is 64-bit, usually, for consumer-level products, it is an x86 processor that supports the x86-64 instruction set, or supports the ARM64 instruction set ARM processor. In fact, 64-bit CPUs were used in supercomputers as early as the 1960s. In the 1990s, 64-bit processors were also used in workstations and servers. Personal computers began to become popular after AMD launched the Athlon 64 in 2003. And the 64-bit processor ARMv8-A architecture used on smartphones was released in 2011.
The 64-bit mentioned here refers to the bit width of the CPU. Simply put, the CPU bit width refers to the number of binary bits that the CPU can handle in one clock cycle. For example, the 8086 CPU is 16-bit and can process 2 bytes at a time. (16 bits), the 80386 CPU is 32 bits and can process 4 bytes at a time. The current CPU is basically 64 bits and can process 8 bytes at a time. Our Windows operating system is also divided into 32-bit and 64-bit. It is mainly optimized for the bit width of the above CPU. For example, a 32-bit CPU cannot use 64-bit Windows (because the CPU can only process 32bit at a time, and the operation The instruction given to you by the system is to process 64-bit), but a 64-bit CPU can run 32-bit Windows or 64-bit Windows.
The advantage of a 64-bit CPU is that it can perform a larger range of integer operations. Programs with large throughput will run faster. However, everyone often has some misunderstandings about the bit width of the CPU. For example, some people say that the CPU is only used to support larger memory. Only 64-bit, some people think that 32-bit systems only support 4GB of memory, is that true?
Is the maximum memory capacity related to the bit width of the CPU?
The addressing ability of the CPU is related to its address bus bit width, and the CPU bit width we usually say refers to the data bus bit width. It has nothing to do with the address bus bit width and half a dime, and naturally, it has nothing to do with the addressing ability.
The bit width of the data bus is equal to the bit width of the CPU integer register. The registers in the CPU can usually be divided into three types: integer, floating-point, and others. Among these three registers, only integer registers can store pointer values, which is memory Data addresses, non-integer registers cannot store pointer values, so read and write memory operations cannot avoid the bit width limitation of integer registers. Take 64-bit CPUs as an example. The internal integer registers of these CPUs have a bit width of 64 bits and support integers. Arithmetic and logical operations with 64bit width.
But this does not mean that all buses and registers of a 64-bit CPU are 64-bit. Different types of registers can also have different bit widths. The integer register bit width of the 64-bit CPU mentioned above is 64 bits. Point registers are different. For example, the MMX instruction set introduced by the Pentium MMX processor created a precedent for the x86 processor to support SIMD operations. The instruction set defines 8 64-bit floating-point registers, while the Pentium MMX itself is only a 32 Bit processor. Introduced in 1999, the same 32-bit Pentium 3 processor added the SSE instruction set, which was matched with 8 128-bit registers. The later AVX 2 and FMA instruction sets can support 256-bit operations and floating-point registers. It has also been expanded to 256 bits. At present, the largest internal CPU is the 512-bit register used by the AVX-512 instruction set.
There are many different registers in the CPU |
What the hell is the address bus width of the CPU?
Intel’s explanation is that Physical Address Extensions (PAE) is a feature that allows 32-bit processors to access a physical address space larger than 4 gigabytes. The picture above is a screenshot of Intel Xeon Processor E5-2698 v3, specifically for extending the physical address. Explain, to the effect that this is to allow 32-bit processors to use more than 4GB of memory. This PAE is the address bus bit width of the CPU. In the 8086 16-bit CPU, its address bus bit width is 20 bits, which can address 1MB. The PAE of 80286 is 24 bits. This is the case for Pentium II (32-bit CPU). PAE becomes 36 bits and can support 64GB addressing. After the emergence of 64-bit CPUs, the address bus bit width is generally 36 or 40 bits, and the physical address space they address is 64GB or 1T.
What is the relationship between the address bus and the data bus? It can be understood that the address bus is used for positioning and the data bus is used for transmission. That is, when the CPU needs to read data from the memory or write data to the memory, it uses the address bus to specify the physical address of the memory block it needs to access. Then send data through the data bus.
Therefore, the bit width of the CPU has nothing to do with the addressing ability. The address bus width of a 16-bit CPU can be 20 bits, the address bus of a 32-bit CPU can be 36 bits, and the address bus of a 64-bit CPU can be 40 bits. So next time you must not say that a 32-bit CPU can only address 2^32 (4GB), it is a big mistake.
32-bit system only supports 4GB of memory?
In theory, the logical address range of a 32-bit operating system is only 2^32=4GB, but this is not the case. Although the common Windows 7 32-bit (does anyone really use Windows 10 32-bit?), the system can only recognize 4GB of memory, and the maximum available memory is up to 3.25GB, but Windows Server 2003/2008, which is also 32-bit, can use more than 4GB of memory because these systems support PAE physical address extension technology.
In addition to the support of the CPU itself, PAE also needs the support of the chipset, motherboard, and operating system. For example, some old motherboards do not support physical memory greater than 4GB, and Microsoft has not opened the PAE function to a 32-bit home operating system. In, even if it is a Windows Server system, if it is not an enterprise version, there is no open PAE function.
Of course, the kernel of the Windows XP/7/8/10 system supports the PAE function. The 32-bit version of the system can be opened by cracking this function to support more than 4GB of memory. The cracking method is actually not difficult. There are many ready-made tools on the Internet. But to be honest, instead of cracking it, it is better to install a 64-bit operating system directly.
If you are still using a 32-bit processor, none of these are issues you need to consider.
0 Comments