【芯片学习】X86 CPU 发展历史与分析——1971~2020——明白Intel架构的变迁

Intel 芯片架构设计分析 Intel CPU架构分析 阅读详情
AI摘要

本文详述了Intel x86架构自4004以来的重要发展历程,涵盖了从早期微处理器到现代Core i系列的革新,包括超标量技术、超线程、MMX指令集、Pentium Pro到Core架构的变迁,以及Intel在面对摩尔定律放缓时的战略调整。

近日由于需要,我对x86的CPU架构发展历史进行了调研与学习。目前主流的x86架构,其先进的技术代表厂家就是Intel与AMD,它们相爱相杀的故事广流于家家户户。但是我整理Intel的相关CPU发展就花了2、3个星期(期间还有别的事情),写了我1W5的字,累屎我了,而AMD的相关产品还没来得及整理与写入。关于Intel的芯片发展过程,相关的整理网站其实还不少,但大多数都停在2011年(因为也是那个时候写的),也就是截止到Intel Core架构之前,而后续的介绍文章都很稀碎。我借鉴了很多很多诸如这样的文章与维基百科,主要参考网站都放在了文章末尾,但是没来得及看是否有相关的文献内容,再删减去Intel、AMD、IBM等公司的发展决策与心里路程,仅仅是单单将处理器部分的内容整理出来,形成这篇文章,希望能对自己,以及其他想对ntel x86处理器这么多年来大致的发展过程有些学习的CPU芯片小白们有些许的帮助!

在内容叙述架构上,由于我去年学习了计算机结构体系内容,因此本文主要按照时间顺序,对Intl发布的主要的几个芯片与新架构进行节选与简单的介绍,前期主要记录何时芯片/架构新加入的技术(如超标量与超线程SMT等)以及架构图,也可以从晶体管和主频的快速增长来感受一下摩尔定律;后期比如Core架构,架构图什么的都找不到了,而引入的一些新的技术与指令集我也不熟悉了,整理的内容可能没有写到重点或关键特色,我更关注在多代产品之间相互的关系(因为网上写的我都乱了,比如:Core品牌、Core架构、Core i系列处理器),只能权当给大家参考——尤其是Intel Core挤牙膏系列,写的我很懵逼,有一种“两代产品差别不大”的感觉...

期间我搜寻资料学习时,还发现一位优快云博主,他的博客内容主要是对具体的架构进行更细节的分析,让我如获至宝。若大家看了各个芯片的架构图,还想对每一款的架构进行深入的学习,也可以去看看他的文章:

一凡stkeke_优快云    ,    8086架构/流水线及其优化

 

后续呢,我再抽时间把AMD部分补上~别忘了点赞哦亲~( ̄▽ ̄)"


X86 CPU 发展历史与分析

本文作者:SIST——Yippee

0 前言

PC界有几大优秀的架构代代相传并迭代至今,分别是IBM的Power架构,Intel与AMD相爱相杀的X86架构,移动端独占鳌头的ARM架构,面向高性能科学计算的MIPS架构等。要实现国产的拥有独立知识产权的芯片架构技术,有必要博采众长,学习他人架构之特色而打通各路经脉。

在一学期的学习之后,对计算机体系结构的基础知识也算是有所了解。通过对网上的资料与博文的学习,我按照个人粗浅的理解以及体系结构的各章节要点,对Intel的X86重要的CPU版本进行学习,对其发展过程与演变之路进行一个总结记录。由于时间与篇幅关系,AMD推出的各型号微处理器未记录于其中。此外,同一款微处理器有不同主频的版本,本文只取其最低主频作为参考。

1 Intel X86 CPU的历史发展

1.1 X86架构前的铺垫

1.1.1 4004——首个4位处理器

图1 Intel首个4位微处理器4004

在1971年,年纪轻轻的Intel接到日本Busicom公司的订单,生产出世界首块4位CPU,代号4004。作为Intel 的第一代微处理器,基于P沟道MOS硅栅技术,采取10μm工艺,拥有2250个晶体管,主频740KHz,处理速度达到0.06 MIPS,前端总线为0.74MHz(4位),socket为DIP16。

图2 4004的微体系架构图

4004处理器可以执行4位运算,支持8位指令集和12位寻址,指令集为4位BCD编码。

4004其性能与首台电子计算机ENIAC相似,但体积较ENIAC需占用一个房间而小了很多。当时年仅3岁的Intel的主营业务是DRAM,缺少CPU方面的技术底蕴,但4004代表着Intel处理器序章的开始。

 

1.1.2 8008——首个8位处理器

图3 Intel首个8位微处理器8008

1972年,Intel发布世界首块8位CPU 8008,也是首款在PC上使用的处理器,能够执行8位运算,依然基于P沟道MOS硅栅技术与10μm工艺,拥有3500个晶体管,主频0.5 MHz,处理速度达到0.05 MIPS(略慢于4004),socket位DIP18。

图4 8008的微体系架构图

8008处理器可以执行8位运算,支持14位寻址,可以访问到16KB的内存。虽然其单位时间执行指令数稍慢于4004,但由于其8位运算的优势使其在大多数应用中拥有更好的性能表现。

1.1.3 8080——新工艺

图5 Intel微处理器8080

1972年,Intel发布8080芯片,依然为8位处理器,以N沟道MOS取代了P沟道MOS,使用6μm工艺,拥有6000个晶体管,主频2 MHz,处理速度达到0.64 MIPS,运算速度比8008提升了10倍,socket为DIP40。

图6 8080的微体系架构图

8080是早期8008处理器的增强和拓展:其地址总线为16位,可以访问64KB的内存,是8008的四倍;NMOS取代PMOS的升级;其指令集比8008指令集进一步增强等。8080的成功使其直接影响了后续的x86架构处理器。

1.2 x86架构的开始

1.2.1 8086

图7 Intel首个16位x86架构微处理器8086

1978年,Intel推出微处理器8086,也是第一款16位处理器,采用3μm工艺与特色的x86-16指令集,拥有2.9W个晶体管,主频4.77 MHz,处理速度达到0.33 MIPS,socket还是DIP40不变。在8086中,对单一指令仅仅采用2级步骤完成(取指,执行)同时CPU内只能执行一条指令,非流水线操作。8086所有的内部寄存器、内外数据总线都是16位,因此是完全的16位微处理器。

其带来的主要新特色有:

  1. 在8086中含有2个单元部件:总线BU负责指令的读取与数据传输,执行EU负责执行指令。

  2. 地址分段的内存访问模型。其外部地址总线为20位,可以寻址1MB内存;但是内部地址总线为16位,可以寻址64KB空间。因此内部设立了段寄存器,系统基于“段内偏移”的概念进行内存寻址:由16位段寄存器左移4位作为段基址,加上16位段偏移地址形成20位的物理地址,从而达到最大寻址空间1MB,最大分段64KB。这个模式在后续的80286与80386中被称为“实模式”。

图8 实模式下的内存访问模型

但它也有明显的安全与功能缺陷:在实模式下用户程序和操作系统拥有同等权利,对访问的地址即为物理地址,而同时程序可以随意修改自己的段基址,因此可以随意修改任意物理地址甚至操作系统的内容;同时,因为各程序使用的逻辑地址即物理地址——“所见即所得”——故微处理器无法支持”多任务“功能。

图9 8086的微体系架构图

之后,Intel公司发布了8088处理器,采用x86指令集,实际上是外部数据总线削减为8位的8086;以及同样采用x86指令集,为辅助8086起到数学算术运算的协处理器8087,它能完成专门用于对数、指数和三角函数等的数学计算指令,提升科学运算的效率。8086是最成功的X86架构的鼻祖,其使用的X86指令集不断被使用、拓展至今。一年后,IBM公司于其PC中采用8088芯片,在当时RISC为主流的时代环境中,Intel得以初现锋芒。

1.2.2 80286

图10 Intel微处理器80286

1982年,Intel发布了16位处理器80286。其兼容8086的所有功能,采用1.5μm工艺与相同的x86-16指令集,拥有13.4W个晶体管,主频6 MHz与外频相同,处理速度达到0.9 MIPS,socket为正方形包装的PGA68。在80286中,对单一指令采用3级步骤完成(取指,译码,执行)但是CPU内只能执行一条指令,非流水线操作。其内、外部数据总线皆为16位,地址总线24位,可寻址16MB内存。

图11 80286的微体系架构图

其带来的主要新特色有:

  1. 在80286中含有4个功能部件:指令IU负责指令译码,地址AU负责逻辑地址与物理地址的转换,执行EU,以及总线BU,四个部件并行工作提高处理速度与支持新增加的保护模式的运行。
  2. 从80286开始,CPU的工作方式也演变成两种:实模式和保护模式。

