64bit and 32bit and X64 and X86 Problems

Source: Internet
Author: User
Tags windows x86

1. 64-bit and 32-bit Processors


A 64-bit processor is a processor that can perform 64-bit addressing on a virtual address space. A 64-bit processor can store data in 64-bit format and perform mathematical operations on 64-bit operands. In addition, the General registers (GPRS) and memory (ALUs) of the processor are also 64-bit.

Currently, Intel-compatible processors on the market can implement 64-bit computing mainly in three ways:

1) Intel IA64, based on the anteng 2 processor, is not compatible with 32-bit applications. The Oracle software is named XXX for Linux itanium in this mode.
2) intel em64t, based on Xeon DP "Nocona" and MP processor, compatible with 32-bit applications, Oracle software compared to the version of this model called XXX for Linux x86-64.
3) amd amd64, based on opteron processor, compatible with 32-bit applications, Oracle software compared to the version of this model called XXX for Linux x86-64.

In addition, the common 32-bit ia32 architecture processor, Oracle software compared to the current version of XXX for Linux x86.

1) IA-64:

It is independently developed by Intel and is not compatible with the current traditional 32-bit computer. It is only used for itanium (anteng) and subsequent products itanium 2.

Since Intel and its partners launched the 1993 system-based IA server in 486, the IA server has gone through several stages, including the 486 system, pentiumpro system, PII system, piII system, and Xeon system. The processing capability of processor system is greatly improved, while the bus structure of server system is always IA-32 bus system.

After the development of IA-32 server to 8-channel XEON server, the architecture has begun to become a bottleneck restricting the performance of the server. First, the bandwidth bottleneck of the PCI channel is the memory bus bandwidth bottleneck and the bottleneck of the processor system expansion. As a result, hp and Intel have been developing IA-64-based processors since 1994, hoping to improve performance at the microprocessor level by combining hp's 10 years of experience in the world of Proteus with ultra-long instructions, to increase the concurrency at the command level.

The IA-64 structure is not an Intel 32-bit x86 structure expansion, is not completely using hp 64-bit PA-RISC structure, but a new design style. IA-64 is based on EPIC (explicit Parallel command Computing-Explicitly Parallel Instruction Computing) technology.

The main characteristics of IA-64 are shown in several aspects:

* The IA-64 system memory addressing space is larger and can support 32 GB or more memory, while the IA-32 server currently supports a maximum memory capacity of 16 GB.
* IA-64 processor addressing, stronger processing capability, faster. The frequency of the Itanium processor is at least 1 GHz, and the second-level Cache is at least 2 MB.
* The 128-bit floating point register enhanced by the IA-64 system greatly improves the system's floating point computing capability.
* The IA-64 system will use the bus structure based on Infiniband Technology. It takes the exchange-type system bus instead of the current shared bus as the core, and combines NGIO and FutureIO into one, the system bus, memory bus bandwidth, and I/O bus bandwidth will be greatly improved. The IA-64 system bandwidth is above 2 GB/s, while the current SMPIA-32 server system bandwidth is 1.06 GB/s, PCI bandwidth is generally 0.4 GB/s.
* The IA-64 includes a series of built-in features to prolong normal computer operation time and reduce downtime. The machine detection system provides error recovery and Error Correction capabilities in the memory and data path, allowing the IA-64 platform to recover from errors that lead to system failure in advance.

Currently officially announced support for IA-64 platform Monterey, Linux64, hp-UX, Solaris, Win2000 and other operating systems.

2) EM64T Technology

EM64T technology provides powerful performance support for applications that require more than 4 GB of memory.

Intel officially defines EM64T as follows: EM64T stands for Extended Memory 64 Technology, that is, Extended 64 bit Memory Technology. EM64T is an extension of the Intel IA-32 architecture, namely, IA-32e (Intel Architectur-32 extension ). With the EM64T technology attached, the IA-32 processor allows software to take advantage of more memory address space while being compatible with IA-32 software, and allows the software to write 32 bit linear addresses. EM64T especially emphasizes the compatibility between 32 bit and 64 bit. Intel added 8 64-bit GPRs (R8-R15) for the new core, and expanded all the original GRPs to 64-bit, as described above, which can improve the integer computing capability. 8 128bit SSE registers (XMM8-XMM15) were added to enhance multimedia performance, including support for SSE, SSE2, and SSE3.

Intel designed two models for processors supporting EM64T technology: legacy IA-32 mode and IA-32 mode ). In a processor supporting EM64T technology, there is a part called extended feature enable register, IA32_EFER. Bit10 controls whether EM64T is activated. Bit10 is called IA-32e mode active or long mode active ). When LMA = 0, the processor runs in the traditional IA-32 mode as a standard 32-bit (IA32) processor; When LMA = 1, EM64T is activated, the processor runs in IA-32e extended mode.

