本文转载自网络。
如有侵权,请联系处理!
 
简介
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。
 
位数
二进制的每一个0或1是组成二进制的最小单位,称为位(bit)。字长是指同一时间能并行处理的二进制位数。字长可以分为CPU字长、操作系统字长。CPU字长也称为CPU的位宽或运算位数,现在绝大部分CPU都是64位的。
 
指令集
指令集是存储在CPU内部,是CPU能支持的指令的集合。外部通过指令可以对CPU运算进行指导和优化。通常可以把指令集分为精简指令集 (RISC) 与复杂指令集 (CISC) 。
精简指令集 (RISC)每个指令的长度较短,完成的动作比较简单,因此执行速度较快。但是若要做复杂的事情,就要由多个指令来完成。常见的精简指令集 (RISC)有Oracle的 SPARC 系列、IBM 的 Power Architecture 系列、ARM Holdings的 ARM CPU 系列等等。
复杂指令集 (CISC)每个指令的长度并不相同,通常包含若干个较低阶的操作,指令数目多且复杂 。因为指令较为复杂所以每个指令花费的时间较长,但每个指令可以完成的动作比较丰富。常见的CISC指令集有AMD、Intel、VIA等的x86架构的CPU。
指令集和CPU的位数是有联系的。16位CPU的指令集也是16位,32位CPU的指令集也是32位,但32位指令集也向上兼容16位指令集。操作系统位数等于其所依赖的指令集位数并小于等于CPU位数,因为线上兼容,所以可以在64位CPU上运行32位操作系统,在32位CPU上运行16位操作系统,反之则不可以。
 
发展
1.1971年,Intel 推出了世界上第一款4位的 CPU 4004。
2.1972年,Intel 推出了世界上第一款8位的 CPU 8008。
3.1974年,Intel 推出了一款8位的 CPU 8080。
4.1978年,Intel 推出了世界上第一款16位的 CPU 8086,x86架构诞生。
5.1979年,Intel 推出了一款16位的 CPU 8088,它的内部数据总线是16位,外部数据总线是8位。
6.1980年,Intel 推出了二款16位的 CPU 80186、80188。
7.1982年,Intel 推出了一款16位的 CPU 80286。
8.1985年,Intel 推出了第一款x86架构的32位的 CPU 80386,别名是i386。
9.1989年,Intel 推出了一款32位的 CPU 80486,它是最后一款以数字命名的处理器,别名是i486。
10.1993年,Intel 推出了一款32位的 CPU Pentium,采用P5微处理架构,别名是i586。
11.1995年,Intel 推出了一款32位的 CPU Pentium Pro,采用P6微处理架构,从这之后都算i686。
12.1997年,Intel 推出了一款32位的 CPU Pentium II,底层架构类似于Pentium Pro但是做了改进。
......
x86架构首度出现在1978年推出的Intel 8086中央处理器,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。Intel之后又推出了包括80186、80286、80386以及80486。 在设计上,这些后续的处理器使用的指令集都是在8086的基础上添加新支持的指令进行改进的,因此可以说都是向下兼容的,即能在8086上运行的程序在80486上也一定能运行。由于都是以86结尾(8088也是x86),所以把这一系列的指令集称之为x86架构。准确的来讲,x86这一术语并不是指的某一个具体的指令集,而是在8086的指令集基础上发展而来的所有指令集的泛称。实际上,在80486以后Intel推出的绝大多数CPU都是x86的,包括Pentium 、Pentium Pro 、Pentium MMX ,Pentium 2 ,还有后面的Pentium 3、Pentium 4 、Pentium D 、Core 全系列,(x86系列的) Xeon。另外,使用x86架构的处理器制造商远非Intel一家,最著名的就是AMD,其他的还有VIA,Cyrix。可以说,x86架构就是桌面级CPU的标准,你能买到的品牌或者组装的PC,几乎没有不是x86 CPU的。不过虽说都是x86的,但只能说明使用的指令集是兼容8086的,除8086指令集之外的其他指令支持情况就不一样。
从1985年80386开始,intel通过对x86架构进行32位的扩展,实现了32位CPU,而之前的都是16位。Intel把支持32位的x86指令集架构命名为IA-32(Intel Architecture 32bit)。实际上由于32位x86处理器的统治性,x86几乎等于IA-32,即32位的x86或x86-32。
在1999年,AMD宣布了x86-64架构。其实 现方式与之前的80386思路一致,继续对IA-32扩展,向前兼容IA-32。 2003年第一款x86-64处理器发布,AMD Operon。同时AMD也将x86-64正式命名为AMD64。这下Intel彻底2B了,以前都是AMD小弟追随者Intel大哥的脚 步,如今AMD先实现了64位民用桌面级CPU。其实Intel也有其64位计划,在2004年的IDF上,Intel承认其64 位计划,命名为IA-32e,即IA-32 extension,之后又改成EM64T,Extended Memory 64 Technology,最终命名为Intel64。实际上EM64T与AMD64几乎相同。早期EM64T不兼容AMD64的少量指令,但是由于AMD在64位技术中的领先地位,Intel2005年不得 不宣布将完全兼容AMD64。所以现在装的64位版本操作系统从没有说是面向Intel还是AMD的。不过在称谓上,大多数厂商还是使用 x86-64(x86_64,或者就是x64)来称呼此架构,从而保持中立。
i386对应IA-32,并且由于兼容性肯定适用于i486~i686;i686不仅适用Pentium Pro,也适用K7架构的Athlon。
Intel在AMD推出民用64位技术后很被动。其实Intel也有64位x86 CPU的计划,但是由于对于这个市场的不重视,认为需求不足,一直不见面世。而在对64位需求更加强劲的企业服务器和高性能计算市场上,1994年HP就 和 Intel合作开始开发一款与x86架构完全没关系的全新的IA-64架构。显然IA-64不兼容x86-64更别说IA32,IA64天生就是64位,基于显式并行指令运算(EPIC)。 2001年第一款IA-64架构的处理器Itanium安腾发布。可见,IA-64跟IA-32在实现上没有什么关系,跟x86-64也是完全并行的两种架构,x86架构的Intel的Xeon就是Intel Itanium的竞争对手之一。后来Intel把IA-64也干脆改称为Intel Itanium架构。

