凯时官网下载-凯时国际-凯时国际app下载
当前位置:官网首页 > 新闻资讯 > 公司新闻 >

苹果,M1,芯片表现之后,将RISC

发表日期:2021-01-02 03:14文章编辑:浏览次数: 标签:    

作者 Erik Engheim 已获作者翻译授权

编者按:M1 芯片功用微弱的背面首要源自两个要素:榜首,M1芯片运用了许多的解码器和乱序履行;第二,便是异构核算。本文侧重解说第二点。

在咱们了解了 M1 芯片体现之后,你必定想一探终究其底层中心是什么,本文将从异构核算开端讲起。

苹果十分热衷于添加多个专用硬件单元的战略,在本文中,我将其称为协处理器

图形处理单元用于图形处理以及其他需求并行处理许多数据的使命

神经引擎,机器学习的专用硬件。

硬件中的编码。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

什么是协处理器?

与 CPU 不同,协处理器不能独自存在。只运用协处理器无法造出核算机。协处理器作为专用处理器,能够很好地完结某些特定的使命。最早的协处理器当属英特尔 8087 浮点单元英特尔的 8086 微处理器能够履行整数运算,但不能履行浮点运算。这两者的差异是什么?

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

整数都是这样的数字:43、-5、92、4。关于核算机来说,处理这些数字比较简略。你或许只需求将一些简略的芯片组合在一起,就能处理整数加法。

可是,小数处理就没那么简略了。

假定你需求履行小数的加法或乘法:4.25、84.7 或 3.1415。这些是浮点数。假如小数点后边的位数是固定的,则咱们称之为定点数。金钱一般都保存两位小数,因而都是经过定点数处理的。

可是,你能够运用整数来模仿浮点运算,只不过速度会比较慢。与之类似,前期的微处理器只能处理整数的加法,不能处理乘法。可是,它们依然能够履行乘法,由于你只需求经过屡次的加法来模仿乘法。例如 3×4 = 4 + 4 + 4。

了解下面的示例代码并不重要,可是能够协助你了解 CPU 怎么经过加、减和分支来履行乘法。

multiply:

简而言之,你能够经过重复简略的运算来完结更杂乱的数算。

一切协处理器的作业方式都与之类似。CPU 总有办法完结协处理器的使命。可是,一般这都需求重复多个更简略的操作。咱们之所以运用 GPU,是由于对数百万个多边形或像素重复相同的核算,关于 CPU 来说的确很耗时。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

怎么与协处理器来回传输数据

咱们来看一看下面的示意图,以更好地了解协处理器怎么与微处理器或通用处理器的协同作业。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

数字沿五颜六色线移动。输入/输出能够是协处理器、鼠标、键盘以及其他设备。

咱们能够将绿色和浅蓝色的公共总线视为管道。数字经过这些管道推送到 CPU 的不同功用单元这些盒子的输入和输出衔接到了管道。

你能够以为每个盒子的输入和输出都带有阀门。赤色操控线可用于翻开和封闭这些阀门。因而,担任红线的解码器能够翻开两个灰色盒子上的阀门,让数字在它们之间活动。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

可是,在电子设备中,这是经过咱们所谓的多路复用器完结的,而不是实践的阀门。

下面,咱们来介绍一下怎么从内存中获取数据。

假如想履行数字运算,则首要需求将数字放入寄存器中。解码器运用操控线翻开灰色盒子“内存”和“寄存器”之间的阀门。具体操作为:

内存单元的数据能够流到任何地方,可是解码器仅翻开了寄存器的输入阀门。

因而,为了获取鼠标坐标,你能够经过汇编代码中履行以下操作:

load r1, 84 ; get x-coordinate

loar r2, 85 ; get y-coordinate

loadi r1, 1024 ; set register r to source address

loadi r2, 50 ; bytes to copy

loadi r3, 2048 ; destination address

store r1, 110 ; tell DMA controller start address

store r2, 111 ; tell DMA to copy 50 bytes

store r3, 113 ; tell DMA where to copy 50 bytes to

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

我不打算过多地评论虚拟内存。

char *video_buffer = 0xB8000; // set pointer to CGA video buffer

video_buffer = 42; // change color of 4th pixel

你必定不期望 CPU 处于闲暇状况,等候协处理器仔细检查一切指令和数据。你也不想让 DMA 遇到这种状况。这便是为什么一般咱们都需求运用某种中止的原因。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

中止怎么作业?

我之所以啰嗦了这么多,便是期望协助你了解运用协处理器时终究发生了什么。不然,你就搞不清楚协处理器实践上需求进行哪些通讯。