3) AMD64

AMD64, also known as "x86-64" or "x64", is a 64-bit computer processor architecture. It is based on the existing 32-bit x86 architecture, developed by AMD, our products that use AMD64 instruction sets include Athlon 64, Athlon 64 FX, Athlon 64X2, Turion 64, Opteron, and the latest Sempron processors.

Architecture Overview AMD is trying to clean up Intel's x86-32 exclusive with its own AMD64 Instruction Set and update x86 to an almost advanced stage of the world of experience. Dirk Meyer, who once participated in the design of the Alpha64-bit processor, also participated in the development of AMD64 specifications, as well as many former Alpha processor engineers among AMD staff, so they made a lot of contributions to AMD64. Some major changes are shown below:

Added the temporarily added memory address extended SSE2 and SSE3 commands "forbidden execution" (NX-bit). One of the features of AMD64 is that it has "No-Execute, NX) to prevent the worm from being attacked by Buffer Overflow (also known as Buffer Overflow attack and Buffer Overflow ).

Market analysis AMD64 indicates that AMD has abandoned its consistent style of following Intel standards, and has chosen to expand 16-bit Intel 8086 to 32-bit 80386, it expands the x86 architecture to a 64-bit version and is compatible with the original standard.

The AMD64 architecture adds 64-bit latches on the IA-32 and is compatible with early 16-bit and 32-bit software, making it easy to convert existing x86-oriented compilers into the AMD64 version. In addition, NX bit is one of the notable features.

Many believe that 64-bit chip like DEC Alpha will eventually replace the existing outdated and changing x86 architecture. But in fact, the application software for the x86 system is too large, which is the main reason why Alpha cannot replace x86. AMD64 can effectively move the x86 architecture to a 64-bit environment, and compatible with the original x86 applications.

4) Summary

The argument is whether EM64T and AMD64 are true 64-bit processors. Intel calls its architecture "Extended Memory 64 Technology", which makes this question easy. We know that it is an extension of the IA32 instruction set. So is EM64T and AMD64 a "real" 64-bit processor? The answer is clear, yes. When the processor performs a 64-bit operation, it has the 64-bit addressing capability. The general-purpose register and inspector are 64-bit in width, and the inspector can process 64-bit data blocks. Therefore, in this processing mode, they can all be called 64-bit processors.

Note that although IA64, EM64T, and AMD64 are both 64-bit processors, they are not fully compatible:
. EM64T and AMD64 are compatible with a few commands, such as 3DNOW. Applications written and compiled on one of them can usually run on another processor at full speed.
. IA64 adopts a completely different instruction set from the other two. 64-bit applications written for Itanium2 cannot run on EM64T and AMD64, and vice versa.




2. X64 and IA64 and 32bit and 64bit

To put it simply, the people currently argue primarily about windows x86 and x64 versions.

But in fact, this argument is basically not directly related to 32bit and 64bit, but only indirectly related.
Because most of them make a mistake on an important basis, that is, x64 does not represent 64bit, and 64 bit is called IA64.

I'm afraid most people are too lazy to read or understand many technical terms. Simply put, they can say something conceptual.

The true sense of pure 64 bit thing only intel IA64, it is completely incompatible with x86 computing, need to use the x86-to-IA-64 decoder to perform x86 computing, {
Tagshow (event)
} "> High performance loss.

X64 should be an x86 extended x64 {
Tagshow (event)
} "> Technology, amd and intel are both of the same nature.
This technology is the key to solving the loss of performance for 64-bit systems to process x86 code, because it directly expands to 64-bit by using the x86 cpu, so that the x86 cpu can process x86 computing, 64bit operations can also be processed

The decoder of IA64 is the opposite. The decoder of IA64 converts 64-bit cpu processing to 64-bit 32bit code, x64 is the x86 cpu that directly processes 32-bit and 64-bit operations.

The key to the debate lies in the 32-bit and 64-bit software. In fact, the so-called 64-bit cpu we use is x64 cpu, and the 64-bit cpu is only the Intel aiteng series, and they can only install anteng {
Tagshow (event)
} "> Server Edition is a pure 64-bit windows.

The essence of x64 is to process 32bit and 64bit at the same time. Therefore, 32bit and 64bit of the software are useless on x64, because both of them can be smoothly applied to the x64 architecture, the 64-bit software is much more efficient than the 32-bit software, but it does not mean that the 32-bit software will have problems on x64. Of course, the 16-bit installation code programs are not included here, x64 has abandoned 16 bits, so you can ask Microsoft.

In other words, the era of running 64-bit x64 will not come, because x64 is something that occurs to run x86 and 64-bit at the same time, and that era will only belong to the anteng cpu, instead of the x86 cpu with x64 technology.
The 32bit code will never disappear in x64, because it is the purpose of x64.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.