计算机架构设计的 8 个伟大思想

简介: 计算机架构设计的 8 个伟大思想



“These are eight great ideas that computer architects have invented in the last 60 years of computer design. They are so powerful they have lasted long after the first computer that used them, with newer architects demonstrating their admiration by imitating their predecessors.” --大卫 A.帕特森博士

大卫 A.帕特森博士 ,自 1977 年加入该学院以来, David A. Patterson博士一直在加州大学伯克利分校教授计算机体系结构,并担任 Pardee 计算机科学主席。他的教学曾获得加州大学杰出教学奖、ACM 卡尔斯特伦奖、IEEE穆里根教育奖章和本科教学奖,世界上最大的技术进步专业协会。Patterson 博士因对 RISC 的贡献而获得 IEEE 技术成就奖和 ACM Eckert-Mauchly 奖,并因对 RAID 的贡献而分享了 IEEE 约翰逊信息存储奖。他还与合著者 John Hennessy 博士分享了 IEEE 约翰·冯·诺依曼奖章和 C&C 奖。

1、面向摩尔定律设计

计算机设计师的一个常数是快速变化,这在很大程度上是由摩尔定律驱动的。它指出,集成电路资源每 18-24 个月翻一番。摩尔定律源于 1965 年英特尔创始人之一戈登·摩尔 (Gordon Moore) 对 IC 容量增长的预测。由于计算机设计可能需要数年时间,因此在项目开始和结束之间,每个芯片的可用资源很容易翻倍或四倍。就像飞碟射手一样,计算机架构师必须预测设计完成时技术的位置,而不是设计开始的位置。我们使用“向上和向右”摩尔定律图来表示快速变化的设计。

半导体行业大致按照摩尔定律发展了半个多世纪,对二十世纪后半叶的世界经济增长做出了贡献,并驱动了一系列科技创新、社会改革、生产效率的提高和经济增长。个人电脑、因特网、智能手机等技术改善和创新都离不开摩尔定律的延续。如今单个处理器已经很难适应摩尔定律了(主要包括随着更多晶体管被装入芯片当中,相应会出现电子能量外泄和热量散发的现象),但云计算兴起,算力网络起飞,在某种程度延续了摩尔定律。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

2、使用抽象简化设计

计算机架构师和程序员都必须发明技术来提高自己的生产力,否则设计时间会随着摩尔定律的资源增长而显着延长。硬件和软件的主要生产力技术是使用抽象来表示不同表示级别的设计。隐藏较低级别的细节以在较高级别提供更简单的模型。我们将使用抽象绘画图标来代表第二个伟大的想法。

抽象思维一直推动着计算机技术不断向前发展,科学技术本身就是现实世界的抽象和演绎:电路信号->01二进制->指令汇编->高级编程->模块设计->框架设计->单机系统->分布式系统-->云计算,计算机领域有句名言:“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

3、快速做普通案例

使常见情况变得更快往往会比优化罕见情况更有效地提高性能。具有讽刺意味的是,常见情况通常比罕见情况更简单,因此通常更容易增强。这种常识性建议意味着您知道常见情况是什么,这只有通过仔细的实验和测量才能实现。我们使用跑车作为快速制作普通案例的图标,因为最常见的旅行只有一两个乘客,而且制作快速轿车肯定比快速小型货车更容易。

计算机大多数时间都是运作在常见情况下,符合2/8定律,所以首先我们针对常见情况进行优化改进,加速大概率事件,效果更快。

4、通过并行提高性能

自从计算出现以来,计算机架构师就提供了通过并行执行操作来获得更高性能的设计。我们将在本书中看到许多并行性的例子。我们使用飞机的多个喷气发动机作为并行性能的标志。

并行设计思想一直是提升性能的核心思想,多进程,多线程,多核-SMP,SIMD,NUMA,MIPS,向量机,GPU等等。

5、通过流水线提高性能

一种特殊的并行模式在计算机体系结构中如此普遍,以至于它有自己的名字:流水线。例如,在消防车出现之前,“水桶大队”会对火灾做出反应,许多牛仔电影都会以这种方式来应对恶棍的卑鄙行为。城镇居民形成一条人链来携带水源生火,因为他们可以更快地将水桶向上移动,而不是个人来回奔跑。我们的管道图标是一系列管道,每个部分代表管道的一个阶段。

不管硬件设计还是软件设计,流水线设计(pipeline)都是计算机领域最重要设计思想之一,这种思想是一种用面积换速度的思想,用更多的资源来实现高速。

6、通过预测提高性能

遵循“请求宽恕比请求许可更好”的说法,下一个好主意是预测。在某些情况下,假设从错误预测中恢复的机制不是太昂贵并且您的预测相对准确,那么平均而言,猜测并开始工作可能比等到您确定知道时更快。我们使用算命先生的水晶球作为我们的预测图标。

现在流行大数据+AI算法预测和CPU的分支预测技术在思想上是不是有异曲同工之妙。

7、存储的层次设计

