众所周知,CPU(中央处理单元)是计算机的核心部分,CPU在单位时间内能一次处理的二进制数的位数叫字长,从386、486直到奔腾系列的CPU都是32位,大多数情况32位计算已经能满足现阶段人们的需要。然而随着互联网等技术的发展,对内存的需求越来越大,比如大型服务器,每秒钟处理的数据量就超过2G,32位就难以满足需求了。

  按照以前的习惯,我们把基于80x86的CPU架构称作x86结构,这时Intel公司在1978年发其第一块16位的CPU(5MHz
8086)而开发的,1981年IBM推出的第一台PC中使用的也是x86指令,同时电脑中为提高浮点数据处理能力而加的x87芯片系列数学协处理器则使用x87指令,后来将x86指令集和x87指令集统称为x86指令集。为了保证计算机能够继续运行以往开发的各类应用程序以保护和继续软件资源,后续的CPU(包括大多数第三方处理器厂商)继续使用x86指令集,采用这种指令集的CPU系统被称作x86架构。这种架构有时叫作IA-32(Intel
Architecture
英特尔体系结构的32位系统)。

  64位数据寻址对于CPU来说并不是最近才有的新技术,比如,Intel公司和HP公司在2001年共同开发的64位处理器Itanium(安腾)处理器以及后来的Itanium2(安腾2)处理器,Sun公司的UltraSparcIII处理器,IBM公司的Power5,Apple公司的G5处理器,Compaq公司的Alpha处理器等。安腾系列处理器采用了全新的架构,放弃了以前的x86架构,以前32位应用程序必须通过一种转换工具把x86指令转为IA64指令才可以执行。而其他基于RISC架构的处理器由于标准没有完全统一,发展较慢。

  2003年4月AMD公司推出首款64位处理器,这是一款采用x86兼容架构的64位CPU,它最大的特点就是在支持64位数据寻址的同时,向下兼容32位数据寻址,妥善解决了CPU从32位到64位的过渡和兼容问题,从而掀起了桌面处理器从32位向64位过渡的技术革命。2004年3月,Intel也发布了其首款64位Xeon处理器,它采用EM64T(Intel
Extended Memory 64
Technology)技术,同时支持32位和64位运算,在运行64位程序时采用64位工作方式,而在处理32位运算时依然是IA32(即x86)工作结构,这实际上也一起被称为x86-64架构。

  和Intel公司相配合,Microsoft公司在IA平台上推出了Windows
XP IA64版本。随着x86-64位CPU技术的成熟,2003年 Microsoft
公司推出了一个x86-64位(以下简称x64位)Windows操作系统的测试版本,2005年4月25日在西雅图正式发布了x64位的
Windows,这个系统将同时支持Intel和AMD的x86-64位处理,普通用户可以选择Windows XP Professional
x64版,服务器则可以选用 Windows Server 2003
x64位。据称,x64位Windows不会出现在零售市场,购买64位芯片的台式机和服务器用户才会获得x64位Windows操作系统,而已经拥有64位机器的用户将可以用32位Windows系统免费升级到x64位