(转载)CPU基础知识的更多相关文章

  1. 【转载】[基础知识]【网络编程】TCP/IP

    转自http://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=27043 [基础知识][网络编程]TCP/IP iooops  胖友们楼主我又 ...

  2. cpu 基础知识

    认识cpu(中央处理器简称处理器)也叫CPU,Central Processing Unit线程是安排CPU执行的最小单位 四核八线程内涵: 每个单位时间内,一个CPU只能处理一个线程(操作系统:th ...

  3. (转载)Java基础知识总结

    写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技 ...

  4. [转载]Oracle基础知识

    一.oracle安装过程略 二.sys用户和system用户 (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限 默认密码是change_onins ...

  5. <转载>AWS 基础知识

    什么是AWS? Amazon Web Services (AWS) , 其实就是 亚马逊提供的专业云计算服务.其提供服务包括:亚马逊弹性计算网云(Amazon EC2).亚马逊简单储存服务(Amazo ...

  6. 转载 Deep learning:一(基础知识_1)

    前言: 最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程UFLDL Tutorial,据说这个教程写得浅显易懂,也不太长.不过在这这之前还是复习下m ...

  7. 转载:shell脚本之前的基础知识

    转载地址:http://www.92csz.com/study/linux/12.htm 第十二章 学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果 ...

  8. RabbitMQ基础知识(转载)

    RabbitMQ基础知识(转载) 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需 ...

  9. 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

随机推荐

  1. Promise 和async/await 的使用理解

    Promise 和async/await 的使用理解 1. new Promise时就会开始执行语句. new Promise(resolve => resolove('成功信息') )     ...

  2. 微信小程序自动化

    解析微信小程序 注意:若上面方法不行就使用下面的 小程序对应的chrome驱动版本包,2.4版本的

  3. JS数组遍历的十二种方式

    遍历有如下几种方式 数组方法 map forEach filter find findIndex every some reduce reduceRight 其他方法 for for in for o ...

  4. Android开发之设置应用设置全屏的两种解决方法 兼容android5.0等两种解决方法

    在开发中我们经常需要把我们的应用设置为全屏,有两种方法,一中是在代码中设置,另一种方法是在配置文件里改! 一.在代码中设置:  代码如下: package com.android.tutor; imp ...

  5. How to avoid multiple definition of function with gcc

    LDFLAGS add -Wl,--allow-multiple-definition

  6. Anchors Piovt详解

    这个两个东西是RectTransform里面的两个属性,也是UGUI做UI自适应的重要工具,之前做的的时候,都只是调出效果即可,并没有深究其中的原理,现在决定来补上这个漏洞. 首选我们来看看Ancho ...

  7. webstorm编写vue、react 将大驼峰组件命名转换成短横杠命名

    大家好!我是木瓜太香,精通 webstorm 与常见前端技术的工程师,偶尔也在b站搞一些 webstorm 技巧教学,今天给大家带来的是大驼峰小驼峰快速转换短横杠命名或者下划线命名的方式. 开发中我们 ...

  8. 在Python程序中执行linux命令

    import commands print commands.getstatusoutput('ls') 输出: (0, '1.py\nwork.nfs') 参考文档: https://blog.cs ...

  9. 获取JSO字符串的key和value值

    import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.HashMap; import java. ...

  10. Combine 框架,从0到1 —— 4.在 Combine 中使用计时器

    本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中使用计时器. 内容概览 前言 使用计时器执行周期性的工作 将计时器转换为计时 ...