实模式:即原8086微处理器的内存访问方式。因CPU内寄存器数据为16位,只能寻址1MB的内存空间,因此在实模式下CPU基于段内偏移的物理地址形式进行内存寻址,这会带来系统的不安全性与功能限制。

图12 80286保护模式下的内存寻址关系

保护模式:80286中新增的保护模式。是为了改进实模式下内存访问的不安全性,它将内存的管理模式分为纯段模式或段页式,给内存段添加了段属性(如段基址、段界限、类型、DPL等)来限制用户程序对内存的操作权限,让用户程序对内存的访问不再“为所欲为”,从而更好的保护系统。在保护模式下,系统即可使用虚存、页面调度、多任务处理(此时还需要相关部件配合)等功能。

1.2.3 80386

图13 Intel首个32位微处理器80386

1985年,Intel发布了第一款32位处理器80386,采用相同的1.5μm工艺与扩充后的x86-32指令集,拥有27.5W个晶体管,主频12.5 MHz与外频相同,处理速度达到6 MIPS,性能比80286提升约10倍,socket为PGA132。在80386中,对单一指令依然采用3级步骤完成(取指,译码,执行),非流水线操作。其数据总线以及地址总线皆为32位,因此能够寻址4GB的内存空间,因此为保护模式的优化创立条件——虚拟8086模式。

图14 80386的微体系架构图

其带来的主要新特色有:

  1. 在80386中,引入了新的处理器工作模式——虚拟8086模式:当处理器进入保护模式后,基于实模式的应用就不能直接运行了,而PC在刚刚启动进入DOS时是实模式,当操作系统(主流OS如如Linux、Windows)运行后就工作在保护模式,而保护模式不能切换回实模式。虚拟8086模式实际上就是运行在保护模式中的实模式,其指利用硬件级虚拟化技术,模拟出多个8086芯片,达到实模式的应用(8086程序)能以任务的形式工作在基于保护模式的操作系统上,真正实现各色程序的多任务处理功能。于是80386共具有三种工作模式:实模式,保护模式和虚拟模式,同时能兼容之前的老机型程序。
  2. 首次引入了L1 Cache(片外),极大的提高了CPU访问内存的效率。从此,cache在CPU中的地位便不可或缺。
  3. 添加了内存管理单元(MMU),从而使得处理器能够有内存保护,存储器分页管理机制等功能。
  4. 指令集扩充增加了一些内容等。

 

80386位处理器,配合80387协处理器在当时已经可以完成AutoCAD的FLOPS计算。而80386作为首款32位微处理器以及其新增加的各色功能,不仅使Intel成为PC界的领头羊,更是具有划时代的重要意义。

1.2.4 80486

图15 Intel微处理器80486

1989年,Intel发布了32位处理器80486,采用1μm工艺,指令集为x86与x87的集合(增加了浮点运算部件),拥有120W个晶体管(突破百万晶体管的界限),主频25 MHz,处理速度达到20 MIPS,socket为PGA。

图16 80486的微体系架构图

其带来的主要新特色有:

  1. 在整数处理单元中首次引入了流水线(pipeline)的概念,采用了RISC的技术,建立了五级流水线(取指,译码,转址,执行,写回),使得每一级流水线在同一时刻都运行着不同的指令而不是同一时刻仅有一条指令于CPU中,实现一个时钟周期内完成一条指令。虽然当时80486依然是采取顺序执行,但此设计依然使80486的提升为同频率的80386处理器的2倍性能。同时,引入Forwarding技术解决data hazard问题;并通过“Pre-fetch”的方式加快指令分支操作。
  2. 片内集成了指令数据统一的8KB L1 Cache,同时支持外部L2 Cache。
  3. 片内集成了增强型FPU单元,其浮点性能甚至明显快于80387。
  4. 提出了时钟倍频技术:由于CPU主频的快速提升,而总线外频速度没有跟上,因此Intel在80486中应用了倍频技术,使得CPU的主频通过倍频器等于外频乘上一个倍数(2倍或3倍),进而保持增长。
  5. 改进了MMU的性能,同时对指令集进行了一定扩充,如XADD,BSWAP,CMPXCHG,INVD,WBINVD,INVLPG。
  6. 采用的新的内部总线传送技术上:突发传送方式,大大提高了与内存的数据交换速度。

1.3 P5架构——Pentium与Pentium MMX

1.3.1 Pentium

图17 Intel微处理器Pentium

1993年,Intel发布了32位处理器Pentium,又被号为80586,使用的超标量 x86微体系架构(称为P5架构),是8086兼容处理器系列中的第五代主要产品,指令集非常接近80486与80386,仅仅做了简单的指令内容增加。其采用0.8μm工艺,拥有310W个晶体管,主频60MHz,处理速度达到100 MIPS(80486的四倍性能),插槽采用Socket4/5/6.

图18 Pentium(80586)的微体系架构图

其带来的主要新特色有:

  1. 是第一个采用超标量技术Intel微处理器,拥有2条并行的整型pipeline:pipeline U处理任意指令,pipeline V吸收了RISC的特色而负责处理简单通用指令,从而提升系统的运行效率。
  2. 由于超标量结构需对数据和指令进行同时读写,因此引入对L1 Cache进行数据指令分离:各单独的8K数据L1 Cache和8K指令L1 Cache,减少了指令、数据以及读/写hazard。但L2 Cache依然是片外的。拥有单个更快的浮点数单元,整个系列的CPU浮点性能都很不错。最显著的是FMUL功能,吞吐量比80486 FPU高出15倍。但可惜此浮点单元爆出存在Bug,使得极少数情况下导致除法运算的精度降低,饱受批评。
  3. 引入了MESI的Cache coherence协议,实现更高效的cache写回。
  4. 实施了分支预测算法(Branch Prediction)来提前预取指令,避免不必要的闲置等待,引入了Branch Target Buffer(BTB)结构以及Instruction Prefetch Buffer.
  5. Pentium的制造工艺优良,可超频性能很好,使得“超频”概念在市场中流行起来。
  6. 从Pentium开始,CPU封装出现扇热盖的设计,已解决突显的CPU的发热问题。

 

虽然Intel在Pentium实现了超标量、cache分离、分支预测等新技术,但要注意的是,此时Pentium依然采取in-order执行(指令);同时CPU面对data hazard时pipeline中依然会出现stall。

1.3.2 Pentium MMX

1996年,Intel推出了基于P5架构的微处理器Pentium MMX,添加了MMX指令集,是对P5架构的一次关键升级。采用0.35μm工艺,拥有450W个晶体管,主频166MHz,插槽采用Socket7.

图19 Pentium MMX的微架构图

其带来的主要新特色有:

  1. 添加了Intel的MMX (Multi-Media Extension)指令集,目的是增强提升CPU在2D音像、图形和通信等多媒体应用对诸如编码与解码等工作的效率(只局限于整数的运算)。在架构中,Intel定义了八个64位SIMD寄存器与负责相关快速执行的硬件,由这些硬件需要而对指令集进行相应补充拓展。为CPU增加了57条MMX指令,
  2. L1 Cache升级为双倍大小:将CPU芯片内的L1 Cache由8KB指令+8KB数据增加为16 KB指令+16 KB数据Cache,在Pentium MMX中没有集成当时卖力不讨好的L2 Cache,而是独辟蹊径采用MMX技术去增强性能(如上所述)。

 

而有了上述两种改进方式,MMX CPU比普通CPU在运行含有MMX指令的程序时,处理多媒体的能力上提高了约60%。由于应用程序都支持MMX指令,这一步操作也增强了英特尔在该领域的垄断地位。MMX技术不但是一个创新,而且还开创了CPU开发的新纪元,后来的SSE,3D NOW!等指令集也是从MMX发展演变过来的,而这种附加指令集机制也成为后来所有x86处理器的基准。

1.4 P6架构——Pentium Pro/Ⅱ/Ⅲ

1.4.1 Pentium Pro

图20 Intel微处理器Pentium Pro

1996年,Intel发布了32位处理器Pentium Pro,此为新的P6架构。其采用相同的0.35μm工艺与x86指令集(没有支持MMX指令集),拥有550W个晶体管,主频150MHz,处理速度达到440 MIPS(是Pentium的2~3倍性能),插槽采用Socket8.

其带来的主要新特色有:

  1. 首次实现CPU的L2 Cache的片内集成,采用了16KB片内L1 Cache(合计)与256KB L2 Cache。Intel将CPU与L2 Cache两个芯片之间用高频宽的内部通讯总线互连,使得L2 Cache与CPU同速,运行在更高的频率上。
  2. 实现了3路超标量(之前是Pentium中引入的2路超标量)。
  3. 实现了指令流水线的乱序执行(OoO-E),这是在Pentium超标量结构后的又一次飞跃。Pentium Pro采取的是Tomasulo动态执行算法,其策略是顺序发射,乱序执行,按需提交,使用了Reorder buffer与Register renaming,以及12级pipeline(也有文献说11级或14级)。

