首页资讯科技 与架构的不解之缘

与架构的不解之缘

从12代酷睿以及将与之竞争的下一代锐龙身上,我们会发现CPU作为PC的核心硬件,不仅仅是追求最高性能,在设计上也都是要与当前的软件,特别是操作系统相互配合的。回看PC的发展史,特别是现代PC软硬件的历史,我们还会看到很多这样的例子,当然也有…

与架构的不解之缘

从12代酷睿和将与之竞争的下一代锐龙我们会发现,CPU作为PC的核心硬件,不仅要追求最高的性能,还要配合现在的软件,尤其是操作系统。回顾PC发展史,尤其是现代PC软硬件的历史,我们会看到很多这样的例子。当然也有反例,在即将发布的新CPU中仍然有这些前辈的影子。让我们通过CPU架构,软件和操作系统的进化路线,来看看他们相爱相杀的历史。①

由于篇幅的限制和我们读者的实际需求,这次只考虑历史上影响较大的Windows系统平台和零售处理器。其实个人电脑处理器甚至CPU扩展到X86架构,还有更早的286,386,486等很多产品,比如苹果电脑家族,服务器处理器等。有兴趣并能接触到这些CPU开发资料的读者,其实可以“套用”一下本文的观点,他们会发现自己的开发基本符合这个规律。比如从8位到16位处理器再到32位CPU的变化;苹果基于当时的应用需求选择了Intel X86处理器,因为当前的应用需求开发了ARM架构的M1处理器;目前很多服务器CPU(图2)的设计都会针对云计算、AI计算等不断上升的需求进行优化。,并启用新的架构设计,放弃安腾架构(图3)基于IA-64指令集的产品。②

Windows 3.x奔腾,多任务时代的开创者

1992年,个人电脑进入了一个新时代,其代表是更实用的Windows 3.1和奔腾处理器的结合。其实多线程技术我们已经非常熟悉了,它在软件上的实现比超线程和多核处理器的出现要早得多。1992年推出的Windows 3.1是一个支持多线程和并行的操作系统。最直观的表现就是可以使用多个窗口,同时处理多个任务(图4)。⑤

相应的,1992年英特尔的奔腾处理器(图5)也提供了之前的486没有的“超标量技术”,即有两条数据流水线,可以同时执行两条指令。很明显,这是一款符合Windows要求的产品,而之前的DOS操作系统在大部分应用中都没有这个要求。

但是Windows在自身功能的使用上不会明显表现出奔腾处理器的优势,基于Windows core的软件应用的开发和普及还需要时间。因此,如果486处理器的兼容厂商提高主频或者稍微修改核心架构(图6),就可以轻松提供不逊于奔腾处理器的性能甚至日常办公和游戏体验。

这种情况在未来操作系统/CPU架构的切换中会反复出现,预计在Windows S11+新架构CPU的前期不可避免。例如,将大内核用于专业软件、3D处理和办公计算;用低功耗、足够性能的小核来处理游戏音频、后台程序、待机状态、运行Android APP,显然是非常理想的状态。事实上,很可能在12代核心和Windows 11上市后的相当长一段时间内,主流软件应用很难很好地切换和控制这些不同的核心,从而达到最佳的执行效率和体验。

后来,随着越来越多的软件开始使用超标量设计,这些兼容厂商在486核基础设施上增加了超标量计算能力,以满足Windows和新一代软件应用的需求,如AMD K5(图7)。Windows 9x系列架构的扩展时代

在AMD K5的外壳上,它应该与奔腾处理器相对应,但在两年半后发布,我们将看到一个清晰的Windows 95标志,它代表着一个新时代的开始。与类似于DOS shell的Windows 3.x相比,从Windows 95开始的Windows系列(图8)在底层仍然与DOS有关,但它无疑逐渐全面地控制了整个电脑的硬件和软件。正是因为它的需求,CPU架构发生了更大的变化,奠定了今天CPU架构的基础。

●指令集的扩展