咱们能够经过中止并行处理许多使命。当 CPU 被核算机鼠标中止时,应用程序能够经过网卡获取图画。鼠标移动时,咱们需求新的坐标。CPU 能够读取这些并将其发送到 GPU,在新方位上显现鼠标光标。当 GPU 制造鼠标光标时,CPU 能够趁这段时刻处理从网络检索到的图画。

就像运用这些中止相同,咱们也能够将杂乱的机器学习使命发送给 M1 神经引擎,要求它经过网络像头设别人脸。一起,核算机的其余部分依然在呼应,由于在神经引擎处理图画数据期间,CPU 正在处理其他作业。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

RISC-V的兴起

咱们来反思一下为什么。咱们知道添加时钟频率并不简略。咱们一向徜徉在 3–5 GHz,无法打破。进一步添加时钟频率,那么功耗和散热就会出问题。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

晶体管预算:CPU中心仍是协处理器?

咱们能够无止境地添加 CPU 中心,终究就会得到 Ampere Altra Max ARM 处理器之类 128 个通用中心的处理器。

但这真的是芯片的最佳用法吗?关于云而言,这个办法没问题。咱们能够经过 128 个中心处理各种客户端恳求。可是,台式机或许乃至无法有效地运用一般台式机作业负载上的 8 个以上的中心。因而,即使你具有 32 个中心,其实大部分也都被浪费了。

咱们来算一笔账:你有一个晶体管预算。新近,或许你有 2 万个晶体管的预算,你发现能够运用这些晶体管制造出具有 1.5 万晶体管的 CPU。这与 80 时代初的真实状况很类似。现在,这个 CPU 能够履行 100 个不同的使命。假定为其间一项使命制造专用的协处理器,将花费 1000 晶体管。假如你为每一个使命创立一个协处理器,那么就需求 10 万个晶体管。这会超越你的预算。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

过多的晶体管改变了战略

因而,前期的规划需求专心于通用核算。可是今日,咱们的芯片中能够塞入太多的晶体管,但却不知道该用这些晶体管做什么。

因而,协处理器的规划就成为了一个大问题。

制造各种新式协处理器的相关研讨许多。可是,这些研讨经常会造出十分蠢笨的加快器,咱们需求加以阻止。与 CPU 不同,它们无法读取自己需求履行的指令过程。一般,它们都不知道怎么拜访内存或安排任何作业。

因而,常见解决方案是将一个简略的 CPU 作为一种操控器。因而,整个协处理器都是由一个简略的 CPU 操控的专用加快器电路,CPU 担任装备加快器完结作业。一般这都是高度专业化的作业。例如,神经引擎或张量处理单元等处理的是十分大的寄存器,能够包容矩阵。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

经过量身定制的RISC-V 操控加快器

这正是 RISC-V 的规划初衷。它仅有约 40–50 条指令的最低极限指令集,能够完结一切常见的 CPU 作业。听起来或许许多,但别忘了,x86 CPU 包含 1500 多个指令。

RISC-V 不需求一套大型的固定指令集,它是环绕扩展的概念规划的。每个协处理器都是不同的。因而,它将包含一个 RISC-V 处理器来中心指令集的完结,以及依据协处理器需求处理的使命而定制的扩展指令集。

苹果 M1 芯片就在推进整个职业朝着协处理器主导的未来开展。而在协处理器的制造中,RISC-V 将成为重要的一环。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

坚持在协处理器中选用RISC-V 有什么优点?

制造芯片已成为一件杂乱而消耗巨大的作业。咱们需求树立验证芯片的东西,运转程序,运转确诊程序,以及其他许多的作业都需求支付尽力。

这是当时运用 ARM 的优势之一。他们具有巨大的东西生态,能够协助你验证规划,并芯片。因而,寻求定制的专有指令集并不是一个好主意。可是,运用 RISC-V 能够为多家公司供给规范东西。就好像忽然呈现了生态,由多家公司一起担负。

那么,为什么不能运用已有的 ARM 呢?ARM 首要面向通用 CPU。它具有大型的固定指令集。在客户和 RISC-V 竞赛的压力下,ARM 放低了姿势,并于 2019 年开放了扩展指令集。

可是,问题依然存在,由于最初它的规划初衷不在于此。整个 ARM 东西链会假定你现已完结了整个大型 ARM 指令集。这关于 Mac 或 iPhone 的主 CPU 来说没什么问题。可是关于协处理器,你不想要或不需求这么大的指令集。你只需求一个环绕根底固定扩展指令集而构建的东西生态。