图21 Pentium Pro的微架构图

Pentium Pro的P6架构标志着Intel x86处理器的架构已经基本成型,之后的Pentium Ⅱ直到Pentium 4,都没有脱离这个体系,学好Pentium Pro的微架构更是后续学习Core架构的重要基础!

不过当时Cache技术还没有完全成熟,且Cache非常昂贵,因此尽管Pentium Pro性能不错,却远没有达到甩开对手的程度。而其高昂的价格,使得Pentium Pro成为Intel第一个失败的产品,成为了典型的“叫好不叫座”的产品。但Pentium Pro的设计思想和总体架构却对Intel此后的处理器设计造成了深远的影响,其中L2内嵌的模式一直沿用至今。

1.4.2 Pentium Ⅱ

图22 Intel微处理器Pentium Ⅱ

1997年,Intel发布了基于Pentium Pro的P6架构(此乃Pentum Pro的优点)的32位处理器Pentium Ⅱ,是对Pentium(P5)与Pentium Pro(P6)的改进版,其内核代号Klamath,采用0.35μm工艺并支持x86指令集、MMX指令集(此乃集合Pentium的优点,Pro中没有支持MMX),拥有750W个晶体管,主频233MHz,集成了32KB片内L1 Cache(合计)与512KB 片外L2 Cache(合计),socket为Slot1。

其带来的主要新特色有:

  1. L2缓存不再与CPU核心保持同速,考虑到Pentium Pro的失败,以此降低成本。
  2. 采用了双重独立总线结构,一条总线连通L2 Cache,另一条负责DRAM。
  3. 首次采用了最新的solt1接口标准,不再用陶瓷封装,而采用了一块带金属外壳的印刷电路板。

图23 Pentium Ⅱ的微架构图

Pentium Ⅱ基本上是面向消费者的奔腾Pro,整体上与Pentium Pro很相似,只是缓存方面有些不同,而之后随着Pentium Ⅲ的发布被快速取代。但Pentium Ⅱ时期,Intel发布了在PC的商业领域做了很多改进,例如用SDRAM内存取代了老式的EDO DRAM;PC开始引入AGP显卡;发布了面向入门级市场的Celeron(赛扬)系列(即削减了L2 Cache的Pentium Ⅱ,以超频与低价为特点),以及面向服务器市场的高端处理器Xeon系列(即增强了Cache的版本,以高频与大cache为特点);开始发布移动版本(面向低能耗)的Pentium Ⅱ等等。

1.4.3 Pentium Ⅲ

图24 Pentium Ⅲ的微架构图

1.4.3.1 第一代Pentium Ⅲ内核——Katmai.

1999年,Intel发布了32位处理器Pentium Ⅲ,第一代内核代号Katmai,其实就是PentiumⅡ的简单改进版。采用0.25μm工艺,指令集为IA-32(即x86)、MMX、SSE,拥有950W个晶体管,主频500MHz,处理速度达到,socket与Pentium Ⅱ相同为Slot 1。

Katmai除了支持SSE指令外其他方面与Pentium II是几乎一样的:

SSE(Streaming SIMD Extensions)指令集,共包含70条指令,其中50条SIMD浮点指令,12条全新MMX指令和8条系统内存数据流传送优化指令,目的是对3D游戏性能的显著提升(MMX指令集的不足),兼容MMX指令集。由于MMX指令集会借用原浮点寄存器而影响浮点运算的性能,于是Intel为SSE指令集新增了8个全新独立的的128位单精度寄存器,能同时处理4个单精度浮点变量,使得SSE指令集能与其他浮点运算并行。

1.4.3.2 第二代Pentium Ⅲ内核——Coppermine.

八个月后,Intel发布了第二代的Pentium Ⅲ,其内核版本为Coppermine, 采用新的0.18μm工艺,主频733MHz,是Intel历史上首款达到1Ghz的X86处理器。

其主要特点有(并非新元素):

  1. 集成了32KB片内L1 Cache以及256KB片内L2 Cache(两个都是片内)(之前Pentium Pro中首次实现,这里L1变大了);
  2. 12级流水线设计,与后面推出的Pentium Ⅳ架构比短小精悍了,且耗电量低;
  3. 3 路超标量架构(之前Pentium Pro中首次实现);
  4. 插槽也更改为Socket 370。

 

一般认为,Coppermine才是真正意义上的Pentium,其拥有新架构、新制造工艺、新接口对性能的提升相当巨大,对日后Intel的架构影响深远,后来Intel的Pentium-M以及今天的Core微架构都是脱胎于Coppermine。题外话,在PentiumⅢ的移动版(即Pentium-M架构)中Intel还第一次引入了SpeedStep技能技术,是Intel全新的节约能源技术。

1.5 NetBurst架构——Pentium Ⅳ

图25 Pentium Ⅳ的微架构图

1.5.1 第一代Pentium Ⅳ内核——Willametle.

2000年,Intel发布了第一款32位Pentium Ⅳ处理器,并没有沿用Pentium Ⅲ的P6架构,而是重新设计了新微架构NetBurst。第一款Pentium Ⅳ的内核为Willametle。采用0.18μm工艺,拥有4200W个晶体管,主频1.4GHz(轻松过GHz),采用QPB型FSB,外频达到了400MHz,接口方式为Socket423。

其主要特点有:

  1. 20级超标量pipeline,并用各种技术来代偿pipeline停顿产生的性能损失,诸如并行执行,缓冲技术,和投机执行技术。
  2. 采用了奇贵的RDRAM来满足Pentium 4的带宽需求。
  3. 在前端总线引入QDR技术:在总线的通信信令角度,于DDR的基础上,增加为独立的写接口和读接口,以此达到4倍速率。
  4. 第一次引入SSE2指令集。SSE2指令一共144条(SSE包括70条指令),引入新的数据格式,如:128位SIMD整数运算和64位双精度浮点运算等。

尽管有着更高的时钟频率,但Willametle同频率的性能表现比AMD的Athlon差了不少,甚至是自家的Pentium Ⅲ在相同的频率下都运行的比它快。同时Willametle不仅发热量大,又采用了价格昂贵的RDRAM,最终成为公认的失败之作,甚至成为高噪音低性能的代名词。

1.5.2 第二代Pentium Ⅳ内核——Northwood.

一年后,Intel发布了第二款Pentium Ⅳ,内核代号Northwood。采用精进的0.13μm工艺,拥有5500W个晶体管,主频2GHz,集成了片内512KB L2 Cache,socket为Socket478,

其主要特点有:

  1. 内存改用便宜的DDR SDRAM。
  2. 第一次引入超线程技术(Hyper-Threading),也即是课程中学的Simultaneous Multithreading(SMT)(学术叫法),其实就是以CPU/pipeline的利用率为最大优先,按照“优先将不同线程之间没有hazard的指令装入超标量pipeline”的动态执行的思想来实现系统更高的综合吞吐量。

1.5.3 第三代Pentium Ⅳ内核——Prescott.

2004年,Intel发布了32位处理器,内核代号为Prescott的Pentium Ⅳ的重要修订版。采用90nm工艺,拥有1.25亿个晶体管,最高的版本主频达到了3.8 GHz,socket为LGA775。

其带来的主要新特色有:

  1. 超深流水线:31级pipeline.
  2. 第一次引入SSE3指令集。于SSE2的基础上又新增加了13条新指令,一条用于视频解码,两条用于线程同步,其余用于复杂的数学运算、浮点到整数转换和SIMD浮点运算。
  3. 硬件防病毒技术EDB,与OS相配合后可以防范大部分缓冲区溢出攻击。
  4. 加入了节能省电技术EIST,即Pentium-M架构中的SpeedStep技术的改良版,最早在Pentium-M架构中使用。其作用是由OS控制,在CPU使用率低时动态降低CPU的倍率与工作频率,从而实现能耗的降低。
  5. 虚拟化技术Intel VT,作用是让一个CPU工作起来像多个CPU在并行运行,使一部电脑内同时运行多个OS成为可能。

Intel将Prescott接口类型的从Socket 478到LGA775,原本是希望能将发热降低,却实际上产生了反作用——功率消耗增加了大约10%,再加之90nm的工艺在当时还不够完满,最终Prescott每个时钟周期比Northwood多产生大约60%的热量。Prescott的整体功耗轻松超过百瓦大关,基本上属于火炉级别。

1.5.4 第一款双核微处理器Pentium D.

2005年,Intel发布了“双核”微处理器,Pentium D ,采用与Prescott相同的90nm工艺与socket接口,实际上就是把俩Prescott集成到一个芯片上:一共有两个die,一个die一个core,而两个core之间的通信不能走内部总线而是走北桥,被AMD嘲讽为“伪双核”。而其巨大的功耗150w,更不是开玩笑的。

 