在Windows 95时代,我们遇到的第一次架构扩展来自于软件指令集的设计。作为CPU设计的基础,我们最常见的计算机处理器都是基于x86指令集,这也是X86处理器这个名字的由来。顾名思义,指令集是CPU能够“理解”的指令集合,其中的指令数量可以不断增加。但是之前的x86指令集扩展大多是一些基本指令。

1996年底,为了满足Wi ndows95所强调的多媒体能力,英特尔的新一代CPU开始支持57条专门为视频、音频和图像处理设计的附加指令,这些指令统称为MMX(MultiMediaeXte nsi o ns)指令集(图9)。此后,针对某些应用方向设计的扩展指令一度成为CPU架构升级的重要组成部分。比如AMD随后在K6-2处理器上增加了3D Now!

(图10)指令集更明确的指向了当时开始出现的3 D游戏的需求。随后的英特尔SSE(单指令多数据扩展)指令集也主要针对多媒体,第一代70条指令中多达50条是所谓的浮点运算指令,显然也主要应对快速增长的3D计算需求。

事实上,到目前为止,大部分AVX(Advanced Vector Extensions)指令集扩展都是面向浮点计算的,这不仅说明了需求的旺盛,也从另一个方向解释了为什么之前说的“某个CPU的浮点性能怎么样?”而相应的测试也在逐渐没落,被实际的游戏表现和游戏测试所取代。因为有了这些“开挂”指令集的支持,浮点运算不再是限制图形图像性能的主要因素。

与早期的指令集扩展可能只需要一些额外的寄存器相比,这些新的指令集数量庞大,目标一致,所需的处理晶体管已经不能忽视。在一些CPU架构中,甚至可以清楚地识别出专用的处理区域(图11)。⑾

●缓存的扩展对CPU架构的另一个显著影响是在CPU中增加更大规模的缓存,以满足Windows和软件日益增长的数据处理需求。继奔腾MMX之后,英特尔为消费者市场提供的产品是基于奔腾Pro架构的奔腾II。这款产品尽量在设计理念上过于超前,比较适合专业应用,但在日常应用中性能较差。与此同时,昂贵的架构已被修改,使其在日常应用中表现出更好的能力。其中一个最重要的变化是将奔腾Pro同一封装中的高速L2缓存替换为速度相对较低、容量更大的外置L2缓存(图12),不仅降低了内核的集成度,而且使生产难度和成本更加合理,完全可以满足消费级应用的需求。

随着制造技术的进步,L2缓存很快回到了CPU包甚至核心。在随后的A M DK6 -3中,出现了更新的缓存设计——三级缓存。

这个缓存的速度比较低,但是容量比较大,所以所有集成了L3缓存的CPU都会占用很大的面积,这一点在核心图中很明显(图13和图14)。设置L3缓存的主要目的是为了缓解内存和CPU核心速度之间越来越大的差距。由于目前差距依然明显,L3缓存已经成为近期C PU的常见配置。

虽然设计上有一定程度的重复,但是在CPU的发展中,一级、二级、三级缓存的趋势在增加。但原因完全不同。例如,前面提到的L2缓存从外部状态更改为放置在CPU内核内部后,其容量一度下降了一半,只有256kB。可能有人认为随着处理器的发展,目前主流产品的L2缓存已经达到MB级别,应该有明显的提升,但实际上这种容量提升主要体现的是核心数量的增加。经过20年的发展,每个核心配置的L2缓存仅提高到512kB的水平(图15),这也应该反映了核心要求、缓存速度、成本和其他考虑因素。⒂

除了随着内核数量的增加而扩展之外,L3缓存和L2缓存一样,越来越深地绑定在CPU的性能上,不再是简单的“内存缓冲”。比如在最新的锐龙5000系列测试中,理论上对内存数据交换不敏感的游戏性能明显受到L3缓存容量的影响。半L3缓存的锐龙5000G在搭配高端独占显示时性能明显不如锐龙5000X系列,而即将推出的新一代锐龙则凭借叠加的L3缓存容量可以获得15%的游戏性能提升(图16)。

