首页 > 其他分享 >CPU简史

CPU简史

时间:2023-09-04 20:12:27浏览次数:47  
标签:保护模式 x86 Cache 简史 64 CPU Intel

这是一个OS课程作业。大部分信息来源于维基百科。

第一个微处理器:Intel 4004

1971,Intel推出世界上第一款商用微处理器4004。4004是4位处理器,含有2300个晶体管,采用10微米制程,性能与1946年ENIAC相似,但尺寸仅有3mm×4mm。

4004原先是为一家名为Busicom的日本公司而设计,用来生产电子计算器。4004基本具备了微处理器的特点。采用4004芯片后,再配用一块程序存储器,数据存储器,移位寄存器,再加上键盘和数码管,就构成了一台完整的微型计算机。

第一代

1978年,INTEL首次生产出16位微处理器i8086,同时还生产出与之相配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,但在i8087指令集中增加了一些专门用于对数、指数和三角函数等数学计算指令。

由于这些指令集应用于i8086和i8087,所以人们也这些指令集统一称之为X86指令集。此后Intel生成的各代CPU仍然兼容X86指令集。

image-20230904112523616

image-20230904112458689

CPU的发展历程。来源:x86 - 维基百科,自由的百科全书 (wikipedia.org)

1979年,INTEL公司推出了8088芯片,它仍旧属于16位微处理器,内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位,可使用1MB内存。8088内部数据总线都是16位,外部数据总线是8位,而它的兄弟8086是16位。1981年8088芯片首次用于IBM PC机中,开创了全新的微机时代。

从8088开始,PC机(个人电脑)的概念开始在全世界范围内发展起来。

第二代

INTEL推出了80286芯片,该芯片比8006和8088都有了飞跃的发展,虽然它仍旧是16位结构,但是在CPU的内部含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。

从80286开始,CPU的工作方式也演变出两种来:实模式和保护模式

保护模式(英语:Protected Mode,或有时简写为 pmode)是一种80286系列和之后的x86兼容CPU的运行模式。保护模式有一些新的特性,如存储器保护,标签页系统以及硬件支持的虚拟内存,能够增强多任务处理和系统稳定度。现今大部分的x86操作系统都在保护模式下运行,包含Linux、FreeBSD、以及微软Windows 2.0和之后版本。

另外一种286和其之后CPU的运行模式是实模式,这是一种向前兼容且关闭了保护模式这些特性的CPU运行模式,用来让新的芯片可以执行旧的软件。所有的x86 CPU都是在实模式下引导,来确保传统操作系统的兼容性。为了使用保护模式的特性,要由程序主动地切换到保护模式。在现今的电脑上,这种切换通常是操作系统在引导时候完成的第一件任务。当CPU在保护模式下运行时,可以使用虚拟86模式来执行为实模式设计的代码。

尽管用软件的方式也有某些可能在实模式的系统下使用多任务,但保护模式下存储器保护的特色,可以避免有问题的程序破坏其他任务或是操作系统核心所拥有的存储器。保护模式也有中断正在执行程序的硬件支持,可以实现先占式多任务。

大部分可以使用保护模式的CPU也拥有32位寄存器的特性(例如80386系列和其后任何的芯片),导入了融合保护模式而成为32位处理的概念。80286芯片虽有支持保护模式,但是仍然只有16位寄存器。Windows 2.0和之后版本中的保护模式增强称为"386增强模式",是因为他们除了保护模式外,还需要32位的寄存器,并且无法在286上面执行(即使286支持保护模式)。

保护模式 - 维基百科,自由的百科全书 (wikipedia.org)

第三代

1985年,INTEL推出了80386芯片,它是80X86系列中的第一种32位微处理器,而且制造工艺也有了很大的进步,与80286相比,80386内部内含27.5万个晶体管,时钟频率为12.5MHz,后提高到20MHz,25MHz,33MHz。80386的内部和外部数据总线都是32位,地址总线也是32位,可寻址高达4GB内存。

它除具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力。

80386首次采用了外置缓存

Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义,用于电脑工程领域。PC-AT/XT和80286时代没有Cache,CPU和内存都很慢,CPU直接访问内存。

80386的芯片组增加了对可选的Cache的支持,高级主板带有64KB,甚至高端的128KB Write-Through Cache。

80486 CPU里面加入了8KB的L1 Unified Cache,当时也叫做内部Cache,不分代码和数据,都存在一起;芯片组中的Cache,变成了L2,也被叫做外部Cache,从128KB到256KB不等;增加了Write-back的Cache属性。

Pentium CPU的L1 Cache分为Code和data,各自8KB;L2还被放在主板上。Pentium Pro的L2被放入到CPU的Package上。Pentium 3开始,L2 Cache被放入了CPU的Die中。从Intel Core CPU开始,L2 Cache为多核共享。

