欢迎您访问无忧自考网!

芯片指令集架构真的很重要吗?

更新时间:2022-12-31 05:02:59作者:51data

在过去的10年里,ARM CPU制造商多次试图进入高性能CPU市场,因此看了许多关于ARM努力的文章、视频和讨论也就不足为奇了。 其中许多人关注两个指令集体系结构( ISA )之间的差异。 这篇文章将收集研究、来自熟悉CPU的人的评论以及我们的内部数据,说明为什么专注于ISA是徒劳的。时间,然后在我们的小冒险中,我们来参考一下Anandtech对Jim Keller的采访。 Jim Keller是参加了很多成功的CPU的工程师“关于指令集的争论是非常悲伤的故事。 ”吉姆凯勒在接受AnandTech采访时这样说。 请看完整的采访文章《Jim Keller:在指令集上辩论是一件悲哀的事情》 CISC vs RISC。 过时的讨论x86历史上分为复杂指令集计算( CISC ) ISA,而ARM分为RISC (精简指令集计算)。 最初,CISC机器被设计为执行更少、更复杂的指令,并对每个指令执行更多的工作。 RISC使用更简单的命令,更简单、更快地执行。 今天,这种区分已经不存在了。 用Jim keller的话来说,“RISC刚登场的时候,x86是半微码( half microcode )。 看看die,一半的芯片可能是ROM或者三分之一。 从事RISC的人可以说RISC芯片上没有ROM,所以我们得到了更高的性能。 但是现在ROM太小了找不到。 其实加法器这么小,很难找到吗? 当今,限制计算机性能的是可预测性,两大类是指令/分支可预测性和数据局部性。 ’简而言之,就性能而言,RISC/ARM和CISC/x86之间没有有意义的差异。 重要的是保持内核供应,并提供正确的数据,重点关注缓存设计、分支预测、预取和在存储到未知地址之前能否执行加载的预测等各种酷炫技术。 2013年,Blem等人的研究者发现了一种方法。 研究了ISA对各种x86和ARM CPU [1]的影响,发现RISC/ARM和CISC/x86有较大收敛。

威斯康辛大学的论文表明RISC/ARM和CISC/x86之间有收敛趋势的Blem等人得出结论,这是因为ARM和x86 CPU在功耗和性能方面存在差异,主要针对不同的目标进行了优化。 指令集在这里不重要。 重要的是实现指令集的CPU的设计。 他们研究的主要发现如下。

尽管平均周期数之差=2.5倍,但在安装之间存在很大的性能差。 指令的计数和混合与主ISA无关。 性能差异是由独立于ISA的微体系结构差异引起的。 能源消耗与ISA无关。 ISA的差异具有实施意义,但现代微架构技术使它们没有实际意义; ISA根本就没有更有效的。 实施ARM和x86只是针对不同性能级别进行优化的设计点以上的观点。 论文《Power Struggles: Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures》,换言之,ARM ISA与低功耗没有任何关系。 同样,x86 ISA与高性能无关。 我们今天熟知的基于ARM的CPU正好是低功耗的。 因为ARM CPU的制造商将他们的设计定位于手机和平板电脑。 英特尔和AMD的x86 CPU具有更高的性能,旨在实现更高的性能。 为了给ISA发挥重要作用的想法泼凉水,英特尔正在以基于x86的Atom内核为目标。 federaluniversityofriograndedosul [6]进行的一项研究表明,“对于所有测试用例,基于Atom的群集都被证明非常适合在低功耗处理器上使用多级并行性。 ”得出了结论。 正在测试的两种内核设计是ARM的Cortex-A9和英特尔的Bonnell内核。 值得一提的是,Bonnell设计有序,Cortex-A9设计无序,应该为Cortex-A9带来性能和能效的胜利,但在研究使用的测试中,Bonnell在这两个类别中都处于领先地位。 解码器的不同:杯水车薪的另一个经常重复的真理是,x86存在明显的“ecode tax”故障。 ARM使用固定长度的指令,但x86的指令长度不同。 因为在知道下一个指令从哪里开始之前必须确定指令的长度,所以并行解码x86指令更加困难。 这对x86来说是个缺点,但对高性能CPU来说无关紧要。 用Jim Keller的话来说:“我认为时间可变长度指令真的很难解码。 但是,我们正在寻找实现这一点的方法。所以你在建设小型计算机的时候,定长的指令看起来真的很好,但是如果你在建设非常大的计算机,预测或者找到了所有指令的位置,它并没有支配die。 所以没那么重要。 我们深入亲自检查了这个。 在未记录的MSR上禁用op缓存后,发现Zen 2的fetch和decode路径比op cache路径消耗约4-10%的核心功率或0.5-6%的封装功率。 实际上,解码器消耗更少的核心或封装功率。 Zen 2并未设计为在禁用微操作缓存的情况下运行,而是使用了适用于L1缓存的基准( CPU-Z )。 这意味着不会给内存层的其他部分带来压力。 对于其他工作负载,解码器的功耗并不重要,因为二级和三级高速缓存以及内存控制器的功耗。 实际上,禁用op缓存时,某些工作负载的功耗减少了。 解码器的功耗被其他核心组件的功耗所淹没。 特别是操作缓存时,可以得到更好的供应。 这和Jim Keller的评论一致。 研究人员也同意这个看法。 2016年,由Helsinki Institute of Physics[2]支持的研究侧重于英特尔的Haswell微体系结构。 在那里,Hiriki等人估计,Haswell的解码器消耗了3-10%的封装电力。 该研究得出的结论是:“x86-64指令集不是生产节能处理器架构的主要障碍。 ”。

