点击上方“朱小厮的博客”,选择“设为星标”
后台回复”书”,获取
后台回复“k8s”,可领取k8s资料
1、DSA(Domain-Specific Architectures,特定领域的体系结构)
将成为未来十年甚至更长时间,计算机体系结构的趋势。登纳德缩放定律结束、摩尔定律衰退,而阿姆达尔定律正当其时,这意味着低效性将每年的性能改进限制在几个百分点。获得更高的性能改进需要新的架构方法,就是DSA。
2、开放的 ISA,处理器领域的Linux
计算机架构的第二个机会是开放的 ISA(Instruction Set Architecture,指令集合架构),要创建处理器领域的Linux。
这让我想起了2021年7月27日OCP China Day的第二演播厅(详见视频:数据处理怎么能变更快,接受IT大嘴巴(刘策)的采访时,因西部数据Bill 刘总的启发,得出:开放计算未来十年,除了在系统级(整机柜、机架服务器、边缘服务器等),组件级(OAI、NVMe SSD、NIC 3.0、DPU等),还将在芯片级(如RISC-V、英伟达NVDLA)大有作为。
3、硬件也可以敏捷开发
借助电子计算机辅助设计(ECAD)工具,使得敏捷开发成为可能;这种更高水平的抽象增加了设计的重用性。从设计交付到返回芯片原来需要几个月时间,现在可能四周左右。
4、体系结构的几个定律
1)摩尔定律(Moore’s Law)
摩尔(Gordon Moore)在 1965 年的最初预测中,称晶体管密度会每年翻一番;1975 年,他又预计每两年翻一番。
2)登纳德缩放定律(Dennard scaling)
罗伯特·登纳德(Robert Dennard)预测随着晶体管密度的增加,每个晶体管的能耗将降低,因此硅芯片上每平方毫米上的能耗几乎保持恒定。由于每平方毫米硅芯片的计算能力随着技术的迭代而不断增强,计算机将变得更加节能。然而,登纳德缩放定律从 2007 年开始大幅放缓,2012 年左右接近失效(见图 3)。
1986 年至 2002 年间,指令级并行(ILP)是提高性能的主要架构方法。而且随着晶体管速度的提高,其性能每年能提高 50% 左右。登纳德缩放定律的终结意味着工程师必须找到更加高效的并行化利用方法。
为了保持工作流程完整,需要预测分支,并根据推测将代码放入工作流程中以便执行。推测的使用是 ILP 高性能和芯片低能效的源头所在。如果分支预测完美,推测就能提高 ILP 性能,但能耗会增加一些——甚至可能节约能耗——但如果分支预测出现失误,处理器就必须抛弃错误的推测指令,其计算工作及所耗能量就会付之东流。处理器的内部状态也必须恢复到错误预测分支之前的状态,这将花费额外的时间和能量。
很少有通用程序能够如此准确地预测分支。架构师需要一种不同的方法来实现性能改进。于是多核时代就这样诞生了。
多核将识别并行性和决定如何利用并行性的责任转移给程序员和语言系统。多核并不能解决由登纳德缩放定律终结带来的能效计算挑战。每个活跃的核都会消耗能量,无论其对计算是否具有有效贡献。一个主要的障碍可以用阿姆达尔定律(Amdahl’s Law)表述。
3)阿姆达尔定律(Amdahl’s Law)
IBM360系列机的主要设计者阿姆达尔于1967年提出。
该定律指出:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。简单来说是通过更快的处理器来获得加速是由慢的系统组件所限制。
阿姆达尔曾致力于并行处理系统的研究。对于固定负载情况下描述并行处理效果的加速比s,阿姆达尔经过深入研究给出了如下公式:S=1/(1-a+a/n)
其中,a为并行计算部分所占比例,n为并行处理结点个数。这样,当1-a=0时,(即没有串行,只有并行)最大加速比s=n;当a=0时(即只有串行,没有并行),最小加速比s=1;当n→∞时,极限加速比s→ 1/(1-a),这也就是加速比的上限。例如,若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4。
言归正传,下面是《计算机架构的新黄金时代,两位图灵奖得主最新力作》全文。
选自Communications of ACM
机器之心编译
John Hennessy 和 David Patterson 是 2017 年图灵奖获得者,目前这两位学者都供职于谷歌,前者是谷歌母公司 Alphabet 的董事会主席,后者任谷歌杰出工程师,致力于研究机器学习和人工智能。他们更为人所知的就是共同完成的计算机系统结构学科「圣经」《计算机体系结构:量化研究方法》了。
图注:2019 年 2 月刊发
2018 年 6 月 4 日,我们回顾了自 20 世纪 60 年代以来计算机架构的发展,并以此开始了我们的图灵讲座(Turing Lecture)。除了那个回顾,我们还在讲座中介绍了当前的难题和未来机遇。我们还预测未来十年计算机架构领域将迎来下一个黄金时代,就像 20 世纪 80 年代那样——我们做的研究能为我们带来回 ,能改善成本、能源、安全以及性能。
「不能铭记过去的人注定要重蹈覆辙。」
——George Santayana,1905
表 1:IBM System/360 系列四个型 的特性;IPS 表示每秒执行指令数。
在微编程的推动下,IBM 将公司的未来押在了这款新 ISA 上,寄希望其能革新计算行业,为 IBM 赢得回 。IBM 成功主宰了这一市场,IBM 计算机家族的大型机后裔在推出 55 年后仍然每年创造着 100 亿美元的收入。
正如我们反复看到的那样,尽管市场并不能完美地判定各种技术问题,但鉴于架构和商业计算机之间联系紧密,市场才能最终决定架构创新是否成功,而这往往需要大量的工程开发投入。
集成电路,CISC,432,8086,IBM PC
当计算机开始使用集成电路时,摩尔定律意味着控制存储器可以变大很多。更大的内存反过来又意味着允许使用更复杂的 ISA。要知道,数字设备公司(Digital Equipment Corp.)在 1977 年推出的 VAX-11/780 的控制存储器为 5120 字×96 位,而其前一代仅有 256 字× 56 位。
某些制造商选择开放微编程功能,让选定的客户能添加定制功能,他们称之为「可写控制存储器(WCS)」。最有名的 WCS 计算机是 Alto,这是图灵奖得主 Chuck Thacker 和 Butler Lampson 及其同事于 1973 年一起为施乐(Xerox)帕洛阿托研究中心开发的。这实际上是第一款个人计算机(PC),配备有首款位映像显示器(bit-mapped display)和首个以太 局域 。用于这种全新显示器和 络的设备控制器是存储在一个 4096 字×32 位 WCS 中的微程序。
1970 年代的微处理器(比如英特尔的 8080)仍处于 8 位时代,主要依靠汇编语言编写程序。互相竞争的设计者会通过添加新的指令来赶超彼此,他们会通过汇编语言示例来展示自己的优势。
戈登·摩尔(Gordon Moore)相信英特尔的下一代 ISA 将会伴随英特尔的一生,因此他聘用了很多聪明的计算机科学博士,并将他们送到波特兰去发明出色的下一代 ISA。英特尔最早命名为 8800 的计算机架构项目雄心勃勃——对任何时代而言都是如此,显然也是 1980 年代最有野心的。它有基于 32 位的寻址能力、面向对象的架构、位长可变的指令以及用时新的编程语言 Ada 编写的自己的操作传统。
可惜这个雄心勃勃的项目晚了几年,迫使英特尔在圣克拉拉开始了一项紧急替换工作,在 1979 年推出了一款 16 位微处理器。英特尔给了新团队 52 周时间来开发新的「8086」ISA 以及设计和构建芯片。鉴于日程紧迫,这个团队实际上是把 8080 的 8 位寄存器和指令集扩展成了 16 位,最后只用 10 人次的 3 个常规工作周完成了这款 ISA 的设计。这个团队按时完成了 8086 的开发,但在发布时却没引起什么关注。
英特尔非常幸运,IBM 当时正在开发一款个人计算机来与 Apple II 竞争,并需要一款 16 位微处理器。IBM 之前感兴趣的是 Motorola 68000,其 ISA 与 IBM 360 类似,但却落后于 IBM 激进的计划。IBM 转而使用 8086 的 8 位总线版本。IBM 在 1981 年 8 月 12 日推出了这款 PC,希望到 1986 年时能售出 25 万台。而实际上该公司在全球售出了 1 亿台,为这款紧急代换的英特尔 ISA 铺垫了一个非常光明的未来。
英特尔原本的 8800 项目更名了为 iAPX-432,并最终在 1981 年推出,但它需要多块芯片并且存在严重的性能问题。该项目在 1986 年终止,这一年,英特尔在 80386 中对 16 位 8086 ISA 进行了扩展,将其寄存器从 16 位扩展到了 32 位。因此,摩尔的预测就是正确的了——下一代 ISA 确实会和英特尔一样长寿,但市场选择了紧急代换的 8086,而不是专门精心开发的 432。正如 Motorola 68000 和 iAPX-432 两者的设计师都学到的那样:市场往往缺乏耐心。
从复杂指令集到精简指令集计算机
1980 年代早期,人们对更大型控制存储器中大型微程序使用的复杂指令集计算机(CISC)进行了一些研究。Unix 表明即使操作系统也可以使用高级语言编写,关键问题随之变成了「编译器会生成什么指令,而不是「编程者会使用什么汇编语言。硬件/软件接口的显著改进为架构创新带来了机会。
图灵奖得主 John Cocke 与其同事为小型计算机开发了更简单的 ISA 和编译器。作为实验,他们将自己研究的编译器的目标重新设定为:仅使用 IBM 360 ISA 中简单的 register-register 操作和 load-store 数据传输,避免更复杂的指令。他们发现使用这个简单的子集时,程序运行速度可快达三倍。Emer 和 Clark 发现 VAX 指令中 20% 的指令需要 60% 的微代码(microcode),但仅占据 0.2% 的执行时间。
David Patterson 把在 DEC 的一次学术休假投入到了研究减少 VAX 指令中的漏洞上。他认为,如果微处理器制造商遵循更大型计算机的 CISC ISA 设计,则它们需要一种修复微代码漏洞的方法。他为此写了一篇论文,但期刊《Computer》却拒绝接收。审稿人认为,使用如此复杂以至于需要修补的 ISA 开发微处理器是很糟糕的。这次拒稿让人们质疑 CISC ISA 在微处理器方面的价值。讽刺的是,现代 CISC 微处理器确实需要包含微代码修复机制,但他被拒稿的主要结果是启发他为微处理器开发更简单的 ISA——精简指令集计算机(RISC)。
这些观察和向高级语言的转移为 CISC 向 RISC 的过渡带来了机会。首先,RISC 指令是经过简化的,因此无需微代码解释器。RISC 指令通常和微指令一样简单,硬件可以直接执行。第二,之前用于 CISC ISA 的微代码解释器的快速内存被用作了 RISC 指令的缓存。(缓存是小而快的内存,临时缓冲近期执行过的指令,因为这样的指令很可能很快就要重新使用。)第三,基于 Gregory Chaitin 图着色方案的寄存器分配器使编译器可以更加容易地有效使用寄存器,这对这些 register-register ISA 是有利的。最后,摩尔定律意味着 1980 年代单块芯片中已有足以包含完整 32 位数据路径的晶体管以及相应的指令和数据缓存。
在今天的后 PC 时代,x86 的出货量从 2011 年的顶峰每年都会下降约 10%,而 RISC 处理器芯片出货量已经激增到了 200 亿。
例如图 1 展示了 RISC-I 和 MIPS 微处理器,它们分别由 UC 伯克利和斯坦福在 1982 与 1983 年开发,它们展示了 RISC 的优势。这些芯片最终都展示在了顶尖电路会议上,即 1984 年的 IEEE 国际固态电路会议。当时是非常瞩目的成果,因为伯克利和斯坦福的一些研究生能构建超越工业上能构建的微处理器。
图 2. 每个英特尔微处理器上的晶体管数量 vs. 摩尔定律
伴随摩尔定律是由罗伯特·登纳德(Robert Dennard)预测的登纳德缩放定律(Dennard scaling)。他指出,随着晶体管密度的增加,每个晶体管的能耗将降低,因此硅芯片上每平方毫米上的能耗几乎保持恒定。由于每平方毫米硅芯片的计算能力随着技术的迭代而不断增强,计算机将变得更加节能。登纳德缩放定律从 2007 年开始大幅放缓,2012 年左右接近失效(见图 3)。
图 4. 在各种 SPEC 整型数基准上,英特尔酷睿 i7 浪费的指令占完成指令总数的百分比。
多核将识别并行性和决定如何利用并行性的责任转移给程序员和语言系统。多核并不能解决由登纳德缩放定律终结带来的能效计算挑战。每个活跃的核都会消耗能量,无论其对计算是否具有有效贡献。一个主要的障碍可以用阿姆达尔定律(Amdahl’s Law)表述,该定理认为,并行计算机的加速受限于序列计算的部分。这一定律的重要性参见图 5。图中显示,假设串行执行的不同部分只有一个处理器处于活跃状态,那么与单个内核相比,最多 64 个内核的应用程序运行速度要快得多。例如,如果只有 1% 的时间是串行的,那么 64 核配置可加速大约 35 倍,所需能量与 64 个处理器成正比,因此大约有 45% 的能量被浪费了。
图 6:使用整型程序得到的计算机性能提升(SPECintCPU)。
被忽略的计算机安全
20 世纪 70 年代,处理器架构师主要专注于计算机安全,涉及保护环、容量等概念。这些架构师深刻了解到,大部分 bug 存在于软件中,但他们认为架构支持会有所帮助。操作系统大部分未使用这些功能,操作系统专注于良性环境(如个人电脑),因此具备较大开销的功能未被使用。在软件 区中,很多人认为微内核(microkernel)等正式验证技术会为构建高度安全的软件提供有效保障。但不幸的是,我们的软件系统规模和性能驱动器意味着此类技术无法跟上处理器性能。结果就是大型软件系统仍然有很多安全漏洞,且由于海量在线个人信息和云计算的使用,其影响被放大。
登纳德缩放定律的终结意味着架构师必须找到利用并行化的更高效方式。
尽管计算机架构师等很晚才意识到安全的重要性,但他们已经开始对虚拟机和加密提供硬件支持。不幸的是,推测给许多处理器带来了一个未知但重要的安全缺陷。具体来看,Meltdown 和 Spectre 安全漏洞给微架构带来了新的缺陷,使受保护信息遭到泄露。这两种漏洞都使用了旁路攻击。2018 年,研究者展示了在攻击者不将代码加载到目标处理器的情况下,如何利用 Spectre 变体导致 络信息泄露。尽管这次名为 NetSpectre 的攻击泄露信息速度较慢,但它使同一局域 中的所有机器都受到攻击,这造成了很多新的难题。虚拟机架构还有两个漏洞。一个是 Foreshadow,会影响专门保护高风险数据(如加密密钥)的英特尔 SGX 安全机制。每个月都会发现新的漏洞。
旁路攻击并非新鲜事,但是在最早期的案例中,促使旁路攻击成功的是软件缺陷。而在 Meltdown、Spectre 等攻击中,硬件实现中的缺陷导致受保护信息泄露。这是处理器架构师定义什么是 ISA 正确实现的一个基本难题,因为标准定义中并未提及执行指令序列的性能影响,而仅仅涉及 ISA-visible 执行架构状态。架构师需要重新思考对 ISA 正确实现的定义,以避免此类安全漏洞。同时,他们还应该重新思考对计算机安全的侧重点,以及架构师如何与软件设计师一道实现更加安全的系统。架构师(以及每个人)都过于依赖信息系统,以至于对安全的重视程度不如对一流设计的关注。
计算机架构的未来机遇
「我们的机遇就在那些『无解问题』之中。」——John Gardner, 1965
通用处理器固有的低效性,以及登纳德缩放定律和摩尔定律的终结,使得处理器架构师和设计师很可能无法维持通用处理器中的显著性能改进。鉴于改进性能对新的软件能力的重要性,我们必须问:有没有其他的有效方法/p>
现在有两个很明确的机会,把二者结合起来则是第三个机会。首先,现有的软件构建技术广泛使用具备动态类型和存储管理的高级语言。但是,此类语言的解释和执行通常非常低效。Leiserson 等人使用一个小例子(执行矩阵相乘)说明了这种低效性。如图 7 所示,简单地将 Python 语言代码重写为 C 代码就可以将性能提升 46 倍(Python 是典型的高级、动态类型语言)。
在多核上运行并行循环(parallel loops)又将性能提升接近 7 倍。优化内存配置又将性能提升了近 19 倍,而通过单指令多数据(SIMD)并行化操作(一个指令执行 16 个 32-bit 运算)的硬件扩展,性能又提升了 8 倍多。也就是说,最终的高度优化版本在多核英特尔处理器上的运行速度是初始 Python 版本的 62,000 多倍。这当然只是一个很小的例子,但我们会期望程序员使用优化库。尽管这夸大了常见的性能差距,但很多程序的性能差距可能达到 100 到 1000 倍。
图 8:谷歌张量处理单元(TPU v1)的功能性组织架构图。
小结
我们考虑了两种不同的通过提升硬件技术效率来提升编程性能的方法:首先,通过提升现代高级语言的性能;其次,通过构建领域特定的相比通用 CPU 能显著提升性能和效率的架构。DSL 是另一个如何改进支持 DSA 等架构创新的硬件/软件接口的例子。要通过这些方法获得显著收益将需要一个垂直集成的设计团队,该团队了解应用程序、领域特定的语言和相关的编译器技术、计算机体系结构、组织以及底层实现技术。在行业横向结构化之前,需要在跨抽象层次上垂直集成并做出设计决策,这是计算机技术研发早期的主要特征。在这个新时代,垂直整合变得更加重要,能够检查和进行复杂权衡以及优化的团队将会受益。
这个机会已经带来了大量的架构创新,吸引了很多有竞争力的架构设计思想:
-
GPU:英伟达 GPU 使用了很多核心,每个核心都有大型寄存器文件、很多硬件线程和缓存;
-
TPU:谷歌 TPU 依赖于大型二维收缩乘法器和板载内存的硬件控制;
-
FPGA:微软在其数据中心里部署了现场可编程门阵列器件(FPGA),专用于神经 络应用;
-
CPU:英特尔提供通过大型高级缓存和一维 SIMD 指令增强的带有很多核心的 CPU,微软使用的 FPGA,以及一种新型的神经 络处理器,这种处理器相比 CPU 更加接近 TPU。
除了这些大企业外,还有数十家创业公司正在推行自己的方案。为了满足不断增长的需求,架构工程师正在将数百到数千个此类芯片互连以形成神经 络超级计算机。
DNN 架构的雪崩式涌现使计算机架构领域进入了一个有趣的时代。在 2019 年很难预测这些方向中哪些(或者即使有)会赢,但市场肯定会像在解决过去的架构争论一样解决竞争问题。
开放式架构
受开源软件成功的启发,计算机架构的第二个机会是开放的 ISA(Instruction Set Architecture,指令集合架构)。要创建处理器中的「Linux」,该领域需要行业标准的开放式 ISA,除了拥有专利技术的个别公司以外, 区可以创建开源核心。如果许多组织使用相同的 ISA 设计处理器,那么更大的竞争可能会推动更快的创新。目标是为芯片提供处理器,成本从几美分到 100 美元不等。
第一个例子是 RISC-V(称为「RISC Five」),这是加州大学伯克利分校开发的第五个 RISC 架构。RISC-V 有一个 区,在 RISC-V 基金会的管理下维护架构。开放性允许 ISA 在公开环境中演变,硬件和软件专家在决策最终确定之前进行协作。开放式基金的另一个好处是 ISA 不太可能主要出于营销原因而扩展,这有时是专有指令集扩展的唯一原因。
RISC-V 是一个模块化指令集。一小部分指令运行完整的开源软件堆栈,然后是可选的标准扩展,设计人员可以根据需要包含或省略。该基础包括 32 位地址和 64 位地址版本。RISC-V 只能通过可选扩展来增长;即使架构师不接受新的扩展,软件堆栈仍然运行良好。专有架构通常需要向上的二进制兼容性,这意味着当处理器公司添加新功能时,所有未来的处理器也必须包含它。对于 RISC-V,情况并非如此,所有增强功能都是可选的,如果应用程序不需要,可以删除。以下是目前为止的标准扩展,使用代表其全名的缩写:
-
M. 整型数乘法/除法;
-
A. 原子内存操作;
-
F/D. 单/双精度浮点数;
-
C. 压缩指令。
更少指令。RISC-V 的指令少得多。base 中有 50 个指令,与原始 RISC-I 相近。剩余的标准扩展(M、A、F 和 D)增加了 53 条指令,再加上 C 又增加了 34 条,共计 137 条。ARMv8 有超过 500 条指令。
更少的指令格式。RISC-V 的指令格式非常少,只有六种,而 ARMv8 至少有 14 种。
简单性减少了设计处理器和验证硬件正确性的工作量。由于 RISC-V 的目标范围覆盖了数据中心芯片到物联 设备,因此设计验证可能是开发成本的重要组成部分。
RISC-V 是一种简洁的设计,诞生 25 年后,它的设计师从其前辈的错误中吸取了教训。与第一代 RISC 架构不同,它避免了微架构或技术依赖的功能(例如延迟分支和延迟加载)或创新(例如寄存器窗口),这些功能被编译器技术的进步所取代。
最后,RISC-V 通过为自定义加速器保留大量操作码空间来支持 DSA。
安全专家不相信不可见的安全性,因此开放式实现很有吸引力,开放式实现需要开放式架构。
除 RISC-V 外,英伟达 2017 年还宣布一个免费开放的架构,称之为英伟达深度学习加速器(NVDLA),这是一种可扩展的可配置 DSA,用于机器学习推理。配置选项包括数据类型(int8、int16 或 fp16)和二维乘法矩阵的大小。模具尺寸从 0.5 mm^2 到 3 mm^2,功率从 20 毫瓦到 300 毫瓦。ISA、软件堆栈和实现都是开放的。
开放的简单架构与安全性具有协同作用。首先,安全专家不相信安全性,因此开放式实现很有吸引力,而开放式实现需要开放式架构。同样重要的是增加可以围绕安全架构进行创新的人员和组织的数量。专有架构限制了员工的参与,但开放式架构允许学术界和工业界的所有最佳人才帮助提高安全性。最后,RISC-V 的简单性使其实现更容易检查。此外,开放式架构、实现、软件堆栈以及 FPGA 的可塑性意味着架构师可以在线部署和评估新颖的解决方案,并每周而不是每年迭代它们。虽然 FPGA 比定制芯片慢 10 倍,但这种性能仍然足以支持在线用户,同时带来安全创新,解决真正的攻击。我们希望开放式架构成为架构师和安全专家进行硬件/软件协同设计的典范。
敏捷硬件开发
Beck 等人 2001 年提出的《敏捷软件开发宣言》(The Manifesto for Agile Software Development)彻底改变了软件开发方式,克服了瀑布式开发中传统精细规划和文档的频繁失败。小型编程团队很快开发了有用但不完整的原型,并在进行下一次迭代之前获得了顾客的反馈。敏捷开发的 scrum 版本集合了 5 到 10 名程序员组成的团队,每次迭代进行 2 到 4 周的冲刺。
再次受到软件开发成功的启发,第三次机会是敏捷硬件开发。对架构师来说的一个好消息是,当代电子计算机辅助设计(ECAD)工具提高了抽象水平,使得敏捷开发成为可能,而且这种更高水平的抽象增加了设计的重用性。
考虑到从设计交付到返回芯片所需的几个月时间,称硬件只需四周的冲刺时间似乎有些不太可信。图 9 概述了敏捷开发方法是如何通过在适当的层上改变原型起作用的。最内层是软件模拟器,如果模拟器能够满足迭代需求,这是进行更改的最方便快捷的地方。第二层是 FPGA,其运行速度是具体软件模拟器的数百倍。FPGA 可以运行操作系统和完整的基准测试(像那些来自标准性能评估公司的测试),允许对原型进行更精确的评估。亚马逊在云端提供了 FPGA,所以架构师们可以使用 FPGA,而无需购买硬件和建立实验室。为了记录芯片面积和功率的数字,第三层使用 ECAD 工具生成芯片布局。即使在工具运行之后,在准备制造新的处理器之前,也需要进行一些手动步骤来完善结果。处理器设计者将第四层称为「tape in」。前四个层都支持四周冲刺。