总结一下Pentium Ⅳ或NetBurst微架构的核心理念,四个字概括:频率至上。Intel为了与AMD的产品有所区别,而决策开发更高的时钟频率,是经典的市场驱动技术案例。为了实现更高的频率,把流水线的级数越拉越大,但pipeline的各级效率也因此降低!而更高的频率,带来的日益严重的高耗能、高发热以及平庸的性能,使得Pentium Ⅳ被最终放弃并转入Pentium-M架构,而Intel宣传的Pentium Ⅳ能达到10 GHz的目标也因为散热问题化为泡影。这告诉我们,处理器的设计过于被市场需求而不是被架构本身所控制,势必或导致产品本身慢慢地走向歧途。

1.6 移动端架构Pentium-M

2000年后,便携式PC的需求开始爆发增长,而Intel的相关产品仅有P3与P4架构系列。而P4架构的高能耗高热量难以承载此应用场景——Pentium 4-M功耗35w太高,这使得Intel急需专门研发新的架构来满足移动便携市场的低功耗需求(在此前用Pentium 3-M凑活用)。于是,Intel在基于P6架构(Pentium  Pro/Ⅱ/Ⅲ)上研发出了Pentium-M架构,此架构的处理器拥有超越P4的高性能,而且功耗超低,在移动平台留下了深深的烙印。

 

1.6.1 第一代Pentium-M内核——Banias.

2003年,Intel发布了第一代Pentium-M架构,内核代号为Banias,是对Pentium Ⅲ(即P6架构)的重大修改(Pentium Ⅲ又是在Pentium Pro基础上改的),采用130nm工艺,拥有7700W个晶体管,主频为1.3GHz~1.6GHz(性能堪比Pentium Ⅳ的2.8GHz),插槽使用了Socket 479(实际上仅478个针脚,且各针脚的定义与桌面款的Socket 478不一样)。

其带来的主要新特色有:

  1. Banias的TDP(最大散热功耗)只有24.5w,再配合其他节能措施,能够使得笔记本电脑的电池时间提升到3小时以上(比以往架构多了1小时的续航能力)。
  2. 12级流水线。远远小于NetBurst的流水线长度,既保证了性能也不至于功耗的过高。
  3. 64KB 的片上L1 Cache;4部分合计总大小为1MB的片上L2 Cache,可支持单独访问,实现省电降功耗低的目的。
  4. 改进的分支预测和预取机制,预测比Pentium Ⅲ高20%(presccot的核心成果);
  5. 第一款x86支持Micro-ops Fusion(微操作融合):在指令解码后的多个微操作作为一个bundle,待它们所需的处理单元都在pipeline中空闲时共同输入pipeline中,以提升pipeline的吞吐量。

同时,Intel推出了Centrino(迅驰)平台——将Pentium-M CPU、i855系列芯片组和802.11b无线网卡捆绑销售——大获成功,也推动了802.11b无线网络的普及。

1.6.2 第二代Pentium-M内核——Dothan.

2004年,Intel推出了二代Pentium-M架构,内核代号为Dothan,采用更精进的90nm工艺,拥有1.4亿个晶体管,主频为1.7GHz~~2.0GHz。

其带来的主要新特色有:

  1. TDP功耗降低到21瓦(比Banias低3.5w)
  2. 64KB 的片上L1 Cache;2MB的片上L2 Cache(两倍于Banias,与Banias同技术)
  3. 基于Dothan的二代迅驰平台推出了54Mb/s的802.11g无线网络,带动了整个无线设备市场的更新换代。

最终可以得到,Dothan的综合性能大多数情况比Banias高出10-20%。

1.6.3 第三代Pentium-M内核——Yonah.

图26 Yonah微架构图

2006年,Intel发布了第三代Pentium-M架构,内核代号为Yonah,以Core(酷睿)品牌发行,是英特尔史上第一种原生双核心x86处理器,其本质是两个Dothan的整合,具体的处理器产品系列号为Core Duo。Yonah采用65nm工艺,主频自1.06 GHz到2.33GHz,采用12级流水线(3.8GHz的Pentium 4完全没法和Yonah相比),接口为Socket M。

其带来的主要新特色有:

  1. 新加入共享缓存设计:两个Core可以共享2MB二级缓存,而不是独享,显著提升了双核处理器的任务配合能力。
  2. 加入了SSE3指令集、英特尔虚拟化技术(Intel VT)与英特尔病毒防护技术(Intel EDB),加入了之前在Pentium Ⅳ首次实施的技术。

Yonah是第一款面向便携式电脑设计的真双核X86处理器,拥有极佳的性能(比Pentium 4快多了),保有24瓦的超低功耗水平,TDP功耗提升到31瓦,在市场上取得了巨大的成功;其唯一的缺点就是依然是32位处理器。之前的Pentium D双核是一个外壳内封装两个处理器,两个die两个core;而Yonah是一个die两个core。作为Core品牌的第一款处理器,Yonah实际上却没有使用Core 2的架构,而是Pentium-M架构。

在此阶段,P5与P6架构的荣光也就此落幕,而Pentium 4系列更是无地自容,使Pentium 4开发团队引咎辞职。

1.7 Core 2系列(Core架构)

图27 Core微架构图

Intel发布了基于Core品牌的内核Yonah,但Yonah的架构是采用Pentium-M,而真正意义上的Core架构却是从Merom内核开始(同时Intel称之为Core 2系列),其具体的产品系列代号为Core 2 Duo。

2006年7月,Intel发布了第一款Core架构的内核Merom(移动端),是建立在Pentium-M架构(Yonah)基础上,融合了Pentium Ⅳ的经验与教训的产物。采用65nm工艺,使用x86_64指令集,接口采用Socket M。

其带来的主要新特色有:

  1. Merom实现了指令四发射:Merom将指令分为20%热指令与80%冷指令,可同时解码四道指令。相比RISC增加并行指令发射数目简单,CISC乱增加发射数目会导致频率上不去,因此之前的x86处理器只能做到三发射(此时的AMD K8架构也只能实现三发射),这说明在Merom中实现了指令解码效率提升了33%。这项成就是Core微架构的最大变化之一,一直是当时英特尔的技术壁垒;其竞争度对手AMD的K10架构、新一代(当时)“推土机”架构统统都没有实现四发射,直到Zen 架构中才实现这项技术。
  2. Macro-Ops Fusion(宏操作融合)——如CMP指令和JMP指令融合,可实现在指令解码阶段,对多条常用指令组合进行宏代替,实现解码效率提升与加速并降低功耗,此技术比Micro Fusion(微操作融合)用的更广泛。
  3. 第一个采用Intel-64(EM64T)架构的Intel移动处理器。说起64位指令集,同样的64位拓展指令集却有好几个名字,千奇百怪容易乱,我细细整理后是这样的过程:

以前Intel的32位x86指令集被称为IA-32;后来Intel开发出独立的64位、与x86架构完全不同又不兼容的IA-64架构;IA-64不兼容IA-32使得AMD开发出的64位指令集AMD-64(兼容IA-32)在市场上认可度很高,Intel也有模有样的开发出自己版本的“AMD-64”,命名为Intel-64,又称IA-32e或EM64T。而市场上统称IA-64与AMD-64为x86-64指令集。

 

因为Core微架构是Intel在Yonah微架构基础上改进而来,其架构与Yonah架构的内部结构是几乎相同的。 它们具有相同的解码流程、乱序执行流程、简单解码单元与复杂解码单元相配合的设计、共享式二级缓存的设计,只是在解码单元与执行单元的数量、内部总线的宽度以及各个缓冲区的容量上的差异。

后来Intel在台式机市场也推出Core 2系列,内核为Conroe(扣肉)的双核处理器,在内部架构上同Merom没有任何区别,功能上也完全一致,只是作为台式机可以具有更高的频率(虽然不如Pentium Ⅳ高,但性能是能虐虐它的)。上述这些技术使Core架构极大幅度提高了性能也显著降低了功耗(移动端Merom提升幅度没桌面端大,因为Yonah本身性能很不错)——与Pentium D相比,Conroe的性能提高了40%,功耗却降低了40%。最终摧枯拉朽地击败了当时的AMD的Athlon X2系列,其只能依靠性价比优势进行突击。

在服务器市场,Intel推出了内核Penryn,即采用45nm工艺的Merom,四核处理器,新增了一些功能:①加入了SSE4指令集——又增加了50条新的增加性能的指令,这些指令有助于编译、媒体、字符/文本处理和程序指向的加速;②增强型动态加速技术(Enhanced Dynamic Acceleration Technology)——可以让一个内核睡眠而令一个内核加速。

1.8 Core i系列——挤牙膏到今天的Intel

自2007年始,Intel实施了Tick-Tock的发展模式(2年周期),从而使芯片设计制造业务更有效率:Intel将在奇数年(Tick)推出新制成工艺;偶数年(Tock)推出新架构的微处理器。而Tick-Tock战略也被很多用户戏称为“挤牙膏策略”——每一代处理器之间的性能差距将会很小。