至于一级缓存,它是一个完全集成在CPU内核中的小寄存器,所以如何设置它以及它的容量大小与计算单元的底层设计有较大的关系。比如AMD的锐龙5000系列采用了相对较小的一级缓存,但其核心效率并不亚于英特尔的第11代核心,后者的一级缓存要大得多。之前的Cyrix 6x86(图17)虽然大幅增加了一级缓存,但效果并不理想,因为浮点性能等问题很快被市场淘汰。⒄

●扩大基础设施

正如我们前面提到的,奔腾Pro的设计并不适合当时的消费级应用。这不仅是因为它激进的32位设计,还因为它创新的架构设计。这是关于精简指令集的RISC和复杂指令集的CISC的问题。

所谓精简指令集,并不是指它的指令数量少,而是指它们都是等长的指令,这样可以用更简单的硬件设计来处理。CISC是一个不等长的指令,所以处理起来一定很麻烦。好处是更自由。x86指令集是CISC指令集。如果说RISC是一首格律诗,一篇骈文,优美简洁,随便排版就很好看;然后CISC是白话文,成语、歇后语都可以,简单易懂,但是印刷排版麻烦。

在Pentium Pro(图18)中,Intel采用了特殊的CPU架构,即内部使用高效的RISC内核,外部使用编译器将CISC指令编译成RISC指令进行处理。这种架构不仅提高了内核的效率,而且特别适合“乱序执行”能力,这在当时越来越重要,也是RISC的强项。需要说明的是,从名字就可以看出,乱序执行能力显然也是和多任务密切相关的,这当然是Windows 9x和相应软件的需求。⒅

虽然Pentium Pro一开始就有很多问题,没有被市场接受,但是它的思想被后来的很多X86处理器接受,大大扩展了空架构设计。

此外,英特尔奔腾II、AMD K6等新一代处理器也增加了并行能力,可以并行处理四条或更多条内部指令。进入新时代的Windows软硬件设计

在Windows 9x和Windows XP(图19)前后,虽然微软推出了WindowsVista(图20)和Windows me,但是效果都不太好。由于稳定性和其他问题,许多消费者用户“跳槽”到Windows NT系列操作系统,其中最典型的是Windows 2000。但毕竟是原本为专业电脑和服务器设计的操作系统,不太适合普通消费者,尤其是娱乐能力方面,图像和视频的底层支持能力较差。

事实上,微软一直打算彻底扔掉DOS,这与消费者的需求一拍即合,于是基于Windows NT底层核心的Windows XP诞生了。作为一个颠覆性的操作系统,它对硬件的需求也发生了巨大的变化。但是,早期的CPU显然走了一定的弯路。

2001年Windows XP上市的时候,作为Wintel联盟成员的Intel必须全力支持。而同时推出的奔腾4处理器(图21)的设计有“偏差”之嫌,可能是之前与AMDK7架构处理器纠缠太久,在频率和架构升级上过于执着的产物。相对而言,再次迟到两年多的AMD新一代架构K8已经显示出了更好满足当时需求的能力,从而造就了辉煌的AMD处理器。⒆

●过时和偏离的建筑

随着Windows XP的推出,针对Windows9x系列、Windows Vista和Windows me优化的英特尔奔腾3和AMD Athlon等处理器及其架构已经过时。在RD处于弱势的AMD选择了通过核心调整来延长K7架构的寿命,而强大的Intel选择了立即推出基于新架构的奔腾4处理器。

奔腾4处理器采用的所谓NetBurst (Pipeline Burst)架构(图22)似乎是一种强调响应速度的设计,应该非常兼容服务器操作系统Windows NT内核和基于该内核的Windows XP系统。但事实上,这是一种通过延长管道来获得高频的架构。虽然它在频率上轻松击败了AMD的K7架构处理器,但它的效率很低,而且看不出它针对Windows XP和下一代软件进行了优化。

从后期的不断调整和实际效果来看,有人认为奔腾4前期表现不理想,其实是因为推出时还不成熟,被迫量产,以阻止竞争对手凭借性能和频率优势继续扩大市场。通过改进制造工艺、引入大型高速缓存和超线程技术,奔腾4的性能和效率得到了显著提高。后来的多核版本说明NetBurst架构本身还是比较先进和前瞻的。更有趣的是,在其后期型号的核心中,超大缓存所占的面积非常显眼(图23),颇有现在CPU的雏形。