程序员希望内存快速、大且便宜,因为内存速度通常会影响性能,容量限制了可以解决的问题的大小,而今天的内存成本通常是计算机成本的大部分。架构师发现他们可以通过内存层次结构来解决这些相互冲突的需求,在层次结构的顶部,每比特最快、最小和最昂贵的内存,而在底部每比特最慢、最大和最便宜的内存。高速缓存给程序员一种错觉,即主存储器几乎与层次结构的顶部一样快,并且几乎与层次结构的底部一样大且便宜。我们使用分层的三角形图标来表示内存层次结构。形状表示速度、成本和大小:越靠近顶部,内存越快,每比特成本越高;层的底部越宽。

cache层次思想是计算机软硬件非常伟大思想,一直延伸到现在redis缓存MySQL,本地缓存远端网络等等。

8、通过冗余提高可靠性

计算机不仅需要速度快;他们需要可靠。由于任何物理设备都可能发生故障,因此我们通过包含冗余组件来使系统可靠,这些组件可以在发生故障时接管并帮助检测故障。我们使用拖拉机拖车作为我们的标志,因为其后轴两侧的双轮胎允许卡车在一个轮胎失效的情况下继续行驶。(据推测,卡车司机会立即前往维修设施,以便修复漏气的轮胎,从而恢复冗余!)

提高可靠性最笨的办法,也是最有效的方法就是冗余设计,大到飞机的双引擎设计,小到数据库冗余备份模型,服务器热备,冷备,异地多活等等。

image.png

相关文章
|
6月前
|
XML 前端开发 算法
计算机毕业设计|外文文献翻译之MVC架构详细介绍
计算机毕业设计|外文文献翻译之MVC架构详细介绍
|
缓存 测试技术 数据中心
【计算机架构】计算 CPU 动态功耗 | 集成电路成本 | SPEC 基准测试 | Amdahl 定律 | MIPS 性能指标
【计算机架构】计算 CPU 动态功耗 | 集成电路成本 | SPEC 基准测试 | Amdahl 定律 | MIPS 性能指标
455 0
|
算法 编译器
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI
1127 1
|
存储 并行计算 编译器
【计算机架构】程序指令计数 | 功耗计算 | 电力功耗 | 安德尔定律(Amdahl‘s Law)
【计算机架构】程序指令计数 | 功耗计算 | 电力功耗 | 安德尔定律(Amdahl‘s Law)
122 1
|
3月前
深挖计算机的根:汇编语言与计算机架构之间不可告人的秘密
【8月更文挑战第31天】本文深入探讨了汇编语言与计算机架构之间的重要联系。通过解析汇编语言的基本概念及其与硬件的直接映射关系,文章展示了它在计算机体系中的独特地位。以一个简单的“Hello, World!”汇编程序为例,详细说明了汇编语言如何操作底层硬件。尽管现代软件开发中较少使用汇编语言,但掌握它有助于理解计算机工作原理,对于性能优化和系统编程至关重要。
48 2
|
1月前
|
存储 缓存 数据处理
简述计算机X86架构
【10月更文挑战第3天】本文介绍了计算机的基本工作原理,重点阐述了CPU(中央处理器)及其组成部分:运算单元、数据单元和控制单元的功能。文中解释了CPU通过总线与内存等设备通信的过程,并详细描述了指令执行的步骤,包括指令获取、数据处理和结果存储。此外,还介绍了地址总线和数据总线的作用,以及段寄存器在内存管理中的应用。最后,提供了一些基本的CPU指令示例。文中配有多幅插图帮助理解。
|
2月前
|
网络协议 安全 中间件
系统架构设计师【第2章】: 计算机系统基础知识 (核心总结)
本文全面介绍了计算机系统及其相关技术,涵盖计算机系统概述、硬件、软件等内容。计算机系统由硬件(如处理器、存储器、输入输出设备)和软件(系统软件、应用软件)组成,旨在高效处理和管理数据。硬件核心为处理器,历经从4位到64位的发展,软件则分为系统软件和应用软件,满足不同需求。此外,深入探讨了计算机网络、嵌入式系统、多媒体技术、系统工程及性能评估等多个领域,强调了各组件和技术在现代信息技术中的重要作用与应用。
80 4
|
3月前
|
运维 安全 Linux
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
计算机架构“寒武纪爆发”,操作系统进化迸发中国浪潮
|
2月前
|
缓存
计算机X86架构
【9月更文挑战第7天】计算机的基本工作原理,重点阐述了CPU(中央处理器)及其内部结构,包括运算单元、数据单元和控制单元的功能。文中还解释了内存、总线(地址总线和数据总线)的作用,并简述了x86架构与操作系统交互的关键部分及基本指令集。
|
3月前
|
XML 分布式数据库 数据库
【计算机三级数据库技术】第13章 大规模数据库架构--附思维导图
文章概述了分布式数据库、并行数据库、云计算数据库架构和XML数据库的基本概念、目标、体系结构以及与传统数据库的比较,旨在提供对这些数据库技术的全面理解。
44 1
下一篇
无影云桌面