Hiriki等人使用综合基准开发模型估算了各个CPU组件的功耗,得出了解码器的功耗较小的结论。 Oboril等人[5]用Intel Ivy Bridge CPU测定了获取和解码能力。 该论文专注于核心组件的精确功率模型的开发,虽然没有直接得出x86的结论,但该数据再次表明解码器的功率在沧海一粟。

Oboril等人对Ivy Bridge的电力消耗进行了估算。 Fetch Decode的能力与其他核心组件相比微不足道,但解码器的功率显然不是零。 这意味着这是一个潜在的改进领域。 毕竟,在受到功率限制的情况下,所有的瓦特都很重要。 即使在桌面上,多线程的性能也经常受到电力的限制。 我们看到了x86 CPU架构师使用op缓存提供性能功耗比,所以让我们从ARM的角度来看。 ARM解码也很昂贵的Hirki等人还得出结论:“切换到不同指令集只节省少量的功率,因为现代处理器不能消除指令解码器。” ARM Ltd自身的设计就是证明。 高性能ARM芯片与x86 CPU类似,采用微操作缓存来跳过指令解码。 2019年,Cortex-A77引入了1.5k入口操作缓存[3]。 设计运算缓存并不容易。 ——ARM团队在至少6个月的“时间”中调试了运算缓存的设计。 显然,ARM解码的难度足以证明花费大量工程资源尽可能地跳过解码是合理的。 Cortex-A78、A710、X1、X2还有运算缓存,表明该方法成功进行了强解码。 三星在其M5上引入了运算缓存。 在详细介绍三星Exynos CPU [4]的论文中,解码能力被称为实现操作缓存的动机。 “自从设计为每M1周期提供4条指令/微指令以来,每M3周期提供了6条指令。 未来的目标是每个周期成长为8瓶。 ”。 在M5实现中,添加了微操作缓存而不是uop供应路径,主要是为了节省可复用内核的获取和解码能力。 ”—— 《Evolution of the Samsung Exynos CPU Microarchitecture》与x86 CPU类似,ARM内核使用op缓存降低解码成本。 ARM的“解码优势”不足以使ARM避免操作缓存。 此外,操作缓存还会减少解码器的使用量,使解码功率更不重要。 ARM指令被解码为微操作吗? Gary Explains以“riscvsciscisitstillathing”为标题,他在之后的视频中重复了这个说法。 Gary是不正确的。 因为现代的ARM CPU将ARM指令解码为多个微操作。 事实上,通过“减少微操作扩展”,ThunderX3的性能比ThunderX2提高提高了6%。 Marvell的ThunderX芯片都是基于ARM的。 这比残疾的其他原因多得多。

Marvell在Hot Chips 2020上展示的幻灯片。 重点(红色轮廓)富士通A64FX的体系结构手册也迅速浏览了一遍。 这是一个基于ARM的CPU,为日本的Fugaku超级计算机提供动力。 A64FX还将ARM指令解码为多个微操作。