图28 Intel的Tick-Tock发展战略

而在2016年,Intel宣布Tick-Tock将放缓至三年一周期,从2年的Tick-Tock(工艺-架构)模式更改为2年周期的PAO(Process-Architecture-Optimization,工艺-架构-优化,又称Tick-Tock-Refresh)模式,原因就是制造工艺的瓶颈!

10nm工艺被认为是硅基半导体的转折点;再往后的7nm工艺则已经进入量子学范畴,使得半导体特性都有变化了,所以研发难度更大,量产良品率也低,需要更多黑科技材料以及新一代EUV光刻设备。如果不对材料进行改进,随着晶体管越来越小、晶体管密度越来越大,随之出现的日益严重的漏电和发热问题。Intel的7nm芯片按照PAQ模式应于2020年发布,结果也延期至2022年了,真的是连“牙膏”都难挤出来了呀。而“摩尔定律将死”的呼声也开始流传开来。

在2015年,Intel就卡在14nm到10nm工艺之间,后来进入10nm——仅仅相当于20个硅原子宽度——制程后,其制造难度让原本的芯片研发周期更是无法适应,这使得Intel不得不延长原制成的使用周期。更何况Intel是“自产自销”模式,靠自家晶圆厂而不像AMD找台积电代工生产芯片,有报道称其10nm晶体管密度与台积电7nm晶体管密度相当,从而7nm制程良品率限制更多。

1.8.1 Nehalem架构

1.8.1.1 Tock——Nehalem

2008年11月,Intel推出了升级架构Nehalem,内核代号也是Nehalem,采用45nm工艺不变,是第一代Core i系列处理器。Nehalem是在Core架构上进行改进的,主频为1.06GHz~3.33GHz,核心支持2-8核,接口采用LGA1366。Intel按照i7、i5、i3的顺序发布i系列处理器,来分别对应高级、中级与入门级市场,采用相同的内核架构。

图29 Nehalem架构图

其带来的主要特色有:

  1. 首次引入了睿频加速技术(Intel Turbo Boost 1.0),即使得CPU会根据当前的任务量自动调整主频甚至自动超频,实现性能与省电策略的最大化。
  2. 重新引入了超线程技术(在Pentium Ⅳ中首次引入)。
  3. 三级Cache:其单核L1 Cache为64KB ,单核L2 Cache 256KB,共享L3 Cache 4MB~24MB;减少了L2/L3 Cache Line大小(自Netburst的128KB改为64KB,与Pentium-M架构相同),扩大了共享的L3 Cache大小。
  4. 将内存控制器集成于片内(Integrated Memory Controller,IMC),直接取消了北桥芯片组。内存控制器决定了计算机系统的内存参数与性能,CPU与内存的通信原本要经过北桥,其带宽受到前端总线FSB的限制难以提升。Intel在Nehalem采用了新的直连架构,使CPU到内存的路径更短,同时采用片内全新的QPI(Quick Path Interconnect)总线技术(支持多处理器以及允许core间内部互通),来大幅度提高CPU与内存的I/O性能,并支持三通道DDR3。
  5. 支持四种分支预测predictor:Branch Target Buffer(BTB), Loop Detector, Indirect Branch Target Array和Return Stack Buffer (RSB)。
  6. 20-24级pipeline。
  7. 采用64位宏操作融合(MOF)技术。
  8. 指令与数据共存的二级4路TLB(sTLB)。
  9. 增大了Core的大小,从而实现更高的性能。比Penryn(Merom内核的后续精工艺版)降低了30%的功耗,平均提高了15%-20%的单周期性能(单线程/多线程都有不错的提高)。
  10. 降低了架构中原子操作的50%时延,例如加锁操作的Compare-and-Swap(CAS) 指令。

1.8.1.2 Tick——Westmere

1年后的2010年1月,Intel推出了采用升级工艺32nm的Westmere内核,架构依然是Nehalem,接口采用LGA1156。Westmere最大的变化就是片内集成了GPU(核显),虽然性能不行但抢占了AMD宣传好久APU核显的先机,间接影响了Navida放弃芯片组市场。

1.8.2 Sandy Bridge架构

1.8.2.1 Tock——Sandy Bridge

2011年1月,Intel推出了升级架构Sandy Bridge,内核代号也是Sandy Bridge,采用32nm工艺不变,是第二代Core i系列处理器,其架构是Nehalem的后继者。其主频为1.6GHz~3.6GHz,接口采用LGA1155,依然是64KB-256KB-2MB(per core L1, per core L2, shared L3)的Cache模式。

图30 Sandy Bridge其内Die示意图

其带来的主要特色有:

  1. 对集成的GPU架构进行修改,真正实现将GPU与CPU融合的核显(Integrated Graphics Processor,IGP),使核显的性能增强,直逼低端的独显,同时核显可以访问共享的L3 Cache。
  2. 采用了环形总线(Ring Bus)来链接各个core以及其L1/L2 Cache,从而以简介、高效又灵活的方式使多核之间的通信与交互变得简单。
  3. 支持了AVX 256-bit指令集是Sandy Bridge最重要的改进,实现浮点性能、矩阵计算快90%。AVX指令集是X86指令集的SSE延伸架构,其全新的命令格式系统同时也为AVX指令集的大幅度后续扩充做好了准备。
  4. 支持Intel Quick Sync Video技术,目的是加速硬件视频解码。
  5. 使用了新一代智能动态加速技术(睿频2.0)(Intel Turbo Boost 2.0,上一个版本用在了Nehalem上),增强了CPU自动提速的弹性,除CPU外还可对GFX(核显)进行加速,并随着系统负载的不同协调二者的频率升降,表现得更加智能化。
  6. 支持双通道DDR3-1600;
  7. 采用14到19级的pipeline(取决于微操作cache是否命中)。

图31 Sandy Bridge的Ring Bus结构

 

这一时期AMD大力鼓吹异构计算,其Fusion APU概念让Intel压力山大。

1.8.2.2 Tick——Ivy Bridge

2012年4月,Intel推出了采用升级工艺22nm的Ivy Bridge内核,架构依然是Sandy Bridge,是第三代Core i系列处理器。其主频为1.4GHz~4.1GHz,接口采用LGA1155不变,依然是64KB-256KB-2MB(per core L1, per core L2, shared L3)的Cache模式。

图32 Ivy Bridge其内Die示意图

Ivy Bridge是Sandy Bridge的工艺改良版,并没有对架构做出太大修改,其带来的主要特色有:

  1. 首次采用了22nm 3D晶体管工艺,是今后Intel半导体工艺的重要基础;
  2. CPU内部PCI-E控制器也升级到PCI-E 3.0标准,带宽提升了一倍,分配方式也更灵活;
  3. 集成GPU得到一定增强,其EU(类似CPU中的ALU,EU是GPU的基本运算单元)数从12个提升到16个,API支持从DX10.1升级到了DX11。

1.8.3 Haswell架构

1.8.3.1 Tock——Haswell

图33 Haswell其内Die示意图

2013年6月,Intel推出了升级架构Haswell,内核代号也是Haswell,采用22nm工艺不变(更成熟,大幅改善因量子穿隧效应而导致的漏电率),是第四代Core i系列处理器。其Cache依然是64KB-256KB-2MB(per core L1, per core L2, shared L3)模式,接口采用LGA1150。

图34 Haswell架构图

其带来的主要特色有:

  1. Haswell最引人注目的地方就在于各种节能设计:主板上的电压调节模块(VRM)集成到了CPU内部,称为FIVR模块(全集成式电压调节模块),是Haswell节能设计的一个重大基础,能够实现对CPU内部电压更精准的把控与功耗管理、主板的供电效率的提升以及简化主板设计。
  2. 增加了两个指令集:针对多线程应用的TSX扩展指令,以及AVX指令的进阶版AVX2指令集。
  3. 从Haswell架构开始,核显开始模块化、可扩展的设计并使用Gen7.5架构,方便走后续暴力堆砌核显规格的道路——最高级的核显拥有40个EU,还有大容量eDRAM作为L4 Cache,可同时提升CPU与GPU性能。

1.8.3.2 Tick (Process)——Broadwell

2014年1月,Intel推出了采用升级工艺14nm的Broadwell内核,架构依然是Haswell,是第五代Core i系列处理器。

Broadwell主要用在移动与服务器平台上,且国内没有正式上市所以没啥存在感。实际上,Intel自己也在2014年承认在生产14nm工艺的Broadwell就卡了很久(良品率不够),以至于砍掉了Broadwell的桌面版,而直接在Tock年推出了后续的Skylake新架构。