图 9:敏捷硬件开发方法。
出于研究目的,我们可以在 tape in 上停下来,因为面积、能量和性能估计非常准确。但这就像是在长跑比赛中在离终点约 100 米的地方停下来一样,因为跑步者可以准确预测最后时间。虽然在准备比赛方面下足了功夫,跑步者仍会错过穿过终点线的兴奋和满足感。硬件工程师相较于软件工程师的一个优势是,他们搭建的是实物。测量芯片,运行真正的程序,然后向朋友家人展示,这是硬件设计的一大乐趣。
很多研究者觉得必须停下来,因为制造芯片的成本太过高昂。当设计作品很小时,它们出奇地便宜。架构师只要花 14,000 美元就可以订购 100 个大小为 1 平方毫米的芯片。在 28 纳米制程上,1 平方毫米的芯片可以容纳数百万晶体管,这对 RISC-V 处理器和 NVLDA 处理器来说足够大了。如果设计者的目标是设计一个较大的芯片,那最外层的成本将非常高,体系架构设计者可以用很多小芯片来阐述很多新想法。
总结
「最黑暗的时刻,是黎明来临之前。」——Thomas Fuller, 1650
要从历史教训中获益,架构设计者们必须意识到软件创新也能激励架构发展,而提高硬件/软件界面的抽象水平会带来创新的机会,市场最终会解决计算机架构的争论。iAPX-432 和 Itanium 说明了架构投入如何超过回 ,而 S/360、8086 和 ARM 则连续数十年带来很高的回 ,而且将继续下去。
未来十年,将会有一场新计算机架构的寒武纪爆炸,这对业界和学界的架构师们来说将是激动人心的时刻。
参考原文:
https://cacm.acm.org/magazines/2019/2/234352-a-new-golden-age-for-computer-architecture/fulltext
-
ClickHouse到底是什么什么如此牛逼!
-
原来ElasticSearch还可以这么理解
-
面试官:InnoDB中一棵B+树可以存放多少行数据/h2>
-
架构之道:分离业务逻辑和技术细节
-
星巴克不使用两阶段提交
-
面试官:Redis新版本开始引入多线程,谈谈你的看法/h2>
-
喜马拉雅自研 关架构演进过程
-
收藏:存储知识全面总结
-
微博千万级规模高性能高并发的 络架构设计
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!