缓存 - 维基百科,自由的百科全书 (wikipedia.org)

80386还引入了分页机制

从 80386 开始,内存被分为 4KB 固定大小的“页”,他们在需要使用时载入内存,不需要使用时可以被置换到磁盘上,由分页机制将程序持有的固定的线性地址动态映射到物理地址上。80386采用的是二级页表的设计,二级页表由页目录表和页表共同组成。页目录表中存放的是页目录项,页目录项的大小和页表项一致,为4字节。为了加速多级页表的页表项访问,80386提供了TLB。

第四代

1989年,INTEL推出80486,它实破了100万个晶体管的界限,集成了120万个晶体管。80486的时钟频率从25MHz逐步提高到33MHz、50MHz。

80486首次在片上集成了Cache,与片外Cache构成两级Cache

80486首次采用了五级流水线RISC(精简指令集)技术。它还采用了突发总线方式,大大提高了与内存的数据交换速度。

80486也是INTEL最后一款以数字命名的CPU。

第五代

1993年,INTEL 推出了新品牌Pentium,并发布了P5微架构。P5保持了对80x86的兼容性。

奔腾(英语:Pentium)是英特尔公司的一个注册商标,作为其x86处理器品牌之一,于1993年推出。

以往,“奔腾”是英特尔的唯一的x86处理器产品线,后来随着其产品线的扩展派生出低端的“赛扬”(Celeron)系列、供服务器以及工作站使用的“至强”(Xeon)系列。

2006年英特尔推出“酷睿”(Core)系列处理器产品线,取代原奔腾处理器系列的市场定位。

时至今日,“奔腾”这个品牌仍然继续使用,但市场定位被定位为比低端入门型的赛扬系列高一级、比主流型的酷睿系列低一级的中间级别。

2022年,英特尔决定2023年起在笔记本端放弃奔腾和赛扬品牌,取而代之的为统一的“Intel Processor”品牌。

奔腾 - 维基百科,自由的百科全书 (wikipedia.org)

P5相对于80486的改进包括

  • 超标量(Superscalar)架构 - Pentium拥有两条数据流水线,可以达到在一个时钟周期内完成一个以上的指令。一个流水线(称为"U")可以处理任何的指令,而另外一个(称为"V")可以处理简单的整数及FXCH浮点数指令。使用一个以上的流水线是传统RISC处理器设计的特色,这也是在许多x86平台上第一个实现出来的,显示有将两种技术合并的可能性。
  • 64位外部数据总线 - 将单个总线周期内可传送的数据量翻了一番。64位的数据总线允许Pentium处理器以高达528MB/秒的速率分别将数据写入或读出内存,这比50MHz的Intel 486的峰值传输速率(160MB/秒)高出了3倍还多。这并不表示Pentium可以执行所谓的64位应用程序,它的内部总线和寄存器仍然是32位宽度。
  • MMX指令(只存在于后期的Pentium MMX中)- 一种基本的SIMD指令集扩展,设计给多媒体应用程序使用。

第六代

1996年,INTEL推出Pentium Pro,采用P6架构。Pentium Pro的P6架构是Intel后期数款CPU架构的基础,一直沿用为Pentium 4出现之前的所有Intel主流CPU的设计,后来的Intel Core多核结构也是根据P6架构为单核原型的设计。

P6架构相对于P5的改进包括

  • 外部地址总线扩展至36位,处理器的直接寻址能力达到64GB。
  • 将L2 Cache与CPU封装在一起,L1和L2 Cache具有相同的延迟。
  • 采用动态分支预测技术,通过预测程序流程并分析程序的数据流,可选择最佳的指令执行顺序。

64位时代

2001年,英特尔与惠普联合设计出IA-64架构,IA-64是一种全新的指令集,不与x86兼容,市场反应较冷淡。

而在此时,AMD推出了业界首款64位处理器Athlon 64,带来了称为AMD64的指令集,它是x86指令集的64位扩展超集,具备向下兼容的特点。

AMD64代表AMD放弃跟随Intel标准的一贯作风,类似Intel把16位的8086扩充成32位的80386那样,把x86架构扩充成64位版本,且兼容原有标准。AMD64架构在IA-32上新增了64位寄存器,并兼容早期的16位和32位软件,可使现有以x86为对象的编译器容易转为AMD64版本。

AMD64指令集后来被业界接受,成了 x86 体系在 64 位平台的事实标准。Intel 最终也采用了这种指令集,目前通常称为x86-64。