另一方面,Broadwell也不过是Haswell的工艺增强版:Intel表示14nm工艺的每瓦性能比是22nm工艺的2倍;在诸如sTLB的大小、某些指令的延迟、指令调度队列大小等参数上进行了优化改动;实现了IPC提升约5%;同时对核显也进行了一定的优化,使用Gen8架构;微处理器接口也采用LGA1150不变。Broadwell几乎没有对架构进行太多改动。

1.8.4 Skylake架构

1.8.4.1 Tock (Architecture)——Skylake

2015年8月,Intel推出了升级架构Skylake,内核代号也是Skylake,采用14nm工艺不变(但比Broadwell更成熟),是第六代Core i系列处理器。其最高主频高达4.5 GHz,接口采用LGA1151。

Skylake同时升级了架构、工艺及核显等,四核称为标配,其带来的CPU主要特色与改进有:

  1. 内存同时支持DDR3与DDR4,实现DDR3、DDR4 的无缝接轨。
  2. 更先进的14nm工艺(Broadwel太菜啥也不是),使用了第二代FinFET晶体管技术,缩小了晶体管的体积,提升了其密度,优化了漏电问题,使Skylake在提升了频率与性能又明显降低了TDP功耗(四核处理器的TDP从Haswell)。
  3. 取消了Haswell中引入的FIVR电压控制模块,使电压控制功能重新回归主板上。因为实现片内集成FIVR电压控制模块增加了处理器的复杂性,虽然FIVR能更易于处理器进行功耗管理,但却也会增加TDP功耗。
  4. 使用网状总线架构(mesh bus)代替原来的ring Bus(环形总线架构)。这是因为ring bus的特点是随着核数的增加延迟时间也会增加,当核心数较多时ring bus的是延迟就会比较明显。在Skylake架构的Intel Xeon E7 v4处理器中,内核数量已经达到24个。
  5. 解放了一定的外频,从而强化了可超频性,令Skylake的超频性能很好。

 

在GPU方面,Skylake核显与Broadwell相似,但使用Gen9架构,每组Subslice(GPU中多个EU加上一些附属部件组合而成)单元依旧是24个EU,但整体规模变得更大了(暴增到72个EU)。

1.8.4.2 Optimization——一堆细灰级更新

2016年8月,Intel推出了采用工艺14nm的Kaby Lake内核,架构依然是Skylake,是Skylake的第一个优化版本,主要改善能耗比,是第七代Core i系列处理器,接口也采用LGA1151不变。

其增加的细微优化内容例如:

  1. Intel在Kaby Lake上升级为14nm+工艺,采用了更高的鳍片与更宽的栅极间距(晶体管上的),从而降低晶体管密度、减少漏电概率,如此一来可以实现更高的频率但功耗能没什么变化。
  2. 在GPU方面采用全新的图形架构——使用Gen9.5架构,增加了H.265 Main.10、VP9 8/10-bit等格式的硬件解码与编码,可大幅降低3D图形和4K视频播放时的功耗。
  3. 支持DMI 3.0(Direct Media Interface,直接媒体接口)以及Thunderbolt 3。

 

2017年10月,Intel推出了更精进的14nm工艺的Coffee Lake内核,架构依然是Skylake,是Skylake的第二个优化版本,也是第八代Core i系列处理器,接口采用LGA1151-2。此产品主要是为了应对AMD的初代Ryzen处理器(八核)带来的压力而也迅速推出的“多核”版本。

其增加的细微优化内容例如:

  1. 更多的core(在Kaby Lake对应的i系列产品多增加两个),并根据core的数量增加L3 Cache的容量。
  2. 再次改进制程,升级为14nm++工艺,具有更高的晶体管栅极间距实现更低电流和更多晶体管,从而实现更高的功率(以芯片面积和空闲功率变大为代价)。
  3. 不再支持DDR3 内存,同时DDR4 内存可支持2400 MHz(i3)与2666 MHz(i5和i7)。
  4. 提高了睿频时钟频率,最高可增加200 MHz。

 

2019年8月,Intel推出了精进的14nm工艺(依然是14nm++)的Comet Lake内核,是Coffee Lake的更多核心版本(i7,i9),架构依然是Skylake,是第十代Core i系列处理器,接口采用LGA1200,其实没有明显变化。

 

纵观Intel,在2017到2019年间共发布了5款14nm的Optimization阶段的内核...而算上下面的Process、Architecture阶段,以及上面的Tick阶段发布的第一款14nm工艺的Broadwell内核,Intel在2014年到2018年一共发布了8款14nm工艺的内核...好嘛,我完全能感受到Intel被卡在10nm工艺的痛苦,以及对战略的更改。而这些处理器大部分相邻代之间的修改与调整优势何其细碎,真就是“挤牙膏”呢,性能之间的进步都不如当初4004到8008之间的飞跃(夸张)。

1.8.4.3 Process——流产的Cannon Lake与Coffee Lake/R

2018年5月,Intel推出了依然是14nm工艺(理论上应该是10nm)的Cannon Lake内核,架构依然是Skylake,是第九代Core i系列处理器(P.S. 第十代写在了上面,19年的Comet Lake)。

虽然Cannon Lake应该是Process(更新工艺)阶段,但是Intel依然卡在14nm到10nm的这道坎,以致于继续推出了14nm的Cannon Lake内核!Cannon Lake被初代10nm工艺所严重拖累,以至于该系列仅推出了一款处理器就被Intel给砍掉了,而为它配套的300系芯片组被修修改改用在了Coffee Lake身上。而由于工艺制成问题无法按期解决,最终Cannon Lake也在Intel的信誓旦旦中悄然凋零,仅有一款实体产品流入了中国市场的教育机(而且性能臭的不行)。

 

同年第四季度,Intel推出了14nm+++(14nm的天花板)工艺的Coffee Lake Refresh内核(Coffee Lake是17年发布的,上面提到),架构依然是Skylake,作为正儿八经发售的第九代Core i系列处理器,是历史上首次支持高达128GB 内存的处理器,接口采用LGA1151-2不变。

1.8.5 Sunny Cove架构

1.8.5.1 Architecture——Ice Lake

2019年8月,Intel推出了升级架构Sunny Cove,其内核代号为Ice Lake,也更新采用10nm新工艺(姗姗来迟)!Ice Lake是第二代10nm工艺处理器(第一代是流产的Cannon Lake),也是第十代Core i系列处理器(另一个是同期发布的Skylake架构的Comet Lake),接口采用BGA1526。

其主要特点有:

  1. 更深的缓冲区与更大的缓存结构:对L2 Cache提升到512KB每核心、加大了微指令Cache、加大了ROB队列的大小等等数值调整。
  2. 加入了AVX512指令集。同时因运算AVX512中指令会提升CPU功耗,因此Ice Lake默认频率被大幅调低以保持TDP功耗。
  3. 支持LPDDR4X内存。
  4. 集成Thunderbolt 3.0控制器(Intel与苹果合作开发的硬件接口标准,一个多功能外设接口)。
  5. 基于机器学习辅助的动态调频技术2.0,其实就是基于机器学习来让CPU提前对未来进行动态睿频。

 

1.8.5.2 Optimization——Tiger Lake

2020年9月,Intel发布了代号Tiger Lake的第十一代Core系列微处理器,同时架构升级为Willow Cove,号称近年来处理器史上一次巨大飞跃:工艺到架构都有极大变化,升级力度在这几代酷睿中是非常明显的。

Tiger Lake采用10nm+工艺,首次采用全新的SuperFin晶体管技术(官方表示它甚至重新定义了FinFET工艺);得益于先进的工艺,从上代的3.9GHz一下子提升到4.8GHz,保持功耗不变的情况下提升了20%的性能。

其主要特点有:

  1. GPU使用全新的Xe架构,最多拥有96个EU(相比Ice Lake增多了一半),浮点性能提升了87%,相当于入门级独显了。

  2. 支持AI加速指令集DLBoost,同时Intel重写了底层架构,针对全场景AI作了加强——除了已经支持的BF16,又增加了其内的VNNI、DP4A等指令集,带来了更强大的AI性能或矢量神经网络指令,支持低精度指令,可加速基于卷积神经网络的算法。
  3. 加入了独立的GNA 2.0(Gaussian&Neural Accelerator)单元(Intel的低功耗AI加速器),能专门针对工作流负载进行优化,如在听写、翻译或动态降噪方面帮助用户提升体验。其只需低功耗就可以高效推理计算,并且将CPU占用率降低了20%而可以全天候使用——闲时低功耗待机,忙时加速AI运算。

1.8.5.3 Process

还未发布。

2 Intel/Amd Roadmap将来几代架构的分析

由于制程工艺已经抵达10nm,不断涌现的材料学与元器件方面的问题会不断制掣其工艺的提升,使难度继续增加。虽然说各界都有在挖寻各色黑科技与材料来尝试对工艺进行突破,但现实一些思考,摩尔定律的减速已经非常明显。回看Intel在22nm-14nm-10nm的痛苦过程,Intel的优势很大程度上来自于其领先的制程工艺,据查阅有说法Intel领先其他代工厂3年多,然而在14nm到10nm这根硬骨头上卡得太久太久,使Intel的工艺优势已经荡然无存了。