A64FX体系结构文档中的某些指令表位于ARMv8的基本指令部分。 仔细看向解码为多个微操作的指令添加的点(红色轮廓),一些ARM SVE指令被解码为几十个微操作。 例如,FADDA (“浮点加法是严格有序的,使用标量进行加法运算”)被解码为63个微操作。 其中有些微操作单独具有9个周期的延迟。 对于在一个周期内执行的ARM/RISC命令,只有这一个。 还需要注意的是,ARM不是纯粹的负载存储体系结构。 例如,LDADD指令从内存中加载和添加值,并将结果保存到内存中。 A64FX将其解码为四个微操作。 x86和ARM :都因遗留问题而臃肿。 这与他们中的任何一个都无关。 在接受Anandtech采访时,Jim Keller指出,随着软件需求的发展,x86和ARM都随着时间的推移增加了功能。 当它们进入64位时,它们经过了一些清理,但仍然是经过多年迭代的旧指令集,迭代不可避免地会变得臃肿。 Keller先生出于好奇心指出,RISC-V“处于复杂生命周期的初期阶段”,所以没有历史遗留文。 他继续了。 “今天,如果您真的想快速构建计算机并让它立即运行,RISC-V是最容易选择的。 这是最简单的东西,它具备所有正确的功能,实际上有需要优化的前八条命令,没有多少垃圾。 ’如果传统通货膨胀发挥了重要作用,可以期待马上发生RISC-V的猛攻,但我认为那是不可能的。 对早期版本的支持并不意味着对早期版本的支持必须迅速;可以进行微码,最大限度地减少芯片面积的使用。 就像可变长度指令解码一样,这种开销在现代高性能CPU中并不重要。 因为芯片区域由高速缓存、宽执行单元、大规模非有序调度器和大规模分支预测器主导。 结论:实施而不是ISA很重要。 很高兴看到来自ARM的竞争。 高端CPU空间需要更多的玩家,但由于指令集的不同,ARM玩家没有超过Intel和AMD。 为了取得胜利,ARM制造商不得不依赖设计团队的技能。 或者,您也可以通过针对特定的电源和性能目标进行优化,超越英特尔和AMD。 AMD的单核设计涵盖了从笔记本电脑和台式机到服务器和超级计算机的所有内容,因此在这里特别容易受到攻击。 希望此处提供的信息能够避免关于过去指令集的争论,并能继续讨论更有趣的话题。

为您推荐

英特尔中止10nm曝光,样品包含3个小芯片。

近日,网上出现了基于Cannon Lake架构的英特尔 CPU 样本,设计为 10nm 芯片的 CPU采用了三芯片设计。或许英特尔将会在其未来的处理器中采用小芯片/混合设计。英特尔的 10nm Cannon Lake-Y“特殊样品”CPUY

2022-12-31 05:02

目前世界上最快的超级计算机,世界上最快的超级计算机是

对于我们大多数人来说,如果一台计算机能够以60fps的速度运行 8K 视频或最新版本的《孤岛惊魂》而不会变慢,那么它可能看起来已经足够快了。然而,有许多复杂的任务需要每秒进行数十亿次计算——这是配备 i9 处理器的台式机无法完成的。这就是超

2022-12-31 05:02

超详细的CPU后缀解释

一、Intel桌面式CPU后缀含义1、X后缀 =至尊版X代表Extreme,中文意思是极端、极限的意思,这里表示终极无敌至尊版,代表同一时代性能最强的CPU。2、K后缀 =解锁倍频且更高性能自从Sandy Bridge时代Intel限制超频

2022-12-31 05:01

“信息”英特尔第四代酷睿暴露安全漏洞:解决方案令人惊讶

虽说Intel刚刚更新了第12代酷睿,不过相信仍有不少用户依然在使用老处理器。小狮子要告诉还在使用第4代Haswell酷睿的用户一个坏消息,根据Intel的消息,这代处理器的图形控制器存在一个安全漏洞,DX12 API载入后可能会导致攻击

2022-12-31 05:01

支持Evo平台体验的基础,瑞聚Xe核显的进化路径。

回顾整个PC的发展历史,英特尔酷睿处理器每一次的更新换代都为整个产业带来了众多新特性;虽然影响PC使用体验的因素有很多,但处理器的性能表现依旧起着绝大部分因素。在2019年,伴随着第10代酷睿处理器IceLake的发布,英特尔公布了雅典娜计

2022-12-31 05:00

建议十堰市合并四所高校组建汉江大学,这简直是一个不可行的建议。

1月6日,有网友通过人民网领导留言板建议“十堰整合高教资源,组建汉江大学”,其理由是:第一,十堰历史文化古老悠久,自古有诗经,屈原楚辞,孔子沧浪听歌,郧阳府学宫,郧山书院等教育文风薪火相传,延续不断,教育资源在湖北省内靠前,但缺少高质量大学

2022-12-31 04:59

加载中...