计算机架构设计的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 奖。

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


1、面向摩尔定律设计

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

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


2、使用抽象简化设计

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

抽象思维一直推动着计算机技术不断向前发展,科学技术本身就是现实世界的抽象和演绎:

电路信号->01二进制->指令汇编->高级编程->模块设计->框架设计->单机系统->分布式系统–>云计算,计算机领域有句名言:“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”。


3、快速做普通案例

计算机架构设计的8个伟大思想使常见情况变得更快往往会比优化罕见情况更有效地提高性能。具有讽刺意味的是,常见情况通常比罕见情况更简单,因此通常更容易增强。这种常识性建议意味着您知道常见情况是什么,这只有通过仔细的实验和测量才能实现。我们使用跑车作为快速制作普通案例的图标,因为最常见的旅行只有一两个乘客,而且制作快速轿车肯定比快速小型货车更容易。微信搜索公众号:Linux技术迷,回复:linux 领取资料 。

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


4、通过并行提高性能

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

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


5、通过流水线提高性能

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

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


6、通过预测提高性能

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

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

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


7、存储的层次设计

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

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


8、通过冗余提高可靠性

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

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


— EOF —


推荐↓↓↓


本篇文章来源于微信公众号:程序IT圈

原创文章,作者:software,如若转载,请注明出处:https://www.sldh123.com/5269.html

(0)
上一篇 9月 27, 2022 11:02 下午
下一篇 9月 29, 2022 12:08 下午

相关推荐

  • 架构师谈谈软件开发模式:瀑布与敏捷

    瀑布和敏捷不是什么新概念,这里只是个人在团队合作中不得不去思考而做的归纳和总结,同时记录自己曾经踩过的坑,新瓶装旧酒,希望对你有所启发。 瀑布模式   瀑布模型是比较传统一种开发模…

    1天前
    00
  • MySQL 大批量插入,如何过滤掉重复数据?

    在公司加班到八点,此为背景。 加班原因是上线,解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。 线上库有6个表存在重复数据,其中2…

    8月 22, 2022
    230
  • 架构师谈系统架构性能优化思路

    今天谈下业务系统性能问题分析诊断和性能优化方面的内容。这篇文章重点还是谈已经上线的业务系统后续出现性能问题后的问题诊断和优化重点。 系统性能问题分析流程 我们首先来分析下如果一个业…

    9月 24, 2022
    200
  • 架构师详解 OAuth 2.0 授权认证

    因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 目录 1、Auth2.0 协议简介 2、OAuth 2.0的授权认证流程   &nbsp…

    10月 3, 2022
    320
  • sql语句优化的30种方法

    作者:羋虹光链接:https://www.jianshu.com/p/3ab117c83d0b 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order b…

    11月 13, 2022
    200
  • 基于Spring Cloud的微服务架构分析

    Spring Cloud是一个相对比较新的微服务框架,2016年才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spr…

    7月 18, 2022
    140
  • 架构师扒一扒 ReentrantLock 以及 AQS 实现原理

    因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享 提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent Util…

    10月 20, 2022
    200
  • RocketMQ笔记:应用实践

    作者:因你而在_caiyq链接:https://www.jianshu.com/p/ab51c380fb09 普通消息 消息发送分类 Producer对于消息的发送方式也有多种选择…

    11月 16, 2022
    320
  • 架构师详解离线数仓逻辑和架构设计

    作者:北有榆树链接:https://www.jianshu.com/p/486aa21578f9 1.技术简介 组件 版本 简介 FLINK 1.12.1 分布式计算引擎 HIVE…

    9月 9, 2022
    310
  • 一文弄懂责任链设计模式

    目录 背景 什么是责任链 使用场景 结语 背景 最近,我让团队内一位成员写了一个导入功能。他使用了责任链模式,代码堆的非常多,bug 也多,没有达到我预期的效果。 实际上,针对导入…

    10月 2, 2022
    320

发表回复

您的电子邮箱地址不会被公开。