我有理由认为,芯片半导体的制程工艺精进会非常缓慢,而“多核处理器”的发展基调将会继续保持为未来7、8年的新发布微处理器的主要旋律,但是单纯叠核心数与Cache大小过于无脑。因此,基于多核的任务协调处理机制、对当下架构与老制程的进一步补充优化将会是芯片性能提升的过渡方法。

其次,自从AMD的APU以及Intel的核显理念与产品的推出,片内集成GPU的地位与效用也不断凸出,因此各厂家都必然会对核显的性能继续深入优化并作为卖点的宣传攻势。

Intel的历代Core系列的变化,从CPU到GPU再到现在新兴的AI芯片,它们已经逐渐融为一体:CPU可以提升GPU性能,GPU可以辅助AI计算,而AI芯片也可以辅助CPU处理各色新型任务。当下并行计算、图形渲染与人工智能的应用场景越来越广泛,那么面向AI的计算芯片也将会成为重非常要的市场热点。

 

 

 

 

参考文献与网站

见证"芯"路 30年CPU架构发展史(一)Intel

Intel芯片设计35年:从4004到80核心

普及贴:CPU的发展历程(X86篇)

intel和amd处理器发展历史-优快云

X86架构发展史(上)_新知

英特尔15款X86 CPU发展史

 

维基百科Intel CPU 4004 

维基百科Intel CPU 8008

维基百科Intel CPU 8080

维基百科Intel CPU 8086

维基百科Intel CPU 80286

实模式和保护模式_优快云

CPU 实模式 保护模式 和虚拟8086模式_优快云

实模式与保护模式解惑之(一)——二者的起源与区别_优快云

x86-64处理器的几种运行模式

实模式、保护模式和虚拟模式_博客园

 

80386学习(一) 80386CPU介绍_博客园

8086架构/流水线及其优化_优快云

80286/286/Intel286 架构/流水线及其优化_优快云

80386的缓存Cache_知乎

80486/486/Intel486 架构/流水线及其优化_优快云

CPU发展简史_马克的杯子

 

维基百科Intel CPU 80386

维基百科Intel CPU 80486

维基百科P5(微体系结构)

维基百科Pentium Pro

Pentium Pro架构/流水线及其优化 (3)_优快云

维基百科Pentium Ⅱ

Pentium II & Pentium III架构/微架构/流水线 (7)_优快云

维基百科List of Intel CPU microarchitectures

【EM64T与AMD64】

64位版本为什么叫amd64,而不是intel64?_博客园

x86,amd64,x86-64,x64区别_优快云

常见的CPU指令集介绍_博客园

【基础知识部分】

Socket为什么常变而PCI规范不常变化?_知乎

为什么不把南桥集成进CPU?_知乎_老狼

什么是CPU Die?_知乎_老狼

芯片里面有几千万的晶体管是怎么实现的?_知乎

计算机体系结构.指令集架构_优快云

【还没写入】

见证"芯"路 30年CPU架构发展史(二)AMD

【Core架构】

Pentium 4处理器架构/微架构/流水线 (3)_优快云

Pentium 4处理器架构/微架构/流水线 (12)_优快云

维基百科Pentium_M

维基百科Yonah (microprocessor)

Intel's Centrino CPU (Pentium-M)_AnandTech 

性能将提升45% 45nm Penryn处理器图解_新浪科技

Core微架构_百度百科

维基百科Intel Tick-Tock

维基百科Tick–tock model

Intel“Tick-Tock”进化模式失效_IT之家

Intel“Tick-Tock”已死_个人图书馆

Intel(R) 处理器产品架构/微架构对照表_优快云

intel 虚拟化 VT-d VT-x VT-c 有什么区别_DT33

维基百科Nehalem (microarchitecture)

维基百科Sandy Bridge

QPI总线_百度百科

Intel真的在挤牙膏?_Expreview

全新Haswell架构_Expreview

Haswell - Microarchitectures - Intel_WikiChip

Broadwell - Microarchitectures - Intel_WikiChip

处理器定了三大方向_新浪科技

Skylake处理器前瞻之一_Expreview

维基百科Skylake (microarchitecture)

维基百科Skylake微架构

Intel是怎么失去自己的性能优势地位的_GAMECORES

聊聊已经发布的十代酷睿处理器(2)_知乎

 

 

Intel 系统级架构概述 文章目录 前言 一、IA-32 架构 和 Intel 64 架构 简述 二、系统级架构概述 2.1 Global and Local Descriptor Tables 2.1.1 32-bit modes 2.1.2 IA-32e Mode 2.2 System Segments, Segment Descriptors, and Gates 2.2.1 32-bit modes 2.2.2 IA-32e Mode 2.3 Task-State Segments and Task G 阅读详情

相关推荐

Intel处理器体系架构(一)——实模式与古老的Intel 8086处理器

Intel处理器从 Intel 8086 处理器到最新的14th Intel® Core® i9 、14th Core® i7 Quad 以及 Intel Xeon 处理器 5300 和 7300 系列。在Intel的维护下,为 1978 年发布的处理器创建的目标代码仍能在最新的 Intel 64 和 IA-32 架构系列处理器上运行。Intel处理器之所以做到如此强大的兼容性,就不得不说说Intel的处理器体系架构了。

taidixiong233的博客 2481

CPU架构名称

Coffee Lake-Refresh 第九代酷睿 2018-2019年 14nm++ Coffee Lake 第八代酷睿 2017-2018年 14nm++ Kaby Lake 第七代酷睿 2016年 14nm+ Skylake 第六代酷睿 2015年 14nm Broadwell 第五代酷睿 2014-2015年 14nm Haswell 第四代酷睿 2013年 22nm Ivy Bridge 第三代酷睿 2012年 22nm Sandy Bridge 第二代酷睿 2011年 32nm Nehalem/

问道至简 6605

操作系统启动过程:从加电到内核运行的17个硬核步骤

操作系统启动过程是软硬件协同的底层基石,本质是CPU复位后通过固件(BIOS/UEFI)、引导加载程序(Bootloader)和内核三阶段完成信任传递与执行环境构建。其核心原理涵盖复位向量触发、实模式到保护模式/长模式切换、GDT/IDT初始化、分页启用及中断重映射等关键机制。这一过程直接决定系统能否可靠进入C语言环境并执行main函数,具有极强的时序敏感性与硬件依赖性。在嵌入式开发、操作系统课程实践和UEFI固件调试等场景中,精准掌控启动流程是规避静默失败、实现可调试可复现系统的基础能力。本文聚焦x86平

weixin_30768881的博客 117

Intel系列CPU架构的发展史

Intel系列CPU架构的发展史 CPU(Central processing Unit),又称“微处理器(Microprocessor)”,是现代计算机的核心部件。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。   (一)、4004时代      1971年,当时还处在起步阶段的Intel公司推出了世界上第一颗微处理器4004。是第一个用于计算器的4位微处理

安静的美男子 1万+

从机械计算到互联网:计算机发展史中的关键转折与设计抉择

计算技术从机械齿轮演进到电子芯片,核心驱动力始终是物理工艺与需求之间的落差。早期继电器受机械运动限制,电子管虽快却功耗惊人,晶体管通过半导体PN结实现电场控制,从根本上改变开关方式;随后集成电路用光刻工艺将多个元件集成在硅片上,并借助摩尔定律形成产业节奏。存储程序将指令与数据统一放入内存,使软件成为可生成、可修改的对象,奠定了现代系统与云原生架构的基础。这些关键技术不仅塑造了大型机、个人电脑与互联网,也继续影响当下AI与分布式系统的设计。理解这些历史节点中的结构性选择,能帮助从业者从‘会用技术’走向‘理解为

weixin_33859231的博客 365

MounRiver避坑实录:手把手迁移CH32V307 EVT工程到自定义目录

本文详细记录了将沁恒CH32V307的EVT工程迁移到自定义目录的完整流程与避坑指南。针对MounRiver Studio的虚拟链接机制,重点讲解了如何清理旧配置、重新设置头文件路径、链接脚本等关键步骤,帮助开发者创建独立、可维护的MCU项目工程。

uber9的博客 242

x86架构简介及演进历史

简要介绍了x86架构简介及演进历史

Equinox_ji的博客 3145

virtuoso根据原理图绘制版图并联接_virtuoso画原理图

Virtuoso Schematic Editor 电路仿真一、Virtuoso Schematic Editor 实验目的:掌握电原理图(schematic)设计输入方法。 [1]启动 IC Design 软件 启动 软件: 开机后运行......2.绘制原理图 新建工程后打开的是默认的原理图文件 SCHEMATIC1 PAG...存盘 完成原理图的绘制后,将原理图存盘. 三 . 用 Check...

