来源:书籍《计算机组成与设计》硬件/软件接口

“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 容量增长的预测。由于计算机设计可能需要数年时间,因此在项目开始和结束之间,每个芯片的可用资源很容易翻倍或四倍。就像飞碟射手一样,计算机架构师必须预测设计完成时技术的位置,而不是设计开始的位置。我们使用“向上和向右”摩尔定律图来表示快速变化的设计。

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

2、使用抽象简化设计

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

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

3、快速做普通案例

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

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

4、通过并行提高性能

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

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

5、通过流水线提高性能

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

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

6、通过预测提高性能

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

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

7、存储的层次设计

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

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

8、通过冗余提高可靠性

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

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

------

我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!

推荐阅读

  • 腾讯员工晒出薪资:真实985毕业薪资,大家看我还有救吗?

  • 深入剖析ByteHouse在字节跳动的实践

  • 《羊了个羊》创始人被母校制成展牌...

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

点击领取2022最新10000T学习资料

计算机架构设计的 8 个伟大思想相关推荐

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

    来源:书籍<计算机组成与设计>硬件/软件接口 本文约2400字,建议阅读9分钟本文介绍了关于计算机架构设计的8伟大思想. "These are eight great ideas ...

  2. 《系统架构设计》-06-面向领域思想和策略设计

    文章目录 1 面向领域思想 1.1 架构设计与领域驱动 1.1.1 领域驱动设计 1.1.2 使用领域驱动设计的条件 1.2 领域驱动设计核心概念 1.2.1 策略维度 1.2.2 技术维度 2. 面 ...

  3. 5.8架构设计原则案例分析

    date comments categories tags permalink title 2020/3/15 true 软件架构 架构 原则 5.8 架构设计原则案例分析 前面介绍了架构设计的三条核 ...

  4. 图灵奖得主长文报告:是什么开启了计算机架构的新黄金十年?

    文 | 杨晓凡 任然 包永刚 来自雷锋网(leiphone-sz)的报道 雷锋网按:近几年来,不论是普通消费者还是科研人员们都可以感受到两种浪潮,一种是CPU速度的提升越来越不显著了,我们说CPU制造 ...

  5. mysql架构设计书籍推荐_最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这...

    摘要: 冲区才用缓冲区,即SQL_CACHE:sort_buffer_size:排序缓冲区.3)分库分表因为数据库压力过大,首先一个问题就是高峰期系统性能可能会降低,因为数据库负载过高对性能会有影响. ...

  6. 【完结】总结12大CNN主流模型架构设计思想

    文章首发于微信公众号<有三AI> [完结]总结12大CNN主流模型架构设计思想 专栏<CNN模型解读>正式完结了,在这一个专栏中,我们给大家回顾了深度学习中的各类具有代表性的C ...

  7. 【阿里架构设计思想】一线互联网系统的核心架构是什么样子的?淘宝系统架构演进之路

    学习架构设计思想 以一个网站为例: 网站一开始就是大型的吗? 我们一开始就设计一个大型网站吗? 不一定要做到很好,但一定要先做出来. 淘宝发展过程 第一版 一个无名小网站,没有太多人访问,一台服务器就 ...

  8. 最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

    优化一览图 优化 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCRIB ...

  9. java设计模式--基础思想总结--抽象类与架构设计思想

    抽象类?这个东西我感觉没什么卵用啊,又不能拿来new对象,没有具体的对象的抽象类,有什么实际的意义呢?这是很多刚刚接触java抽象类语法时的第一反应(当然,包括我).确实,很多刚刚接触抽象类这个概念的 ...

最新文章

  1. 代码覆盖测试工具Kcov简介及使用
  2. 微软低调发布 Web 版本的 Visual Studio Code 预览
  3. WIFI 一键配置原理-ESP8266
  4. Android之内存泄露、内存溢出、内存抖动分析
  5. android 伪造gps位置,在Android中使用GPS的假位置
  6. android调用python框架_在Java中从Android应用程序执行Python脚本?
  7. 螺旋方阵(Leetcode第59题)
  8. NAR | 陈加余/陈亮合作建立R-loop全基因组分布与调控的专家数据库
  9. 从零开始 - iOSRTMP推流篇(1)
  10. 小米路由器4 bootloader_无线路由器刷机中,Breed详细使用教程,一些注意事项
  11. JavaScript 误区
  12. CoolBlog开发笔记第2课:搭建开发环境
  13. Linux自学之旅-软件包管理(软件包类型)
  14. 主站SOEM函数详解--SDO读写函数
  15. 「Computer Vision」Note on Kinetics and Two-Stream Inflated 3D ConvNets (I3D)
  16. 代码随想录第六天 LeetCode 242、349、202、1 (哈希表)
  17. 基于 GitLab CI 的前端工程CI/CD实践
  18. 在线制作h5——上帝的礼物
  19. windows合并文本命令
  20. php获取视频的真实地址,PHP获取youku视频真实flv文件地址的方法,

热门文章

  1. java flappy bird_Java实例---flappy-bird实例解析
  2. Vue 项目性能优化方案
  3. 人工智能生成 logo 神器
  4. VisualStudio/VS在一个项目中添加多个c++文件
  5. Angular $injector:unpr Unknown provider 问题原因汇总
  6. Windows系统远程连接Linux系统操作
  7. 赵小楼《天道》《遥远的救世主》深度解析(72)说点人性不喜欢听的
  8. OpenStack核心组件原理与应用之Glance
  9. 华胜天成旗下成员企业沃趣科技为华泰证券IT系统保驾护航
  10. Clusterrolebindings 创建错误