(23)

小知识

英特尔首次在486处理器中使用流水线技术。它就像工业生产中的装配线。多个功能不同的电路单元组成一个指令处理流程,然后将一条X86指令分成几部分,分别由这些电路单元执行。因此,整个指令可以在一个时钟周期内完成,从而提高了CPU的运行速度。超级流水线是指某一类处理器的内部流水线超过了通常的5 ~ 6步(阶段)。比如奔腾pro的流水线就长达14步,奔腾4是20多步。从理论上讲,流水线设计的步骤越多,一条指令可以划分的部分就越多,处理速度就越快,因此可以适应工作频率更高的CPU。

但需要注意的是,流水线越复杂,前端拆卸部分的压力越大,浪费的可能性越大。毕竟不是所有的指令都能拆成那么多部分,这也是理论上先进的奔腾4性能不那么好的原因。更大的缓存和超线程技术的本质是尽可能好地填充管道,这可以大大提高奔腾4的效率。

●64位指令集和线程扩展

AMD的K8架构处理器(图24)虽然姗姗来迟,但却带来了巨大的架构创新,是目前CPU中其他必要配置的基础。比如传统前端总线(FSB)、内置内存控制器、64位指令集、效率而非频率等。都不再使用,甚至开创了将优秀的专业产品(骁龙)投入消费市场的先例。事实上,真正面向消费市场的Athlon 64/Athlon 64 FX的发布还要晚半年多。

未来两三年内,英特尔将彻底抛弃日趋完善,但在K8架构压力下依然“喘不过气来”的奔腾4和NetBurst架构,推出强大的酷睿处理器(图25)。它从一开始就把奔腾4处理器时代逐渐增多的新技术和K8展示未来的各种新创意结合在一起,甚至放下身段,集成AMD的AM64 64位指令集,而不是固守自己的IA-64指令集。其处理效率非常出色,一举超越对手,成为当时最完美的CPU。(25)

Windows 7智能核心首次亮相

K8和Core符合Windows XP的需求,使其成为一个优秀的操作系统,这也是为什么现在看起来很优秀的Windows 7(图26)在最初的市场份额上打不过Windows XP的原因。然而时过境迁,在21世纪的第二个十年,以Windows 7为主的PC平台已经在呼唤架构更新的CPU。(26)

从Smart Core的发布时间来看,英特尔再次与微软并驾齐驱。关于智能芯的发展,我们已经在2 018年19期《几乎所有一代芯的12年轮回一一》中详细介绍过,这里就不再赘述了。

事实上,随着CPU性能的加强和软件开发难度的增加,这一时期的大部分软件已经不再对CPU有过多的需求,因此其架构设计已经转向更灵活、更高效、更符合消费者实际需求。例如,自Smart Core推出以来,具有一定3D处理能力的显示单元已集成到其中(图27)。这不仅是因为Windows系统已经将3D特效集成到了最基础的界面中,还因为没有配备独立显示器的用户必须具备相应的能力。很多软件,甚至微软的Office系列这样的重磅软件,都开始支持异构计算,可以通过显卡的架构来加速。这一特点也是新CPU区别于以往“旧芯”并能取名为“智能”的原因。Windows 10锐龙咆哮

如果Smart Core赶上了Windows 7,它就彻底打败了过时的AMD K8架构及其发展。AMD Windows 10普及后才推出的锐龙,同样是成功的。从上市时间来看,锐龙架构(图28)明显可以从底层优化Windows 10的需求,而智能芯的架构会显得过时和僵化,这也是英特尔这次彻底更新架构的原因。(28)

乐章结尾部

在Windows 11即将登场的今天,Intel和AMD显然都找到了这种处理器架构发展的契机和争夺市场的机会。12代酷睿和改进的Zen 3架构,以及未来的Zen 4架构处理器,谁是Windows 11的最佳合作伙伴,谁会借此获得最好的市场机会?随着10月5日Windows S11的正式推出,我们已经可以体验Windows S11,期待另一场龙争虎斗。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/63037.html
上一篇离线安装补丁包
下一篇 天玑9000
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部