weixin_33536190的博客 4143

X86处理器架构

1989年,i486升级到了5层流水线,相对于以前每个CPU只有一个指令处理的流水线,现在每一层都有一个指令处理流水线,在相同的时钟频率下,486的性能是386的2倍,每一个流水线都从缓存中获取指令(当时的指令集缓存大部分都是8KB),第2层的流水线会解码指令集,3层会解析指令执行需要的内存地址(要理解这一点需要明白计算机中的内存地址表示方式),第4层会执行指令,第5层执行退出,如果需要的话把结果写回到寄存器和主内存。在CPU可以一次处理多个指令之后,程序可以运行的更快了。

m0_74282605的博客 1269

linux下redhat6.8(理论是都适用)安装oracle12c---详细教程

1、配置yum源 1)、删除Redhat自带的yum: (2)、上传centos的yum包,并按照顺序安装,所需的rpm包通过点击这里获取(放在oracle文件中的centos yum):上传到linux中 进行安装 yum包链接:https://pan.baidu.com/s/1TxciCWEd7d-d4kGoea0L1w 提取码:eufp `` --注意后面两个安装包一起安装 ## 3)、更改系统yum源: 编辑rhel-source.repo文件,将其中的$releas

z931407229的博客 1148

电磁波函数复数表示法:为什么物理学家偏爱e^(ikz)而非cos(kr-wt)?

本文深入解析了电磁波函数复数表示法(如e^(ikz))相较于传统余弦形式的巨大优势。通过欧拉公式,复数形式将复杂的三角运算转化为简洁的指数运算,在微分、积分、线性叠加及处理相位时展现出极高的计算效率,是物理学家和工程师分析波动现象的核心工具。

weixin_29094539的博客 498

P9 高级CPU设计

CPU插槽主要分为Socket、Slot这两种,就是用于安装CPU的插座。CPU经过这么多年的发展,采用的接口方式有触点式和针脚式,应用广泛的CPU接口一般为针脚式接口,对应到主板上就有相应的插槽类型。MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的。MMX技术不但是一个创新,而且还开创了CPU开发的新纪元,后来的SSE,3D NOW!技术,而使用昂贵但较快速的。

2301_79861339的博客 108

Windows 10下用vcpkg一键搞定libcurl开发环境(Code::Blocks 20.03配置指南)

本文详细介绍了在Windows 10系统下使用vcpkg工具快速配置libcurl开发环境的完整指南,特别针对Code::Blocks 20.03 IDE进行优化设置。通过vcpkg自动化管理依赖项,简化libcurl的安装与配置过程,帮助开发者高效搭建网络通信功能开发环境,并提供了常见问题解决方案和实际项目中的最佳实践。

weixin_28040125的博客 249

【转载】【技术变迁脉络解析】一个老程序员看到喉返神经后的感慨

s=20。

AlienProgrammer的博客 924

大模型安全-生成检测-事实核查-攻击-防御-思考-记忆-融合-语音相关研究 2025年版

本文整理了关于大模型安全领域的综合性资源,包括7篇综述论文、9个安全数据集以及5篇强化学习相关的安全研究论文。主要涉及大模型的对抗攻击、隐私保护、安全评估等方向,涵盖TruthfulQA、ToxiGen等知名数据集和TrustLLM、HarmBench等关键研究。资源包括知乎博主分享、arXiv预印本和顶会论文,并附有详细的中文讲解链接,为研究者提供了系统性的安全研究参考。

CSPhD-winston的博客 3572

OpenClaw 技术架构解析-网关层(上)

OpenClaw 网关层是架构核心中枢,承接Channel层消息,串联消息路由器、会话状态管理器等五大组件,负责消息分发、会话管理、状态统筹、上下文维护等关键职责,是连接Channel层与AI执行引擎的核心桥梁,保障多渠道交互稳定、有序运行。

wend的博客 710

从Wintel联盟转型看科技巨头护城河变迁与投资逻辑

在科技产业演进中,**护城河**与**生态**是评估企业长期价值的关键技术概念。护城河原理体现在技术壁垒、用户转换成本和网络效应上,其技术价值在于为企业提供持续的竞争优势和定价能力。应用场景广泛覆盖半导体、软件及云计算领域,尤其在判断巨头转型拐点时至关重要。本文以Wintel联盟(微软与英特尔)为例,复盘其在移动互联网冲击下的战略调整,分析其如何通过**云服务转型**和**多元化计算**布局重建护城河,为科技投资与产业观察提供基于生态演变和财务信号交叉验证的实操框架。

weixin_30487201的博客 414

华为OD机试 - 矩形绘制 - 数组、坐标偏移(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除。 当新绘制的矩形与已有图形重叠时,对图形取并集; 当新擦除的矩形与已有图形重叠时,对图形取差集。 给定一系列绘制和擦除操作,计算最终图形的面积。第一行为操作数N,接下来的N行格式为:d x1

学Java,找哪吒 835

基于英特尔EDISON双核架构的HC-SR04超声波测距工程实践

在嵌入式系统开发中,实时性要求高的传感器驱动常面临Linux非实时操作系统的时序控制挑战。其原理在于微控制器(MCU)通过直接硬件访问和精确中断响应,能够实现微秒级时序控制,而微处理器(MPU)运行通用操作系统则适合处理复杂业务逻辑。这种MPU+MCU的异构架构技术价值在于合理划分实时任务与非实时任务,在物联网边缘计算、工业控制等场景中实现性能与可靠性的平衡。本文以经典HC-SR04超声波传感器为例,详细解析在英特尔EDISON开发板上如何利用Quark MCU进行高精度距离测量,涵盖从GPIO配置、电平转

weixin_30700099的博客 428

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Mac安装富士施乐/胶片打印机驱动:从下载到排坑全指南

打印驱动是操作系统与打印设备之间的桥梁,macOS的打印体系基于CUPS,驱动不再是一个单一可执行文件,而是由PPD描述文件、过滤器及实用工具共同构成的组件集合。理解这一原理,才能解释为何Mac安装打印机驱动常比Windows更繁琐。在实际办公中,很多用户连接富士施乐或富士胶片商业创新的复合机时,会遇到队列报错、驱动不可用、Apple Silicon兼容性等问题。掌握驱动下载渠道、安装流程与常见排错思路,可以显著提高设备部署效率。以富士ApeosPort系列为例,从官网下载、安装到配置打印机、故障排查,覆盖

weixin_34122810的博客 532

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

CPU 架构(x86/ARM)简介

CPU架构通过指令集的方式一般可分为和两类,CISC主要是x86架构,RISC主要是ARM架构,还有MIPSRISC-VPowerPC等架构。本文重点介绍x86和ARM架构。

极客点儿 7593

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

18. Intel这30多年来发明的25种微架构

酷睿i7-3930K/第二代酷睿i7-2xxx/第二代酷睿i5-2xxx/第二代酷睿i3-2xxx都是Sandy Bridge微架构。酷睿i7/i5/i3和至强E7都是Westmere微架构.Westmere微架构就是Nehalem微架构的32纳米版本。奔腾加强版/奔腾2/奔腾3/奔腾3 至强的微体系结构都是P6微架构。奔腾双核/酷睿2代双核/酷睿2代4核都是酷睿(Core)微架构。第8代酷睿/第9代酷睿/至强E都是Coffee Lake微架构。奔腾4/奔腾D等的微体系结构都是NetBurst微架构。

最是书香能致远,腹有诗书气自华 1866

英特尔处理器历史与演变

……

u013669912的博客 1万+

x86架构鼻祖-i8086

x86架构鼻祖-i8086i8085按照时间线,Intel 8080之后是8085系列芯片,但是8085在设计上只是8080的单一工作电压版本((以前的Intel 8080微处理器晶片需要...

OpenFPGA的博客 4711

ARM架构和Intel x86架构

处理器架构是指计算机处理器的设计和组织方式,它决定了处理器的性能、功耗和功能特性。处理器架构影响着从计算机系统的硬件设计到软件开发的各个方面。在现代计算技术中,最主要的两种处理器架构是ARM架构和Intel x86架构。它们在设计理念、应用场景和性能特点上各具特色,并广泛应用于不同类型的计算设备。

TENET123的博客 1万+

计算机芯片的发展

△向上生长, TO BE TO UP. 程序员成长充电站△计算机基础课第39期分享转载请联系授权(微信ID:qianpangzi0206)阅读本文大概需要 4分钟0...

十年互联网开发老兵,陪你一起学技术 1358
上一篇: 【商业模式学习感悟】《B站:叛逃二次元和想破开的圈》读后感
下一篇: 【心随意动】20-SIST研一秋季上学期课程总结【补】
仰天倀笑
博客等级 码龄10年 313粉丝 124原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值