从32位到64位,表面只是CPU字长增大了一倍,实际上它使寻址范围、最大内存容量、数据传输和处理速度、数值精度等指标都成倍增加,使CPU的处理能力得到大幅提升,尤其是对强烈依赖数值运算、存在巨量数据吞吐和需要超大并发处理的应用提升效果非常明显,如科学计算、人工智能、平面设计、视频处理、3D动画和游戏、数据库以及各种网络服务器等。

标签:保护模式,x86,Cache,简史,64,CPU,Intel
From: https://www.cnblogs.com/vv123/p/17677967.html

相关文章

  • 点了下详情系统,CPU 100%。。。
    作者:玛奇玛链接:https://juejin.cn/post/7233307834456129593又是一个百无聊赖的早晨,我在快乐地摸鱼,工作群响了:离线系统登录不上了。我第一反应是不科学啊,系统已经很久改动过了...赶紧上生产环境看看,CPU高达1200%。接着又是熟练地敲出那几行排查CPU过高的命令:top-H-ppid......
  • 奥林巴斯-半格简史
    针对奥林巴斯pen系列相机整理了下,大致的发布时间线如下表格:pen系列大概分为4类:第一类是基本款:pen,pens,penw,无测光,全手动控制光圈与快门,估焦。正是由于基本款PEN的成功,才有接下来的整个PEN系列。很多人容易把这个基本款与ee系列搞混,可能外形类似吧,但它与ee系列完全是两个......
  • CPU执行程序的过程
    CPU执行程序的过程目录CPU执行程序的过程前言/基础知识为了更好的分析程序的执行过程,我们还需要了解一下基础的计算机硬件信息在执行指令前,我们还需要认识一下CPU中的重要部件:寄存器。特殊寄存器StackPointerregister(SP)LinkRegister(LR)ProgramCounter(PC)WordZeroRegister(W......
  • CPU扫盲
    CPU扫盲目录CPU扫盲指令集指令集概念指令集架构CPU和指令集的关系CPU如何执行指令以及流水线技术指令系统组成地址空间操作数指令操作和编码CPU如何执行一条指令CPU如何执行多条指令RISC-V指令集架构寄存器RSIC-V32I寄存器说明RAISC指令比较指令格式比较寻址方式比较公共指令功......
  • linux查看平均cpu占用率
    如果想要获取平均占用率,可以在top命令后添加"-d"参数,指定刷新时间间隔(单位为秒),例如top-d1这样会每隔1秒更新一次CPU的占用率信息。请注意,top命令会实时显示系统状态,您可以按下键盘上的"q"来退出top命令。......
  • 控制CPU占用率
    控制CPU占用率大概原理就是一段时间计算另一段时间休眠,占比宏观上就可以体现成CPU占用率,由于机器上还有其它程序运行,所以不会很精确。代码Windows版本#include<stdio.h>#include<windows.h>DWORDWINAPIThreadFunc(void*data){constintinterval=100;//总时......
  • ARM和X86、X86和X64、Intel和AMD、CPU和GPU介绍
    一、ARM和X86X86和ARM都是CPU设计的一个架构。X86用的是复杂指令集。ARM用的是精简指令集。指令集其实就是机器码,机器码上是汇编,汇编之上是程序语言例如java、c、c#。复杂指令集是在硬件层面上设计了很多指令,所以编程会简单些。精简指令集是在硬件层面上设计的指令比较少,所......
  • 新品!芯驰D9-Pro六核国产CPU,自主可控、安全可信的高性能显控方案
    前段时间,米尔上市了芯驰D9系列的国产核心板和开发板。这款核心板既能跑安卓、Linux、RTOS系统,还有单核、双核、5核、6核可选,吸引了很多客户来咨询。这次米尔上市了这款基于芯驰D9-Pro的MYC-YD9360核心板及开发板,采用邮票孔连接方式,专为高端显控一体机的应用设计。 D9-Pro的特......
  • 【故障公告】一而再,再而三,三翻四复:数据库服务器 CPU 100%
    会员救园,故障捣乱,每当困难时,故障们总是喜欢雪上加霜过来考验你。今天下班前17:43~17:47期间,园子的SQLServer数据库服务器突然出现CPU100%问题。发现问题后,我们立即火速赶往阿里云RDS控制台,重启了实例,重启后很快恢复正常。快到19点的时候,正当我们准备发布“一而再,再而三......
  • SQL Server优化-CPU居高不下
    1.查看链接对象USEmaster2GO3--如果要指定数据库就把注释去掉4SELECT*FROMsys.[sysprocesses]WHERE[spid]>50--ANDDB_NAME([dbid])='gposdb'2、然后使用下面语句看一下各项指标是否正常,是否有阻塞,正常情况下搜索结果应该为空。SELECTTOP10[session_id],[r......