8086、80x86(IA-32)、64(IA-64)位CPU发展的更多相关文章

  1. 梦回----32位CPU和64位CPU的通用寄存器

    1 32位Intel的CPU通用寄存器 32位CPU所含有的寄存器有:4个数据寄存器(EAX.EBX.ECX和EDX):2个变址和指针寄存器(ESI和EDI):2个指针寄存器(ESP和EBP):6个段 ...

  2. 16位/32位/64位CPU的位究竟是说啥

    平时,我们谈论CPU,都会说某程序是32位编译,可以跑在32位机或64位机,或则是在下载某些开源包时,也分32位CPU版本或64CPU位版本,又或者在看计算机组成相关书籍时,特别时谈到X86 CPU时 ...

  3. 64位系统/32位系统下/8位CPU的数据宽度

    不同的编译器根据不同的 64 位模型有所不同. 比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位 ...

  4. 计算机组成原理--64位CPU装载32位操作系统,它的寻址能力还是4GB吗?

    借由这个问题,今天我们就把 32 位 CPU.64 位 CPU.32 位操作系统.64 位操作系统之间的区别与联系彻底搞清楚.对于这个问题,博主也是一知半解了好长时间啊~ 基本概念 32位的CPU与6 ...

  5. 32位CPU和64位CPU 区别

    操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计.操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的C ...

  6. Tomcat Can't load AMD 64-bit .dll on a IA 32

    Java.lang.UnsatisfiedLinkError: C:\apache\apache-tomcat-7.0.14\bin\tcnative-1.dll: Can't load AMD 64 ...

  7. 32 bit 与 64 bit 程序(2)比较

    32 bit  与 64 bit 程序(2)区别 由于操作系统内存分配的不同,导致软件开发过程中,需要编译不同版本的软件. 几个重要概念:  (1)这里所说的的32位与64位程序,是指经过编译器编译后 ...

  8. 体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)

    0. 前言 不知道为什么,几乎所有的C++编程教程都是从命令行版(控制台应用程序)的Hello World开始的.然而,对于现在的年轻人来说,从小就用鼠标点击窗口或图标操作电脑,对于那个神秘黑色的窗口 ...

  9. Intel X86 32位CPU内存管理----《Linux内核源码情景分析》笔记(一)

    Intel X86 32位CPU内存管理 在X86系列中,8086和8088是16为处理器,而从80386开始为32为处理器,80286则是该系列从8088到80386,也就是16位处理器到32位处理 ...

随机推荐

  1. linux的HugePage与oracle amm关系

     如果Oracle 是11g以后的版本,那么默认创建的实例会使用Automatic Memory Management (AMM)的特性,该特性与HugePage不兼容. 在设置HugePage之前需 ...

  2. [swustoj 771] 奶牛农场

    奶牛农场 Description 将军有一个用栅栏围成的矩形农场和一只奶牛,在农场的一个角落放有一只矩形的箱子,有一天将军要出门,他就把奶牛用一根绳子套牢,然后将绳子的另一端绑到了那个箱子不靠栅栏的角 ...

  3. Java知识点:javac命令

    javac命令初窥 注:以下红色标记的参数在下文中有所讲解. 用法: javac <options> <source files> 其中, 可能的选项包括:   -g     ...

  4. Scrum&Kanban在移动开发团队的实践 (一)

    现在大多数团队都在谈敏捷开发,似乎觉得敏捷是软件开发的银弹.只需要实践下一些敏捷开发的模式就能如何如何,其实我觉得不论是敏捷开发还是传统的瀑布流开发都是有他们的市场的,取决于团队人员构成,取决你的产品 ...

  5. Java [Leetcode 66]Plus One

    题目描述: Given a non-negative number represented as an array of digits, plus one to the number. The dig ...

  6. 【转】linux中wait与waitpid的差别

    原文网址:http://blog.163.com/libo_5/blog/static/15696852010324287748/ zombie不占用内存也不占用CPU,表面上我们可以不用在乎它们的存 ...

  7. MySQL基础之第8章 视图

    8.1.视图简介 视图由数据库中的一个表,视图或多个表,视图导出的虚拟表.其作用是方便用户对数据的操作. 8.2.创建视图必须要有CREATE VIEW 和 SELECT 权限SELECT selec ...

  8. Java与WCF交互(一):Java客户端调用WCF服务

    最近开始了解WCF,写了个最简单的Helloworld,想通过java客户端实现通信.没想到以我的基础,居然花了整整两天(当然是工作以外的时间,呵呵),整个过程大费周折,特写下此文,以供有需要的朋友参 ...

  9. OracleBulkCopy的批量数据导入

    private void button1_Click(object sender, EventArgs e) { OpenFileDialog afd = new OpenFileDialog(); ...

  10. windows主线程等待子线程退出卡死问题

    在windows下调用_beginthread创建子线程并获得子线程id(函数返回值),如果子线程很快退出,在主线程中调用WaitForSingleObject等待该线程id退出,会导致主线程卡死.需 ...