[go: up one dir, main page]

X86-64: Difference between revisions

Content deleted Content added
Undid revision 1251459875 by Nocmike (talk) - rv unexplained removal of templates.
Undid revision 1251459721 by Nocmike (talk) - implemented redirects to a disambiguation page, and none of the pages to which it links are pages that explain that particular use of the word.
 
Line 13:
The compatibility mode defined in the architecture allows 16-bit and 32-bit [[user space|user applications]] to run unmodified, coexisting with 64-bit applications if the 64-bit operating system supports them.<ref name="amd-24593">{{cite web|url = http://support.amd.com/TechDocs/24593.pdf|title = Volume 2: System Programming|author = AMD Corporation|date = December 2016|work = AMD64 Architecture Programmer's Manual|publisher = AMD Corporation|access-date = March 25, 2017|archive-date = July 13, 2018|archive-url = https://web.archive.org/web/20180713145424/https://support.amd.com/TechDocs/24593.pdf|url-status = live}}</ref>{{refn|group=note|In practice, 64-bit operating systems generally do not support 16-bit applications, although modern versions of Microsoft Windows contain a limited workaround that effectively supports 16-bit [[InstallShield]] and Microsoft ACME installers by silently substituting them with 32-bit code.<ref>{{cite web|url=https://devblogs.microsoft.com/oldnewthing/20131031-00/?p=2783|title=If there is no 16-bit emulation layer in 64-bit Windows, how come certain 16-bit installers are allowed to run?|author=Raymond Chen|date=October 31, 2013|access-date=July 14, 2021|archive-date=July 14, 2021|archive-url=https://web.archive.org/web/20210714084610/https://devblogs.microsoft.com/oldnewthing/20131031-00/?p=2783|url-status=live}}</ref>}} As the full x86 16-bit and 32-bit instruction sets remain implemented in hardware without any intervening emulation, these older [[executable]]s can run with little or no performance penalty,<ref name="x86-compat-perf">{{cite web|url = https://public.dhe.ibm.com/software/webserver/appserv/was/64bitPerf.pdf|title = IBM WebSphere Application Server 64-bit Performance Demystified|page = 14|quote = "Figures 5, 6 and 7 also show the 32-bit version of WAS runs applications at full native hardware performance on the POWER and x86-64 platforms. Unlike some 64-bit processor architectures, the POWER and x86-64 hardware does not emulate 32-bit mode. Therefore applications that do not benefit from 64-bit features can run with full performance on the 32-bit version of WebSphere running on the above mentioned 64-bit platforms."|publisher = IBM Corporation|date = September 6, 2007|access-date = April 9, 2010|archive-date = January 25, 2022|archive-url = https://web.archive.org/web/20220125121650/ftp://ftp.software.ibm.com/software/webserver/appserv/was/64bitPerf.pdf|url-status = live}}</ref> while newer or modified applications can take advantage of new features of the processor design to achieve performance improvements. Also, a processor supporting x86-64 still powers on in [[real mode]] for full [[backward compatibility]] with the [[Intel 8086|8086]], as x86 processors supporting [[protected mode]] have done since the [[Intel 80286|80286]].
 
The original specification, created by [[AMD]] and released in 2000, has been [[implemented]] by AMD, [[Intel Corporation|Intel]], and [[VIA Technologies|VIA]]. The [[AMD K8]] [[microarchitecture]], in the [[Opteron]] and [[Athlon 64]] processors, was the first to implement it. This was the first significant addition to the [[x86]] architecture designed by a company other than Intel. Intel was forced to follow suit and introduced a modified [[NetBurst]] family which was software-compatible with AMD's specification. [[VIA Technologies]] introduced x86-64 in their VIA Isaiah architecture, with the [[VIA Nano]].
 
The x86-64 architecture was quickly adopted for desktop and laptop personal computers and servers which were commonly configured for 16&nbsp;GiB ([[gibibyte]]s) of memory or more. It has effectively replaced the discontinued Intel [[Itanium]] architecture (formerly [[IA-64]]), which was originally intended to replace the x86 architecture. x86-64 and Itanium are not compatible on the native instruction set level, and operating systems and applications compiled for one architecture cannot be run on the other natively.