为什么这样会有优点?Nvidia 运用 RISC-V 的办法为咱们供给了一些思路。在大型 GPU 上,他们需求某种通用 CPU 作为操控器。可是,为此意图保存的晶体管数量以及答应为此发生的热量都是有限的,并将发生的热量降到最低。请记住,有许多晶体管在抢夺芯片这片狭小的空间。

由于 RISC-V 的指令集又小又简略,因而它打败了包含 ARM 在内的一切竞赛对手。Nvidia 发现,选择 RISC-V 能够制造出比其他任何产品都小的芯片,并且还能够将功耗降至最低。因而,你能够经过这种扩展机制,只添加对完结有必要的作业至关重要的指令。而关于 GPU 的操控器,除了加密协处理器上的操控器以外,还需求其他扩展。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

具有挖苦意味的是,咱们或许会看到未来 Mac 和 PC 都由 ARM 处理器来驱动。可是,周边一切的定制硬件,一切协处理器都将由 RISC-V 主导。跟着协处理器变得越来越盛行,运转 RISC-V 的单片的数量或许会超越 ARM。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

ARM指挥的 RISC-V 协处理器大军

通用 ARM 处理器将成为 RISC-V 驱动的协处理器的中心,从图形、加密、编码、机器学习、信号处理到处理网络程序包,一切使命都能够得到加快。

加州大学伯克利分校的教授 David Patterson 和他的团队预见了这一未来,并且这也是经过精心规划后的 RISC-V 彻底能够习惯这个新世界的原因。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

试想一下树莓派等设备,现在运转的都是 ARM,可是将来树莓派的 RISC-V 版别或许会供给能够满意各种需求的变体。有些是机器学习微操控器,有些面向图画处理,而有些则用于加密。

简略来说,你能够选择自己的带有微调功用的微操控器。当然,你能够在其上运转 Linux,并履行一切相同的使命,仅仅功用会有所不同。带有特别机器学习指令的 RISC-V 微操控器练习神经网络的速度将远远超越带有编码指令的 RISC-V 微操控器。

英伟达的 Jetson Nano 现已走上这条冒险之路,如下图所示。这款微操控器只要树莓派那么大,具有机器学习的专用硬件,因而,你能够运用它履行目标检测、语音辨认以及其他机器学习使命。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

将RISC-V 作为主 CPU?

许多人或许想问:为什么不必 RISC-V 彻底代替 ARM?

虽然有些人以为这根本无法完结,由于 RISC-V 具有一套“精巧又简略”的指令集,无法供给 ARM 和 x86 的高功用。实践上,你能够将 RISC-V 作为主处理器。功用并不是问题。就像运用 ARM 相同,咱们只需求有人来制造高功用 RISC-V 芯片。

实践上,现已有人制造出了这样的芯片:新的 RISC-V CPU 宣称功用已创纪录。

人们常常有一个误解:杂乱的指令能够供给更高的功用。RISC 作业站在 90 时代就证明了这是过错的主意,它们在功用基准中彻底打败了 x86 核算机。实践上,RISC-V 有许多奇妙的办法来进步功用。简而言之,你彻底能够将 RISC-V 处理器作为主 CPU,但这也是一个机遇的问题。MacOS 和 Windows 都选用了 ARM。至少在短期内,微软或苹果是否会再次出资硬件以支撑 RISC-V 好像很值得置疑。

苹果,M1,芯片体现之后,将RISC-V,彻底代替,ARM

总结

有人宣称 RISC-V CPU 在功耗和功用方面现已超越了 ARM。人们纷繁在评论,RISC-V 是否的确有或许成为核算机的主 CPU。

我有必要供认,我不清楚为什么 RISC-V 会超越 ARM。并且他们自己也供认, RISC-V 是一个十分保存的规划,其间并没有运用太多新的指令。可是,选用最小指令集的确有优势。咱们能够完结十分小且十分简略的 RISC-V CPU,一起功耗会下降,而时钟频率能够提高。

因而,关于 RISC-V 和 ARM 的终究定论还为时尚早。

本文相关词条概念解析:

协处理器

协处理器,一种芯片,用于减轻体系微处理器的特定处理使命。协处理器能够经过一组专门的、供给load-store类型接口的ARM指令来拜访。协处理器能够附归于ARM处理器。一个协处理器经过扩展指令集或供给装备寄存器来扩展内核处理功用。协处理器也能经过供给一组专门的新指令来扩展指令集。ARM微处理器可支撑多达16个协处理器,用于各种协处理操作,在程序履行的过程中,每个协处理器只履行针对本身的协处理指令,疏忽ARM处理器和其他协处理器的指令。

相关新闻